diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 76e56982..fb687d79 100755 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,12 +1,12 @@ lockVersion: 2.0.0 id: 16f22cbf-f23f-4419-8924-3a4b06381947 management: - docChecksum: 25cb9a6c3c7e2e859211c588b8281b5b + docChecksum: 25fd5807db652903ccf5955fa06cf3ac docVersion: 0.0.3 - speakeasyVersion: 1.526.6 - generationVersion: 2.563.1 - releaseVersion: 0.35.4 - configChecksum: bab7ec3c43c4ac8db5b96c3e16ff5569 + speakeasyVersion: 1.528.1 + generationVersion: 2.565.1 + releaseVersion: 0.36.0 + configChecksum: 22f00b600e146350a70b9857438cc1be repoURL: https://github.com/LukeHagar/plexjs.git repoSubDirectory: . installationURL: https://github.com/LukeHagar/plexjs @@ -35,6 +35,7 @@ features: retries: 2.83.0 sdkHooks: 0.2.0 unions: 2.85.8 + uploadStreams: 0.1.0 generatedFiles: - .gitattributes - .npmignore @@ -562,6 +563,11 @@ generatedFiles: - docs/sdk/models/operations/getlibraryitemstype.md - docs/sdk/models/operations/getlibraryitemsultrablurcolors.md - docs/sdk/models/operations/getlibraryitemswriter.md + - docs/sdk/models/operations/getmediaartsmediacontainer.md + - docs/sdk/models/operations/getmediaartsmetadata.md + - docs/sdk/models/operations/getmediaartsrequest.md + - docs/sdk/models/operations/getmediaartsresponse.md + - docs/sdk/models/operations/getmediaartsresponsebody.md - docs/sdk/models/operations/getmediametadatacountry.md - docs/sdk/models/operations/getmediametadatadirector.md - docs/sdk/models/operations/getmediametadatagenre.md @@ -586,6 +592,11 @@ generatedFiles: - docs/sdk/models/operations/getmediametadatastream.md - docs/sdk/models/operations/getmediametadataultrablurcolors.md - docs/sdk/models/operations/getmediametadatawriter.md + - docs/sdk/models/operations/getmediapostersmediacontainer.md + - docs/sdk/models/operations/getmediapostersmetadata.md + - docs/sdk/models/operations/getmediapostersrequest.md + - docs/sdk/models/operations/getmediapostersresponse.md + - docs/sdk/models/operations/getmediapostersresponsebody.md - docs/sdk/models/operations/getmediaprovidersdirectory.md - docs/sdk/models/operations/getmediaprovidersmediacontainer.md - docs/sdk/models/operations/getmediaprovidersrequest.md @@ -846,6 +857,10 @@ generatedFiles: - docs/sdk/models/operations/player.md - docs/sdk/models/operations/playlisttype.md - docs/sdk/models/operations/plexdevice.md + - docs/sdk/models/operations/postmediaartsrequest.md + - docs/sdk/models/operations/postmediaartsresponse.md + - docs/sdk/models/operations/postmediaposterrequest.md + - docs/sdk/models/operations/postmediaposterresponse.md - docs/sdk/models/operations/postuserssignindataauthenticationresponsestatus.md - docs/sdk/models/operations/postuserssignindataauthenticationstatus.md - docs/sdk/models/operations/postuserssignindataauthenticationsubscription.md @@ -979,13 +994,17 @@ generatedFiles: - src/funcs/libraryGetGenresLibrary.ts - src/funcs/libraryGetLibraryDetails.ts - src/funcs/libraryGetLibraryItems.ts + - src/funcs/libraryGetMediaArts.ts - src/funcs/libraryGetMediaMetaData.ts + - src/funcs/libraryGetMediaPosters.ts - src/funcs/libraryGetMetadataChildren.ts - src/funcs/libraryGetRecentlyAddedLibrary.ts - src/funcs/libraryGetRefreshLibraryMetadata.ts - src/funcs/libraryGetSearchAllLibraries.ts - src/funcs/libraryGetSearchLibrary.ts - src/funcs/libraryGetTopWatchedContent.ts + - src/funcs/libraryPostMediaArts.ts + - src/funcs/libraryPostMediaPoster.ts - src/funcs/logEnablePaperTrail.ts - src/funcs/logLogLine.ts - src/funcs/logLogMultiLine.ts @@ -1173,7 +1192,9 @@ generatedFiles: - src/sdk/models/operations/getlibrarydetails.ts - src/sdk/models/operations/getlibraryhubs.ts - src/sdk/models/operations/getlibraryitems.ts + - src/sdk/models/operations/getmediaarts.ts - src/sdk/models/operations/getmediametadata.ts + - src/sdk/models/operations/getmediaposters.ts - src/sdk/models/operations/getmediaproviders.ts - src/sdk/models/operations/getmetadatachildren.ts - src/sdk/models/operations/getmyplexaccount.ts @@ -1217,6 +1238,8 @@ generatedFiles: - src/sdk/models/operations/markunplayed.ts - src/sdk/models/operations/performsearch.ts - src/sdk/models/operations/performvoicesearch.ts + - src/sdk/models/operations/postmediaarts.ts + - src/sdk/models/operations/postmediaposter.ts - src/sdk/models/operations/postuserssignindata.ts - src/sdk/models/operations/startalltasks.ts - src/sdk/models/operations/starttask.ts @@ -2349,5 +2372,35 @@ examples: 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}]} + get-media-arts: + speakeasy-default-get-media-arts: + parameters: + path: + ratingKey: 16099 + responses: + "200": + application/json: {"MediaContainer": {"size": 50, "mediaTagVersion": 1734362201, "mediaTagPrefix": "/system/bundle/media/flags/", "identifier": "com.plexapp.plugins.library", "Metadata": [{"key": "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", "provider": "tmdb", "ratingKey": "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", "selected": true, "thumb": "https://images.plex.tv/photo?height=270&width=480&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FixgFmf1X59PUZam2qbAfskx2gQr%2Ejpg"}, {"key": "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", "provider": "tmdb", "ratingKey": "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", "selected": true, "thumb": "https://images.plex.tv/photo?height=270&width=480&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FixgFmf1X59PUZam2qbAfskx2gQr%2Ejpg"}, {"key": "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", "provider": "tmdb", "ratingKey": "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", "selected": true, "thumb": "https://images.plex.tv/photo?height=270&width=480&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FixgFmf1X59PUZam2qbAfskx2gQr%2Ejpg"}]}} + post-media-arts: + speakeasy-default-post-media-arts: + parameters: + path: + ratingKey: 2268 + query: + url: "https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b" + get-media-posters: + speakeasy-default-get-media-posters: + parameters: + path: + ratingKey: 16099 + responses: + "200": + application/json: {"MediaContainer": {"size": 50, "mediaTagVersion": 1734362201, "mediaTagPrefix": "/system/bundle/media/flags/", "identifier": "com.plexapp.plugins.library", "Metadata": [{"key": "https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg", "provider": "tmdb", "ratingKey": "https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg", "selected": true, "thumb": "https://images.plex.tv/photo?height=336&width=225&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FhntBJjqbv4m0Iyniqaztv9xaudI%2Ejpg"}, {"key": "https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg", "provider": "tmdb", "ratingKey": "https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg", "selected": true, "thumb": "https://images.plex.tv/photo?height=336&width=225&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FhntBJjqbv4m0Iyniqaztv9xaudI%2Ejpg"}]}} + post-media-poster: + speakeasy-default-post-media-poster: + parameters: + path: + ratingKey: 2268 + query: + url: "https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b" examplesVersion: 1.0.0 generatedTests: {} diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index fcd9c91c..5a912dff 100755 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -15,7 +15,7 @@ generation: oAuth2ClientCredentialsEnabled: true oAuth2PasswordEnabled: false typescript: - version: 0.35.4 + version: 0.36.0 additionalDependencies: dependencies: {} devDependencies: {} diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index d63af6f3..20d0f90f 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,4 +1,4 @@ -speakeasyVersion: 1.526.6 +speakeasyVersion: 1.528.1 sources: my-source: sourceNamespace: my-source @@ -9,20 +9,20 @@ sources: - main plexapi: sourceNamespace: plexapi - sourceRevisionDigest: sha256:6c0205c8a839cc77b987174c66dde7f7304e15e2b1c99d565ff86711d7d7998a - sourceBlobDigest: sha256:1737023e29cd9cf36c07ccd8c8c48c47e14f47ce22b4d6ba9ee241afbbd8f351 + sourceRevisionDigest: sha256:b5580df6ec4a386e12249ff13f35b916fe5559e101de4a816b53e47d6947f1a5 + sourceBlobDigest: sha256:6108b6c35fbe7e9163ffe0c804170f5e3a6edb63b8e745454ea8ee249bd790c3 tags: - latest - - speakeasy-sdk-regen-1743450163 + - speakeasy-sdk-regen-1743639051 - 0.0.3 targets: plexjs: source: plexapi sourceNamespace: plexapi - sourceRevisionDigest: sha256:6c0205c8a839cc77b987174c66dde7f7304e15e2b1c99d565ff86711d7d7998a - sourceBlobDigest: sha256:1737023e29cd9cf36c07ccd8c8c48c47e14f47ce22b4d6ba9ee241afbbd8f351 + sourceRevisionDigest: sha256:b5580df6ec4a386e12249ff13f35b916fe5559e101de4a816b53e47d6947f1a5 + sourceBlobDigest: sha256:6108b6c35fbe7e9163ffe0c804170f5e3a6edb63b8e745454ea8ee249bd790c3 codeSamplesNamespace: code-samples-typescript-plexjs - codeSamplesRevisionDigest: sha256:3929f5f1f37157fffc47c423c6f361958bf1c9665d3d6f6774aea3b745b59f13 + codeSamplesRevisionDigest: sha256:1d984798d2ba05ff7dfba1649556f6ece8cbfabbf9260f6a2678748f02977d47 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/README.md b/README.md index 74ac5b84..32fef372 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,7 @@ The following SDKs are generated from the OpenAPI Specification. They are automa * [Authentication](#authentication) * [Requirements](#requirements) * [Standalone functions](#standalone-functions) + * [File uploads](#file-uploads) * [Retries](#retries) * [Debugging](#debugging) * [Development](#development) @@ -167,6 +168,10 @@ run(); * [getActorsLibrary](docs/sdks/library/README.md#getactorslibrary) - Get Actors of library media * [getSearchAllLibraries](docs/sdks/library/README.md#getsearchalllibraries) - Search All Libraries * [getMediaMetaData](docs/sdks/library/README.md#getmediametadata) - Get Media Metadata +* [getMediaArts](docs/sdks/library/README.md#getmediaarts) - Get Media Background Artwork +* [postMediaArts](docs/sdks/library/README.md#postmediaarts) - Upload Media Background Artwork +* [getMediaPosters](docs/sdks/library/README.md#getmediaposters) - Get Media Posters +* [postMediaPoster](docs/sdks/library/README.md#postmediaposter) - Upload Media Poster * [getMetadataChildren](docs/sdks/library/README.md#getmetadatachildren) - Get Items Children * [getTopWatchedContent](docs/sdks/library/README.md#gettopwatchedcontent) - Get Top Watched Content @@ -543,13 +548,17 @@ To read more about standalone functions, check [FUNCTIONS.md](./FUNCTIONS.md). - [`libraryGetGenresLibrary`](docs/sdks/library/README.md#getgenreslibrary) - Get Genres of library media - [`libraryGetLibraryDetails`](docs/sdks/library/README.md#getlibrarydetails) - Get Library Details - [`libraryGetLibraryItems`](docs/sdks/library/README.md#getlibraryitems) - Get Library Items +- [`libraryGetMediaArts`](docs/sdks/library/README.md#getmediaarts) - Get Media Background Artwork - [`libraryGetMediaMetaData`](docs/sdks/library/README.md#getmediametadata) - Get Media Metadata +- [`libraryGetMediaPosters`](docs/sdks/library/README.md#getmediaposters) - Get Media Posters - [`libraryGetMetadataChildren`](docs/sdks/library/README.md#getmetadatachildren) - Get Items Children - [`libraryGetRecentlyAddedLibrary`](docs/sdks/library/README.md#getrecentlyaddedlibrary) - Get Recently Added - [`libraryGetRefreshLibraryMetadata`](docs/sdks/library/README.md#getrefreshlibrarymetadata) - Refresh Metadata Of The Library - [`libraryGetSearchAllLibraries`](docs/sdks/library/README.md#getsearchalllibraries) - Search All Libraries - [`libraryGetSearchLibrary`](docs/sdks/library/README.md#getsearchlibrary) - Search Library - [`libraryGetTopWatchedContent`](docs/sdks/library/README.md#gettopwatchedcontent) - Get Top Watched Content +- [`libraryPostMediaArts`](docs/sdks/library/README.md#postmediaarts) - Upload Media Background Artwork +- [`libraryPostMediaPoster`](docs/sdks/library/README.md#postmediaposter) - Upload Media Poster - [`logEnablePaperTrail`](docs/sdks/log/README.md#enablepapertrail) - Enabling Papertrail - [`logLogLine`](docs/sdks/log/README.md#logline) - Logging a single line message. - [`logLogMultiLine`](docs/sdks/log/README.md#logmultiline) - Logging a multi-line message @@ -604,6 +613,42 @@ To read more about standalone functions, check [FUNCTIONS.md](./FUNCTIONS.md). + +## File uploads + +Certain SDK methods accept files as part of a multi-part request. It is possible and typically recommended to upload files as a stream rather than reading the entire contents into memory. This avoids excessive memory consumption and potentially crashing with out-of-memory errors when working with very large files. The following example demonstrates how to attach a file stream to a request. + +> [!TIP] +> +> Depending on your JavaScript runtime, there are convenient utilities that return a handle to a file without reading the entire contents into memory: +> +> - **Node.js v20+:** Since v20, Node.js comes with a native `openAsBlob` function in [`node:fs`](https://nodejs.org/docs/latest-v20.x/api/fs.html#fsopenasblobpath-options). +> - **Bun:** The native [`Bun.file`](https://bun.sh/docs/api/file-io#reading-files-bun-file) function produces a file handle that can be used for streaming file uploads. +> - **Browsers:** All supported browsers return an instance to a [`File`](https://developer.mozilla.org/en-US/docs/Web/API/File) when reading the value from an `` element. +> - **Node.js v18:** A file stream can be created using the `fileFrom` helper from [`fetch-blob/from.js`](https://www.npmjs.com/package/fetch-blob). + +```typescript +import { PlexAPI } from "@lukehagar/plexjs"; + +const plexAPI = new PlexAPI({ + accessToken: "", +}); + +async function run() { + const result = await plexAPI.library.postMediaArts( + 2268, + "https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b", + ); + + // Handle the result + console.log(result); +} + +run(); + +``` + + ## Retries diff --git a/RELEASES.md b/RELEASES.md index 941720bd..94deef0d 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1278,4 +1278,14 @@ Based on: ### Generated - [typescript v0.35.4] . ### Releases -- [NPM v0.35.4] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.35.4 - . \ No newline at end of file +- [NPM v0.35.4] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.35.4 - . + +## 2025-04-03 00:10:29 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.528.1 (2.565.1) https://github.com/speakeasy-api/speakeasy +### Generated +- [typescript v0.36.0] . +### Releases +- [NPM v0.36.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.36.0 - . \ No newline at end of file diff --git a/codeSamples.yaml b/codeSamples.yaml index 26cc3845..30153d57 100644 --- a/codeSamples.yaml +++ b/codeSamples.yaml @@ -593,6 +593,46 @@ actions: console.log(result); } + run(); + - target: $["paths"]["/library/metadata/{ratingKey}/arts"]["get"] + update: + x-codeSamples: + - lang: typescript + label: PlexJS + source: |- + import { PlexAPI } from "@lukehagar/plexjs"; + + const plexAPI = new PlexAPI({ + accessToken: "", + }); + + async function run() { + const result = await plexAPI.library.getMediaArts(16099); + + // Handle the result + console.log(result); + } + + run(); + - target: $["paths"]["/library/metadata/{ratingKey}/arts"]["post"] + update: + x-codeSamples: + - lang: typescript + label: PlexJS + source: |- + import { PlexAPI } from "@lukehagar/plexjs"; + + const plexAPI = new PlexAPI({ + accessToken: "", + }); + + async function run() { + const result = await plexAPI.library.postMediaArts(2268, "https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b"); + + // Handle the result + console.log(result); + } + run(); - target: $["paths"]["/library/metadata/{ratingKey}/banner"]["get"] update: @@ -640,6 +680,46 @@ actions: console.log(result); } + run(); + - target: $["paths"]["/library/metadata/{ratingKey}/posters"]["get"] + update: + x-codeSamples: + - lang: typescript + label: PlexJS + source: |- + import { PlexAPI } from "@lukehagar/plexjs"; + + const plexAPI = new PlexAPI({ + accessToken: "", + }); + + async function run() { + const result = await plexAPI.library.getMediaPosters(16099); + + // Handle the result + console.log(result); + } + + run(); + - target: $["paths"]["/library/metadata/{ratingKey}/posters"]["post"] + update: + x-codeSamples: + - lang: typescript + label: PlexJS + source: |- + import { PlexAPI } from "@lukehagar/plexjs"; + + const plexAPI = new PlexAPI({ + accessToken: "", + }); + + async function run() { + const result = await plexAPI.library.postMediaPoster(2268, "https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b"); + + // Handle the result + console.log(result); + } + run(); - target: $["paths"]["/library/metadata/{ratingKey}/thumb"]["get"] update: diff --git a/docs/sdk/models/operations/addplaylistcontentsrequest.md b/docs/sdk/models/operations/addplaylistcontentsrequest.md index a53d057f..35840738 100644 --- a/docs/sdk/models/operations/addplaylistcontentsrequest.md +++ b/docs/sdk/models/operations/addplaylistcontentsrequest.md @@ -6,7 +6,7 @@ import { AddPlaylistContentsRequest } from "@lukehagar/plexjs/sdk/models/operations"; let value: AddPlaylistContentsRequest = { - playlistID: 2776.28, + playlistID: 5654.21, uri: "server://12345/com.plexapp.plugins.library/library/metadata/1", playQueueID: 123, }; diff --git a/docs/sdk/models/operations/addplaylistcontentsresponse.md b/docs/sdk/models/operations/addplaylistcontentsresponse.md index 14e917eb..99b57f91 100644 --- a/docs/sdk/models/operations/addplaylistcontentsresponse.md +++ b/docs/sdk/models/operations/addplaylistcontentsresponse.md @@ -7,7 +7,7 @@ import { AddPlaylistContentsResponse } from "@lukehagar/plexjs/sdk/models/operat let value: AddPlaylistContentsResponse = { contentType: "", - statusCode: 307, + statusCode: 100, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/applyupdatesresponse.md b/docs/sdk/models/operations/applyupdatesresponse.md index 74151c59..a92aea1c 100644 --- a/docs/sdk/models/operations/applyupdatesresponse.md +++ b/docs/sdk/models/operations/applyupdatesresponse.md @@ -7,7 +7,7 @@ import { ApplyUpdatesResponse } from "@lukehagar/plexjs/sdk/models/operations"; let value: ApplyUpdatesResponse = { contentType: "", - statusCode: 208, + statusCode: 305, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/billing.md b/docs/sdk/models/operations/billing.md index 82cbc00f..e64f46db 100644 --- a/docs/sdk/models/operations/billing.md +++ b/docs/sdk/models/operations/billing.md @@ -7,7 +7,7 @@ import { Billing } from "@lukehagar/plexjs/sdk/models/operations"; let value: Billing = { internalPaymentMethod: {}, - paymentMethodId: 903720, + paymentMethodId: 16429, }; ``` diff --git a/docs/sdk/models/operations/checkforupdatesresponse.md b/docs/sdk/models/operations/checkforupdatesresponse.md index cc6c6efe..67f16826 100644 --- a/docs/sdk/models/operations/checkforupdatesresponse.md +++ b/docs/sdk/models/operations/checkforupdatesresponse.md @@ -7,7 +7,7 @@ import { CheckForUpdatesResponse } from "@lukehagar/plexjs/sdk/models/operations let value: CheckForUpdatesResponse = { contentType: "", - statusCode: 428, + statusCode: 505, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/clearplaylistcontentsrequest.md b/docs/sdk/models/operations/clearplaylistcontentsrequest.md index 463498e7..400130ff 100644 --- a/docs/sdk/models/operations/clearplaylistcontentsrequest.md +++ b/docs/sdk/models/operations/clearplaylistcontentsrequest.md @@ -6,7 +6,7 @@ import { ClearPlaylistContentsRequest } from "@lukehagar/plexjs/sdk/models/operations"; let value: ClearPlaylistContentsRequest = { - playlistID: 4246.85, + playlistID: 1320.68, }; ``` diff --git a/docs/sdk/models/operations/clearplaylistcontentsresponse.md b/docs/sdk/models/operations/clearplaylistcontentsresponse.md index 530686d5..85ad4cf2 100644 --- a/docs/sdk/models/operations/clearplaylistcontentsresponse.md +++ b/docs/sdk/models/operations/clearplaylistcontentsresponse.md @@ -7,7 +7,7 @@ import { ClearPlaylistContentsResponse } from "@lukehagar/plexjs/sdk/models/oper let value: ClearPlaylistContentsResponse = { contentType: "", - statusCode: 204, + statusCode: 411, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/createplaylistqueryparamtype.md b/docs/sdk/models/operations/createplaylistqueryparamtype.md index 127e01de..f039f9e5 100644 --- a/docs/sdk/models/operations/createplaylistqueryparamtype.md +++ b/docs/sdk/models/operations/createplaylistqueryparamtype.md @@ -7,7 +7,7 @@ type of playlist to create ```typescript import { CreatePlaylistQueryParamType } from "@lukehagar/plexjs/sdk/models/operations"; -let value: CreatePlaylistQueryParamType = CreatePlaylistQueryParamType.Photo; +let value: CreatePlaylistQueryParamType = CreatePlaylistQueryParamType.Video; ``` ## Values diff --git a/docs/sdk/models/operations/createplaylistrequest.md b/docs/sdk/models/operations/createplaylistrequest.md index 69e3adb3..11478b84 100644 --- a/docs/sdk/models/operations/createplaylistrequest.md +++ b/docs/sdk/models/operations/createplaylistrequest.md @@ -7,9 +7,9 @@ import { CreatePlaylistQueryParamType, CreatePlaylistRequest, Smart } from "@luk let value: CreatePlaylistRequest = { title: "", - type: CreatePlaylistQueryParamType.Audio, + type: CreatePlaylistQueryParamType.Photo, smart: Smart.One, - uri: "https://ajar-reward.biz/", + uri: "https://firsthand-section.biz", }; ``` diff --git a/docs/sdk/models/operations/createplaylistresponse.md b/docs/sdk/models/operations/createplaylistresponse.md index 03270f8a..ecf9748d 100644 --- a/docs/sdk/models/operations/createplaylistresponse.md +++ b/docs/sdk/models/operations/createplaylistresponse.md @@ -7,7 +7,7 @@ import { CreatePlaylistResponse } from "@lukehagar/plexjs/sdk/models/operations" let value: CreatePlaylistResponse = { contentType: "", - statusCode: 205, + statusCode: 507, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/deleteplaylistrequest.md b/docs/sdk/models/operations/deleteplaylistrequest.md index b114c820..cad6a610 100644 --- a/docs/sdk/models/operations/deleteplaylistrequest.md +++ b/docs/sdk/models/operations/deleteplaylistrequest.md @@ -6,7 +6,7 @@ import { DeletePlaylistRequest } from "@lukehagar/plexjs/sdk/models/operations"; let value: DeletePlaylistRequest = { - playlistID: 6874.88, + playlistID: 2074.7, }; ``` diff --git a/docs/sdk/models/operations/deleteplaylistresponse.md b/docs/sdk/models/operations/deleteplaylistresponse.md index 5e4b4195..66cf5d7a 100644 --- a/docs/sdk/models/operations/deleteplaylistresponse.md +++ b/docs/sdk/models/operations/deleteplaylistresponse.md @@ -7,7 +7,7 @@ import { DeletePlaylistResponse } from "@lukehagar/plexjs/sdk/models/operations" let value: DeletePlaylistResponse = { contentType: "", - statusCode: 226, + statusCode: 303, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/enablepapertrailresponse.md b/docs/sdk/models/operations/enablepapertrailresponse.md index d710fbcf..11c7b9e9 100644 --- a/docs/sdk/models/operations/enablepapertrailresponse.md +++ b/docs/sdk/models/operations/enablepapertrailresponse.md @@ -7,7 +7,7 @@ import { EnablePaperTrailResponse } from "@lukehagar/plexjs/sdk/models/operation let value: EnablePaperTrailResponse = { contentType: "", - statusCode: 304, + statusCode: 409, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/filter.md b/docs/sdk/models/operations/filter.md index 472f5a48..7579d234 100644 --- a/docs/sdk/models/operations/filter.md +++ b/docs/sdk/models/operations/filter.md @@ -7,7 +7,7 @@ Filter ```typescript import { Filter } from "@lukehagar/plexjs/sdk/models/operations"; -let value: Filter = Filter.Released; +let value: Filter = Filter.Available; ``` ## Values diff --git a/docs/sdk/models/operations/getbandwidthstatisticsresponse.md b/docs/sdk/models/operations/getbandwidthstatisticsresponse.md index 1fbd5c9f..d6cf553a 100644 --- a/docs/sdk/models/operations/getbandwidthstatisticsresponse.md +++ b/docs/sdk/models/operations/getbandwidthstatisticsresponse.md @@ -7,7 +7,7 @@ import { GetBandwidthStatisticsResponse } from "@lukehagar/plexjs/sdk/models/ope let value: GetBandwidthStatisticsResponse = { contentType: "", - statusCode: 205, + statusCode: 226, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/getmediaartsmediacontainer.md b/docs/sdk/models/operations/getmediaartsmediacontainer.md new file mode 100644 index 00000000..104ea496 --- /dev/null +++ b/docs/sdk/models/operations/getmediaartsmediacontainer.md @@ -0,0 +1,36 @@ +# GetMediaArtsMediaContainer + +## Example Usage + +```typescript +import { GetMediaArtsMediaContainer } from "@lukehagar/plexjs/sdk/models/operations"; + +let value: GetMediaArtsMediaContainer = { + size: 50, + mediaTagVersion: 1734362201, + mediaTagPrefix: "/system/bundle/media/flags/", + identifier: "com.plexapp.plugins.library", + metadata: [ + { + key: + "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", + provider: "tmdb", + ratingKey: + "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", + selected: true, + thumb: + "https://images.plex.tv/photo?height=270&width=480&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FixgFmf1X59PUZam2qbAfskx2gQr%2Ejpg", + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | +| `size` | *number* | :heavy_check_mark: | Number of media items returned in this response. | 50 | +| `mediaTagVersion` | *number* | :heavy_check_mark: | The version number for media tags. | 1734362201 | +| `mediaTagPrefix` | *string* | :heavy_check_mark: | The prefix used for media tag resource paths. | /system/bundle/media/flags/ | +| `identifier` | *string* | :heavy_check_mark: | An plugin identifier for the media container. | com.plexapp.plugins.library | +| `metadata` | [operations.GetMediaArtsMetadata](../../../sdk/models/operations/getmediaartsmetadata.md)[] | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/sdk/models/operations/getmediaartsmetadata.md b/docs/sdk/models/operations/getmediaartsmetadata.md new file mode 100644 index 00000000..ff9fdb67 --- /dev/null +++ b/docs/sdk/models/operations/getmediaartsmetadata.md @@ -0,0 +1,27 @@ +# GetMediaArtsMetadata + +## Example Usage + +```typescript +import { GetMediaArtsMetadata } from "@lukehagar/plexjs/sdk/models/operations"; + +let value: GetMediaArtsMetadata = { + key: "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", + provider: "tmdb", + ratingKey: + "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", + selected: true, + thumb: + "https://images.plex.tv/photo?height=270&width=480&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FixgFmf1X59PUZam2qbAfskx2gQr%2Ejpg", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `key` | *string* | :heavy_check_mark: | The URL of the artwork. | https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg | +| `provider` | *string* | :heavy_minus_sign: | The provider of the artwork. | tmdb | +| `ratingKey` | *string* | :heavy_check_mark: | The URL of the artwork. | https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg | +| `selected` | *boolean* | :heavy_check_mark: | Whether this is the selected artwork. | true | +| `thumb` | *string* | :heavy_check_mark: | The URL of the artwork thumbnail. | https://images.plex.tv/photo?height=270&width=480&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FixgFmf1X59PUZam2qbAfskx2gQr%2Ejpg | \ No newline at end of file diff --git a/docs/sdk/models/operations/getmediaartsrequest.md b/docs/sdk/models/operations/getmediaartsrequest.md new file mode 100644 index 00000000..98a5390f --- /dev/null +++ b/docs/sdk/models/operations/getmediaartsrequest.md @@ -0,0 +1,17 @@ +# GetMediaArtsRequest + +## Example Usage + +```typescript +import { GetMediaArtsRequest } from "@lukehagar/plexjs/sdk/models/operations"; + +let value: GetMediaArtsRequest = { + ratingKey: 16099, +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | +| `ratingKey` | *number* | :heavy_check_mark: | the id of the library item to return the artwork of. | 16099 | \ No newline at end of file diff --git a/docs/sdk/models/operations/getmediaartsresponse.md b/docs/sdk/models/operations/getmediaartsresponse.md new file mode 100644 index 00000000..5c9c47ac --- /dev/null +++ b/docs/sdk/models/operations/getmediaartsresponse.md @@ -0,0 +1,44 @@ +# GetMediaArtsResponse + +## Example Usage + +```typescript +import { GetMediaArtsResponse } from "@lukehagar/plexjs/sdk/models/operations"; + +let value: GetMediaArtsResponse = { + contentType: "", + statusCode: 203, + rawResponse: new Response("{\"message\": \"hello world\"}", { + headers: { "Content-Type": "application/json" }, + }), + object: { + mediaContainer: { + size: 50, + mediaTagVersion: 1734362201, + mediaTagPrefix: "/system/bundle/media/flags/", + identifier: "com.plexapp.plugins.library", + metadata: [ + { + key: + "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", + provider: "tmdb", + ratingKey: + "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", + selected: true, + thumb: + "https://images.plex.tv/photo?height=270&width=480&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FixgFmf1X59PUZam2qbAfskx2gQr%2Ejpg", + }, + ], + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | +| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [operations.GetMediaArtsResponseBody](../../../sdk/models/operations/getmediaartsresponsebody.md) | :heavy_minus_sign: | The available background artwork for the library item. | \ No newline at end of file diff --git a/docs/sdk/models/operations/getmediaartsresponsebody.md b/docs/sdk/models/operations/getmediaartsresponsebody.md new file mode 100644 index 00000000..085b7383 --- /dev/null +++ b/docs/sdk/models/operations/getmediaartsresponsebody.md @@ -0,0 +1,36 @@ +# GetMediaArtsResponseBody + +The available background artwork for the library item. + +## Example Usage + +```typescript +import { GetMediaArtsResponseBody } from "@lukehagar/plexjs/sdk/models/operations"; + +let value: GetMediaArtsResponseBody = { + mediaContainer: { + size: 50, + mediaTagVersion: 1734362201, + mediaTagPrefix: "/system/bundle/media/flags/", + identifier: "com.plexapp.plugins.library", + metadata: [ + { + key: + "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", + provider: "tmdb", + ratingKey: + "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", + selected: true, + thumb: + "https://images.plex.tv/photo?height=270&width=480&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FixgFmf1X59PUZam2qbAfskx2gQr%2Ejpg", + }, + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [operations.GetMediaArtsMediaContainer](../../../sdk/models/operations/getmediaartsmediacontainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/sdk/models/operations/getmediapostersmediacontainer.md b/docs/sdk/models/operations/getmediapostersmediacontainer.md new file mode 100644 index 00000000..0c0cef5c --- /dev/null +++ b/docs/sdk/models/operations/getmediapostersmediacontainer.md @@ -0,0 +1,36 @@ +# GetMediaPostersMediaContainer + +## Example Usage + +```typescript +import { GetMediaPostersMediaContainer } from "@lukehagar/plexjs/sdk/models/operations"; + +let value: GetMediaPostersMediaContainer = { + size: 50, + mediaTagVersion: 1734362201, + mediaTagPrefix: "/system/bundle/media/flags/", + identifier: "com.plexapp.plugins.library", + metadata: [ + { + key: + "https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg", + provider: "tmdb", + ratingKey: + "https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg", + selected: true, + thumb: + "https://images.plex.tv/photo?height=336&width=225&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FhntBJjqbv4m0Iyniqaztv9xaudI%2Ejpg", + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | +| `size` | *number* | :heavy_check_mark: | Number of media items returned in this response. | 50 | +| `mediaTagVersion` | *number* | :heavy_check_mark: | The version number for media tags. | 1734362201 | +| `mediaTagPrefix` | *string* | :heavy_check_mark: | The prefix used for media tag resource paths. | /system/bundle/media/flags/ | +| `identifier` | *string* | :heavy_check_mark: | An plugin identifier for the media container. | com.plexapp.plugins.library | +| `metadata` | [operations.GetMediaPostersMetadata](../../../sdk/models/operations/getmediapostersmetadata.md)[] | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/sdk/models/operations/getmediapostersmetadata.md b/docs/sdk/models/operations/getmediapostersmetadata.md new file mode 100644 index 00000000..d577eeef --- /dev/null +++ b/docs/sdk/models/operations/getmediapostersmetadata.md @@ -0,0 +1,27 @@ +# GetMediaPostersMetadata + +## Example Usage + +```typescript +import { GetMediaPostersMetadata } from "@lukehagar/plexjs/sdk/models/operations"; + +let value: GetMediaPostersMetadata = { + key: "https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg", + provider: "tmdb", + ratingKey: + "https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg", + selected: true, + thumb: + "https://images.plex.tv/photo?height=336&width=225&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FhntBJjqbv4m0Iyniqaztv9xaudI%2Ejpg", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `key` | *string* | :heavy_check_mark: | The URL of the poster. | https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg | +| `provider` | *string* | :heavy_minus_sign: | The provider of the poster. | tmdb | +| `ratingKey` | *string* | :heavy_check_mark: | The URL of the poster. | https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg | +| `selected` | *boolean* | :heavy_check_mark: | Whether this is the selected poster. | true | +| `thumb` | *string* | :heavy_check_mark: | The URL of the poster thumbnail. | https://images.plex.tv/photo?height=336&width=225&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FhntBJjqbv4m0Iyniqaztv9xaudI%2Ejpg | \ No newline at end of file diff --git a/docs/sdk/models/operations/getmediapostersrequest.md b/docs/sdk/models/operations/getmediapostersrequest.md new file mode 100644 index 00000000..81c39b16 --- /dev/null +++ b/docs/sdk/models/operations/getmediapostersrequest.md @@ -0,0 +1,17 @@ +# GetMediaPostersRequest + +## Example Usage + +```typescript +import { GetMediaPostersRequest } from "@lukehagar/plexjs/sdk/models/operations"; + +let value: GetMediaPostersRequest = { + ratingKey: 16099, +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | +| `ratingKey` | *number* | :heavy_check_mark: | the id of the library item to return the posters of. | 16099 | \ No newline at end of file diff --git a/docs/sdk/models/operations/getmediapostersresponse.md b/docs/sdk/models/operations/getmediapostersresponse.md new file mode 100644 index 00000000..95aaeee4 --- /dev/null +++ b/docs/sdk/models/operations/getmediapostersresponse.md @@ -0,0 +1,44 @@ +# GetMediaPostersResponse + +## Example Usage + +```typescript +import { GetMediaPostersResponse } from "@lukehagar/plexjs/sdk/models/operations"; + +let value: GetMediaPostersResponse = { + contentType: "", + statusCode: 508, + rawResponse: new Response("{\"message\": \"hello world\"}", { + headers: { "Content-Type": "application/json" }, + }), + object: { + mediaContainer: { + size: 50, + mediaTagVersion: 1734362201, + mediaTagPrefix: "/system/bundle/media/flags/", + identifier: "com.plexapp.plugins.library", + metadata: [ + { + key: + "https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg", + provider: "tmdb", + ratingKey: + "https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg", + selected: true, + thumb: + "https://images.plex.tv/photo?height=336&width=225&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FhntBJjqbv4m0Iyniqaztv9xaudI%2Ejpg", + }, + ], + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | +| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [operations.GetMediaPostersResponseBody](../../../sdk/models/operations/getmediapostersresponsebody.md) | :heavy_minus_sign: | The available posters for the library item. | \ No newline at end of file diff --git a/docs/sdk/models/operations/getmediapostersresponsebody.md b/docs/sdk/models/operations/getmediapostersresponsebody.md new file mode 100644 index 00000000..b386b890 --- /dev/null +++ b/docs/sdk/models/operations/getmediapostersresponsebody.md @@ -0,0 +1,36 @@ +# GetMediaPostersResponseBody + +The available posters for the library item. + +## Example Usage + +```typescript +import { GetMediaPostersResponseBody } from "@lukehagar/plexjs/sdk/models/operations"; + +let value: GetMediaPostersResponseBody = { + mediaContainer: { + size: 50, + mediaTagVersion: 1734362201, + mediaTagPrefix: "/system/bundle/media/flags/", + identifier: "com.plexapp.plugins.library", + metadata: [ + { + key: + "https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg", + provider: "tmdb", + ratingKey: + "https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg", + selected: true, + thumb: + "https://images.plex.tv/photo?height=336&width=225&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FhntBJjqbv4m0Iyniqaztv9xaudI%2Ejpg", + }, + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [operations.GetMediaPostersMediaContainer](../../../sdk/models/operations/getmediapostersmediacontainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/sdk/models/operations/getmetadatachildrenrequest.md b/docs/sdk/models/operations/getmetadatachildrenrequest.md index a22a6f91..66b11231 100644 --- a/docs/sdk/models/operations/getmetadatachildrenrequest.md +++ b/docs/sdk/models/operations/getmetadatachildrenrequest.md @@ -6,7 +6,7 @@ import { GetMetadataChildrenRequest } from "@lukehagar/plexjs/sdk/models/operations"; let value: GetMetadataChildrenRequest = { - ratingKey: 3119.45, + ratingKey: 2543.56, }; ``` diff --git a/docs/sdk/models/operations/getmetadatachildrenresponse.md b/docs/sdk/models/operations/getmetadatachildrenresponse.md index 85c60e3a..c96b2e39 100644 --- a/docs/sdk/models/operations/getmetadatachildrenresponse.md +++ b/docs/sdk/models/operations/getmetadatachildrenresponse.md @@ -7,7 +7,7 @@ import { GetMetadataChildrenResponse } from "@lukehagar/plexjs/sdk/models/operat let value: GetMetadataChildrenResponse = { contentType: "", - statusCode: 202, + statusCode: 101, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/getplaylistcontentsrequest.md b/docs/sdk/models/operations/getplaylistcontentsrequest.md index 059746ab..fe6f1892 100644 --- a/docs/sdk/models/operations/getplaylistcontentsrequest.md +++ b/docs/sdk/models/operations/getplaylistcontentsrequest.md @@ -6,7 +6,7 @@ import { GetPlaylistContentsQueryParamType, GetPlaylistContentsRequest } from "@lukehagar/plexjs/sdk/models/operations"; let value: GetPlaylistContentsRequest = { - playlistID: 5182.01, + playlistID: 8638.56, type: GetPlaylistContentsQueryParamType.TvShow, }; ``` diff --git a/docs/sdk/models/operations/getplaylistcontentsresponse.md b/docs/sdk/models/operations/getplaylistcontentsresponse.md index 4b056ae4..318ee214 100644 --- a/docs/sdk/models/operations/getplaylistcontentsresponse.md +++ b/docs/sdk/models/operations/getplaylistcontentsresponse.md @@ -8,7 +8,7 @@ import { RFCDate } from "@lukehagar/plexjs/sdk/types"; let value: GetPlaylistContentsResponse = { contentType: "", - statusCode: 100, + statusCode: 102, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/getplaylistrequest.md b/docs/sdk/models/operations/getplaylistrequest.md index f70ec653..ada26106 100644 --- a/docs/sdk/models/operations/getplaylistrequest.md +++ b/docs/sdk/models/operations/getplaylistrequest.md @@ -6,7 +6,7 @@ import { GetPlaylistRequest } from "@lukehagar/plexjs/sdk/models/operations"; let value: GetPlaylistRequest = { - playlistID: 7980.47, + playlistID: 2133.12, }; ``` diff --git a/docs/sdk/models/operations/getplaylistresponse.md b/docs/sdk/models/operations/getplaylistresponse.md index 02a995f3..629d64a8 100644 --- a/docs/sdk/models/operations/getplaylistresponse.md +++ b/docs/sdk/models/operations/getplaylistresponse.md @@ -7,7 +7,7 @@ import { GetPlaylistResponse } from "@lukehagar/plexjs/sdk/models/operations"; let value: GetPlaylistResponse = { contentType: "", - statusCode: 103, + statusCode: 300, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/getplaylistsresponse.md b/docs/sdk/models/operations/getplaylistsresponse.md index a8b93631..52703b3c 100644 --- a/docs/sdk/models/operations/getplaylistsresponse.md +++ b/docs/sdk/models/operations/getplaylistsresponse.md @@ -7,7 +7,7 @@ import { GetPlaylistsResponse } from "@lukehagar/plexjs/sdk/models/operations"; let value: GetPlaylistsResponse = { contentType: "", - statusCode: 503, + statusCode: 407, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/getresourcesstatisticsresponse.md b/docs/sdk/models/operations/getresourcesstatisticsresponse.md index f64ca67d..4e9d5f41 100644 --- a/docs/sdk/models/operations/getresourcesstatisticsresponse.md +++ b/docs/sdk/models/operations/getresourcesstatisticsresponse.md @@ -7,7 +7,7 @@ import { GetResourcesStatisticsResponse } from "@lukehagar/plexjs/sdk/models/ope let value: GetResourcesStatisticsResponse = { contentType: "", - statusCode: 424, + statusCode: 226, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/getsessionhistoryresponse.md b/docs/sdk/models/operations/getsessionhistoryresponse.md index 83604169..d8bf52e6 100644 --- a/docs/sdk/models/operations/getsessionhistoryresponse.md +++ b/docs/sdk/models/operations/getsessionhistoryresponse.md @@ -8,7 +8,7 @@ import { RFCDate } from "@lukehagar/plexjs/sdk/types"; let value: GetSessionHistoryResponse = { contentType: "", - statusCode: 510, + statusCode: 428, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/getsessionsresponse.md b/docs/sdk/models/operations/getsessionsresponse.md index 63a65810..121d2e7c 100644 --- a/docs/sdk/models/operations/getsessionsresponse.md +++ b/docs/sdk/models/operations/getsessionsresponse.md @@ -7,7 +7,7 @@ import { GetSessionsResponse } from "@lukehagar/plexjs/sdk/models/operations"; let value: GetSessionsResponse = { contentType: "", - statusCode: 101, + statusCode: 508, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/getsourceconnectioninformationresponse.md b/docs/sdk/models/operations/getsourceconnectioninformationresponse.md index 3288e0d0..d8793b36 100644 --- a/docs/sdk/models/operations/getsourceconnectioninformationresponse.md +++ b/docs/sdk/models/operations/getsourceconnectioninformationresponse.md @@ -7,7 +7,7 @@ import { GetSourceConnectionInformationResponse } from "@lukehagar/plexjs/sdk/mo let value: GetSourceConnectionInformationResponse = { contentType: "", - statusCode: 101, + statusCode: 305, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/getstatisticsresponse.md b/docs/sdk/models/operations/getstatisticsresponse.md index c937e45c..82f7d994 100644 --- a/docs/sdk/models/operations/getstatisticsresponse.md +++ b/docs/sdk/models/operations/getstatisticsresponse.md @@ -7,7 +7,7 @@ import { GetStatisticsResponse } from "@lukehagar/plexjs/sdk/models/operations"; let value: GetStatisticsResponse = { contentType: "", - statusCode: 103, + statusCode: 510, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/gettokendetailsresponse.md b/docs/sdk/models/operations/gettokendetailsresponse.md index 7ea32d4d..360b43f0 100644 --- a/docs/sdk/models/operations/gettokendetailsresponse.md +++ b/docs/sdk/models/operations/gettokendetailsresponse.md @@ -13,7 +13,7 @@ import { let value: GetTokenDetailsResponse = { contentType: "", - statusCode: 508, + statusCode: 202, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), @@ -31,7 +31,7 @@ let value: GetTokenDetailsResponse = { homeSize: 1, id: 13692262, joinedAt: 1556281940, - locale: "pl", + locale: "fr", mailingListStatus: MailingListStatus.Active, maxHomeSize: 15, profile: { diff --git a/docs/sdk/models/operations/gettokendetailsuserplexaccount.md b/docs/sdk/models/operations/gettokendetailsuserplexaccount.md index 33961c4c..9e736090 100644 --- a/docs/sdk/models/operations/gettokendetailsuserplexaccount.md +++ b/docs/sdk/models/operations/gettokendetailsuserplexaccount.md @@ -27,7 +27,7 @@ let value: GetTokenDetailsUserPlexAccount = { homeSize: 1, id: 13692262, joinedAt: 1556281940, - locale: "ja", + locale: "el", mailingListStatus: MailingListStatus.Active, maxHomeSize: 15, profile: { diff --git a/docs/sdk/models/operations/gettopwatchedcontentresponse.md b/docs/sdk/models/operations/gettopwatchedcontentresponse.md index 9afa8744..f8acd5b3 100644 --- a/docs/sdk/models/operations/gettopwatchedcontentresponse.md +++ b/docs/sdk/models/operations/gettopwatchedcontentresponse.md @@ -8,7 +8,7 @@ import { RFCDate } from "@lukehagar/plexjs/sdk/types"; let value: GetTopWatchedContentResponse = { contentType: "", - statusCode: 103, + statusCode: 206, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/gettranscodesessionsresponse.md b/docs/sdk/models/operations/gettranscodesessionsresponse.md index 75b913c0..163e496c 100644 --- a/docs/sdk/models/operations/gettranscodesessionsresponse.md +++ b/docs/sdk/models/operations/gettranscodesessionsresponse.md @@ -7,7 +7,7 @@ import { GetTranscodeSessionsResponse } from "@lukehagar/plexjs/sdk/models/opera let value: GetTranscodeSessionsResponse = { contentType: "", - statusCode: 226, + statusCode: 208, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/gettransienttokenresponse.md b/docs/sdk/models/operations/gettransienttokenresponse.md index 545b3d3f..52ea3ecf 100644 --- a/docs/sdk/models/operations/gettransienttokenresponse.md +++ b/docs/sdk/models/operations/gettransienttokenresponse.md @@ -7,7 +7,7 @@ import { GetTransientTokenResponse } from "@lukehagar/plexjs/sdk/models/operatio let value: GetTransientTokenResponse = { contentType: "", - statusCode: 205, + statusCode: 429, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/getupdatestatusresponse.md b/docs/sdk/models/operations/getupdatestatusresponse.md index 1451f267..a12dab1a 100644 --- a/docs/sdk/models/operations/getupdatestatusresponse.md +++ b/docs/sdk/models/operations/getupdatestatusresponse.md @@ -7,7 +7,7 @@ import { GetUpdateStatusResponse } from "@lukehagar/plexjs/sdk/models/operations let value: GetUpdateStatusResponse = { contentType: "", - statusCode: 508, + statusCode: 201, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/getusersresponse.md b/docs/sdk/models/operations/getusersresponse.md index af29f462..a9204929 100644 --- a/docs/sdk/models/operations/getusersresponse.md +++ b/docs/sdk/models/operations/getusersresponse.md @@ -7,7 +7,7 @@ import { GetUsersResponse } from "@lukehagar/plexjs/sdk/models/operations"; let value: GetUsersResponse = { contentType: "", - statusCode: 400, + statusCode: 201, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/getwatchlistrequest.md b/docs/sdk/models/operations/getwatchlistrequest.md index 9e9c7015..66cb4ff4 100644 --- a/docs/sdk/models/operations/getwatchlistrequest.md +++ b/docs/sdk/models/operations/getwatchlistrequest.md @@ -6,7 +6,7 @@ import { Filter, GetWatchListRequest } from "@lukehagar/plexjs/sdk/models/operations"; let value: GetWatchListRequest = { - filter: Filter.All, + filter: Filter.Released, xPlexToken: "CV5xoxjTpFKUzBTShsaf", }; ``` diff --git a/docs/sdk/models/operations/getwatchlistresponse.md b/docs/sdk/models/operations/getwatchlistresponse.md index abf190db..05499e7d 100644 --- a/docs/sdk/models/operations/getwatchlistresponse.md +++ b/docs/sdk/models/operations/getwatchlistresponse.md @@ -7,7 +7,7 @@ import { GetWatchListResponse } from "@lukehagar/plexjs/sdk/models/operations"; let value: GetWatchListResponse = { contentType: "", - statusCode: 302, + statusCode: 304, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/level.md b/docs/sdk/models/operations/level.md index bab6f656..52a894ce 100644 --- a/docs/sdk/models/operations/level.md +++ b/docs/sdk/models/operations/level.md @@ -13,7 +13,7 @@ An integer log level to write to the PMS log with. ```typescript import { Level } from "@lukehagar/plexjs/sdk/models/operations"; -let value: Level = Level.Three; +let value: Level = Level.Four; ``` ## Values diff --git a/docs/sdk/models/operations/loglinerequest.md b/docs/sdk/models/operations/loglinerequest.md index 7a663ca7..85f02ac5 100644 --- a/docs/sdk/models/operations/loglinerequest.md +++ b/docs/sdk/models/operations/loglinerequest.md @@ -6,7 +6,7 @@ import { Level, LogLineRequest } from "@lukehagar/plexjs/sdk/models/operations"; let value: LogLineRequest = { - level: Level.One, + level: Level.Four, message: "Test log message", source: "Postman", }; diff --git a/docs/sdk/models/operations/loglineresponse.md b/docs/sdk/models/operations/loglineresponse.md index f782ec34..7c5a053f 100644 --- a/docs/sdk/models/operations/loglineresponse.md +++ b/docs/sdk/models/operations/loglineresponse.md @@ -7,7 +7,7 @@ import { LogLineResponse } from "@lukehagar/plexjs/sdk/models/operations"; let value: LogLineResponse = { contentType: "", - statusCode: 100, + statusCode: 206, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/logmultilineresponse.md b/docs/sdk/models/operations/logmultilineresponse.md index 29c013f1..54926a57 100644 --- a/docs/sdk/models/operations/logmultilineresponse.md +++ b/docs/sdk/models/operations/logmultilineresponse.md @@ -7,7 +7,7 @@ import { LogMultiLineResponse } from "@lukehagar/plexjs/sdk/models/operations"; let value: LogMultiLineResponse = { contentType: "", - statusCode: 102, + statusCode: 200, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/pastsubscription.md b/docs/sdk/models/operations/pastsubscription.md index cbf337af..cb1af0aa 100644 --- a/docs/sdk/models/operations/pastsubscription.md +++ b/docs/sdk/models/operations/pastsubscription.md @@ -15,7 +15,7 @@ let value: PastSubscription = { state: PostUsersSignInDataState.Ended, billing: { internalPaymentMethod: {}, - paymentMethodId: 83422, + paymentMethodId: 929530, }, }; ``` diff --git a/docs/sdk/models/operations/playlisttype.md b/docs/sdk/models/operations/playlisttype.md index a8fea26c..70ecd107 100644 --- a/docs/sdk/models/operations/playlisttype.md +++ b/docs/sdk/models/operations/playlisttype.md @@ -7,7 +7,7 @@ limit to a type of playlist. ```typescript import { PlaylistType } from "@lukehagar/plexjs/sdk/models/operations"; -let value: PlaylistType = PlaylistType.Photo; +let value: PlaylistType = PlaylistType.Audio; ``` ## Values diff --git a/docs/sdk/models/operations/postmediaartsrequest.md b/docs/sdk/models/operations/postmediaartsrequest.md new file mode 100644 index 00000000..935bf701 --- /dev/null +++ b/docs/sdk/models/operations/postmediaartsrequest.md @@ -0,0 +1,17 @@ +# PostMediaArtsRequest + +## Example Usage + +```typescript +import { PostMediaArtsRequest } from "@lukehagar/plexjs/sdk/models/operations"; + +// No examples available for this model +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `ratingKey` | *number* | :heavy_check_mark: | the id of the library item to return the posters of. | 2268 | +| `url` | *string* | :heavy_minus_sign: | The URL of the image, if uploading a remote image | https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b | +| `requestBody` | *ReadableStream* | :heavy_minus_sign: | The contents of the image, if uploading a local file | | \ No newline at end of file diff --git a/docs/sdk/models/operations/postmediaartsresponse.md b/docs/sdk/models/operations/postmediaartsresponse.md new file mode 100644 index 00000000..3e446888 --- /dev/null +++ b/docs/sdk/models/operations/postmediaartsresponse.md @@ -0,0 +1,23 @@ +# PostMediaArtsResponse + +## Example Usage + +```typescript +import { PostMediaArtsResponse } from "@lukehagar/plexjs/sdk/models/operations"; + +let value: PostMediaArtsResponse = { + contentType: "", + statusCode: 201, + rawResponse: new Response("{\"message\": \"hello world\"}", { + headers: { "Content-Type": "application/json" }, + }), +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | +| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/docs/sdk/models/operations/postmediaposterrequest.md b/docs/sdk/models/operations/postmediaposterrequest.md new file mode 100644 index 00000000..e256f858 --- /dev/null +++ b/docs/sdk/models/operations/postmediaposterrequest.md @@ -0,0 +1,17 @@ +# PostMediaPosterRequest + +## Example Usage + +```typescript +import { PostMediaPosterRequest } from "@lukehagar/plexjs/sdk/models/operations"; + +// No examples available for this model +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `ratingKey` | *number* | :heavy_check_mark: | the id of the library item to return the posters of. | 2268 | +| `url` | *string* | :heavy_minus_sign: | The URL of the image, if uploading a remote image | https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b | +| `requestBody` | *ReadableStream* | :heavy_minus_sign: | The contents of the image, if uploading a local file | | \ No newline at end of file diff --git a/docs/sdk/models/operations/postmediaposterresponse.md b/docs/sdk/models/operations/postmediaposterresponse.md new file mode 100644 index 00000000..7d39cac5 --- /dev/null +++ b/docs/sdk/models/operations/postmediaposterresponse.md @@ -0,0 +1,23 @@ +# PostMediaPosterResponse + +## Example Usage + +```typescript +import { PostMediaPosterResponse } from "@lukehagar/plexjs/sdk/models/operations"; + +let value: PostMediaPosterResponse = { + contentType: "", + statusCode: 302, + rawResponse: new Response("{\"message\": \"hello world\"}", { + headers: { "Content-Type": "application/json" }, + }), +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | +| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/docs/sdk/models/operations/postuserssignindataresponse.md b/docs/sdk/models/operations/postuserssignindataresponse.md index 6c001cc6..d3ea9310 100644 --- a/docs/sdk/models/operations/postuserssignindataresponse.md +++ b/docs/sdk/models/operations/postuserssignindataresponse.md @@ -14,7 +14,7 @@ import { let value: PostUsersSignInDataResponse = { contentType: "", - statusCode: 503, + statusCode: 205, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), @@ -32,7 +32,7 @@ let value: PostUsersSignInDataResponse = { homeSize: 1, id: 13692262, joinedAt: 1556281940, - locale: "it", + locale: "es", mailingListStatus: PostUsersSignInDataMailingListStatus.Active, maxHomeSize: 15, profile: { @@ -79,7 +79,7 @@ let value: PostUsersSignInDataResponse = { state: PostUsersSignInDataState.Ended, billing: { internalPaymentMethod: {}, - paymentMethodId: 100294, + paymentMethodId: 485628, }, }, ], diff --git a/docs/sdk/models/operations/postuserssignindatauserplexaccount.md b/docs/sdk/models/operations/postuserssignindatauserplexaccount.md index 88735f56..5931b70f 100644 --- a/docs/sdk/models/operations/postuserssignindatauserplexaccount.md +++ b/docs/sdk/models/operations/postuserssignindatauserplexaccount.md @@ -28,7 +28,7 @@ let value: PostUsersSignInDataUserPlexAccount = { homeSize: 1, id: 13692262, joinedAt: 1556281940, - locale: "hi", + locale: "sv", mailingListStatus: PostUsersSignInDataMailingListStatus.Active, maxHomeSize: 15, profile: { @@ -75,7 +75,7 @@ let value: PostUsersSignInDataUserPlexAccount = { state: PostUsersSignInDataState.Ended, billing: { internalPaymentMethod: {}, - paymentMethodId: 584476, + paymentMethodId: 785153, }, }, ], diff --git a/docs/sdk/models/operations/stoptranscodesessionresponse.md b/docs/sdk/models/operations/stoptranscodesessionresponse.md index 62b0b6be..fdc32796 100644 --- a/docs/sdk/models/operations/stoptranscodesessionresponse.md +++ b/docs/sdk/models/operations/stoptranscodesessionresponse.md @@ -7,7 +7,7 @@ import { StopTranscodeSessionResponse } from "@lukehagar/plexjs/sdk/models/opera let value: StopTranscodeSessionResponse = { contentType: "", - statusCode: 226, + statusCode: 400, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/updateplaylistrequest.md b/docs/sdk/models/operations/updateplaylistrequest.md index 53b75739..773f7d0c 100644 --- a/docs/sdk/models/operations/updateplaylistrequest.md +++ b/docs/sdk/models/operations/updateplaylistrequest.md @@ -6,7 +6,7 @@ import { UpdatePlaylistRequest } from "@lukehagar/plexjs/sdk/models/operations"; let value: UpdatePlaylistRequest = { - playlistID: 7308.56, + playlistID: 4635.75, }; ``` diff --git a/docs/sdk/models/operations/updateplaylistresponse.md b/docs/sdk/models/operations/updateplaylistresponse.md index 3ec1d4eb..2b44b25c 100644 --- a/docs/sdk/models/operations/updateplaylistresponse.md +++ b/docs/sdk/models/operations/updateplaylistresponse.md @@ -7,7 +7,7 @@ import { UpdatePlaylistResponse } from "@lukehagar/plexjs/sdk/models/operations" let value: UpdatePlaylistResponse = { contentType: "", - statusCode: 202, + statusCode: 205, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdk/models/operations/uploadplaylistrequest.md b/docs/sdk/models/operations/uploadplaylistrequest.md index f60f6883..1efbb2c1 100644 --- a/docs/sdk/models/operations/uploadplaylistrequest.md +++ b/docs/sdk/models/operations/uploadplaylistrequest.md @@ -7,7 +7,7 @@ import { QueryParamForce, UploadPlaylistRequest } from "@lukehagar/plexjs/sdk/mo let value: UploadPlaylistRequest = { path: "/home/barkley/playlist.m3u", - force: QueryParamForce.One, + force: QueryParamForce.Zero, sectionID: 1, }; ``` diff --git a/docs/sdk/models/operations/uploadplaylistresponse.md b/docs/sdk/models/operations/uploadplaylistresponse.md index fb724bb7..a82d04f0 100644 --- a/docs/sdk/models/operations/uploadplaylistresponse.md +++ b/docs/sdk/models/operations/uploadplaylistresponse.md @@ -7,7 +7,7 @@ import { UploadPlaylistResponse } from "@lukehagar/plexjs/sdk/models/operations" let value: UploadPlaylistResponse = { contentType: "", - statusCode: 102, + statusCode: 508, rawResponse: new Response("{\"message\": \"hello world\"}", { headers: { "Content-Type": "application/json" }, }), diff --git a/docs/sdks/library/README.md b/docs/sdks/library/README.md index a1c8ff40..e054957c 100644 --- a/docs/sdks/library/README.md +++ b/docs/sdks/library/README.md @@ -22,6 +22,10 @@ API Calls interacting with Plex Media Server Libraries * [getActorsLibrary](#getactorslibrary) - Get Actors of library media * [getSearchAllLibraries](#getsearchalllibraries) - Search All Libraries * [getMediaMetaData](#getmediametadata) - Get Media Metadata +* [getMediaArts](#getmediaarts) - Get Media Background Artwork +* [postMediaArts](#postmediaarts) - Upload Media Background Artwork +* [getMediaPosters](#getmediaposters) - Get Media Posters +* [postMediaPoster](#postmediaposter) - Upload Media Poster * [getMetadataChildren](#getmetadatachildren) - Get Items Children * [getTopWatchedContent](#gettopwatchedcontent) - Get Top Watched Content @@ -1269,6 +1273,298 @@ run(); | errors.GetMediaMetaDataUnauthorized | 401 | application/json | | errors.SDKError | 4XX, 5XX | \*/\* | +## getMediaArts + +Returns the background artwork for a library item. + +### Example Usage + +```typescript +import { PlexAPI } from "@lukehagar/plexjs"; + +const plexAPI = new PlexAPI({ + accessToken: "", +}); + +async function run() { + const result = await plexAPI.library.getMediaArts(16099); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { PlexAPICore } from "@lukehagar/plexjs/core.js"; +import { libraryGetMediaArts } from "@lukehagar/plexjs/funcs/libraryGetMediaArts.js"; + +// Use `PlexAPICore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const plexAPI = new PlexAPICore({ + accessToken: "", +}); + +async function run() { + const res = await libraryGetMediaArts(plexAPI, 16099); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `ratingKey` | *number* | :heavy_check_mark: | the id of the library item to return the artwork of. | [object Object] | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | | + +### Response + +**Promise\<[operations.GetMediaArtsResponse](../../sdk/models/operations/getmediaartsresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## postMediaArts + +Uploads an image to use as the background artwork for a library item, either from a local file or a remote URL + +### Example Usage + +```typescript +import { PlexAPI } from "@lukehagar/plexjs"; + +const plexAPI = new PlexAPI({ + accessToken: "", +}); + +async function run() { + const result = await plexAPI.library.postMediaArts(2268, "https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b"); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { PlexAPICore } from "@lukehagar/plexjs/core.js"; +import { libraryPostMediaArts } from "@lukehagar/plexjs/funcs/libraryPostMediaArts.js"; + +// Use `PlexAPICore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const plexAPI = new PlexAPICore({ + accessToken: "", +}); + +async function run() { + const res = await libraryPostMediaArts(plexAPI, 2268, "https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b"); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `ratingKey` | *number* | :heavy_check_mark: | the id of the library item to return the posters of. | [object Object] | +| `url` | *string* | :heavy_minus_sign: | The URL of the image, if uploading a remote image | [object Object] | +| `requestBody` | *ReadableStream* | :heavy_minus_sign: | The contents of the image, if uploading a local file | | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | | + +### Response + +**Promise\<[operations.PostMediaArtsResponse](../../sdk/models/operations/postmediaartsresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## getMediaPosters + +Returns the available posters for a library item. + +### Example Usage + +```typescript +import { PlexAPI } from "@lukehagar/plexjs"; + +const plexAPI = new PlexAPI({ + accessToken: "", +}); + +async function run() { + const result = await plexAPI.library.getMediaPosters(16099); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { PlexAPICore } from "@lukehagar/plexjs/core.js"; +import { libraryGetMediaPosters } from "@lukehagar/plexjs/funcs/libraryGetMediaPosters.js"; + +// Use `PlexAPICore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const plexAPI = new PlexAPICore({ + accessToken: "", +}); + +async function run() { + const res = await libraryGetMediaPosters(plexAPI, 16099); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `ratingKey` | *number* | :heavy_check_mark: | the id of the library item to return the posters of. | [object Object] | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | | + +### Response + +**Promise\<[operations.GetMediaPostersResponse](../../sdk/models/operations/getmediapostersresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## postMediaPoster + +Uploads a poster to a library item, either from a local file or a remote URL + +### Example Usage + +```typescript +import { PlexAPI } from "@lukehagar/plexjs"; + +const plexAPI = new PlexAPI({ + accessToken: "", +}); + +async function run() { + const result = await plexAPI.library.postMediaPoster(2268, "https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b"); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { PlexAPICore } from "@lukehagar/plexjs/core.js"; +import { libraryPostMediaPoster } from "@lukehagar/plexjs/funcs/libraryPostMediaPoster.js"; + +// Use `PlexAPICore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const plexAPI = new PlexAPICore({ + accessToken: "", +}); + +async function run() { + const res = await libraryPostMediaPoster(plexAPI, 2268, "https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b"); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `ratingKey` | *number* | :heavy_check_mark: | the id of the library item to return the posters of. | [object Object] | +| `url` | *string* | :heavy_minus_sign: | The URL of the image, if uploading a remote image | [object Object] | +| `requestBody` | *ReadableStream* | :heavy_minus_sign: | The contents of the image, if uploading a local file | | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | | + +### Response + +**Promise\<[operations.PostMediaPosterResponse](../../sdk/models/operations/postmediaposterresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + ## getMetadataChildren This endpoint will return the children of of a library item specified with the ratingKey. diff --git a/jsr.json b/jsr.json index 78ec10de..bb470590 100644 --- a/jsr.json +++ b/jsr.json @@ -2,7 +2,7 @@ { "name": "@lukehagar/plexjs", - "version": "0.35.4", + "version": "0.36.0", "exports": { ".": "./src/index.ts", "./sdk/models/errors": "./src/sdk/models/errors/index.ts", diff --git a/package-lock.json b/package-lock.json index b45634b6..f4efc9b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@lukehagar/plexjs", - "version": "0.35.4", + "version": "0.36.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@lukehagar/plexjs", - "version": "0.35.4", + "version": "0.36.0", "devDependencies": { "@eslint/js": "^9.19.0", "eslint": "^9.19.0", diff --git a/package.json b/package.json index 855b9058..a2c9d2f1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@lukehagar/plexjs", - "version": "0.35.4", + "version": "0.36.0", "author": "LukeHagar", "main": "./index.js", "sideEffects": false, diff --git a/src/funcs/libraryGetMediaArts.ts b/src/funcs/libraryGetMediaArts.ts new file mode 100644 index 00000000..56ea2e8d --- /dev/null +++ b/src/funcs/libraryGetMediaArts.ts @@ -0,0 +1,174 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { PlexAPICore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../sdk/models/errors/httpclienterrors.js"; +import { SDKError } from "../sdk/models/errors/sdkerror.js"; +import { SDKValidationError } from "../sdk/models/errors/sdkvalidationerror.js"; +import * as operations from "../sdk/models/operations/index.js"; +import { APICall, APIPromise } from "../sdk/types/async.js"; +import { Result } from "../sdk/types/fp.js"; + +/** + * Get Media Background Artwork + * + * @remarks + * Returns the background artwork for a library item. + */ +export function libraryGetMediaArts( + client: PlexAPICore, + ratingKey: number, + options?: RequestOptions, +): APIPromise< + Result< + operations.GetMediaArtsResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + return new APIPromise($do( + client, + ratingKey, + options, + )); +} + +async function $do( + client: PlexAPICore, + ratingKey: number, + options?: RequestOptions, +): Promise< + [ + Result< + operations.GetMediaArtsResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >, + APICall, + ] +> { + const input: operations.GetMediaArtsRequest = { + ratingKey: ratingKey, + }; + + const parsed = safeParse( + input, + (value) => operations.GetMediaArtsRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + ratingKey: encodeSimple("ratingKey", payload.ratingKey, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/library/metadata/{ratingKey}/arts")(pathParams); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.accessToken); + const securityInput = secConfig == null ? {} : { accessToken: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "get-media-arts", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.accessToken, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + baseURL: options?.serverURL, + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "4XX", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + ContentType: response.headers.get("content-type") + ?? "application/octet-stream", + StatusCode: response.status, + RawResponse: response, + Headers: {}, + }; + + const [result] = await M.match< + operations.GetMediaArtsResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(200, operations.GetMediaArtsResponse$inboundSchema, { + key: "object", + }), + M.fail([404, "4XX"]), + M.fail("5XX"), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/src/funcs/libraryGetMediaPosters.ts b/src/funcs/libraryGetMediaPosters.ts new file mode 100644 index 00000000..24d9dd0f --- /dev/null +++ b/src/funcs/libraryGetMediaPosters.ts @@ -0,0 +1,174 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { PlexAPICore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../sdk/models/errors/httpclienterrors.js"; +import { SDKError } from "../sdk/models/errors/sdkerror.js"; +import { SDKValidationError } from "../sdk/models/errors/sdkvalidationerror.js"; +import * as operations from "../sdk/models/operations/index.js"; +import { APICall, APIPromise } from "../sdk/types/async.js"; +import { Result } from "../sdk/types/fp.js"; + +/** + * Get Media Posters + * + * @remarks + * Returns the available posters for a library item. + */ +export function libraryGetMediaPosters( + client: PlexAPICore, + ratingKey: number, + options?: RequestOptions, +): APIPromise< + Result< + operations.GetMediaPostersResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + return new APIPromise($do( + client, + ratingKey, + options, + )); +} + +async function $do( + client: PlexAPICore, + ratingKey: number, + options?: RequestOptions, +): Promise< + [ + Result< + operations.GetMediaPostersResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >, + APICall, + ] +> { + const input: operations.GetMediaPostersRequest = { + ratingKey: ratingKey, + }; + + const parsed = safeParse( + input, + (value) => operations.GetMediaPostersRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + ratingKey: encodeSimple("ratingKey", payload.ratingKey, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/library/metadata/{ratingKey}/posters")(pathParams); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.accessToken); + const securityInput = secConfig == null ? {} : { accessToken: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "get-media-posters", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.accessToken, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + baseURL: options?.serverURL, + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "4XX", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + ContentType: response.headers.get("content-type") + ?? "application/octet-stream", + StatusCode: response.status, + RawResponse: response, + Headers: {}, + }; + + const [result] = await M.match< + operations.GetMediaPostersResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(200, operations.GetMediaPostersResponse$inboundSchema, { + key: "object", + }), + M.fail([404, "4XX"]), + M.fail("5XX"), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/src/funcs/libraryPostMediaArts.ts b/src/funcs/libraryPostMediaArts.ts new file mode 100644 index 00000000..445f2123 --- /dev/null +++ b/src/funcs/libraryPostMediaArts.ts @@ -0,0 +1,196 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { PlexAPICore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../sdk/models/errors/httpclienterrors.js"; +import { SDKError } from "../sdk/models/errors/sdkerror.js"; +import { SDKValidationError } from "../sdk/models/errors/sdkvalidationerror.js"; +import * as operations from "../sdk/models/operations/index.js"; +import { APICall, APIPromise } from "../sdk/types/async.js"; +import { Result } from "../sdk/types/fp.js"; + +/** + * Upload Media Background Artwork + * + * @remarks + * Uploads an image to use as the background artwork for a library item, either from a local file or a remote URL + */ +export function libraryPostMediaArts( + client: PlexAPICore, + ratingKey: number, + requestBody?: + | ReadableStream + | Blob + | ArrayBuffer + | Uint8Array + | undefined, + url?: string | undefined, + options?: RequestOptions, +): APIPromise< + Result< + operations.PostMediaArtsResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + return new APIPromise($do( + client, + ratingKey, + requestBody, + url, + options, + )); +} + +async function $do( + client: PlexAPICore, + ratingKey: number, + requestBody?: + | ReadableStream + | Blob + | ArrayBuffer + | Uint8Array + | undefined, + url?: string | undefined, + options?: RequestOptions, +): Promise< + [ + Result< + operations.PostMediaArtsResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >, + APICall, + ] +> { + const input: operations.PostMediaArtsRequest = { + ratingKey: ratingKey, + requestBody: requestBody, + url: url, + }; + + const parsed = safeParse( + input, + (value) => operations.PostMediaArtsRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = payload.RequestBody; + + const pathParams = { + ratingKey: encodeSimple("ratingKey", payload.ratingKey, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/library/metadata/{ratingKey}/arts")(pathParams); + + const query = encodeFormQuery({ + "url": payload.url, + }); + + const headers = new Headers(compactMap({ + "Content-Type": "image/*", + Accept: "*/*", + })); + + const secConfig = await extractSecurity(client._options.accessToken); + const securityInput = secConfig == null ? {} : { accessToken: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "post-media-arts", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.accessToken, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "4XX", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + ContentType: response.headers.get("content-type") + ?? "application/octet-stream", + StatusCode: response.status, + RawResponse: response, + Headers: {}, + }; + + const [result] = await M.match< + operations.PostMediaArtsResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.nil(200, operations.PostMediaArtsResponse$inboundSchema), + M.fail([404, "4XX"]), + M.fail("5XX"), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/src/funcs/libraryPostMediaPoster.ts b/src/funcs/libraryPostMediaPoster.ts new file mode 100644 index 00000000..ff9f4d09 --- /dev/null +++ b/src/funcs/libraryPostMediaPoster.ts @@ -0,0 +1,196 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { PlexAPICore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../sdk/models/errors/httpclienterrors.js"; +import { SDKError } from "../sdk/models/errors/sdkerror.js"; +import { SDKValidationError } from "../sdk/models/errors/sdkvalidationerror.js"; +import * as operations from "../sdk/models/operations/index.js"; +import { APICall, APIPromise } from "../sdk/types/async.js"; +import { Result } from "../sdk/types/fp.js"; + +/** + * Upload Media Poster + * + * @remarks + * Uploads a poster to a library item, either from a local file or a remote URL + */ +export function libraryPostMediaPoster( + client: PlexAPICore, + ratingKey: number, + requestBody?: + | ReadableStream + | Blob + | ArrayBuffer + | Uint8Array + | undefined, + url?: string | undefined, + options?: RequestOptions, +): APIPromise< + Result< + operations.PostMediaPosterResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + return new APIPromise($do( + client, + ratingKey, + requestBody, + url, + options, + )); +} + +async function $do( + client: PlexAPICore, + ratingKey: number, + requestBody?: + | ReadableStream + | Blob + | ArrayBuffer + | Uint8Array + | undefined, + url?: string | undefined, + options?: RequestOptions, +): Promise< + [ + Result< + operations.PostMediaPosterResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >, + APICall, + ] +> { + const input: operations.PostMediaPosterRequest = { + ratingKey: ratingKey, + requestBody: requestBody, + url: url, + }; + + const parsed = safeParse( + input, + (value) => operations.PostMediaPosterRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = payload.RequestBody; + + const pathParams = { + ratingKey: encodeSimple("ratingKey", payload.ratingKey, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/library/metadata/{ratingKey}/posters")(pathParams); + + const query = encodeFormQuery({ + "url": payload.url, + }); + + const headers = new Headers(compactMap({ + "Content-Type": "image/*", + Accept: "*/*", + })); + + const secConfig = await extractSecurity(client._options.accessToken); + const securityInput = secConfig == null ? {} : { accessToken: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "post-media-poster", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.accessToken, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "4XX", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + ContentType: response.headers.get("content-type") + ?? "application/octet-stream", + StatusCode: response.status, + RawResponse: response, + Headers: {}, + }; + + const [result] = await M.match< + operations.PostMediaPosterResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.nil(200, operations.PostMediaPosterResponse$inboundSchema), + M.fail([404, "4XX"]), + M.fail("5XX"), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/src/lib/config.ts b/src/lib/config.ts index f44622ac..4ade6b53 100644 --- a/src/lib/config.ts +++ b/src/lib/config.ts @@ -90,7 +90,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null { export const SDK_METADATA = { language: "typescript", openapiDocVersion: "0.0.3", - sdkVersion: "0.35.4", - genVersion: "2.563.1", - userAgent: "speakeasy-sdk/typescript 0.35.4 2.563.1 0.0.3 @lukehagar/plexjs", + sdkVersion: "0.36.0", + genVersion: "2.565.1", + userAgent: "speakeasy-sdk/typescript 0.36.0 2.565.1 0.0.3 @lukehagar/plexjs", } as const; diff --git a/src/sdk/library.ts b/src/sdk/library.ts index 27d1244b..8fdbe4cf 100644 --- a/src/sdk/library.ts +++ b/src/sdk/library.ts @@ -11,13 +11,17 @@ import { libraryGetFileHash } from "../funcs/libraryGetFileHash.js"; import { libraryGetGenresLibrary } from "../funcs/libraryGetGenresLibrary.js"; import { libraryGetLibraryDetails } from "../funcs/libraryGetLibraryDetails.js"; import { libraryGetLibraryItems } from "../funcs/libraryGetLibraryItems.js"; +import { libraryGetMediaArts } from "../funcs/libraryGetMediaArts.js"; import { libraryGetMediaMetaData } from "../funcs/libraryGetMediaMetaData.js"; +import { libraryGetMediaPosters } from "../funcs/libraryGetMediaPosters.js"; import { libraryGetMetadataChildren } from "../funcs/libraryGetMetadataChildren.js"; import { libraryGetRecentlyAddedLibrary } from "../funcs/libraryGetRecentlyAddedLibrary.js"; import { libraryGetRefreshLibraryMetadata } from "../funcs/libraryGetRefreshLibraryMetadata.js"; import { libraryGetSearchAllLibraries } from "../funcs/libraryGetSearchAllLibraries.js"; import { libraryGetSearchLibrary } from "../funcs/libraryGetSearchLibrary.js"; import { libraryGetTopWatchedContent } from "../funcs/libraryGetTopWatchedContent.js"; +import { libraryPostMediaArts } from "../funcs/libraryPostMediaArts.js"; +import { libraryPostMediaPoster } from "../funcs/libraryPostMediaPoster.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as operations from "./models/operations/index.js"; import { unwrapAsync } from "./types/fp.js"; @@ -353,6 +357,92 @@ export class Library extends ClientSDK { )); } + /** + * Get Media Background Artwork + * + * @remarks + * Returns the background artwork for a library item. + */ + async getMediaArts( + ratingKey: number, + options?: RequestOptions, + ): Promise { + return unwrapAsync(libraryGetMediaArts( + this, + ratingKey, + options, + )); + } + + /** + * Upload Media Background Artwork + * + * @remarks + * Uploads an image to use as the background artwork for a library item, either from a local file or a remote URL + */ + async postMediaArts( + ratingKey: number, + requestBody?: + | ReadableStream + | Blob + | ArrayBuffer + | Uint8Array + | undefined, + url?: string | undefined, + options?: RequestOptions, + ): Promise { + return unwrapAsync(libraryPostMediaArts( + this, + ratingKey, + requestBody, + url, + options, + )); + } + + /** + * Get Media Posters + * + * @remarks + * Returns the available posters for a library item. + */ + async getMediaPosters( + ratingKey: number, + options?: RequestOptions, + ): Promise { + return unwrapAsync(libraryGetMediaPosters( + this, + ratingKey, + options, + )); + } + + /** + * Upload Media Poster + * + * @remarks + * Uploads a poster to a library item, either from a local file or a remote URL + */ + async postMediaPoster( + ratingKey: number, + requestBody?: + | ReadableStream + | Blob + | ArrayBuffer + | Uint8Array + | undefined, + url?: string | undefined, + options?: RequestOptions, + ): Promise { + return unwrapAsync(libraryPostMediaPoster( + this, + ratingKey, + requestBody, + url, + options, + )); + } + /** * Get Items Children * diff --git a/src/sdk/models/operations/getmediaarts.ts b/src/sdk/models/operations/getmediaarts.ts new file mode 100644 index 00000000..63f785d1 --- /dev/null +++ b/src/sdk/models/operations/getmediaarts.ts @@ -0,0 +1,420 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../../lib/primitives.js"; +import { safeParse } from "../../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type GetMediaArtsRequest = { + /** + * the id of the library item to return the artwork of. + */ + ratingKey: number; +}; + +export type GetMediaArtsMetadata = { + /** + * The URL of the artwork. + */ + key: string; + /** + * The provider of the artwork. + */ + provider?: string | undefined; + /** + * The URL of the artwork. + */ + ratingKey: string; + /** + * Whether this is the selected artwork. + */ + selected: boolean; + /** + * The URL of the artwork thumbnail. + */ + thumb: string; +}; + +export type GetMediaArtsMediaContainer = { + /** + * Number of media items returned in this response. + */ + size: number; + /** + * The version number for media tags. + */ + mediaTagVersion: number; + /** + * The prefix used for media tag resource paths. + */ + mediaTagPrefix: string; + /** + * An plugin identifier for the media container. + */ + identifier: string; + metadata: Array; +}; + +/** + * The available background artwork for the library item. + */ +export type GetMediaArtsResponseBody = { + mediaContainer?: GetMediaArtsMediaContainer | undefined; +}; + +export type GetMediaArtsResponse = { + /** + * HTTP response content type for this operation + */ + contentType: string; + /** + * HTTP response status code for this operation + */ + statusCode: number; + /** + * Raw HTTP response; suitable for custom response parsing + */ + rawResponse: Response; + /** + * The available background artwork for the library item. + */ + object?: GetMediaArtsResponseBody | undefined; +}; + +/** @internal */ +export const GetMediaArtsRequest$inboundSchema: z.ZodType< + GetMediaArtsRequest, + z.ZodTypeDef, + unknown +> = z.object({ + ratingKey: z.number().int(), +}); + +/** @internal */ +export type GetMediaArtsRequest$Outbound = { + ratingKey: number; +}; + +/** @internal */ +export const GetMediaArtsRequest$outboundSchema: z.ZodType< + GetMediaArtsRequest$Outbound, + z.ZodTypeDef, + GetMediaArtsRequest +> = z.object({ + ratingKey: z.number().int(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace GetMediaArtsRequest$ { + /** @deprecated use `GetMediaArtsRequest$inboundSchema` instead. */ + export const inboundSchema = GetMediaArtsRequest$inboundSchema; + /** @deprecated use `GetMediaArtsRequest$outboundSchema` instead. */ + export const outboundSchema = GetMediaArtsRequest$outboundSchema; + /** @deprecated use `GetMediaArtsRequest$Outbound` instead. */ + export type Outbound = GetMediaArtsRequest$Outbound; +} + +export function getMediaArtsRequestToJSON( + getMediaArtsRequest: GetMediaArtsRequest, +): string { + return JSON.stringify( + GetMediaArtsRequest$outboundSchema.parse(getMediaArtsRequest), + ); +} + +export function getMediaArtsRequestFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => GetMediaArtsRequest$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'GetMediaArtsRequest' from JSON`, + ); +} + +/** @internal */ +export const GetMediaArtsMetadata$inboundSchema: z.ZodType< + GetMediaArtsMetadata, + z.ZodTypeDef, + unknown +> = z.object({ + key: z.string(), + provider: z.string().optional(), + ratingKey: z.string(), + selected: z.boolean(), + thumb: z.string(), +}); + +/** @internal */ +export type GetMediaArtsMetadata$Outbound = { + key: string; + provider?: string | undefined; + ratingKey: string; + selected: boolean; + thumb: string; +}; + +/** @internal */ +export const GetMediaArtsMetadata$outboundSchema: z.ZodType< + GetMediaArtsMetadata$Outbound, + z.ZodTypeDef, + GetMediaArtsMetadata +> = z.object({ + key: z.string(), + provider: z.string().optional(), + ratingKey: z.string(), + selected: z.boolean(), + thumb: z.string(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace GetMediaArtsMetadata$ { + /** @deprecated use `GetMediaArtsMetadata$inboundSchema` instead. */ + export const inboundSchema = GetMediaArtsMetadata$inboundSchema; + /** @deprecated use `GetMediaArtsMetadata$outboundSchema` instead. */ + export const outboundSchema = GetMediaArtsMetadata$outboundSchema; + /** @deprecated use `GetMediaArtsMetadata$Outbound` instead. */ + export type Outbound = GetMediaArtsMetadata$Outbound; +} + +export function getMediaArtsMetadataToJSON( + getMediaArtsMetadata: GetMediaArtsMetadata, +): string { + return JSON.stringify( + GetMediaArtsMetadata$outboundSchema.parse(getMediaArtsMetadata), + ); +} + +export function getMediaArtsMetadataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => GetMediaArtsMetadata$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'GetMediaArtsMetadata' from JSON`, + ); +} + +/** @internal */ +export const GetMediaArtsMediaContainer$inboundSchema: z.ZodType< + GetMediaArtsMediaContainer, + z.ZodTypeDef, + unknown +> = z.object({ + size: z.number().int(), + mediaTagVersion: z.number().int(), + mediaTagPrefix: z.string(), + identifier: z.string(), + Metadata: z.array(z.lazy(() => GetMediaArtsMetadata$inboundSchema)), +}).transform((v) => { + return remap$(v, { + "Metadata": "metadata", + }); +}); + +/** @internal */ +export type GetMediaArtsMediaContainer$Outbound = { + size: number; + mediaTagVersion: number; + mediaTagPrefix: string; + identifier: string; + Metadata: Array; +}; + +/** @internal */ +export const GetMediaArtsMediaContainer$outboundSchema: z.ZodType< + GetMediaArtsMediaContainer$Outbound, + z.ZodTypeDef, + GetMediaArtsMediaContainer +> = z.object({ + size: z.number().int(), + mediaTagVersion: z.number().int(), + mediaTagPrefix: z.string(), + identifier: z.string(), + metadata: z.array(z.lazy(() => GetMediaArtsMetadata$outboundSchema)), +}).transform((v) => { + return remap$(v, { + metadata: "Metadata", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace GetMediaArtsMediaContainer$ { + /** @deprecated use `GetMediaArtsMediaContainer$inboundSchema` instead. */ + export const inboundSchema = GetMediaArtsMediaContainer$inboundSchema; + /** @deprecated use `GetMediaArtsMediaContainer$outboundSchema` instead. */ + export const outboundSchema = GetMediaArtsMediaContainer$outboundSchema; + /** @deprecated use `GetMediaArtsMediaContainer$Outbound` instead. */ + export type Outbound = GetMediaArtsMediaContainer$Outbound; +} + +export function getMediaArtsMediaContainerToJSON( + getMediaArtsMediaContainer: GetMediaArtsMediaContainer, +): string { + return JSON.stringify( + GetMediaArtsMediaContainer$outboundSchema.parse(getMediaArtsMediaContainer), + ); +} + +export function getMediaArtsMediaContainerFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => GetMediaArtsMediaContainer$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'GetMediaArtsMediaContainer' from JSON`, + ); +} + +/** @internal */ +export const GetMediaArtsResponseBody$inboundSchema: z.ZodType< + GetMediaArtsResponseBody, + z.ZodTypeDef, + unknown +> = z.object({ + MediaContainer: z.lazy(() => GetMediaArtsMediaContainer$inboundSchema) + .optional(), +}).transform((v) => { + return remap$(v, { + "MediaContainer": "mediaContainer", + }); +}); + +/** @internal */ +export type GetMediaArtsResponseBody$Outbound = { + MediaContainer?: GetMediaArtsMediaContainer$Outbound | undefined; +}; + +/** @internal */ +export const GetMediaArtsResponseBody$outboundSchema: z.ZodType< + GetMediaArtsResponseBody$Outbound, + z.ZodTypeDef, + GetMediaArtsResponseBody +> = z.object({ + mediaContainer: z.lazy(() => GetMediaArtsMediaContainer$outboundSchema) + .optional(), +}).transform((v) => { + return remap$(v, { + mediaContainer: "MediaContainer", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace GetMediaArtsResponseBody$ { + /** @deprecated use `GetMediaArtsResponseBody$inboundSchema` instead. */ + export const inboundSchema = GetMediaArtsResponseBody$inboundSchema; + /** @deprecated use `GetMediaArtsResponseBody$outboundSchema` instead. */ + export const outboundSchema = GetMediaArtsResponseBody$outboundSchema; + /** @deprecated use `GetMediaArtsResponseBody$Outbound` instead. */ + export type Outbound = GetMediaArtsResponseBody$Outbound; +} + +export function getMediaArtsResponseBodyToJSON( + getMediaArtsResponseBody: GetMediaArtsResponseBody, +): string { + return JSON.stringify( + GetMediaArtsResponseBody$outboundSchema.parse(getMediaArtsResponseBody), + ); +} + +export function getMediaArtsResponseBodyFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => GetMediaArtsResponseBody$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'GetMediaArtsResponseBody' from JSON`, + ); +} + +/** @internal */ +export const GetMediaArtsResponse$inboundSchema: z.ZodType< + GetMediaArtsResponse, + z.ZodTypeDef, + unknown +> = z.object({ + ContentType: z.string(), + StatusCode: z.number().int(), + RawResponse: z.instanceof(Response), + object: z.lazy(() => GetMediaArtsResponseBody$inboundSchema).optional(), +}).transform((v) => { + return remap$(v, { + "ContentType": "contentType", + "StatusCode": "statusCode", + "RawResponse": "rawResponse", + }); +}); + +/** @internal */ +export type GetMediaArtsResponse$Outbound = { + ContentType: string; + StatusCode: number; + RawResponse: never; + object?: GetMediaArtsResponseBody$Outbound | undefined; +}; + +/** @internal */ +export const GetMediaArtsResponse$outboundSchema: z.ZodType< + GetMediaArtsResponse$Outbound, + z.ZodTypeDef, + GetMediaArtsResponse +> = z.object({ + contentType: z.string(), + statusCode: z.number().int(), + rawResponse: z.instanceof(Response).transform(() => { + throw new Error("Response cannot be serialized"); + }), + object: z.lazy(() => GetMediaArtsResponseBody$outboundSchema).optional(), +}).transform((v) => { + return remap$(v, { + contentType: "ContentType", + statusCode: "StatusCode", + rawResponse: "RawResponse", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace GetMediaArtsResponse$ { + /** @deprecated use `GetMediaArtsResponse$inboundSchema` instead. */ + export const inboundSchema = GetMediaArtsResponse$inboundSchema; + /** @deprecated use `GetMediaArtsResponse$outboundSchema` instead. */ + export const outboundSchema = GetMediaArtsResponse$outboundSchema; + /** @deprecated use `GetMediaArtsResponse$Outbound` instead. */ + export type Outbound = GetMediaArtsResponse$Outbound; +} + +export function getMediaArtsResponseToJSON( + getMediaArtsResponse: GetMediaArtsResponse, +): string { + return JSON.stringify( + GetMediaArtsResponse$outboundSchema.parse(getMediaArtsResponse), + ); +} + +export function getMediaArtsResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => GetMediaArtsResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'GetMediaArtsResponse' from JSON`, + ); +} diff --git a/src/sdk/models/operations/getmediaposters.ts b/src/sdk/models/operations/getmediaposters.ts new file mode 100644 index 00000000..9c0f3e79 --- /dev/null +++ b/src/sdk/models/operations/getmediaposters.ts @@ -0,0 +1,424 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../../lib/primitives.js"; +import { safeParse } from "../../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type GetMediaPostersRequest = { + /** + * the id of the library item to return the posters of. + */ + ratingKey: number; +}; + +export type GetMediaPostersMetadata = { + /** + * The URL of the poster. + */ + key: string; + /** + * The provider of the poster. + */ + provider?: string | undefined; + /** + * The URL of the poster. + */ + ratingKey: string; + /** + * Whether this is the selected poster. + */ + selected: boolean; + /** + * The URL of the poster thumbnail. + */ + thumb: string; +}; + +export type GetMediaPostersMediaContainer = { + /** + * Number of media items returned in this response. + */ + size: number; + /** + * The version number for media tags. + */ + mediaTagVersion: number; + /** + * The prefix used for media tag resource paths. + */ + mediaTagPrefix: string; + /** + * An plugin identifier for the media container. + */ + identifier: string; + metadata: Array; +}; + +/** + * The available posters for the library item. + */ +export type GetMediaPostersResponseBody = { + mediaContainer?: GetMediaPostersMediaContainer | undefined; +}; + +export type GetMediaPostersResponse = { + /** + * HTTP response content type for this operation + */ + contentType: string; + /** + * HTTP response status code for this operation + */ + statusCode: number; + /** + * Raw HTTP response; suitable for custom response parsing + */ + rawResponse: Response; + /** + * The available posters for the library item. + */ + object?: GetMediaPostersResponseBody | undefined; +}; + +/** @internal */ +export const GetMediaPostersRequest$inboundSchema: z.ZodType< + GetMediaPostersRequest, + z.ZodTypeDef, + unknown +> = z.object({ + ratingKey: z.number().int(), +}); + +/** @internal */ +export type GetMediaPostersRequest$Outbound = { + ratingKey: number; +}; + +/** @internal */ +export const GetMediaPostersRequest$outboundSchema: z.ZodType< + GetMediaPostersRequest$Outbound, + z.ZodTypeDef, + GetMediaPostersRequest +> = z.object({ + ratingKey: z.number().int(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace GetMediaPostersRequest$ { + /** @deprecated use `GetMediaPostersRequest$inboundSchema` instead. */ + export const inboundSchema = GetMediaPostersRequest$inboundSchema; + /** @deprecated use `GetMediaPostersRequest$outboundSchema` instead. */ + export const outboundSchema = GetMediaPostersRequest$outboundSchema; + /** @deprecated use `GetMediaPostersRequest$Outbound` instead. */ + export type Outbound = GetMediaPostersRequest$Outbound; +} + +export function getMediaPostersRequestToJSON( + getMediaPostersRequest: GetMediaPostersRequest, +): string { + return JSON.stringify( + GetMediaPostersRequest$outboundSchema.parse(getMediaPostersRequest), + ); +} + +export function getMediaPostersRequestFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => GetMediaPostersRequest$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'GetMediaPostersRequest' from JSON`, + ); +} + +/** @internal */ +export const GetMediaPostersMetadata$inboundSchema: z.ZodType< + GetMediaPostersMetadata, + z.ZodTypeDef, + unknown +> = z.object({ + key: z.string(), + provider: z.string().optional(), + ratingKey: z.string(), + selected: z.boolean(), + thumb: z.string(), +}); + +/** @internal */ +export type GetMediaPostersMetadata$Outbound = { + key: string; + provider?: string | undefined; + ratingKey: string; + selected: boolean; + thumb: string; +}; + +/** @internal */ +export const GetMediaPostersMetadata$outboundSchema: z.ZodType< + GetMediaPostersMetadata$Outbound, + z.ZodTypeDef, + GetMediaPostersMetadata +> = z.object({ + key: z.string(), + provider: z.string().optional(), + ratingKey: z.string(), + selected: z.boolean(), + thumb: z.string(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace GetMediaPostersMetadata$ { + /** @deprecated use `GetMediaPostersMetadata$inboundSchema` instead. */ + export const inboundSchema = GetMediaPostersMetadata$inboundSchema; + /** @deprecated use `GetMediaPostersMetadata$outboundSchema` instead. */ + export const outboundSchema = GetMediaPostersMetadata$outboundSchema; + /** @deprecated use `GetMediaPostersMetadata$Outbound` instead. */ + export type Outbound = GetMediaPostersMetadata$Outbound; +} + +export function getMediaPostersMetadataToJSON( + getMediaPostersMetadata: GetMediaPostersMetadata, +): string { + return JSON.stringify( + GetMediaPostersMetadata$outboundSchema.parse(getMediaPostersMetadata), + ); +} + +export function getMediaPostersMetadataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => GetMediaPostersMetadata$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'GetMediaPostersMetadata' from JSON`, + ); +} + +/** @internal */ +export const GetMediaPostersMediaContainer$inboundSchema: z.ZodType< + GetMediaPostersMediaContainer, + z.ZodTypeDef, + unknown +> = z.object({ + size: z.number().int(), + mediaTagVersion: z.number().int(), + mediaTagPrefix: z.string(), + identifier: z.string(), + Metadata: z.array(z.lazy(() => GetMediaPostersMetadata$inboundSchema)), +}).transform((v) => { + return remap$(v, { + "Metadata": "metadata", + }); +}); + +/** @internal */ +export type GetMediaPostersMediaContainer$Outbound = { + size: number; + mediaTagVersion: number; + mediaTagPrefix: string; + identifier: string; + Metadata: Array; +}; + +/** @internal */ +export const GetMediaPostersMediaContainer$outboundSchema: z.ZodType< + GetMediaPostersMediaContainer$Outbound, + z.ZodTypeDef, + GetMediaPostersMediaContainer +> = z.object({ + size: z.number().int(), + mediaTagVersion: z.number().int(), + mediaTagPrefix: z.string(), + identifier: z.string(), + metadata: z.array(z.lazy(() => GetMediaPostersMetadata$outboundSchema)), +}).transform((v) => { + return remap$(v, { + metadata: "Metadata", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace GetMediaPostersMediaContainer$ { + /** @deprecated use `GetMediaPostersMediaContainer$inboundSchema` instead. */ + export const inboundSchema = GetMediaPostersMediaContainer$inboundSchema; + /** @deprecated use `GetMediaPostersMediaContainer$outboundSchema` instead. */ + export const outboundSchema = GetMediaPostersMediaContainer$outboundSchema; + /** @deprecated use `GetMediaPostersMediaContainer$Outbound` instead. */ + export type Outbound = GetMediaPostersMediaContainer$Outbound; +} + +export function getMediaPostersMediaContainerToJSON( + getMediaPostersMediaContainer: GetMediaPostersMediaContainer, +): string { + return JSON.stringify( + GetMediaPostersMediaContainer$outboundSchema.parse( + getMediaPostersMediaContainer, + ), + ); +} + +export function getMediaPostersMediaContainerFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => GetMediaPostersMediaContainer$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'GetMediaPostersMediaContainer' from JSON`, + ); +} + +/** @internal */ +export const GetMediaPostersResponseBody$inboundSchema: z.ZodType< + GetMediaPostersResponseBody, + z.ZodTypeDef, + unknown +> = z.object({ + MediaContainer: z.lazy(() => GetMediaPostersMediaContainer$inboundSchema) + .optional(), +}).transform((v) => { + return remap$(v, { + "MediaContainer": "mediaContainer", + }); +}); + +/** @internal */ +export type GetMediaPostersResponseBody$Outbound = { + MediaContainer?: GetMediaPostersMediaContainer$Outbound | undefined; +}; + +/** @internal */ +export const GetMediaPostersResponseBody$outboundSchema: z.ZodType< + GetMediaPostersResponseBody$Outbound, + z.ZodTypeDef, + GetMediaPostersResponseBody +> = z.object({ + mediaContainer: z.lazy(() => GetMediaPostersMediaContainer$outboundSchema) + .optional(), +}).transform((v) => { + return remap$(v, { + mediaContainer: "MediaContainer", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace GetMediaPostersResponseBody$ { + /** @deprecated use `GetMediaPostersResponseBody$inboundSchema` instead. */ + export const inboundSchema = GetMediaPostersResponseBody$inboundSchema; + /** @deprecated use `GetMediaPostersResponseBody$outboundSchema` instead. */ + export const outboundSchema = GetMediaPostersResponseBody$outboundSchema; + /** @deprecated use `GetMediaPostersResponseBody$Outbound` instead. */ + export type Outbound = GetMediaPostersResponseBody$Outbound; +} + +export function getMediaPostersResponseBodyToJSON( + getMediaPostersResponseBody: GetMediaPostersResponseBody, +): string { + return JSON.stringify( + GetMediaPostersResponseBody$outboundSchema.parse( + getMediaPostersResponseBody, + ), + ); +} + +export function getMediaPostersResponseBodyFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => GetMediaPostersResponseBody$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'GetMediaPostersResponseBody' from JSON`, + ); +} + +/** @internal */ +export const GetMediaPostersResponse$inboundSchema: z.ZodType< + GetMediaPostersResponse, + z.ZodTypeDef, + unknown +> = z.object({ + ContentType: z.string(), + StatusCode: z.number().int(), + RawResponse: z.instanceof(Response), + object: z.lazy(() => GetMediaPostersResponseBody$inboundSchema).optional(), +}).transform((v) => { + return remap$(v, { + "ContentType": "contentType", + "StatusCode": "statusCode", + "RawResponse": "rawResponse", + }); +}); + +/** @internal */ +export type GetMediaPostersResponse$Outbound = { + ContentType: string; + StatusCode: number; + RawResponse: never; + object?: GetMediaPostersResponseBody$Outbound | undefined; +}; + +/** @internal */ +export const GetMediaPostersResponse$outboundSchema: z.ZodType< + GetMediaPostersResponse$Outbound, + z.ZodTypeDef, + GetMediaPostersResponse +> = z.object({ + contentType: z.string(), + statusCode: z.number().int(), + rawResponse: z.instanceof(Response).transform(() => { + throw new Error("Response cannot be serialized"); + }), + object: z.lazy(() => GetMediaPostersResponseBody$outboundSchema).optional(), +}).transform((v) => { + return remap$(v, { + contentType: "ContentType", + statusCode: "StatusCode", + rawResponse: "RawResponse", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace GetMediaPostersResponse$ { + /** @deprecated use `GetMediaPostersResponse$inboundSchema` instead. */ + export const inboundSchema = GetMediaPostersResponse$inboundSchema; + /** @deprecated use `GetMediaPostersResponse$outboundSchema` instead. */ + export const outboundSchema = GetMediaPostersResponse$outboundSchema; + /** @deprecated use `GetMediaPostersResponse$Outbound` instead. */ + export type Outbound = GetMediaPostersResponse$Outbound; +} + +export function getMediaPostersResponseToJSON( + getMediaPostersResponse: GetMediaPostersResponse, +): string { + return JSON.stringify( + GetMediaPostersResponse$outboundSchema.parse(getMediaPostersResponse), + ); +} + +export function getMediaPostersResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => GetMediaPostersResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'GetMediaPostersResponse' from JSON`, + ); +} diff --git a/src/sdk/models/operations/index.ts b/src/sdk/models/operations/index.ts index 43796afb..76f219b9 100644 --- a/src/sdk/models/operations/index.ts +++ b/src/sdk/models/operations/index.ts @@ -29,7 +29,9 @@ export * from "./gethomedata.js"; export * from "./getlibrarydetails.js"; export * from "./getlibraryhubs.js"; export * from "./getlibraryitems.js"; +export * from "./getmediaarts.js"; export * from "./getmediametadata.js"; +export * from "./getmediaposters.js"; export * from "./getmediaproviders.js"; export * from "./getmetadatachildren.js"; export * from "./getmyplexaccount.js"; @@ -72,6 +74,8 @@ export * from "./markplayed.js"; export * from "./markunplayed.js"; export * from "./performsearch.js"; export * from "./performvoicesearch.js"; +export * from "./postmediaarts.js"; +export * from "./postmediaposter.js"; export * from "./postuserssignindata.js"; export * from "./startalltasks.js"; export * from "./starttask.js"; diff --git a/src/sdk/models/operations/postmediaarts.ts b/src/sdk/models/operations/postmediaarts.ts new file mode 100644 index 00000000..76a4dc7b --- /dev/null +++ b/src/sdk/models/operations/postmediaarts.ts @@ -0,0 +1,201 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../../lib/primitives.js"; +import { safeParse } from "../../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type PostMediaArtsRequest = { + /** + * the id of the library item to return the posters of. + */ + ratingKey: number; + /** + * The URL of the image, if uploading a remote image + */ + url?: string | undefined; + /** + * The contents of the image, if uploading a local file + */ + requestBody?: + | ReadableStream + | Blob + | ArrayBuffer + | Uint8Array + | undefined; +}; + +export type PostMediaArtsResponse = { + /** + * HTTP response content type for this operation + */ + contentType: string; + /** + * HTTP response status code for this operation + */ + statusCode: number; + /** + * Raw HTTP response; suitable for custom response parsing + */ + rawResponse: Response; +}; + +/** @internal */ +export const PostMediaArtsRequest$inboundSchema: z.ZodType< + PostMediaArtsRequest, + z.ZodTypeDef, + unknown +> = z.object({ + ratingKey: z.number().int(), + url: z.string().optional(), + RequestBody: z.union([ + z.instanceof(ReadableStream), + z.instanceof(Blob), + z.instanceof(ArrayBuffer), + z.instanceof(Uint8Array), + ]).optional(), +}).transform((v) => { + return remap$(v, { + "RequestBody": "requestBody", + }); +}); + +/** @internal */ +export type PostMediaArtsRequest$Outbound = { + ratingKey: number; + url?: string | undefined; + RequestBody?: + | ReadableStream + | Blob + | ArrayBuffer + | Uint8Array + | undefined; +}; + +/** @internal */ +export const PostMediaArtsRequest$outboundSchema: z.ZodType< + PostMediaArtsRequest$Outbound, + z.ZodTypeDef, + PostMediaArtsRequest +> = z.object({ + ratingKey: z.number().int(), + url: z.string().optional(), + requestBody: z.union([ + z.instanceof(ReadableStream), + z.instanceof(Blob), + z.instanceof(ArrayBuffer), + z.instanceof(Uint8Array), + ]).optional(), +}).transform((v) => { + return remap$(v, { + requestBody: "RequestBody", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace PostMediaArtsRequest$ { + /** @deprecated use `PostMediaArtsRequest$inboundSchema` instead. */ + export const inboundSchema = PostMediaArtsRequest$inboundSchema; + /** @deprecated use `PostMediaArtsRequest$outboundSchema` instead. */ + export const outboundSchema = PostMediaArtsRequest$outboundSchema; + /** @deprecated use `PostMediaArtsRequest$Outbound` instead. */ + export type Outbound = PostMediaArtsRequest$Outbound; +} + +export function postMediaArtsRequestToJSON( + postMediaArtsRequest: PostMediaArtsRequest, +): string { + return JSON.stringify( + PostMediaArtsRequest$outboundSchema.parse(postMediaArtsRequest), + ); +} + +export function postMediaArtsRequestFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => PostMediaArtsRequest$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'PostMediaArtsRequest' from JSON`, + ); +} + +/** @internal */ +export const PostMediaArtsResponse$inboundSchema: z.ZodType< + PostMediaArtsResponse, + z.ZodTypeDef, + unknown +> = z.object({ + ContentType: z.string(), + StatusCode: z.number().int(), + RawResponse: z.instanceof(Response), +}).transform((v) => { + return remap$(v, { + "ContentType": "contentType", + "StatusCode": "statusCode", + "RawResponse": "rawResponse", + }); +}); + +/** @internal */ +export type PostMediaArtsResponse$Outbound = { + ContentType: string; + StatusCode: number; + RawResponse: never; +}; + +/** @internal */ +export const PostMediaArtsResponse$outboundSchema: z.ZodType< + PostMediaArtsResponse$Outbound, + z.ZodTypeDef, + PostMediaArtsResponse +> = z.object({ + contentType: z.string(), + statusCode: z.number().int(), + rawResponse: z.instanceof(Response).transform(() => { + throw new Error("Response cannot be serialized"); + }), +}).transform((v) => { + return remap$(v, { + contentType: "ContentType", + statusCode: "StatusCode", + rawResponse: "RawResponse", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace PostMediaArtsResponse$ { + /** @deprecated use `PostMediaArtsResponse$inboundSchema` instead. */ + export const inboundSchema = PostMediaArtsResponse$inboundSchema; + /** @deprecated use `PostMediaArtsResponse$outboundSchema` instead. */ + export const outboundSchema = PostMediaArtsResponse$outboundSchema; + /** @deprecated use `PostMediaArtsResponse$Outbound` instead. */ + export type Outbound = PostMediaArtsResponse$Outbound; +} + +export function postMediaArtsResponseToJSON( + postMediaArtsResponse: PostMediaArtsResponse, +): string { + return JSON.stringify( + PostMediaArtsResponse$outboundSchema.parse(postMediaArtsResponse), + ); +} + +export function postMediaArtsResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => PostMediaArtsResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'PostMediaArtsResponse' from JSON`, + ); +} diff --git a/src/sdk/models/operations/postmediaposter.ts b/src/sdk/models/operations/postmediaposter.ts new file mode 100644 index 00000000..1debf711 --- /dev/null +++ b/src/sdk/models/operations/postmediaposter.ts @@ -0,0 +1,201 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../../lib/primitives.js"; +import { safeParse } from "../../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type PostMediaPosterRequest = { + /** + * the id of the library item to return the posters of. + */ + ratingKey: number; + /** + * The URL of the image, if uploading a remote image + */ + url?: string | undefined; + /** + * The contents of the image, if uploading a local file + */ + requestBody?: + | ReadableStream + | Blob + | ArrayBuffer + | Uint8Array + | undefined; +}; + +export type PostMediaPosterResponse = { + /** + * HTTP response content type for this operation + */ + contentType: string; + /** + * HTTP response status code for this operation + */ + statusCode: number; + /** + * Raw HTTP response; suitable for custom response parsing + */ + rawResponse: Response; +}; + +/** @internal */ +export const PostMediaPosterRequest$inboundSchema: z.ZodType< + PostMediaPosterRequest, + z.ZodTypeDef, + unknown +> = z.object({ + ratingKey: z.number().int(), + url: z.string().optional(), + RequestBody: z.union([ + z.instanceof(ReadableStream), + z.instanceof(Blob), + z.instanceof(ArrayBuffer), + z.instanceof(Uint8Array), + ]).optional(), +}).transform((v) => { + return remap$(v, { + "RequestBody": "requestBody", + }); +}); + +/** @internal */ +export type PostMediaPosterRequest$Outbound = { + ratingKey: number; + url?: string | undefined; + RequestBody?: + | ReadableStream + | Blob + | ArrayBuffer + | Uint8Array + | undefined; +}; + +/** @internal */ +export const PostMediaPosterRequest$outboundSchema: z.ZodType< + PostMediaPosterRequest$Outbound, + z.ZodTypeDef, + PostMediaPosterRequest +> = z.object({ + ratingKey: z.number().int(), + url: z.string().optional(), + requestBody: z.union([ + z.instanceof(ReadableStream), + z.instanceof(Blob), + z.instanceof(ArrayBuffer), + z.instanceof(Uint8Array), + ]).optional(), +}).transform((v) => { + return remap$(v, { + requestBody: "RequestBody", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace PostMediaPosterRequest$ { + /** @deprecated use `PostMediaPosterRequest$inboundSchema` instead. */ + export const inboundSchema = PostMediaPosterRequest$inboundSchema; + /** @deprecated use `PostMediaPosterRequest$outboundSchema` instead. */ + export const outboundSchema = PostMediaPosterRequest$outboundSchema; + /** @deprecated use `PostMediaPosterRequest$Outbound` instead. */ + export type Outbound = PostMediaPosterRequest$Outbound; +} + +export function postMediaPosterRequestToJSON( + postMediaPosterRequest: PostMediaPosterRequest, +): string { + return JSON.stringify( + PostMediaPosterRequest$outboundSchema.parse(postMediaPosterRequest), + ); +} + +export function postMediaPosterRequestFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => PostMediaPosterRequest$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'PostMediaPosterRequest' from JSON`, + ); +} + +/** @internal */ +export const PostMediaPosterResponse$inboundSchema: z.ZodType< + PostMediaPosterResponse, + z.ZodTypeDef, + unknown +> = z.object({ + ContentType: z.string(), + StatusCode: z.number().int(), + RawResponse: z.instanceof(Response), +}).transform((v) => { + return remap$(v, { + "ContentType": "contentType", + "StatusCode": "statusCode", + "RawResponse": "rawResponse", + }); +}); + +/** @internal */ +export type PostMediaPosterResponse$Outbound = { + ContentType: string; + StatusCode: number; + RawResponse: never; +}; + +/** @internal */ +export const PostMediaPosterResponse$outboundSchema: z.ZodType< + PostMediaPosterResponse$Outbound, + z.ZodTypeDef, + PostMediaPosterResponse +> = z.object({ + contentType: z.string(), + statusCode: z.number().int(), + rawResponse: z.instanceof(Response).transform(() => { + throw new Error("Response cannot be serialized"); + }), +}).transform((v) => { + return remap$(v, { + contentType: "ContentType", + statusCode: "StatusCode", + rawResponse: "RawResponse", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace PostMediaPosterResponse$ { + /** @deprecated use `PostMediaPosterResponse$inboundSchema` instead. */ + export const inboundSchema = PostMediaPosterResponse$inboundSchema; + /** @deprecated use `PostMediaPosterResponse$outboundSchema` instead. */ + export const outboundSchema = PostMediaPosterResponse$outboundSchema; + /** @deprecated use `PostMediaPosterResponse$Outbound` instead. */ + export type Outbound = PostMediaPosterResponse$Outbound; +} + +export function postMediaPosterResponseToJSON( + postMediaPosterResponse: PostMediaPosterResponse, +): string { + return JSON.stringify( + PostMediaPosterResponse$outboundSchema.parse(postMediaPosterResponse), + ); +} + +export function postMediaPosterResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => PostMediaPosterResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'PostMediaPosterResponse' from JSON`, + ); +}