mirror of
https://github.com/LukeHagar/plexgo.git
synced 2025-12-06 12:37:46 +00:00
Compare commits
34 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f52d81d1f6 | ||
|
|
d83bd96c5f | ||
|
|
2289036c2b | ||
|
|
a7eedd3598 | ||
|
|
e579b8d23b | ||
|
|
fd429e38e0 | ||
|
|
2b4a59f67f | ||
|
|
6268a854c1 | ||
|
|
d061e9c253 | ||
|
|
fcfb68eec7 | ||
|
|
37dabea51a | ||
|
|
f47e4b689b | ||
|
|
04130d41d4 | ||
|
|
393db01a6c | ||
|
|
41621a4bbd | ||
|
|
05f0b1a99a | ||
|
|
f00090bddf | ||
|
|
d8bcbcc30c | ||
|
|
0ce63f1ceb | ||
|
|
da8b549711 | ||
|
|
3cfd677a46 | ||
|
|
e4db9f59ee | ||
|
|
79aced35cd | ||
|
|
2135733290 | ||
|
|
66d2bed79b | ||
|
|
42be0c1e5b | ||
|
|
4f8ae99d93 | ||
|
|
1802af77f6 | ||
|
|
d77dabeb98 | ||
|
|
7b82e1d5a3 | ||
|
|
f677adc9a9 | ||
|
|
9de12cb55c | ||
|
|
52e3fd977d | ||
|
|
88cd5f17cf |
29
.github/workflows/sdk_generation.yaml
vendored
Normal file
29
.github/workflows/sdk_generation.yaml
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
name: Generate
|
||||
permissions:
|
||||
checks: write
|
||||
contents: write
|
||||
pull-requests: write
|
||||
statuses: write
|
||||
"on":
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
force:
|
||||
description: Force generation of SDKs
|
||||
type: boolean
|
||||
default: false
|
||||
set_version:
|
||||
description: optionally set a specific SDK version
|
||||
type: string
|
||||
schedule:
|
||||
- cron: 0 0 * * *
|
||||
jobs:
|
||||
generate:
|
||||
uses: speakeasy-api/sdk-generation-action/.github/workflows/workflow-executor.yaml@v15
|
||||
with:
|
||||
force: ${{ github.event.inputs.force }}
|
||||
mode: direct
|
||||
set_version: ${{ github.event.inputs.set_version }}
|
||||
speakeasy_version: latest
|
||||
secrets:
|
||||
github_access_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }}
|
||||
19
.github/workflows/sdk_publish.yaml
vendored
Normal file
19
.github/workflows/sdk_publish.yaml
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
name: Publish
|
||||
permissions:
|
||||
checks: write
|
||||
contents: write
|
||||
pull-requests: write
|
||||
statuses: write
|
||||
"on":
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- RELEASES.md
|
||||
- '*/RELEASES.md'
|
||||
jobs:
|
||||
publish:
|
||||
uses: speakeasy-api/sdk-generation-action/.github/workflows/sdk-publish.yaml@v15
|
||||
secrets:
|
||||
github_access_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }}
|
||||
25
.github/workflows/speakeasy_sdk_generation.yml
vendored
25
.github/workflows/speakeasy_sdk_generation.yml
vendored
@@ -1,25 +0,0 @@
|
||||
name: Generate
|
||||
permissions:
|
||||
checks: write
|
||||
contents: write
|
||||
pull-requests: write
|
||||
statuses: write
|
||||
"on":
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
force:
|
||||
description: Force generation of SDKs
|
||||
type: boolean
|
||||
default: false
|
||||
schedule:
|
||||
- cron: 0 0 * * *
|
||||
jobs:
|
||||
generate:
|
||||
uses: speakeasy-api/sdk-generation-action/.github/workflows/workflow-executor.yaml@v15
|
||||
with:
|
||||
force: ${{ github.event.inputs.force }}
|
||||
mode: direct
|
||||
speakeasy_version: latest
|
||||
secrets:
|
||||
github_access_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }}
|
||||
2499
.speakeasy/gen.lock
2499
.speakeasy/gen.lock
File diff suppressed because one or more lines are too long
@@ -12,7 +12,7 @@ generation:
|
||||
auth:
|
||||
oAuth2ClientCredentialsEnabled: true
|
||||
go:
|
||||
version: 0.10.0
|
||||
version: 0.12.0
|
||||
additionalDependencies: {}
|
||||
allowUnknownFieldsInWeakUnions: false
|
||||
clientServerStatusCodesAsErrors: true
|
||||
|
||||
@@ -1,31 +1,39 @@
|
||||
speakeasyVersion: 1.314.2
|
||||
speakeasyVersion: 1.401.2
|
||||
sources:
|
||||
my-source:
|
||||
sourceNamespace: my-source
|
||||
sourceRevisionDigest: sha256:ad15d1a2b523f5d9e0181ff1209075e67ee181fbad77338d2f52a32479a609b9
|
||||
sourceBlobDigest: sha256:c170ffd0095c169f643ab932861e3967964d95741801676fd864d538490d3895
|
||||
sourceRevisionDigest: sha256:92a2a2049bfbf67bea601a6b1b77d274e83a2d3b6968a0bc02dc290b21c7689d
|
||||
sourceBlobDigest: sha256:f7e2709f52370dff16c1851a7a4e44a89f2e978e9cae335bffc10625950b3bd9
|
||||
tags:
|
||||
- latest
|
||||
- main
|
||||
plexapi:
|
||||
sourceNamespace: plexapi
|
||||
sourceRevisionDigest: sha256:5aa71ad96ca6de91143ee513c9880e08e555e7748fb4b5f8d069c6ab0c8f3069
|
||||
sourceBlobDigest: sha256:1cbef844e2856c2eabba4bd6d677d96c572fed13b27978d0d953aa06b224c02f
|
||||
tags:
|
||||
- latest
|
||||
- main
|
||||
targets:
|
||||
plexgo:
|
||||
source: my-source
|
||||
sourceNamespace: my-source
|
||||
sourceRevisionDigest: sha256:ad15d1a2b523f5d9e0181ff1209075e67ee181fbad77338d2f52a32479a609b9
|
||||
sourceBlobDigest: sha256:c170ffd0095c169f643ab932861e3967964d95741801676fd864d538490d3895
|
||||
outLocation: /github/workspace/repo
|
||||
source: plexapi
|
||||
sourceNamespace: plexapi
|
||||
sourceRevisionDigest: sha256:5aa71ad96ca6de91143ee513c9880e08e555e7748fb4b5f8d069c6ab0c8f3069
|
||||
sourceBlobDigest: sha256:1cbef844e2856c2eabba4bd6d677d96c572fed13b27978d0d953aa06b224c02f
|
||||
codeSamplesNamespace: code-samples-go-plexgo
|
||||
codeSamplesRevisionDigest: sha256:366a4aca940e2161009b4efe3c83407ecf0d02ac6a9e3420964c593aa24e3a34
|
||||
workflow:
|
||||
workflowVersion: 1.0.0
|
||||
speakeasyVersion: latest
|
||||
sources:
|
||||
my-source:
|
||||
plexapi:
|
||||
inputs:
|
||||
- location: https://raw.githubusercontent.com/LukeHagar/plex-api-spec/main/plex-media-server-spec-dereferenced.yaml
|
||||
registry:
|
||||
location: registry.speakeasyapi.dev/lukehagar/lukehagar/my-source
|
||||
- location: registry.speakeasyapi.dev/plexapi/plexapi/plexapi:main
|
||||
targets:
|
||||
plexgo:
|
||||
target: go
|
||||
source: my-source
|
||||
source: plexapi
|
||||
codeSamples:
|
||||
output: codeSamples.yaml
|
||||
registry:
|
||||
location: registry.speakeasyapi.dev/plexapi/plexapi/code-samples-go-plexgo
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
workflowVersion: 1.0.0
|
||||
speakeasyVersion: latest
|
||||
sources:
|
||||
my-source:
|
||||
plexapi:
|
||||
inputs:
|
||||
- location: https://raw.githubusercontent.com/LukeHagar/plex-api-spec/main/plex-media-server-spec-dereferenced.yaml
|
||||
registry:
|
||||
location: registry.speakeasyapi.dev/lukehagar/lukehagar/my-source
|
||||
- location: registry.speakeasyapi.dev/plexapi/plexapi/plexapi:main
|
||||
targets:
|
||||
plexgo:
|
||||
target: go
|
||||
source: my-source
|
||||
source: plexapi
|
||||
codeSamples:
|
||||
output: codeSamples.yaml
|
||||
registry:
|
||||
location: registry.speakeasyapi.dev/plexapi/plexapi/code-samples-go-plexgo
|
||||
|
||||
26
CONTRIBUTING.md
Normal file
26
CONTRIBUTING.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# Contributing to This Repository
|
||||
|
||||
Thank you for your interest in contributing to this repository. Please note that this repository contains generated code. As such, we do not accept direct changes or pull requests. Instead, we encourage you to follow the guidelines below to report issues and suggest improvements.
|
||||
|
||||
## How to Report Issues
|
||||
|
||||
If you encounter any bugs or have suggestions for improvements, please open an issue on GitHub. When reporting an issue, please provide as much detail as possible to help us reproduce the problem. This includes:
|
||||
|
||||
- A clear and descriptive title
|
||||
- Steps to reproduce the issue
|
||||
- Expected and actual behavior
|
||||
- Any relevant logs, screenshots, or error messages
|
||||
- Information about your environment (e.g., operating system, software versions)
|
||||
- For example can be collected using the `npx envinfo` command from your terminal if you have Node.js installed
|
||||
|
||||
## Issue Triage and Upstream Fixes
|
||||
|
||||
We will review and triage issues as quickly as possible. Our goal is to address bugs and incorporate improvements in the upstream source code. Fixes will be included in the next generation of the generated code.
|
||||
|
||||
## Contact
|
||||
|
||||
If you have any questions or need further assistance, please feel free to reach out by opening an issue.
|
||||
|
||||
Thank you for your understanding and cooperation!
|
||||
|
||||
The Maintainers
|
||||
308
README.md
308
README.md
@@ -7,9 +7,31 @@
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Start Summary [summary] -->
|
||||
## Summary
|
||||
|
||||
Plex-API: An Open API Spec for interacting with Plex.tv and Plex Media Server
|
||||
<!-- End Summary [summary] -->
|
||||
|
||||
<!-- Start Table of Contents [toc] -->
|
||||
## Table of Contents
|
||||
|
||||
* [SDK Installation](#sdk-installation)
|
||||
* [SDK Example Usage](#sdk-example-usage)
|
||||
* [Available Resources and Operations](#available-resources-and-operations)
|
||||
* [Global Parameters](#global-parameters)
|
||||
* [Retries](#retries)
|
||||
* [Error Handling](#error-handling)
|
||||
* [Server Selection](#server-selection)
|
||||
* [Custom HTTP Client](#custom-http-client)
|
||||
* [Authentication](#authentication)
|
||||
* [Special Types](#special-types)
|
||||
<!-- End Table of Contents [toc] -->
|
||||
|
||||
<!-- Start SDK Installation [installation] -->
|
||||
## SDK Installation
|
||||
|
||||
To add the SDK as a dependency to your project:
|
||||
```bash
|
||||
go get github.com/LukeHagar/plexgo
|
||||
```
|
||||
@@ -32,7 +54,11 @@ import (
|
||||
func main() {
|
||||
s := plexgo.New(
|
||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||
plexgo.WithXPlexClientIdentifier("Postman"),
|
||||
plexgo.WithClientID("gcgzw5rz2xovp84b4vha3a40"),
|
||||
plexgo.WithClientName("Plex Web"),
|
||||
plexgo.WithClientVersion("4.133.0"),
|
||||
plexgo.WithClientPlatform("Chrome"),
|
||||
plexgo.WithDeviceName("Linux"),
|
||||
)
|
||||
|
||||
ctx := context.Background()
|
||||
@@ -51,33 +77,21 @@ func main() {
|
||||
<!-- Start Available Resources and Operations [operations] -->
|
||||
## Available Resources and Operations
|
||||
|
||||
### [Server](docs/sdks/server/README.md)
|
||||
|
||||
* [GetServerCapabilities](docs/sdks/server/README.md#getservercapabilities) - Get Server Capabilities
|
||||
* [GetServerPreferences](docs/sdks/server/README.md#getserverpreferences) - Get Server Preferences
|
||||
* [GetAvailableClients](docs/sdks/server/README.md#getavailableclients) - Get Available Clients
|
||||
* [GetDevices](docs/sdks/server/README.md#getdevices) - Get Devices
|
||||
* [GetServerIdentity](docs/sdks/server/README.md#getserveridentity) - Get Server Identity
|
||||
* [GetMyPlexAccount](docs/sdks/server/README.md#getmyplexaccount) - Get MyPlex Account
|
||||
* [GetResizedPhoto](docs/sdks/server/README.md#getresizedphoto) - Get a Resized Photo
|
||||
* [GetServerList](docs/sdks/server/README.md#getserverlist) - Get Server List
|
||||
|
||||
### [Media](docs/sdks/media/README.md)
|
||||
|
||||
* [MarkPlayed](docs/sdks/media/README.md#markplayed) - Mark Media Played
|
||||
* [MarkUnplayed](docs/sdks/media/README.md#markunplayed) - Mark Media Unplayed
|
||||
* [UpdatePlayProgress](docs/sdks/media/README.md#updateplayprogress) - Update Media Play Progress
|
||||
|
||||
### [Video](docs/sdks/video/README.md)
|
||||
|
||||
* [GetTimeline](docs/sdks/video/README.md#gettimeline) - Get the timeline for a media item
|
||||
* [StartUniversalTranscode](docs/sdks/video/README.md#startuniversaltranscode) - Start Universal Transcode
|
||||
<details open>
|
||||
<summary>Available methods</summary>
|
||||
|
||||
### [Activities](docs/sdks/activities/README.md)
|
||||
|
||||
* [GetServerActivities](docs/sdks/activities/README.md#getserveractivities) - Get Server Activities
|
||||
* [CancelServerActivities](docs/sdks/activities/README.md#cancelserveractivities) - Cancel Server Activities
|
||||
|
||||
### [Authentication](docs/sdks/authentication/README.md)
|
||||
|
||||
* [GetTransientToken](docs/sdks/authentication/README.md#gettransienttoken) - Get a Transient Token
|
||||
* [GetSourceConnectionInformation](docs/sdks/authentication/README.md#getsourceconnectioninformation) - Get Source Connection Information
|
||||
* [GetTokenDetails](docs/sdks/authentication/README.md#gettokendetails) - Get Token Details
|
||||
* [PostUsersSignInData](docs/sdks/authentication/README.md#postuserssignindata) - Get User Sign In Data
|
||||
|
||||
### [Butler](docs/sdks/butler/README.md)
|
||||
|
||||
* [GetButlerTasks](docs/sdks/butler/README.md#getbutlertasks) - Get Butler tasks
|
||||
@@ -86,34 +100,22 @@ func main() {
|
||||
* [StartTask](docs/sdks/butler/README.md#starttask) - Start a single Butler task
|
||||
* [StopTask](docs/sdks/butler/README.md#stoptask) - Stop a single Butler task
|
||||
|
||||
### [Plex](docs/sdks/plex/README.md)
|
||||
|
||||
* [GetHomeData](docs/sdks/plex/README.md#gethomedata) - Get Plex Home Data
|
||||
* [GetPin](docs/sdks/plex/README.md#getpin) - Get a Pin
|
||||
* [GetToken](docs/sdks/plex/README.md#gettoken) - Get Access Token
|
||||
|
||||
### [Hubs](docs/sdks/hubs/README.md)
|
||||
|
||||
* [GetGlobalHubs](docs/sdks/hubs/README.md#getglobalhubs) - Get Global Hubs
|
||||
* [GetLibraryHubs](docs/sdks/hubs/README.md#getlibraryhubs) - Get library specific hubs
|
||||
|
||||
### [Search](docs/sdks/search/README.md)
|
||||
|
||||
* [PerformSearch](docs/sdks/search/README.md#performsearch) - Perform a search
|
||||
* [PerformVoiceSearch](docs/sdks/search/README.md#performvoicesearch) - Perform a voice search
|
||||
* [GetSearchResults](docs/sdks/search/README.md#getsearchresults) - Get Search Results
|
||||
|
||||
### [Library](docs/sdks/library/README.md)
|
||||
|
||||
* [GetFileHash](docs/sdks/library/README.md#getfilehash) - Get Hash Value
|
||||
* [GetRecentlyAdded](docs/sdks/library/README.md#getrecentlyadded) - Get Recently Added
|
||||
* [GetLibraries](docs/sdks/library/README.md#getlibraries) - Get All Libraries
|
||||
* [GetLibrary](docs/sdks/library/README.md#getlibrary) - Get Library Details
|
||||
* [GetAllLibraries](docs/sdks/library/README.md#getalllibraries) - Get All Libraries
|
||||
* [GetLibraryDetails](docs/sdks/library/README.md#getlibrarydetails) - Get Library Details
|
||||
* [DeleteLibrary](docs/sdks/library/README.md#deletelibrary) - Delete Library Section
|
||||
* [GetLibraryItems](docs/sdks/library/README.md#getlibraryitems) - Get Library Items
|
||||
* [RefreshLibrary](docs/sdks/library/README.md#refreshlibrary) - Refresh Library
|
||||
* [SearchLibrary](docs/sdks/library/README.md#searchlibrary) - Search Library
|
||||
* [GetMetadata](docs/sdks/library/README.md#getmetadata) - Get Items Metadata
|
||||
* [GetRefreshLibraryMetadata](docs/sdks/library/README.md#getrefreshlibrarymetadata) - Refresh Metadata Of The Library
|
||||
* [GetSearchLibrary](docs/sdks/library/README.md#getsearchlibrary) - Search Library
|
||||
* [GetMetaDataByRatingKey](docs/sdks/library/README.md#getmetadatabyratingkey) - Get Metadata by RatingKey
|
||||
* [GetMetadataChildren](docs/sdks/library/README.md#getmetadatachildren) - Get Items Children
|
||||
* [GetTopWatchedContent](docs/sdks/library/README.md#gettopwatchedcontent) - Get Top Watched Content
|
||||
* [GetOnDeck](docs/sdks/library/README.md#getondeck) - Get On Deck
|
||||
@@ -124,6 +126,14 @@ func main() {
|
||||
* [LogMultiLine](docs/sdks/log/README.md#logmultiline) - Logging a multi-line message
|
||||
* [EnablePaperTrail](docs/sdks/log/README.md#enablepapertrail) - Enabling Papertrail
|
||||
|
||||
### [Media](docs/sdks/media/README.md)
|
||||
|
||||
* [MarkPlayed](docs/sdks/media/README.md#markplayed) - Mark Media Played
|
||||
* [MarkUnplayed](docs/sdks/media/README.md#markunplayed) - Mark Media Unplayed
|
||||
* [UpdatePlayProgress](docs/sdks/media/README.md#updateplayprogress) - Update Media Play Progress
|
||||
* [GetBannerImage](docs/sdks/media/README.md#getbannerimage) - Get Banner Image
|
||||
* [GetThumbImage](docs/sdks/media/README.md#getthumbimage) - Get Thumb Image
|
||||
|
||||
### [Playlists](docs/sdks/playlists/README.md)
|
||||
|
||||
* [CreatePlaylist](docs/sdks/playlists/README.md#createplaylist) - Create a Playlist
|
||||
@@ -136,16 +146,34 @@ func main() {
|
||||
* [AddPlaylistContents](docs/sdks/playlists/README.md#addplaylistcontents) - Adding to a Playlist
|
||||
* [UploadPlaylist](docs/sdks/playlists/README.md#uploadplaylist) - Upload Playlist
|
||||
|
||||
### [Authentication](docs/sdks/authentication/README.md)
|
||||
### [Plex](docs/sdks/plex/README.md)
|
||||
|
||||
* [GetTransientToken](docs/sdks/authentication/README.md#gettransienttoken) - Get a Transient Token.
|
||||
* [GetSourceConnectionInformation](docs/sdks/authentication/README.md#getsourceconnectioninformation) - Get Source Connection Information
|
||||
* [GetCompanionsData](docs/sdks/plex/README.md#getcompanionsdata) - Get Companions Data
|
||||
* [GetUserFriends](docs/sdks/plex/README.md#getuserfriends) - Get list of friends of the user logged in
|
||||
* [GetGeoData](docs/sdks/plex/README.md#getgeodata) - Get Geo Data
|
||||
* [GetHomeData](docs/sdks/plex/README.md#gethomedata) - Get Plex Home Data
|
||||
* [GetServerResources](docs/sdks/plex/README.md#getserverresources) - Get Server Resources
|
||||
* [GetPin](docs/sdks/plex/README.md#getpin) - Get a Pin
|
||||
* [GetTokenByPinID](docs/sdks/plex/README.md#gettokenbypinid) - Get Access Token by PinId
|
||||
|
||||
### [Statistics](docs/sdks/statistics/README.md)
|
||||
|
||||
* [GetStatistics](docs/sdks/statistics/README.md#getstatistics) - Get Media Statistics
|
||||
* [GetResourcesStatistics](docs/sdks/statistics/README.md#getresourcesstatistics) - Get Resources Statistics
|
||||
* [GetBandwidthStatistics](docs/sdks/statistics/README.md#getbandwidthstatistics) - Get Bandwidth Statistics
|
||||
### [Search](docs/sdks/search/README.md)
|
||||
|
||||
* [PerformSearch](docs/sdks/search/README.md#performsearch) - Perform a search
|
||||
* [PerformVoiceSearch](docs/sdks/search/README.md#performvoicesearch) - Perform a voice search
|
||||
* [GetSearchResults](docs/sdks/search/README.md#getsearchresults) - Get Search Results
|
||||
|
||||
### [Server](docs/sdks/server/README.md)
|
||||
|
||||
* [GetServerCapabilities](docs/sdks/server/README.md#getservercapabilities) - Get Server Capabilities
|
||||
* [GetServerPreferences](docs/sdks/server/README.md#getserverpreferences) - Get Server Preferences
|
||||
* [GetAvailableClients](docs/sdks/server/README.md#getavailableclients) - Get Available Clients
|
||||
* [GetDevices](docs/sdks/server/README.md#getdevices) - Get Devices
|
||||
* [GetServerIdentity](docs/sdks/server/README.md#getserveridentity) - Get Server Identity
|
||||
* [GetMyPlexAccount](docs/sdks/server/README.md#getmyplexaccount) - Get MyPlex Account
|
||||
* [GetResizedPhoto](docs/sdks/server/README.md#getresizedphoto) - Get a Resized Photo
|
||||
* [GetMediaProviders](docs/sdks/server/README.md#getmediaproviders) - Get Media Providers
|
||||
* [GetServerList](docs/sdks/server/README.md#getserverlist) - Get Server List
|
||||
|
||||
### [Sessions](docs/sdks/sessions/README.md)
|
||||
|
||||
@@ -154,17 +182,124 @@ func main() {
|
||||
* [GetTranscodeSessions](docs/sdks/sessions/README.md#gettranscodesessions) - Get Transcode Sessions
|
||||
* [StopTranscodeSession](docs/sdks/sessions/README.md#stoptranscodesession) - Stop a Transcode Session
|
||||
|
||||
### [Statistics](docs/sdks/statistics/README.md)
|
||||
|
||||
* [GetStatistics](docs/sdks/statistics/README.md#getstatistics) - Get Media Statistics
|
||||
* [GetResourcesStatistics](docs/sdks/statistics/README.md#getresourcesstatistics) - Get Resources Statistics
|
||||
* [GetBandwidthStatistics](docs/sdks/statistics/README.md#getbandwidthstatistics) - Get Bandwidth Statistics
|
||||
|
||||
### [Updater](docs/sdks/updater/README.md)
|
||||
|
||||
* [GetUpdateStatus](docs/sdks/updater/README.md#getupdatestatus) - Querying status of updates
|
||||
* [CheckForUpdates](docs/sdks/updater/README.md#checkforupdates) - Checking for updates
|
||||
* [ApplyUpdates](docs/sdks/updater/README.md#applyupdates) - Apply Updates
|
||||
|
||||
### [Video](docs/sdks/video/README.md)
|
||||
|
||||
* [GetTimeline](docs/sdks/video/README.md#gettimeline) - Get the timeline for a media item
|
||||
* [StartUniversalTranscode](docs/sdks/video/README.md#startuniversaltranscode) - Start Universal Transcode
|
||||
|
||||
### [Watchlist](docs/sdks/watchlist/README.md)
|
||||
|
||||
* [GetWatchlist](docs/sdks/watchlist/README.md#getwatchlist) - Get User Watchlist
|
||||
* [GetWatchList](docs/sdks/watchlist/README.md#getwatchlist) - Get User Watchlist
|
||||
|
||||
</details>
|
||||
<!-- End Available Resources and Operations [operations] -->
|
||||
|
||||
<!-- Start Retries [retries] -->
|
||||
## Retries
|
||||
|
||||
Some of the endpoints in this SDK support retries. If you use the SDK without any configuration, it will fall back to the default retry strategy provided by the API. However, the default retry strategy can be overridden on a per-operation basis, or across the entire SDK.
|
||||
|
||||
To change the default retry strategy for a single API call, simply provide a `retry.Config` object to the call by using the `WithRetries` option:
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/LukeHagar/plexgo"
|
||||
"github.com/LukeHagar/plexgo/retry"
|
||||
"log"
|
||||
"models/operations"
|
||||
)
|
||||
|
||||
func main() {
|
||||
s := plexgo.New(
|
||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||
plexgo.WithClientID("gcgzw5rz2xovp84b4vha3a40"),
|
||||
plexgo.WithClientName("Plex Web"),
|
||||
plexgo.WithClientVersion("4.133.0"),
|
||||
plexgo.WithClientPlatform("Chrome"),
|
||||
plexgo.WithDeviceName("Linux"),
|
||||
)
|
||||
|
||||
ctx := context.Background()
|
||||
res, err := s.Server.GetServerCapabilities(ctx, operations.WithRetries(
|
||||
retry.Config{
|
||||
Strategy: "backoff",
|
||||
Backoff: &retry.BackoffStrategy{
|
||||
InitialInterval: 1,
|
||||
MaxInterval: 50,
|
||||
Exponent: 1.1,
|
||||
MaxElapsedTime: 100,
|
||||
},
|
||||
RetryConnectionErrors: false,
|
||||
}))
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
if res.Object != nil {
|
||||
// handle response
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
If you'd like to override the default retry strategy for all operations that support retries, you can use the `WithRetryConfig` option at SDK initialization:
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/LukeHagar/plexgo"
|
||||
"github.com/LukeHagar/plexgo/retry"
|
||||
"log"
|
||||
)
|
||||
|
||||
func main() {
|
||||
s := plexgo.New(
|
||||
plexgo.WithRetryConfig(
|
||||
retry.Config{
|
||||
Strategy: "backoff",
|
||||
Backoff: &retry.BackoffStrategy{
|
||||
InitialInterval: 1,
|
||||
MaxInterval: 50,
|
||||
Exponent: 1.1,
|
||||
MaxElapsedTime: 100,
|
||||
},
|
||||
RetryConnectionErrors: false,
|
||||
}),
|
||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||
plexgo.WithClientID("gcgzw5rz2xovp84b4vha3a40"),
|
||||
plexgo.WithClientName("Plex Web"),
|
||||
plexgo.WithClientVersion("4.133.0"),
|
||||
plexgo.WithClientPlatform("Chrome"),
|
||||
plexgo.WithDeviceName("Linux"),
|
||||
)
|
||||
|
||||
ctx := context.Background()
|
||||
res, err := s.Server.GetServerCapabilities(ctx)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
if res.Object != nil {
|
||||
// handle response
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
<!-- End Retries [retries] -->
|
||||
|
||||
<!-- Start Error Handling [errors] -->
|
||||
## Error Handling
|
||||
|
||||
@@ -172,7 +307,8 @@ Handling errors in this SDK should largely match your expectations. All operati
|
||||
|
||||
| Error Object | Status Code | Content Type |
|
||||
| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- |
|
||||
| sdkerrors.GetServerCapabilitiesResponseBody | 401 | application/json |
|
||||
| sdkerrors.GetServerCapabilitiesBadRequest | 400 | application/json |
|
||||
| sdkerrors.GetServerCapabilitiesUnauthorized | 401 | application/json |
|
||||
| sdkerrors.SDKError | 4xx-5xx | */* |
|
||||
|
||||
### Example
|
||||
@@ -191,14 +327,24 @@ import (
|
||||
func main() {
|
||||
s := plexgo.New(
|
||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||
plexgo.WithXPlexClientIdentifier("Postman"),
|
||||
plexgo.WithClientID("gcgzw5rz2xovp84b4vha3a40"),
|
||||
plexgo.WithClientName("Plex Web"),
|
||||
plexgo.WithClientVersion("4.133.0"),
|
||||
plexgo.WithClientPlatform("Chrome"),
|
||||
plexgo.WithDeviceName("Linux"),
|
||||
)
|
||||
|
||||
ctx := context.Background()
|
||||
res, err := s.Server.GetServerCapabilities(ctx)
|
||||
if err != nil {
|
||||
|
||||
var e *sdkerrors.GetServerCapabilitiesResponseBody
|
||||
var e *sdkerrors.GetServerCapabilitiesBadRequest
|
||||
if errors.As(err, &e) {
|
||||
// handle error
|
||||
log.Fatal(e.Error())
|
||||
}
|
||||
|
||||
var e *sdkerrors.GetServerCapabilitiesUnauthorized
|
||||
if errors.As(err, &e) {
|
||||
// handle error
|
||||
log.Fatal(e.Error())
|
||||
@@ -224,7 +370,7 @@ You can override the default server globally using the `WithServerIndex` option
|
||||
|
||||
| # | Server | Variables |
|
||||
| - | ------ | --------- |
|
||||
| 0 | `{protocol}://{ip}:{port}` | `protocol` (default is `http`), `ip` (default is `10.10.10.47`), `port` (default is `32400`) |
|
||||
| 0 | `{protocol}://{ip}:{port}` | `protocol` (default is `https`), `ip` (default is `10.10.10.47`), `port` (default is `32400`) |
|
||||
|
||||
#### Example
|
||||
|
||||
@@ -241,7 +387,11 @@ func main() {
|
||||
s := plexgo.New(
|
||||
plexgo.WithServerIndex(0),
|
||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||
plexgo.WithXPlexClientIdentifier("Postman"),
|
||||
plexgo.WithClientID("gcgzw5rz2xovp84b4vha3a40"),
|
||||
plexgo.WithClientName("Plex Web"),
|
||||
plexgo.WithClientVersion("4.133.0"),
|
||||
plexgo.WithClientPlatform("Chrome"),
|
||||
plexgo.WithDeviceName("Linux"),
|
||||
)
|
||||
|
||||
ctx := context.Background()
|
||||
@@ -279,7 +429,11 @@ func main() {
|
||||
s := plexgo.New(
|
||||
plexgo.WithServerURL("{protocol}://{ip}:{port}"),
|
||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||
plexgo.WithXPlexClientIdentifier("Postman"),
|
||||
plexgo.WithClientID("gcgzw5rz2xovp84b4vha3a40"),
|
||||
plexgo.WithClientName("Plex Web"),
|
||||
plexgo.WithClientVersion("4.133.0"),
|
||||
plexgo.WithClientPlatform("Chrome"),
|
||||
plexgo.WithDeviceName("Linux"),
|
||||
)
|
||||
|
||||
ctx := context.Background()
|
||||
@@ -309,19 +463,20 @@ import (
|
||||
|
||||
func main() {
|
||||
s := plexgo.New(
|
||||
plexgo.WithXPlexClientIdentifier("Postman"),
|
||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||
plexgo.WithClientID("gcgzw5rz2xovp84b4vha3a40"),
|
||||
plexgo.WithClientName("Plex Web"),
|
||||
plexgo.WithClientVersion("4.133.0"),
|
||||
plexgo.WithClientPlatform("Chrome"),
|
||||
plexgo.WithDeviceName("Linux"),
|
||||
)
|
||||
var xPlexProduct string = "Postman"
|
||||
|
||||
var strong *bool = plexgo.Bool(false)
|
||||
|
||||
var xPlexClientIdentifier *string = plexgo.String("Postman")
|
||||
ctx := context.Background()
|
||||
res, err := s.Plex.GetPin(ctx, xPlexProduct, strong, xPlexClientIdentifier, operations.WithServerURL("https://plex.tv/api/v2"))
|
||||
res, err := s.Plex.GetCompanionsData(ctx, operations.WithServerURL("https://plex.tv/api/v2/"))
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
if res.Object != nil {
|
||||
if res.ResponseBodies != nil {
|
||||
// handle response
|
||||
}
|
||||
}
|
||||
@@ -382,7 +537,11 @@ import (
|
||||
func main() {
|
||||
s := plexgo.New(
|
||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||
plexgo.WithXPlexClientIdentifier("Postman"),
|
||||
plexgo.WithClientID("gcgzw5rz2xovp84b4vha3a40"),
|
||||
plexgo.WithClientName("Plex Web"),
|
||||
plexgo.WithClientVersion("4.133.0"),
|
||||
plexgo.WithClientPlatform("Chrome"),
|
||||
plexgo.WithDeviceName("Linux"),
|
||||
)
|
||||
|
||||
ctx := context.Background()
|
||||
@@ -427,21 +586,25 @@ d6 := types.MustDateFromString("2019-01-01") // returns types.Date and panics on
|
||||
<!-- Start Global Parameters [global-parameters] -->
|
||||
## Global Parameters
|
||||
|
||||
A parameter is configured globally. This parameter may be set on the SDK client instance itself during initialization. When configured as an option during SDK initialization, This global value will be used as the default on the operations that use it. When such operations are called, there is a place in each to override the global value, if needed.
|
||||
Certain parameters are configured globally. These parameters may be set on the SDK client instance itself during initialization. When configured as an option during SDK initialization, These global values will be used as defaults on the operations that use them. When such operations are called, there is a place in each to override the global value, if needed.
|
||||
|
||||
For example, you can set `X-Plex-Client-Identifier` to `"Postman"` at SDK initialization and then you do not have to pass the same value on calls to operations like `GetPin`. But if you want to do so you may, which will locally override the global setting. See the example code below for a demonstration.
|
||||
For example, you can set `ClientID` to `"gcgzw5rz2xovp84b4vha3a40"` at SDK initialization and then you do not have to pass the same value on calls to operations like `GetPin`. But if you want to do so you may, which will locally override the global setting. See the example code below for a demonstration.
|
||||
|
||||
|
||||
### Available Globals
|
||||
|
||||
The following global parameter is available.
|
||||
The following global parameters are available.
|
||||
|
||||
| Name | Type | Required | Description |
|
||||
| ---- | ---- |:--------:| ----------- |
|
||||
| XPlexClientIdentifier | string | | The unique identifier for the client application
|
||||
| ClientID | string | | The unique identifier for the client application
|
||||
This is used to track the client application and its usage
|
||||
(UUID, serial number, or other number unique per device)
|
||||
|
|
||||
| ClientName | string | | The ClientName parameter. |
|
||||
| ClientVersion | string | | The ClientVersion parameter. |
|
||||
| ClientPlatform | string | | The ClientPlatform parameter. |
|
||||
| DeviceName | string | | The DeviceName parameter. |
|
||||
|
||||
|
||||
### Example
|
||||
@@ -452,24 +615,25 @@ package main
|
||||
import (
|
||||
"context"
|
||||
"github.com/LukeHagar/plexgo"
|
||||
"github.com/LukeHagar/plexgo/models/operations"
|
||||
"log"
|
||||
)
|
||||
|
||||
func main() {
|
||||
s := plexgo.New(
|
||||
plexgo.WithXPlexClientIdentifier("Postman"),
|
||||
plexgo.WithClientID("gcgzw5rz2xovp84b4vha3a40"),
|
||||
plexgo.WithClientName("Plex Web"),
|
||||
plexgo.WithClientVersion("4.133.0"),
|
||||
plexgo.WithClientPlatform("Chrome"),
|
||||
plexgo.WithDeviceName("Linux"),
|
||||
)
|
||||
var xPlexProduct string = "Postman"
|
||||
|
||||
var strong *bool = plexgo.Bool(false)
|
||||
|
||||
var xPlexClientIdentifier *string = plexgo.String("Postman")
|
||||
ctx := context.Background()
|
||||
res, err := s.Plex.GetPin(ctx, xPlexProduct, strong, xPlexClientIdentifier)
|
||||
res, err := s.Plex.GetPin(ctx, operations.GetPinRequest{})
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
if res.Object != nil {
|
||||
if res.AuthPinContainer != nil {
|
||||
// handle response
|
||||
}
|
||||
}
|
||||
|
||||
250
RELEASES.md
250
RELEASES.md
@@ -653,3 +653,253 @@ Based on:
|
||||
- [go v0.10.0] .
|
||||
### Releases
|
||||
- [Go v0.10.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.10.0 - .
|
||||
|
||||
## 2024-06-23 00:10:38
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.314.2 (2.349.6) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [go v0.10.0] .
|
||||
### Releases
|
||||
- [Go v0.10.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.10.0 - .
|
||||
|
||||
## 2024-06-24 00:11:02
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.314.2 (2.349.6) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [go v0.10.0] .
|
||||
### Releases
|
||||
- [Go v0.10.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.10.0 - .
|
||||
|
||||
## 2024-06-25 00:09:42
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.315.2 (2.352.0) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [go v0.10.0] .
|
||||
### Releases
|
||||
- [Go v0.10.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.10.0 - .
|
||||
|
||||
## 2024-06-26 00:09:52
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.318.0 (2.352.0) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [go v0.10.0] .
|
||||
### Releases
|
||||
- [Go v0.10.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.10.0 - .
|
||||
|
||||
## 2024-06-27 00:10:00
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.321.0 (2.354.2) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [go v0.10.0] .
|
||||
### Releases
|
||||
- [Go v0.10.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.10.0 - .
|
||||
|
||||
## 2024-06-28 00:09:54
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.322.1 (2.354.2) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [go v0.10.0] .
|
||||
### Releases
|
||||
- [Go v0.10.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.10.0 - .
|
||||
|
||||
## 2024-06-29 00:09:38
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.322.3 (2.354.2) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [go v0.10.0] .
|
||||
### Releases
|
||||
- [Go v0.10.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.10.0 - .
|
||||
|
||||
## 2024-06-30 00:10:54
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.322.3 (2.354.2) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [go v0.10.0] .
|
||||
### Releases
|
||||
- [Go v0.10.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.10.0 - .
|
||||
|
||||
## 2024-07-01 00:11:32
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.322.3 (2.354.2) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [go v0.10.0] .
|
||||
### Releases
|
||||
- [Go v0.10.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.10.0 - .
|
||||
|
||||
## 2024-07-01 15:43:13
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.323.0 (2.356.0) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [go v0.10.1] .
|
||||
### Releases
|
||||
- [Go v0.10.1] https://github.com/LukeHagar/plexgo/releases/tag/v0.10.1 - .
|
||||
|
||||
## 2024-09-09 18:17:18
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.393.1 (2.413.0) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [go v0.11.1] .
|
||||
### Releases
|
||||
- [Go v0.11.1] https://github.com/LukeHagar/plexgo/releases/tag/v0.11.1 - .
|
||||
|
||||
## 2024-09-09 20:35:17
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.393.2 (2.413.0) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [go v0.11.2] .
|
||||
### Releases
|
||||
- [Go v0.11.2] https://github.com/LukeHagar/plexgo/releases/tag/v0.11.2 - .
|
||||
|
||||
## 2024-09-10 00:08:55
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.394.0 (2.413.0) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [go v0.11.3] .
|
||||
### Releases
|
||||
- [Go v0.11.3] https://github.com/LukeHagar/plexgo/releases/tag/v0.11.3 - .
|
||||
|
||||
## 2024-09-11 00:08:50
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.395.1 (2.415.0) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [go v0.11.4] .
|
||||
### Releases
|
||||
- [Go v0.11.4] https://github.com/LukeHagar/plexgo/releases/tag/v0.11.4 - .
|
||||
|
||||
## 2024-09-12 00:08:45
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.396.2 (2.415.0) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [go v0.11.5] .
|
||||
### Releases
|
||||
- [Go v0.11.5] https://github.com/LukeHagar/plexgo/releases/tag/v0.11.5 - .
|
||||
|
||||
## 2024-09-13 00:08:56
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.396.6 (2.415.6) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [go v0.11.6] .
|
||||
### Releases
|
||||
- [Go v0.11.6] https://github.com/LukeHagar/plexgo/releases/tag/v0.11.6 - .
|
||||
|
||||
## 2024-09-14 00:08:16
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.396.9 (2.415.7) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [go v0.11.7] .
|
||||
### Releases
|
||||
- [Go v0.11.7] https://github.com/LukeHagar/plexgo/releases/tag/v0.11.7 - .
|
||||
|
||||
## 2024-09-15 00:09:40
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.396.9 (2.415.7) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [go v0.11.8] .
|
||||
### Releases
|
||||
- [Go v0.11.8] https://github.com/LukeHagar/plexgo/releases/tag/v0.11.8 - .
|
||||
|
||||
## 2024-09-16 00:09:14
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.396.9 (2.415.7) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [go v0.11.9] .
|
||||
### Releases
|
||||
- [Go v0.11.9] https://github.com/LukeHagar/plexgo/releases/tag/v0.11.9 - .
|
||||
|
||||
## 2024-09-16 18:35:29
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.397.2 (2.415.8) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [go v0.11.10] .
|
||||
### Releases
|
||||
- [Go v0.11.10] https://github.com/LukeHagar/plexgo/releases/tag/v0.11.10 - .
|
||||
|
||||
## 2024-09-18 03:01:47
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.399.0 (2.415.8) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [go v0.11.11] .
|
||||
### Releases
|
||||
- [Go v0.11.11] https://github.com/LukeHagar/plexgo/releases/tag/v0.11.11 - .
|
||||
|
||||
## 2024-09-18 14:09:58
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.399.1 (2.415.8) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [go v0.11.12] .
|
||||
### Releases
|
||||
- [Go v0.11.12] https://github.com/LukeHagar/plexgo/releases/tag/v0.11.12 - .
|
||||
|
||||
## 2024-09-18 15:01:19
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.399.2 (2.416.6) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [go v0.11.13] .
|
||||
### Releases
|
||||
- [Go v0.11.13] https://github.com/LukeHagar/plexgo/releases/tag/v0.11.13 - .
|
||||
|
||||
## 2024-09-19 00:08:52
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.399.2 (2.416.6) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [go v0.11.14] .
|
||||
### Releases
|
||||
- [Go v0.11.14] https://github.com/LukeHagar/plexgo/releases/tag/v0.11.14 - .
|
||||
|
||||
## 2024-09-21 00:08:46
|
||||
### Changes
|
||||
Based on:
|
||||
- OpenAPI Doc
|
||||
- Speakeasy CLI 1.401.2 (2.421.3) https://github.com/speakeasy-api/speakeasy
|
||||
### Generated
|
||||
- [go v0.12.0] .
|
||||
### Releases
|
||||
- [Go v0.12.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.12.0 - .
|
||||
6
USAGE.md
6
USAGE.md
@@ -11,7 +11,11 @@ import (
|
||||
func main() {
|
||||
s := plexgo.New(
|
||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||
plexgo.WithXPlexClientIdentifier("Postman"),
|
||||
plexgo.WithClientID("gcgzw5rz2xovp84b4vha3a40"),
|
||||
plexgo.WithClientName("Plex Web"),
|
||||
plexgo.WithClientVersion("4.133.0"),
|
||||
plexgo.WithClientPlatform("Chrome"),
|
||||
plexgo.WithDeviceName("Linux"),
|
||||
)
|
||||
|
||||
ctx := context.Background()
|
||||
|
||||
379
activities.go
379
activities.go
@@ -1,4 +1,4 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
|
||||
package plexgo
|
||||
|
||||
@@ -10,6 +10,7 @@ import (
|
||||
"github.com/LukeHagar/plexgo/internal/utils"
|
||||
"github.com/LukeHagar/plexgo/models/operations"
|
||||
"github.com/LukeHagar/plexgo/models/sdkerrors"
|
||||
"github.com/cenkalti/backoff/v4"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/url"
|
||||
@@ -34,7 +35,7 @@ func newActivities(sdkConfig sdkConfiguration) *Activities {
|
||||
|
||||
// GetServerActivities - Get Server Activities
|
||||
// Get Server Activities
|
||||
func (s *Activities) GetServerActivities(ctx context.Context) (*operations.GetServerActivitiesResponse, error) {
|
||||
func (s *Activities) GetServerActivities(ctx context.Context, opts ...operations.Option) (*operations.GetServerActivitiesResponse, error) {
|
||||
hookCtx := hooks.HookContext{
|
||||
Context: ctx,
|
||||
OperationID: "getServerActivities",
|
||||
@@ -42,12 +43,35 @@ func (s *Activities) GetServerActivities(ctx context.Context) (*operations.GetSe
|
||||
SecuritySource: s.sdkConfiguration.Security,
|
||||
}
|
||||
|
||||
o := operations.Options{}
|
||||
supportedOptions := []string{
|
||||
operations.SupportedOptionRetries,
|
||||
operations.SupportedOptionTimeout,
|
||||
}
|
||||
|
||||
for _, opt := range opts {
|
||||
if err := opt(&o, supportedOptions...); err != nil {
|
||||
return nil, fmt.Errorf("error applying option: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
||||
opURL, err := url.JoinPath(baseURL, "/activities")
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||
}
|
||||
|
||||
timeout := o.Timeout
|
||||
if timeout == nil {
|
||||
timeout = s.sdkConfiguration.Timeout
|
||||
}
|
||||
|
||||
if timeout != nil {
|
||||
var cancel context.CancelFunc
|
||||
ctx, cancel = context.WithTimeout(ctx, *timeout)
|
||||
defer cancel()
|
||||
}
|
||||
|
||||
req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error creating request: %w", err)
|
||||
@@ -59,33 +83,89 @@ func (s *Activities) GetServerActivities(ctx context.Context) (*operations.GetSe
|
||||
return nil, err
|
||||
}
|
||||
|
||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||
retryConfig := o.Retries
|
||||
if retryConfig == nil {
|
||||
if globalRetryConfig != nil {
|
||||
retryConfig = globalRetryConfig
|
||||
}
|
||||
}
|
||||
|
||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||
if err != nil || httpRes == nil {
|
||||
if err != nil {
|
||||
err = fmt.Errorf("error sending request: %w", err)
|
||||
} else {
|
||||
err = fmt.Errorf("error sending request: no response")
|
||||
}
|
||||
var httpRes *http.Response
|
||||
if retryConfig != nil {
|
||||
httpRes, err = utils.Retry(ctx, utils.Retries{
|
||||
Config: retryConfig,
|
||||
StatusCodes: []string{
|
||||
"429",
|
||||
"500",
|
||||
"502",
|
||||
"503",
|
||||
"504",
|
||||
},
|
||||
}, func() (*http.Response, error) {
|
||||
if req.Body != nil {
|
||||
copyBody, err := req.GetBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
req.Body = copyBody
|
||||
}
|
||||
|
||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||
if err != nil {
|
||||
return nil, backoff.Permanent(err)
|
||||
}
|
||||
|
||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||
if err != nil || httpRes == nil {
|
||||
if err != nil {
|
||||
err = fmt.Errorf("error sending request: %w", err)
|
||||
} else {
|
||||
err = fmt.Errorf("error sending request: no response")
|
||||
}
|
||||
|
||||
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
|
||||
}
|
||||
return httpRes, err
|
||||
})
|
||||
|
||||
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
|
||||
return nil, err
|
||||
} else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) {
|
||||
_httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
} else if _httpRes != nil {
|
||||
httpRes = _httpRes
|
||||
} else {
|
||||
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
} else {
|
||||
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
|
||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
httpRes, err = s.sdkConfiguration.Client.Do(req)
|
||||
if err != nil || httpRes == nil {
|
||||
if err != nil {
|
||||
err = fmt.Errorf("error sending request: %w", err)
|
||||
} else {
|
||||
err = fmt.Errorf("error sending request: no response")
|
||||
}
|
||||
|
||||
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
|
||||
return nil, err
|
||||
} else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) {
|
||||
_httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
} else if _httpRes != nil {
|
||||
httpRes = _httpRes
|
||||
}
|
||||
} else {
|
||||
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
res := &operations.GetServerActivitiesResponse{
|
||||
@@ -94,17 +174,25 @@ func (s *Activities) GetServerActivities(ctx context.Context) (*operations.GetSe
|
||||
RawResponse: httpRes,
|
||||
}
|
||||
|
||||
rawBody, err := io.ReadAll(httpRes.Body)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error reading response body: %w", err)
|
||||
getRawBody := func() ([]byte, error) {
|
||||
rawBody, err := io.ReadAll(httpRes.Body)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error reading response body: %w", err)
|
||||
}
|
||||
httpRes.Body.Close()
|
||||
httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
|
||||
return rawBody, nil
|
||||
}
|
||||
httpRes.Body.Close()
|
||||
httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
|
||||
|
||||
switch {
|
||||
case httpRes.StatusCode == 200:
|
||||
switch {
|
||||
case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var out operations.GetServerActivitiesResponseBody
|
||||
if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
|
||||
return nil, err
|
||||
@@ -112,18 +200,22 @@ func (s *Activities) GetServerActivities(ctx context.Context) (*operations.GetSe
|
||||
|
||||
res.Object = &out
|
||||
default:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||
}
|
||||
case httpRes.StatusCode == 400:
|
||||
fallthrough
|
||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||
fallthrough
|
||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||
case httpRes.StatusCode == 401:
|
||||
switch {
|
||||
case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
|
||||
var out sdkerrors.GetServerActivitiesResponseBody
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var out sdkerrors.GetServerActivitiesBadRequest
|
||||
if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -131,9 +223,51 @@ func (s *Activities) GetServerActivities(ctx context.Context) (*operations.GetSe
|
||||
out.RawResponse = httpRes
|
||||
return nil, &out
|
||||
default:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||
}
|
||||
case httpRes.StatusCode == 401:
|
||||
switch {
|
||||
case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var out sdkerrors.GetServerActivitiesUnauthorized
|
||||
if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
out.RawResponse = httpRes
|
||||
return nil, &out
|
||||
default:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||
}
|
||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||
fallthrough
|
||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||
default:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes)
|
||||
}
|
||||
|
||||
@@ -143,7 +277,7 @@ func (s *Activities) GetServerActivities(ctx context.Context) (*operations.GetSe
|
||||
|
||||
// CancelServerActivities - Cancel Server Activities
|
||||
// Cancel Server Activities
|
||||
func (s *Activities) CancelServerActivities(ctx context.Context, activityUUID string) (*operations.CancelServerActivitiesResponse, error) {
|
||||
func (s *Activities) CancelServerActivities(ctx context.Context, activityUUID string, opts ...operations.Option) (*operations.CancelServerActivitiesResponse, error) {
|
||||
hookCtx := hooks.HookContext{
|
||||
Context: ctx,
|
||||
OperationID: "cancelServerActivities",
|
||||
@@ -155,12 +289,35 @@ func (s *Activities) CancelServerActivities(ctx context.Context, activityUUID st
|
||||
ActivityUUID: activityUUID,
|
||||
}
|
||||
|
||||
o := operations.Options{}
|
||||
supportedOptions := []string{
|
||||
operations.SupportedOptionRetries,
|
||||
operations.SupportedOptionTimeout,
|
||||
}
|
||||
|
||||
for _, opt := range opts {
|
||||
if err := opt(&o, supportedOptions...); err != nil {
|
||||
return nil, fmt.Errorf("error applying option: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
||||
opURL, err := utils.GenerateURL(ctx, baseURL, "/activities/{activityUUID}", request, nil)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||
}
|
||||
|
||||
timeout := o.Timeout
|
||||
if timeout == nil {
|
||||
timeout = s.sdkConfiguration.Timeout
|
||||
}
|
||||
|
||||
if timeout != nil {
|
||||
var cancel context.CancelFunc
|
||||
ctx, cancel = context.WithTimeout(ctx, *timeout)
|
||||
defer cancel()
|
||||
}
|
||||
|
||||
req, err := http.NewRequestWithContext(ctx, "DELETE", opURL, nil)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error creating request: %w", err)
|
||||
@@ -172,33 +329,89 @@ func (s *Activities) CancelServerActivities(ctx context.Context, activityUUID st
|
||||
return nil, err
|
||||
}
|
||||
|
||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||
retryConfig := o.Retries
|
||||
if retryConfig == nil {
|
||||
if globalRetryConfig != nil {
|
||||
retryConfig = globalRetryConfig
|
||||
}
|
||||
}
|
||||
|
||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||
if err != nil || httpRes == nil {
|
||||
if err != nil {
|
||||
err = fmt.Errorf("error sending request: %w", err)
|
||||
} else {
|
||||
err = fmt.Errorf("error sending request: no response")
|
||||
}
|
||||
var httpRes *http.Response
|
||||
if retryConfig != nil {
|
||||
httpRes, err = utils.Retry(ctx, utils.Retries{
|
||||
Config: retryConfig,
|
||||
StatusCodes: []string{
|
||||
"429",
|
||||
"500",
|
||||
"502",
|
||||
"503",
|
||||
"504",
|
||||
},
|
||||
}, func() (*http.Response, error) {
|
||||
if req.Body != nil {
|
||||
copyBody, err := req.GetBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
req.Body = copyBody
|
||||
}
|
||||
|
||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||
if err != nil {
|
||||
return nil, backoff.Permanent(err)
|
||||
}
|
||||
|
||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||
if err != nil || httpRes == nil {
|
||||
if err != nil {
|
||||
err = fmt.Errorf("error sending request: %w", err)
|
||||
} else {
|
||||
err = fmt.Errorf("error sending request: no response")
|
||||
}
|
||||
|
||||
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
|
||||
}
|
||||
return httpRes, err
|
||||
})
|
||||
|
||||
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
|
||||
return nil, err
|
||||
} else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) {
|
||||
_httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
} else if _httpRes != nil {
|
||||
httpRes = _httpRes
|
||||
} else {
|
||||
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
} else {
|
||||
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
|
||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
httpRes, err = s.sdkConfiguration.Client.Do(req)
|
||||
if err != nil || httpRes == nil {
|
||||
if err != nil {
|
||||
err = fmt.Errorf("error sending request: %w", err)
|
||||
} else {
|
||||
err = fmt.Errorf("error sending request: no response")
|
||||
}
|
||||
|
||||
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
|
||||
return nil, err
|
||||
} else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) {
|
||||
_httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
} else if _httpRes != nil {
|
||||
httpRes = _httpRes
|
||||
}
|
||||
} else {
|
||||
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
res := &operations.CancelServerActivitiesResponse{
|
||||
@@ -207,25 +420,27 @@ func (s *Activities) CancelServerActivities(ctx context.Context, activityUUID st
|
||||
RawResponse: httpRes,
|
||||
}
|
||||
|
||||
rawBody, err := io.ReadAll(httpRes.Body)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error reading response body: %w", err)
|
||||
getRawBody := func() ([]byte, error) {
|
||||
rawBody, err := io.ReadAll(httpRes.Body)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error reading response body: %w", err)
|
||||
}
|
||||
httpRes.Body.Close()
|
||||
httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
|
||||
return rawBody, nil
|
||||
}
|
||||
httpRes.Body.Close()
|
||||
httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
|
||||
|
||||
switch {
|
||||
case httpRes.StatusCode == 200:
|
||||
case httpRes.StatusCode == 400:
|
||||
fallthrough
|
||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||
fallthrough
|
||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||
case httpRes.StatusCode == 401:
|
||||
switch {
|
||||
case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
|
||||
var out sdkerrors.CancelServerActivitiesResponseBody
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var out sdkerrors.CancelServerActivitiesBadRequest
|
||||
if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -233,9 +448,51 @@ func (s *Activities) CancelServerActivities(ctx context.Context, activityUUID st
|
||||
out.RawResponse = httpRes
|
||||
return nil, &out
|
||||
default:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||
}
|
||||
case httpRes.StatusCode == 401:
|
||||
switch {
|
||||
case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var out sdkerrors.CancelServerActivitiesUnauthorized
|
||||
if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
out.RawResponse = httpRes
|
||||
return nil, &out
|
||||
default:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||
}
|
||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||
fallthrough
|
||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||
default:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
|
||||
package plexgo
|
||||
|
||||
@@ -10,6 +10,7 @@ import (
|
||||
"github.com/LukeHagar/plexgo/internal/utils"
|
||||
"github.com/LukeHagar/plexgo/models/operations"
|
||||
"github.com/LukeHagar/plexgo/models/sdkerrors"
|
||||
"github.com/cenkalti/backoff/v4"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/url"
|
||||
@@ -26,9 +27,9 @@ func newAuthentication(sdkConfig sdkConfiguration) *Authentication {
|
||||
}
|
||||
}
|
||||
|
||||
// GetTransientToken - Get a Transient Token.
|
||||
// GetTransientToken - Get a Transient Token
|
||||
// This endpoint provides the caller with a temporary token with the same access level as the caller's token. These tokens are valid for up to 48 hours and are destroyed if the server instance is restarted.
|
||||
func (s *Authentication) GetTransientToken(ctx context.Context, type_ operations.GetTransientTokenQueryParamType, scope operations.Scope) (*operations.GetTransientTokenResponse, error) {
|
||||
func (s *Authentication) GetTransientToken(ctx context.Context, type_ operations.GetTransientTokenQueryParamType, scope operations.Scope, opts ...operations.Option) (*operations.GetTransientTokenResponse, error) {
|
||||
hookCtx := hooks.HookContext{
|
||||
Context: ctx,
|
||||
OperationID: "getTransientToken",
|
||||
@@ -41,12 +42,35 @@ func (s *Authentication) GetTransientToken(ctx context.Context, type_ operations
|
||||
Scope: scope,
|
||||
}
|
||||
|
||||
o := operations.Options{}
|
||||
supportedOptions := []string{
|
||||
operations.SupportedOptionRetries,
|
||||
operations.SupportedOptionTimeout,
|
||||
}
|
||||
|
||||
for _, opt := range opts {
|
||||
if err := opt(&o, supportedOptions...); err != nil {
|
||||
return nil, fmt.Errorf("error applying option: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
||||
opURL, err := url.JoinPath(baseURL, "/security/token")
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||
}
|
||||
|
||||
timeout := o.Timeout
|
||||
if timeout == nil {
|
||||
timeout = s.sdkConfiguration.Timeout
|
||||
}
|
||||
|
||||
if timeout != nil {
|
||||
var cancel context.CancelFunc
|
||||
ctx, cancel = context.WithTimeout(ctx, *timeout)
|
||||
defer cancel()
|
||||
}
|
||||
|
||||
req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error creating request: %w", err)
|
||||
@@ -62,33 +86,89 @@ func (s *Authentication) GetTransientToken(ctx context.Context, type_ operations
|
||||
return nil, err
|
||||
}
|
||||
|
||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||
retryConfig := o.Retries
|
||||
if retryConfig == nil {
|
||||
if globalRetryConfig != nil {
|
||||
retryConfig = globalRetryConfig
|
||||
}
|
||||
}
|
||||
|
||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||
if err != nil || httpRes == nil {
|
||||
if err != nil {
|
||||
err = fmt.Errorf("error sending request: %w", err)
|
||||
} else {
|
||||
err = fmt.Errorf("error sending request: no response")
|
||||
}
|
||||
var httpRes *http.Response
|
||||
if retryConfig != nil {
|
||||
httpRes, err = utils.Retry(ctx, utils.Retries{
|
||||
Config: retryConfig,
|
||||
StatusCodes: []string{
|
||||
"429",
|
||||
"500",
|
||||
"502",
|
||||
"503",
|
||||
"504",
|
||||
},
|
||||
}, func() (*http.Response, error) {
|
||||
if req.Body != nil {
|
||||
copyBody, err := req.GetBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
req.Body = copyBody
|
||||
}
|
||||
|
||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||
if err != nil {
|
||||
return nil, backoff.Permanent(err)
|
||||
}
|
||||
|
||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||
if err != nil || httpRes == nil {
|
||||
if err != nil {
|
||||
err = fmt.Errorf("error sending request: %w", err)
|
||||
} else {
|
||||
err = fmt.Errorf("error sending request: no response")
|
||||
}
|
||||
|
||||
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
|
||||
}
|
||||
return httpRes, err
|
||||
})
|
||||
|
||||
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
|
||||
return nil, err
|
||||
} else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) {
|
||||
_httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
} else if _httpRes != nil {
|
||||
httpRes = _httpRes
|
||||
} else {
|
||||
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
} else {
|
||||
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
|
||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
httpRes, err = s.sdkConfiguration.Client.Do(req)
|
||||
if err != nil || httpRes == nil {
|
||||
if err != nil {
|
||||
err = fmt.Errorf("error sending request: %w", err)
|
||||
} else {
|
||||
err = fmt.Errorf("error sending request: no response")
|
||||
}
|
||||
|
||||
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
|
||||
return nil, err
|
||||
} else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) {
|
||||
_httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
} else if _httpRes != nil {
|
||||
httpRes = _httpRes
|
||||
}
|
||||
} else {
|
||||
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
res := &operations.GetTransientTokenResponse{
|
||||
@@ -97,25 +177,27 @@ func (s *Authentication) GetTransientToken(ctx context.Context, type_ operations
|
||||
RawResponse: httpRes,
|
||||
}
|
||||
|
||||
rawBody, err := io.ReadAll(httpRes.Body)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error reading response body: %w", err)
|
||||
getRawBody := func() ([]byte, error) {
|
||||
rawBody, err := io.ReadAll(httpRes.Body)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error reading response body: %w", err)
|
||||
}
|
||||
httpRes.Body.Close()
|
||||
httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
|
||||
return rawBody, nil
|
||||
}
|
||||
httpRes.Body.Close()
|
||||
httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
|
||||
|
||||
switch {
|
||||
case httpRes.StatusCode == 200:
|
||||
case httpRes.StatusCode == 400:
|
||||
fallthrough
|
||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||
fallthrough
|
||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||
case httpRes.StatusCode == 401:
|
||||
switch {
|
||||
case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
|
||||
var out sdkerrors.GetTransientTokenResponseBody
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var out sdkerrors.GetTransientTokenBadRequest
|
||||
if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -123,9 +205,51 @@ func (s *Authentication) GetTransientToken(ctx context.Context, type_ operations
|
||||
out.RawResponse = httpRes
|
||||
return nil, &out
|
||||
default:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||
}
|
||||
case httpRes.StatusCode == 401:
|
||||
switch {
|
||||
case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var out sdkerrors.GetTransientTokenUnauthorized
|
||||
if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
out.RawResponse = httpRes
|
||||
return nil, &out
|
||||
default:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||
}
|
||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||
fallthrough
|
||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||
default:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes)
|
||||
}
|
||||
|
||||
@@ -136,7 +260,7 @@ func (s *Authentication) GetTransientToken(ctx context.Context, type_ operations
|
||||
// GetSourceConnectionInformation - Get Source Connection Information
|
||||
// If a caller requires connection details and a transient token for a source that is known to the server, for example a cloud media provider or shared PMS, then this endpoint can be called. This endpoint is only accessible with either an admin token or a valid transient token generated from an admin token.
|
||||
// Note: requires Plex Media Server >= 1.15.4.
|
||||
func (s *Authentication) GetSourceConnectionInformation(ctx context.Context, source string) (*operations.GetSourceConnectionInformationResponse, error) {
|
||||
func (s *Authentication) GetSourceConnectionInformation(ctx context.Context, source string, opts ...operations.Option) (*operations.GetSourceConnectionInformationResponse, error) {
|
||||
hookCtx := hooks.HookContext{
|
||||
Context: ctx,
|
||||
OperationID: "getSourceConnectionInformation",
|
||||
@@ -148,12 +272,35 @@ func (s *Authentication) GetSourceConnectionInformation(ctx context.Context, sou
|
||||
Source: source,
|
||||
}
|
||||
|
||||
o := operations.Options{}
|
||||
supportedOptions := []string{
|
||||
operations.SupportedOptionRetries,
|
||||
operations.SupportedOptionTimeout,
|
||||
}
|
||||
|
||||
for _, opt := range opts {
|
||||
if err := opt(&o, supportedOptions...); err != nil {
|
||||
return nil, fmt.Errorf("error applying option: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
||||
opURL, err := url.JoinPath(baseURL, "/security/resources")
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||
}
|
||||
|
||||
timeout := o.Timeout
|
||||
if timeout == nil {
|
||||
timeout = s.sdkConfiguration.Timeout
|
||||
}
|
||||
|
||||
if timeout != nil {
|
||||
var cancel context.CancelFunc
|
||||
ctx, cancel = context.WithTimeout(ctx, *timeout)
|
||||
defer cancel()
|
||||
}
|
||||
|
||||
req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error creating request: %w", err)
|
||||
@@ -169,33 +316,89 @@ func (s *Authentication) GetSourceConnectionInformation(ctx context.Context, sou
|
||||
return nil, err
|
||||
}
|
||||
|
||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||
retryConfig := o.Retries
|
||||
if retryConfig == nil {
|
||||
if globalRetryConfig != nil {
|
||||
retryConfig = globalRetryConfig
|
||||
}
|
||||
}
|
||||
|
||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||
if err != nil || httpRes == nil {
|
||||
if err != nil {
|
||||
err = fmt.Errorf("error sending request: %w", err)
|
||||
} else {
|
||||
err = fmt.Errorf("error sending request: no response")
|
||||
}
|
||||
var httpRes *http.Response
|
||||
if retryConfig != nil {
|
||||
httpRes, err = utils.Retry(ctx, utils.Retries{
|
||||
Config: retryConfig,
|
||||
StatusCodes: []string{
|
||||
"429",
|
||||
"500",
|
||||
"502",
|
||||
"503",
|
||||
"504",
|
||||
},
|
||||
}, func() (*http.Response, error) {
|
||||
if req.Body != nil {
|
||||
copyBody, err := req.GetBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
req.Body = copyBody
|
||||
}
|
||||
|
||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||
if err != nil {
|
||||
return nil, backoff.Permanent(err)
|
||||
}
|
||||
|
||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||
if err != nil || httpRes == nil {
|
||||
if err != nil {
|
||||
err = fmt.Errorf("error sending request: %w", err)
|
||||
} else {
|
||||
err = fmt.Errorf("error sending request: no response")
|
||||
}
|
||||
|
||||
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
|
||||
}
|
||||
return httpRes, err
|
||||
})
|
||||
|
||||
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
|
||||
return nil, err
|
||||
} else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) {
|
||||
_httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
} else if _httpRes != nil {
|
||||
httpRes = _httpRes
|
||||
} else {
|
||||
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
} else {
|
||||
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
|
||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
httpRes, err = s.sdkConfiguration.Client.Do(req)
|
||||
if err != nil || httpRes == nil {
|
||||
if err != nil {
|
||||
err = fmt.Errorf("error sending request: %w", err)
|
||||
} else {
|
||||
err = fmt.Errorf("error sending request: no response")
|
||||
}
|
||||
|
||||
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
|
||||
return nil, err
|
||||
} else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) {
|
||||
_httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
} else if _httpRes != nil {
|
||||
httpRes = _httpRes
|
||||
}
|
||||
} else {
|
||||
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
res := &operations.GetSourceConnectionInformationResponse{
|
||||
@@ -204,25 +407,27 @@ func (s *Authentication) GetSourceConnectionInformation(ctx context.Context, sou
|
||||
RawResponse: httpRes,
|
||||
}
|
||||
|
||||
rawBody, err := io.ReadAll(httpRes.Body)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error reading response body: %w", err)
|
||||
getRawBody := func() ([]byte, error) {
|
||||
rawBody, err := io.ReadAll(httpRes.Body)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error reading response body: %w", err)
|
||||
}
|
||||
httpRes.Body.Close()
|
||||
httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
|
||||
return rawBody, nil
|
||||
}
|
||||
httpRes.Body.Close()
|
||||
httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
|
||||
|
||||
switch {
|
||||
case httpRes.StatusCode == 200:
|
||||
case httpRes.StatusCode == 400:
|
||||
fallthrough
|
||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||
fallthrough
|
||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||
case httpRes.StatusCode == 401:
|
||||
switch {
|
||||
case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
|
||||
var out sdkerrors.GetSourceConnectionInformationResponseBody
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var out sdkerrors.GetSourceConnectionInformationBadRequest
|
||||
if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -230,9 +435,547 @@ func (s *Authentication) GetSourceConnectionInformation(ctx context.Context, sou
|
||||
out.RawResponse = httpRes
|
||||
return nil, &out
|
||||
default:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||
}
|
||||
case httpRes.StatusCode == 401:
|
||||
switch {
|
||||
case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var out sdkerrors.GetSourceConnectionInformationUnauthorized
|
||||
if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
out.RawResponse = httpRes
|
||||
return nil, &out
|
||||
default:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||
}
|
||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||
fallthrough
|
||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||
default:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes)
|
||||
}
|
||||
|
||||
return res, nil
|
||||
|
||||
}
|
||||
|
||||
// GetTokenDetails - Get Token Details
|
||||
// Get the User data from the provided X-Plex-Token
|
||||
func (s *Authentication) GetTokenDetails(ctx context.Context, opts ...operations.Option) (*operations.GetTokenDetailsResponse, error) {
|
||||
hookCtx := hooks.HookContext{
|
||||
Context: ctx,
|
||||
OperationID: "getTokenDetails",
|
||||
OAuth2Scopes: []string{},
|
||||
SecuritySource: s.sdkConfiguration.Security,
|
||||
}
|
||||
|
||||
o := operations.Options{}
|
||||
supportedOptions := []string{
|
||||
operations.SupportedOptionServerURL,
|
||||
operations.SupportedOptionRetries,
|
||||
operations.SupportedOptionTimeout,
|
||||
}
|
||||
|
||||
for _, opt := range opts {
|
||||
if err := opt(&o, supportedOptions...); err != nil {
|
||||
return nil, fmt.Errorf("error applying option: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
baseURL := utils.ReplaceParameters(operations.GetTokenDetailsServerList[0], map[string]string{})
|
||||
if o.ServerURL != nil {
|
||||
baseURL = *o.ServerURL
|
||||
}
|
||||
|
||||
opURL, err := url.JoinPath(baseURL, "/user")
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||
}
|
||||
|
||||
timeout := o.Timeout
|
||||
if timeout == nil {
|
||||
timeout = s.sdkConfiguration.Timeout
|
||||
}
|
||||
|
||||
if timeout != nil {
|
||||
var cancel context.CancelFunc
|
||||
ctx, cancel = context.WithTimeout(ctx, *timeout)
|
||||
defer cancel()
|
||||
}
|
||||
|
||||
req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error creating request: %w", err)
|
||||
}
|
||||
req.Header.Set("Accept", "application/json")
|
||||
req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
|
||||
|
||||
if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||
retryConfig := o.Retries
|
||||
if retryConfig == nil {
|
||||
if globalRetryConfig != nil {
|
||||
retryConfig = globalRetryConfig
|
||||
}
|
||||
}
|
||||
|
||||
var httpRes *http.Response
|
||||
if retryConfig != nil {
|
||||
httpRes, err = utils.Retry(ctx, utils.Retries{
|
||||
Config: retryConfig,
|
||||
StatusCodes: []string{
|
||||
"429",
|
||||
"500",
|
||||
"502",
|
||||
"503",
|
||||
"504",
|
||||
},
|
||||
}, func() (*http.Response, error) {
|
||||
if req.Body != nil {
|
||||
copyBody, err := req.GetBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
req.Body = copyBody
|
||||
}
|
||||
|
||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||
if err != nil {
|
||||
return nil, backoff.Permanent(err)
|
||||
}
|
||||
|
||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||
if err != nil || httpRes == nil {
|
||||
if err != nil {
|
||||
err = fmt.Errorf("error sending request: %w", err)
|
||||
} else {
|
||||
err = fmt.Errorf("error sending request: no response")
|
||||
}
|
||||
|
||||
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
|
||||
}
|
||||
return httpRes, err
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
} else {
|
||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
httpRes, err = s.sdkConfiguration.Client.Do(req)
|
||||
if err != nil || httpRes == nil {
|
||||
if err != nil {
|
||||
err = fmt.Errorf("error sending request: %w", err)
|
||||
} else {
|
||||
err = fmt.Errorf("error sending request: no response")
|
||||
}
|
||||
|
||||
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
|
||||
return nil, err
|
||||
} else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) {
|
||||
_httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
} else if _httpRes != nil {
|
||||
httpRes = _httpRes
|
||||
}
|
||||
} else {
|
||||
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
res := &operations.GetTokenDetailsResponse{
|
||||
StatusCode: httpRes.StatusCode,
|
||||
ContentType: httpRes.Header.Get("Content-Type"),
|
||||
RawResponse: httpRes,
|
||||
}
|
||||
|
||||
getRawBody := func() ([]byte, error) {
|
||||
rawBody, err := io.ReadAll(httpRes.Body)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error reading response body: %w", err)
|
||||
}
|
||||
httpRes.Body.Close()
|
||||
httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
|
||||
return rawBody, nil
|
||||
}
|
||||
|
||||
switch {
|
||||
case httpRes.StatusCode == 200:
|
||||
switch {
|
||||
case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var out operations.GetTokenDetailsUserPlexAccount
|
||||
if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res.UserPlexAccount = &out
|
||||
default:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||
}
|
||||
case httpRes.StatusCode == 400:
|
||||
switch {
|
||||
case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var out sdkerrors.GetTokenDetailsBadRequest
|
||||
if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
out.RawResponse = httpRes
|
||||
return nil, &out
|
||||
default:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||
}
|
||||
case httpRes.StatusCode == 401:
|
||||
switch {
|
||||
case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var out sdkerrors.GetTokenDetailsUnauthorized
|
||||
if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
out.RawResponse = httpRes
|
||||
return nil, &out
|
||||
default:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||
}
|
||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||
fallthrough
|
||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||
default:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes)
|
||||
}
|
||||
|
||||
return res, nil
|
||||
|
||||
}
|
||||
|
||||
// PostUsersSignInData - Get User Sign In Data
|
||||
// Sign in user with username and password and return user data with Plex authentication token
|
||||
func (s *Authentication) PostUsersSignInData(ctx context.Context, request *operations.PostUsersSignInDataRequestBody, opts ...operations.Option) (*operations.PostUsersSignInDataResponse, error) {
|
||||
hookCtx := hooks.HookContext{
|
||||
Context: ctx,
|
||||
OperationID: "post-users-sign-in-data",
|
||||
OAuth2Scopes: []string{},
|
||||
SecuritySource: nil,
|
||||
}
|
||||
|
||||
o := operations.Options{}
|
||||
supportedOptions := []string{
|
||||
operations.SupportedOptionServerURL,
|
||||
operations.SupportedOptionRetries,
|
||||
operations.SupportedOptionTimeout,
|
||||
}
|
||||
|
||||
for _, opt := range opts {
|
||||
if err := opt(&o, supportedOptions...); err != nil {
|
||||
return nil, fmt.Errorf("error applying option: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
baseURL := utils.ReplaceParameters(operations.PostUsersSignInDataServerList[0], map[string]string{})
|
||||
if o.ServerURL != nil {
|
||||
baseURL = *o.ServerURL
|
||||
}
|
||||
|
||||
opURL, err := url.JoinPath(baseURL, "/users/signin")
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||
}
|
||||
|
||||
bodyReader, reqContentType, err := utils.SerializeRequestBody(ctx, request, false, true, "Request", "form", `request:"mediaType=application/x-www-form-urlencoded"`)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
timeout := o.Timeout
|
||||
if timeout == nil {
|
||||
timeout = s.sdkConfiguration.Timeout
|
||||
}
|
||||
|
||||
if timeout != nil {
|
||||
var cancel context.CancelFunc
|
||||
ctx, cancel = context.WithTimeout(ctx, *timeout)
|
||||
defer cancel()
|
||||
}
|
||||
|
||||
req, err := http.NewRequestWithContext(ctx, "POST", opURL, bodyReader)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error creating request: %w", err)
|
||||
}
|
||||
req.Header.Set("Accept", "application/json")
|
||||
req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
|
||||
req.Header.Set("Content-Type", reqContentType)
|
||||
|
||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||
retryConfig := o.Retries
|
||||
if retryConfig == nil {
|
||||
if globalRetryConfig != nil {
|
||||
retryConfig = globalRetryConfig
|
||||
}
|
||||
}
|
||||
|
||||
var httpRes *http.Response
|
||||
if retryConfig != nil {
|
||||
httpRes, err = utils.Retry(ctx, utils.Retries{
|
||||
Config: retryConfig,
|
||||
StatusCodes: []string{
|
||||
"429",
|
||||
"500",
|
||||
"502",
|
||||
"503",
|
||||
"504",
|
||||
},
|
||||
}, func() (*http.Response, error) {
|
||||
if req.Body != nil {
|
||||
copyBody, err := req.GetBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
req.Body = copyBody
|
||||
}
|
||||
|
||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||
if err != nil {
|
||||
return nil, backoff.Permanent(err)
|
||||
}
|
||||
|
||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||
if err != nil || httpRes == nil {
|
||||
if err != nil {
|
||||
err = fmt.Errorf("error sending request: %w", err)
|
||||
} else {
|
||||
err = fmt.Errorf("error sending request: no response")
|
||||
}
|
||||
|
||||
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
|
||||
}
|
||||
return httpRes, err
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
} else {
|
||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
httpRes, err = s.sdkConfiguration.Client.Do(req)
|
||||
if err != nil || httpRes == nil {
|
||||
if err != nil {
|
||||
err = fmt.Errorf("error sending request: %w", err)
|
||||
} else {
|
||||
err = fmt.Errorf("error sending request: no response")
|
||||
}
|
||||
|
||||
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
|
||||
return nil, err
|
||||
} else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) {
|
||||
_httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
} else if _httpRes != nil {
|
||||
httpRes = _httpRes
|
||||
}
|
||||
} else {
|
||||
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
res := &operations.PostUsersSignInDataResponse{
|
||||
StatusCode: httpRes.StatusCode,
|
||||
ContentType: httpRes.Header.Get("Content-Type"),
|
||||
RawResponse: httpRes,
|
||||
}
|
||||
|
||||
getRawBody := func() ([]byte, error) {
|
||||
rawBody, err := io.ReadAll(httpRes.Body)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error reading response body: %w", err)
|
||||
}
|
||||
httpRes.Body.Close()
|
||||
httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
|
||||
return rawBody, nil
|
||||
}
|
||||
|
||||
switch {
|
||||
case httpRes.StatusCode == 201:
|
||||
switch {
|
||||
case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var out operations.PostUsersSignInDataUserPlexAccount
|
||||
if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res.UserPlexAccount = &out
|
||||
default:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||
}
|
||||
case httpRes.StatusCode == 400:
|
||||
switch {
|
||||
case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var out sdkerrors.PostUsersSignInDataBadRequest
|
||||
if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
out.RawResponse = httpRes
|
||||
return nil, &out
|
||||
default:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||
}
|
||||
case httpRes.StatusCode == 401:
|
||||
switch {
|
||||
case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var out sdkerrors.PostUsersSignInDataUnauthorized
|
||||
if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
out.RawResponse = httpRes
|
||||
return nil, &out
|
||||
default:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||
}
|
||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||
fallthrough
|
||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||
default:
|
||||
rawBody, err := getRawBody()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes)
|
||||
}
|
||||
|
||||
|
||||
4014
codeSamples.yaml
4014
codeSamples.yaml
File diff suppressed because it is too large
Load Diff
@@ -5,4 +5,4 @@
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| ------------------ | ------------------ | ------------------ | ------------------ |
|
||||
| `AccessToken` | *string* | :heavy_check_mark: | N/A |
|
||||
| `AccessToken` | **string* | :heavy_minus_sign: | N/A |
|
||||
@@ -6,4 +6,4 @@
|
||||
| Field | Type | Required | Description | Example |
|
||||
| -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `Tonight` | [*operations.Tonight](../../models/operations/tonight.md) | :heavy_minus_sign: | Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install | 1 |
|
||||
| `Skip` | [*operations.Skip](../../models/operations/skip.md) | :heavy_minus_sign: | Indicate that the latest version should be marked as skipped. The <Release> entry for this version will have the `state` set to `skipped`. | 1 |
|
||||
| `Skip` | [*operations.Skip](../../models/operations/skip.md) | :heavy_minus_sign: | Indicate that the latest version should be marked as skipped. The [Release] entry for this version will have the `state` set to `skipped`. | 1 |
|
||||
11
docs/models/operations/autoselectsubtitle.md
Normal file
11
docs/models/operations/autoselectsubtitle.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# AutoSelectSubtitle
|
||||
|
||||
The auto-select subtitle mode (0 = Manually selected, 1 = Shown with foreign audio, 2 = Always enabled)
|
||||
|
||||
|
||||
## Values
|
||||
|
||||
| Name | Value |
|
||||
| --------------------------- | --------------------------- |
|
||||
| `AutoSelectSubtitleDisable` | 0 |
|
||||
| `AutoSelectSubtitleEnable` | 1 |
|
||||
9
docs/models/operations/billing.md
Normal file
9
docs/models/operations/billing.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Billing
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
|
||||
| `InternalPaymentMethod` | [operations.InternalPaymentMethod](../../models/operations/internalpaymentmethod.md) | :heavy_check_mark: | N/A |
|
||||
| `PaymentMethodID` | *int64* | :heavy_check_mark: | N/A |
|
||||
14
docs/models/operations/connections.md
Normal file
14
docs/models/operations/connections.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# Connections
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| `Protocol` | [operations.Protocol](../../models/operations/protocol.md) | :heavy_check_mark: | The protocol used for the connection (http, https, etc) |
|
||||
| `Address` | *string* | :heavy_check_mark: | The (ip) address or domain name used for the connection |
|
||||
| `Port` | *int* | :heavy_check_mark: | The port used for the connection |
|
||||
| `URI` | *string* | :heavy_check_mark: | The full URI of the connection |
|
||||
| `Local` | *bool* | :heavy_check_mark: | If the connection is local address |
|
||||
| `Relay` | *bool* | :heavy_check_mark: | If the connection is relayed through plex.direct |
|
||||
| `IPv6` | *bool* | :heavy_check_mark: | If the connection is using IPv6 |
|
||||
12
docs/models/operations/createplaylistqueryparamtype.md
Normal file
12
docs/models/operations/createplaylistqueryparamtype.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# CreatePlaylistQueryParamType
|
||||
|
||||
type of playlist to create
|
||||
|
||||
|
||||
## Values
|
||||
|
||||
| Name | Value |
|
||||
| ----------------------------------- | ----------------------------------- |
|
||||
| `CreatePlaylistQueryParamTypeAudio` | audio |
|
||||
| `CreatePlaylistQueryParamTypeVideo` | video |
|
||||
| `CreatePlaylistQueryParamTypePhoto` | photo |
|
||||
@@ -3,10 +3,10 @@
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- |
|
||||
| `Title` | *string* | :heavy_check_mark: | name of the playlist |
|
||||
| `Type` | [operations.QueryParamType](../../models/operations/queryparamtype.md) | :heavy_check_mark: | type of playlist to create |
|
||||
| `Smart` | [operations.Smart](../../models/operations/smart.md) | :heavy_check_mark: | whether the playlist is smart or not |
|
||||
| `URI` | *string* | :heavy_check_mark: | the content URI for the playlist |
|
||||
| `PlayQueueID` | **float64* | :heavy_minus_sign: | the play queue to copy to a playlist |
|
||||
| Field | Type | Required | Description |
|
||||
| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
|
||||
| `Title` | *string* | :heavy_check_mark: | name of the playlist |
|
||||
| `Type` | [operations.CreatePlaylistQueryParamType](../../models/operations/createplaylistqueryparamtype.md) | :heavy_check_mark: | type of playlist to create |
|
||||
| `Smart` | [operations.Smart](../../models/operations/smart.md) | :heavy_check_mark: | whether the playlist is smart or not |
|
||||
| `URI` | *string* | :heavy_check_mark: | the content URI for the playlist |
|
||||
| `PlayQueueID` | **float64* | :heavy_minus_sign: | the play queue to copy to a playlist |
|
||||
11
docs/models/operations/defaultsubtitleaccessibility.md
Normal file
11
docs/models/operations/defaultsubtitleaccessibility.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# DefaultSubtitleAccessibility
|
||||
|
||||
The subtitles for the deaf or hard-of-hearing (SDH) searches mode (0 = Prefer non-SDH subtitles, 1 = Prefer SDH subtitles, 2 = Only show SDH subtitles, 3 = Only show non-SDH subtitles)
|
||||
|
||||
|
||||
## Values
|
||||
|
||||
| Name | Value |
|
||||
| ------------------------------------- | ------------------------------------- |
|
||||
| `DefaultSubtitleAccessibilityDisable` | 0 |
|
||||
| `DefaultSubtitleAccessibilityEnable` | 1 |
|
||||
11
docs/models/operations/defaultsubtitleforced.md
Normal file
11
docs/models/operations/defaultsubtitleforced.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# DefaultSubtitleForced
|
||||
|
||||
The forced subtitles searches mode (0 = Prefer non-forced subtitles, 1 = Prefer forced subtitles, 2 = Only show forced subtitles, 3 = Only show non-forced subtitles)
|
||||
|
||||
|
||||
## Values
|
||||
|
||||
| Name | Value |
|
||||
| ------------------------------ | ------------------------------ |
|
||||
| `DefaultSubtitleForcedDisable` | 0 |
|
||||
| `DefaultSubtitleForcedEnable` | 1 |
|
||||
@@ -3,6 +3,6 @@
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ |
|
||||
| `SectionID` | *float64* | :heavy_check_mark: | the Id of the library to query | 1000 |
|
||||
| Field | Type | Required | Description | Example |
|
||||
| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
|
||||
| `SectionKey` | *int* | :heavy_check_mark: | The unique key of the Plex library. <br/>Note: This is unique in the context of the Plex server.<br/> | 9518 |
|
||||
10
docs/models/operations/feature.md
Normal file
10
docs/models/operations/feature.md
Normal file
@@ -0,0 +1,10 @@
|
||||
# Feature
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
|
||||
| `Key` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `Type` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `Directory` | [][operations.GetMediaProvidersDirectory](../../models/operations/getmediaprovidersdirectory.md) | :heavy_minus_sign: | N/A |
|
||||
66
docs/models/operations/features.md
Normal file
66
docs/models/operations/features.md
Normal file
@@ -0,0 +1,66 @@
|
||||
# Features
|
||||
|
||||
|
||||
## Values
|
||||
|
||||
| Name | Value |
|
||||
| --------------------------------------------- | --------------------------------------------- |
|
||||
| `FeaturesAndroidDolbyVision` | Android - Dolby Vision |
|
||||
| `FeaturesAndroidPiP` | Android - PiP |
|
||||
| `FeaturesCuSunset` | CU Sunset |
|
||||
| `FeaturesHrkEnableEur` | HRK_enable_EUR |
|
||||
| `FeaturesTrebleShowFeatures` | TREBLE-show-features |
|
||||
| `FeaturesAdCountdownTimer` | ad-countdown-timer |
|
||||
| `FeaturesAdaptiveBitrate` | adaptive_bitrate |
|
||||
| `FeaturesAmazonLoopDebug` | amazon-loop-debug |
|
||||
| `FeaturesAvodAdAnalysis` | avod-ad-analysis |
|
||||
| `FeaturesAvodNewMedia` | avod-new-media |
|
||||
| `FeaturesBlacklistGetSignin` | blacklist_get_signin |
|
||||
| `FeaturesClientRadioStations` | client-radio-stations |
|
||||
| `FeaturesCloudflareTurnstileRequired` | cloudflare-turnstile-required |
|
||||
| `FeaturesCollections` | collections |
|
||||
| `FeaturesCommentsAndRepliesPushNotifications` | comments_and_replies_push_notifications |
|
||||
| `FeaturesCommunityAccessPlexTv` | community_access_plex_tv |
|
||||
| `FeaturesCompanionsSonos` | companions_sonos |
|
||||
| `FeaturesCustomHomeRemoval` | custom-home-removal |
|
||||
| `FeaturesDisableHomeUserFriendships` | disable_home_user_friendships |
|
||||
| `FeaturesDisableSharingFriendships` | disable_sharing_friendships |
|
||||
| `FeaturesDrmSupport` | drm_support |
|
||||
| `FeaturesExcludeRestrictions` | exclude restrictions |
|
||||
| `FeaturesFederatedAuth` | federated-auth |
|
||||
| `FeaturesFriendRequestPushNotifications` | friend_request_push_notifications |
|
||||
| `FeaturesGuidedUpgrade` | guided-upgrade |
|
||||
| `FeaturesHome` | home |
|
||||
| `FeaturesIncreasePasswordComplexity` | increase-password-complexity |
|
||||
| `FeaturesIos14PrivacyBanner` | ios14-privacy-banner |
|
||||
| `FeaturesIterableNotificationTokens` | iterable-notification-tokens |
|
||||
| `FeaturesKeepPaymentMethod` | keep-payment-method |
|
||||
| `FeaturesKevinBacon` | kevin-bacon |
|
||||
| `FeaturesKoreaConsent` | korea-consent |
|
||||
| `FeaturesLeIsrgRootX1` | le_isrg_root_x1 |
|
||||
| `FeaturesLetsEncrypt` | lets_encrypt |
|
||||
| `FeaturesLightningDvrPivot` | lightning-dvr-pivot |
|
||||
| `FeaturesLiveTvSupportIncompleteSegments` | live-tv-support-incomplete-segments |
|
||||
| `FeaturesLivetv` | livetv |
|
||||
| `FeaturesMetadataSearch` | metadata_search |
|
||||
| `FeaturesNewPlexPassPrices` | new_plex_pass_prices |
|
||||
| `FeaturesNewsProviderSunsetModal` | news-provider-sunset-modal |
|
||||
| `FeaturesPhotosFavorites` | photos-favorites |
|
||||
| `FeaturesPhotosMetadataEdition` | photos-metadata-edition |
|
||||
| `FeaturesPmsHealth` | pms_health |
|
||||
| `FeaturesRadio` | radio |
|
||||
| `FeaturesRateLimitClientToken` | rate-limit-client-token |
|
||||
| `FeaturesScrobblingServicePlexTv` | scrobbling-service-plex-tv |
|
||||
| `FeaturesSharedServerNotification` | shared_server_notification |
|
||||
| `FeaturesSharedSourceNotification` | shared_source_notification |
|
||||
| `FeaturesSigninWithApple` | signin_with_apple |
|
||||
| `FeaturesSpringServeAdProvider` | spring_serve_ad_provider |
|
||||
| `FeaturesTranscoderCache` | transcoder_cache |
|
||||
| `FeaturesTunerSharing` | tuner-sharing |
|
||||
| `FeaturesTwoFactorAuthentication` | two-factor-authentication |
|
||||
| `FeaturesUnsupportedtuners` | unsupportedtuners |
|
||||
| `FeaturesUpgrade3ds2` | upgrade-3ds2 |
|
||||
| `FeaturesVodSchema` | vod-schema |
|
||||
| `FeaturesVodCloudflare` | vod_cloudflare |
|
||||
| `FeaturesWatchTogetherInvite` | watch-together-invite |
|
||||
| `FeaturesWebServerDashboard` | web_server_dashboard |
|
||||
@@ -1,11 +1,12 @@
|
||||
# Filter
|
||||
|
||||
Filters content by field and direction/equality
|
||||
(Unknown if viewedAt is the only supported column)
|
||||
Filter
|
||||
|
||||
|
||||
## Values
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| ----------- | ----------- | ----------- | ----------- |
|
||||
| Name | Value |
|
||||
| ----------------- | ----------------- |
|
||||
| `FilterAll` | all |
|
||||
| `FilterAvailable` | available |
|
||||
| `FilterReleased` | released |
|
||||
@@ -1,10 +1,6 @@
|
||||
# Force
|
||||
|
||||
Force overwriting of duplicate playlists.
|
||||
By default, a playlist file uploaded with the same path will overwrite the existing playlist.
|
||||
The `force` argument is used to disable overwriting.
|
||||
If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.
|
||||
|
||||
Force the refresh even if the library is already being refreshed.
|
||||
|
||||
|
||||
## Values
|
||||
|
||||
19
docs/models/operations/friend.md
Normal file
19
docs/models/operations/friend.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# Friend
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- |
|
||||
| `Email` | *string* | :heavy_check_mark: | The account email address | username@email.com |
|
||||
| `FriendlyName` | *string* | :heavy_check_mark: | The account full name | exampleUser |
|
||||
| `Home` | *bool* | :heavy_check_mark: | If the account is a Plex Home user | |
|
||||
| `ID` | *int* | :heavy_check_mark: | The Plex account ID | |
|
||||
| `Restricted` | **bool* | :heavy_minus_sign: | If the account is a Plex Home managed user | |
|
||||
| `SharedServers` | [][operations.SharedServers](../../models/operations/sharedservers.md) | :heavy_check_mark: | N/A | |
|
||||
| `SharedSources` | [][operations.SharedSources](../../models/operations/sharedsources.md) | :heavy_check_mark: | N/A | |
|
||||
| `Status` | [operations.Status](../../models/operations/status.md) | :heavy_check_mark: | Current friend request status | accepted |
|
||||
| `Thumb` | *string* | :heavy_check_mark: | URL of the account thumbnail | https://plex.tv/users/7d1916e0d8f6e76b/avatar?c=1694481578 |
|
||||
| `Title` | *string* | :heavy_check_mark: | The title of the account (username or friendly name) | username123 |
|
||||
| `Username` | *string* | :heavy_check_mark: | The account username | username123 |
|
||||
| `UUID` | *string* | :heavy_check_mark: | The account Universally Unique Identifier (UUID) | 7d1916e0d8f6e76b |
|
||||
20
docs/models/operations/geodata.md
Normal file
20
docs/models/operations/geodata.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# GeoData
|
||||
|
||||
Geo location data
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- |
|
||||
| `Code` | *string* | :heavy_check_mark: | The ISO 3166-1 alpha-2 code of the country. | VI |
|
||||
| `ContinentCode` | *string* | :heavy_check_mark: | The continent code where the country is located. | NA |
|
||||
| `Country` | *string* | :heavy_check_mark: | The official name of the country. | United States Virgin Islands |
|
||||
| `City` | *string* | :heavy_check_mark: | The name of the city. | Amsterdam |
|
||||
| `EuropeanUnionMember` | **bool* | :heavy_minus_sign: | Indicates if the country is a member of the European Union. | true |
|
||||
| `TimeZone` | *string* | :heavy_check_mark: | The time zone of the country. | America/St_Thomas |
|
||||
| `PostalCode` | *string* | :heavy_check_mark: | The postal code of the location. | 802 |
|
||||
| `InPrivacyRestrictedCountry` | **bool* | :heavy_minus_sign: | Indicates if the country has privacy restrictions. | true |
|
||||
| `InPrivacyRestrictedRegion` | **bool* | :heavy_minus_sign: | Indicates if the region has privacy restrictions. | true |
|
||||
| `Subdivisions` | *string* | :heavy_check_mark: | The name of the primary administrative subdivision. | Saint Thomas |
|
||||
| `Coordinates` | *string* | :heavy_check_mark: | The geographical coordinates (latitude, longitude) of the location. | 18.3381, -64.8941 |
|
||||
28
docs/models/operations/getalllibrariesdirectory.md
Normal file
28
docs/models/operations/getalllibrariesdirectory.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# GetAllLibrariesDirectory
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
|
||||
| `AllowSync` | *bool* | :heavy_check_mark: | N/A | true |
|
||||
| `Art` | *string* | :heavy_check_mark: | N/A | /:/resources/movie-fanart.jpg |
|
||||
| `Composite` | *string* | :heavy_check_mark: | N/A | /library/sections/1/composite/1705615584 |
|
||||
| `Filters` | *bool* | :heavy_check_mark: | N/A | true |
|
||||
| `Refreshing` | *bool* | :heavy_check_mark: | N/A | false |
|
||||
| `Thumb` | *string* | :heavy_check_mark: | N/A | /:/resources/movie.png |
|
||||
| `Key` | *string* | :heavy_check_mark: | N/A | 1 |
|
||||
| `Type` | *string* | :heavy_check_mark: | N/A | movie |
|
||||
| `Title` | *string* | :heavy_check_mark: | N/A | Movies |
|
||||
| `Agent` | *string* | :heavy_check_mark: | N/A | tv.plex.agents.movie |
|
||||
| `Scanner` | *string* | :heavy_check_mark: | N/A | Plex Movie |
|
||||
| `Language` | *string* | :heavy_check_mark: | N/A | en-US |
|
||||
| `UUID` | *string* | :heavy_check_mark: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 |
|
||||
| `UpdatedAt` | *int64* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 |
|
||||
| `CreatedAt` | *int64* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 |
|
||||
| `ScannedAt` | *int64* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 |
|
||||
| `Content` | *bool* | :heavy_check_mark: | N/A | true |
|
||||
| `Directory` | *bool* | :heavy_check_mark: | N/A | true |
|
||||
| `ContentChangedAt` | *int* | :heavy_check_mark: | N/A | 3192854 |
|
||||
| `Hidden` | *int* | :heavy_check_mark: | N/A | 0 |
|
||||
| `Location` | [][operations.Location](../../models/operations/location.md) | :heavy_check_mark: | N/A | |
|
||||
11
docs/models/operations/getalllibrariesmediacontainer.md
Normal file
11
docs/models/operations/getalllibrariesmediacontainer.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# GetAllLibrariesMediaContainer
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
|
||||
| `Size` | *int* | :heavy_check_mark: | N/A | 5 |
|
||||
| `AllowSync` | *bool* | :heavy_check_mark: | N/A | false |
|
||||
| `Title1` | *string* | :heavy_check_mark: | N/A | Plex Library |
|
||||
| `Directory` | [][operations.GetAllLibrariesDirectory](../../models/operations/getalllibrariesdirectory.md) | :heavy_check_mark: | N/A | |
|
||||
11
docs/models/operations/getalllibrariesresponse.md
Normal file
11
docs/models/operations/getalllibrariesresponse.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# GetAllLibrariesResponse
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
|
||||
| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
|
||||
| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation |
|
||||
| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
|
||||
| `Object` | [*operations.GetAllLibrariesResponseBody](../../models/operations/getalllibrariesresponsebody.md) | :heavy_minus_sign: | The libraries available on the Server |
|
||||
10
docs/models/operations/getalllibrariesresponsebody.md
Normal file
10
docs/models/operations/getalllibrariesresponsebody.md
Normal file
@@ -0,0 +1,10 @@
|
||||
# GetAllLibrariesResponseBody
|
||||
|
||||
The libraries available on the Server
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
|
||||
| `MediaContainer` | [operations.GetAllLibrariesMediaContainer](../../models/operations/getalllibrariesmediacontainer.md) | :heavy_check_mark: | N/A |
|
||||
13
docs/models/operations/getbannerimagerequest.md
Normal file
13
docs/models/operations/getbannerimagerequest.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# GetBannerImageRequest
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- |
|
||||
| `RatingKey` | *int64* | :heavy_check_mark: | the id of the library item to return the children of. | 9518 |
|
||||
| `Width` | *int64* | :heavy_check_mark: | N/A | 396 |
|
||||
| `Height` | *int64* | :heavy_check_mark: | N/A | 396 |
|
||||
| `MinSize` | *int64* | :heavy_check_mark: | N/A | 1 |
|
||||
| `Upscale` | *int64* | :heavy_check_mark: | N/A | 1 |
|
||||
| `XPlexToken` | *string* | :heavy_check_mark: | Plex Authentication Token | CV5xoxjTpFKUzBTShsaf |
|
||||
12
docs/models/operations/getbannerimageresponse.md
Normal file
12
docs/models/operations/getbannerimageresponse.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# GetBannerImageResponse
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- |
|
||||
| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
|
||||
| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation |
|
||||
| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
|
||||
| `ResponseStream` | *io.ReadCloser* | :heavy_minus_sign: | Successful response returning an image |
|
||||
| `Headers` | map[string][]*string* | :heavy_check_mark: | N/A |
|
||||
11
docs/models/operations/getcompanionsdataresponse.md
Normal file
11
docs/models/operations/getcompanionsdataresponse.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# GetCompanionsDataResponse
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- |
|
||||
| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
|
||||
| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation |
|
||||
| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
|
||||
| `ResponseBodies` | [][operations.ResponseBody](../../models/operations/responsebody.md) | :heavy_minus_sign: | Companions Data |
|
||||
20
docs/models/operations/getgeodatageodata.md
Normal file
20
docs/models/operations/getgeodatageodata.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# GetGeoDataGeoData
|
||||
|
||||
Geo location data
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- |
|
||||
| `Code` | *string* | :heavy_check_mark: | The ISO 3166-1 alpha-2 code of the country. | VI |
|
||||
| `ContinentCode` | *string* | :heavy_check_mark: | The continent code where the country is located. | NA |
|
||||
| `Country` | *string* | :heavy_check_mark: | The official name of the country. | United States Virgin Islands |
|
||||
| `City` | *string* | :heavy_check_mark: | The name of the city. | Amsterdam |
|
||||
| `EuropeanUnionMember` | **bool* | :heavy_minus_sign: | Indicates if the country is a member of the European Union. | true |
|
||||
| `TimeZone` | *string* | :heavy_check_mark: | The time zone of the country. | America/St_Thomas |
|
||||
| `PostalCode` | *string* | :heavy_check_mark: | The postal code of the location. | 802 |
|
||||
| `InPrivacyRestrictedCountry` | **bool* | :heavy_minus_sign: | Indicates if the country has privacy restrictions. | true |
|
||||
| `InPrivacyRestrictedRegion` | **bool* | :heavy_minus_sign: | Indicates if the region has privacy restrictions. | true |
|
||||
| `Subdivisions` | *string* | :heavy_check_mark: | The name of the primary administrative subdivision. | Saint Thomas |
|
||||
| `Coordinates` | *string* | :heavy_check_mark: | The geographical coordinates (latitude, longitude) of the location. | 18.3381, -64.8941 |
|
||||
@@ -1,21 +1,11 @@
|
||||
# GetPinResponseBody
|
||||
|
||||
The Pin
|
||||
# GetGeoDataResponse
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `ID` | **float64* | :heavy_minus_sign: | PinID for use with authentication | 1272322473 |
|
||||
| `Code` | **string* | :heavy_minus_sign: | N/A | 3patfx1a78ukcbr7x0n9bl26t |
|
||||
| `Product` | **string* | :heavy_minus_sign: | N/A | Plex Web |
|
||||
| `Trusted` | **bool* | :heavy_minus_sign: | N/A | |
|
||||
| `Qr` | **string* | :heavy_minus_sign: | a link to a QR code hosted on plex.tv <br/>The QR code redirects to the relevant `plex.tv/link` authentication page<br/>Which then prompts the user for the 4 Digit Link Pin<br/> | https://plex.tv/api/v2/pins/qr/3patfx1a78ukcbr7x0n9bl26t |
|
||||
| `ClientIdentifier` | **string* | :heavy_minus_sign: | N/A | Postman |
|
||||
| `Location` | [*operations.Location](../../models/operations/location.md) | :heavy_minus_sign: | N/A | |
|
||||
| `ExpiresIn` | **float64* | :heavy_minus_sign: | N/A | 1800 |
|
||||
| `CreatedAt` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A | 2023-04-12 17:00:03 +0000 UTC |
|
||||
| `ExpiresAt` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A | 2023-04-12 17:30:03 +0000 UTC |
|
||||
| `AuthToken` | **string* | :heavy_minus_sign: | N/A | |
|
||||
| `NewRegistration` | **bool* | :heavy_minus_sign: | N/A | |
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation | |
|
||||
| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation | |
|
||||
| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | |
|
||||
| `GeoData` | [*operations.GetGeoDataGeoData](../../models/operations/getgeodatageodata.md) | :heavy_minus_sign: | Gets the geo location data of the user | {<br/>"code": "VI",<br/>"continent_code": "NA",<br/>"country": "United States Virgin Islands",<br/>"city": "Amsterdam",<br/>"european_union_member": true,<br/>"time_zone": "America/St_Thomas",<br/>"postal_code": 802,<br/>"in_privacy_restricted_country": true,<br/>"in_privacy_restricted_region": true,<br/>"subdivisions": "Saint Thomas",<br/>"coordinates": "18.3381, -64.8941"<br/>} |
|
||||
@@ -1,28 +0,0 @@
|
||||
# GetLibrariesDirectory
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
|
||||
| `AllowSync` | **bool* | :heavy_minus_sign: | N/A | true |
|
||||
| `Art` | **string* | :heavy_minus_sign: | N/A | /:/resources/movie-fanart.jpg |
|
||||
| `Composite` | **string* | :heavy_minus_sign: | N/A | /library/sections/1/composite/1705615584 |
|
||||
| `Filters` | **bool* | :heavy_minus_sign: | N/A | true |
|
||||
| `Refreshing` | **bool* | :heavy_minus_sign: | N/A | false |
|
||||
| `Thumb` | **string* | :heavy_minus_sign: | N/A | /:/resources/movie.png |
|
||||
| `Key` | **string* | :heavy_minus_sign: | N/A | 1 |
|
||||
| `Type` | **string* | :heavy_minus_sign: | N/A | movie |
|
||||
| `Title` | **string* | :heavy_minus_sign: | N/A | Movies |
|
||||
| `Agent` | **string* | :heavy_minus_sign: | N/A | tv.plex.agents.movie |
|
||||
| `Scanner` | **string* | :heavy_minus_sign: | N/A | Plex Movie |
|
||||
| `Language` | **string* | :heavy_minus_sign: | N/A | en-US |
|
||||
| `UUID` | **string* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 |
|
||||
| `UpdatedAt` | **int* | :heavy_minus_sign: | N/A | 1705615634 |
|
||||
| `CreatedAt` | **int* | :heavy_minus_sign: | N/A | 1654131312 |
|
||||
| `ScannedAt` | **int* | :heavy_minus_sign: | N/A | 1705615584 |
|
||||
| `Content` | **bool* | :heavy_minus_sign: | N/A | true |
|
||||
| `Directory` | **bool* | :heavy_minus_sign: | N/A | true |
|
||||
| `ContentChangedAt` | **int* | :heavy_minus_sign: | N/A | 3192854 |
|
||||
| `Hidden` | **int* | :heavy_minus_sign: | N/A | 0 |
|
||||
| `Location` | [][operations.GetLibrariesLocation](../../models/operations/getlibrarieslocation.md) | :heavy_minus_sign: | N/A | |
|
||||
@@ -1,9 +0,0 @@
|
||||
# GetLibrariesLocation
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
|
||||
| `ID` | **int* | :heavy_minus_sign: | N/A | 1 |
|
||||
| `Path` | **string* | :heavy_minus_sign: | N/A | /movies |
|
||||
@@ -1,11 +0,0 @@
|
||||
# GetLibrariesMediaContainer
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
|
||||
| `Size` | **int* | :heavy_minus_sign: | N/A | 5 |
|
||||
| `AllowSync` | **bool* | :heavy_minus_sign: | N/A | false |
|
||||
| `Title1` | **string* | :heavy_minus_sign: | N/A | Plex Library |
|
||||
| `Directory` | [][operations.GetLibrariesDirectory](../../models/operations/getlibrariesdirectory.md) | :heavy_minus_sign: | N/A | |
|
||||
@@ -1,11 +0,0 @@
|
||||
# GetLibrariesResponse
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
|
||||
| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
|
||||
| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation |
|
||||
| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
|
||||
| `Object` | [*operations.GetLibrariesResponseBody](../../models/operations/getlibrariesresponsebody.md) | :heavy_minus_sign: | The libraries available on the Server |
|
||||
@@ -1,10 +0,0 @@
|
||||
# GetLibrariesResponseBody
|
||||
|
||||
The libraries available on the Server
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
|
||||
| `MediaContainer` | [*operations.GetLibrariesMediaContainer](../../models/operations/getlibrariesmediacontainer.md) | :heavy_minus_sign: | N/A |
|
||||
@@ -1,4 +1,4 @@
|
||||
# GetLibraryDirectory
|
||||
# GetLibraryDetailsDirectory
|
||||
|
||||
|
||||
## Fields
|
||||
@@ -1,4 +1,4 @@
|
||||
# GetLibraryFilter
|
||||
# GetLibraryDetailsFilter
|
||||
|
||||
|
||||
## Fields
|
||||
22
docs/models/operations/getlibrarydetailsmediacontainer.md
Normal file
22
docs/models/operations/getlibrarydetailsmediacontainer.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# GetLibraryDetailsMediaContainer
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
|
||||
| `Size` | **int* | :heavy_minus_sign: | N/A | 29 |
|
||||
| `AllowSync` | **bool* | :heavy_minus_sign: | N/A | false |
|
||||
| `Art` | **string* | :heavy_minus_sign: | N/A | /:/resources/movie-fanart.jpg |
|
||||
| `Content` | **string* | :heavy_minus_sign: | N/A | secondary |
|
||||
| `Identifier` | **string* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
|
||||
| `LibrarySectionID` | **int* | :heavy_minus_sign: | N/A | 1 |
|
||||
| `MediaTagPrefix` | **string* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |
|
||||
| `MediaTagVersion` | **int* | :heavy_minus_sign: | N/A | 1701731894 |
|
||||
| `Thumb` | **string* | :heavy_minus_sign: | N/A | /:/resources/movie.png |
|
||||
| `Title1` | **string* | :heavy_minus_sign: | N/A | Movies |
|
||||
| `ViewGroup` | **string* | :heavy_minus_sign: | N/A | secondary |
|
||||
| `ViewMode` | **int* | :heavy_minus_sign: | N/A | 65592 |
|
||||
| `Directory` | [][operations.GetLibraryDetailsDirectory](../../models/operations/getlibrarydetailsdirectory.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Type` | [][operations.GetLibraryDetailsType](../../models/operations/getlibrarydetailstype.md) | :heavy_minus_sign: | N/A | |
|
||||
| `FieldType` | [][operations.FieldType](../../models/operations/fieldtype.md) | :heavy_minus_sign: | N/A | |
|
||||
@@ -1,9 +1,9 @@
|
||||
# GetLibraryRequest
|
||||
# GetLibraryDetailsRequest
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `SectionID` | *float64* | :heavy_check_mark: | the Id of the library to query | 1000 |
|
||||
| `SectionKey` | *int* | :heavy_check_mark: | The unique key of the Plex library. <br/>Note: This is unique in the context of the Plex server.<br/> | 9518 |
|
||||
| `IncludeDetails` | [*operations.IncludeDetails](../../models/operations/includedetails.md) | :heavy_minus_sign: | Whether or not to include details for a section (types, filters, and sorts). <br/>Only exists for backwards compatibility, media providers other than the server libraries have it on always.<br/> | |
|
||||
11
docs/models/operations/getlibrarydetailsresponse.md
Normal file
11
docs/models/operations/getlibrarydetailsresponse.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# GetLibraryDetailsResponse
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
|
||||
| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
|
||||
| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation |
|
||||
| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
|
||||
| `Object` | [*operations.GetLibraryDetailsResponseBody](../../models/operations/getlibrarydetailsresponsebody.md) | :heavy_minus_sign: | The details of the library |
|
||||
10
docs/models/operations/getlibrarydetailsresponsebody.md
Normal file
10
docs/models/operations/getlibrarydetailsresponsebody.md
Normal file
@@ -0,0 +1,10 @@
|
||||
# GetLibraryDetailsResponseBody
|
||||
|
||||
The details of the library
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
|
||||
| `MediaContainer` | [*operations.GetLibraryDetailsMediaContainer](../../models/operations/getlibrarydetailsmediacontainer.md) | :heavy_minus_sign: | N/A |
|
||||
14
docs/models/operations/getlibrarydetailstype.md
Normal file
14
docs/models/operations/getlibrarydetailstype.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# GetLibraryDetailsType
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
|
||||
| `Key` | **string* | :heavy_minus_sign: | N/A | /library/sections/1/all?type=1 |
|
||||
| `Type` | **string* | :heavy_minus_sign: | N/A | movie |
|
||||
| `Title` | **string* | :heavy_minus_sign: | N/A | Movies |
|
||||
| `Active` | **bool* | :heavy_minus_sign: | N/A | false |
|
||||
| `Filter` | [][operations.GetLibraryDetailsFilter](../../models/operations/getlibrarydetailsfilter.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Sort` | [][operations.Sort](../../models/operations/sort.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Field` | [][operations.Field](../../models/operations/field.md) | :heavy_minus_sign: | N/A | |
|
||||
11
docs/models/operations/getlibraryitemsfield.md
Normal file
11
docs/models/operations/getlibraryitemsfield.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# GetLibraryItemsField
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
|
||||
| `Key` | *string* | :heavy_check_mark: | N/A | show.title |
|
||||
| `Title` | *string* | :heavy_check_mark: | N/A | Show Title |
|
||||
| `Type` | *string* | :heavy_check_mark: | N/A | string |
|
||||
| `SubType` | **string* | :heavy_minus_sign: | N/A | rating |
|
||||
9
docs/models/operations/getlibraryitemsfieldtype.md
Normal file
9
docs/models/operations/getlibraryitemsfieldtype.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# GetLibraryItemsFieldType
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
|
||||
| `Type` | *string* | :heavy_check_mark: | N/A | tag |
|
||||
| `Operator` | [][operations.GetLibraryItemsOperator](../../models/operations/getlibraryitemsoperator.md) | :heavy_check_mark: | N/A | |
|
||||
12
docs/models/operations/getlibraryitemsfilter.md
Normal file
12
docs/models/operations/getlibraryitemsfilter.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# GetLibraryItemsFilter
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- |
|
||||
| `Filter` | *string* | :heavy_check_mark: | N/A | genre |
|
||||
| `FilterType` | *string* | :heavy_check_mark: | N/A | string |
|
||||
| `Key` | *string* | :heavy_check_mark: | N/A | /library/sections/2/genre?type=2 |
|
||||
| `Title` | *string* | :heavy_check_mark: | N/A | Genre |
|
||||
| `Type` | *string* | :heavy_check_mark: | N/A | filter |
|
||||
@@ -3,21 +3,22 @@
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
|
||||
| `Size` | **int* | :heavy_minus_sign: | N/A | 70 |
|
||||
| `AllowSync` | **bool* | :heavy_minus_sign: | N/A | true |
|
||||
| `Art` | **string* | :heavy_minus_sign: | N/A | /:/resources/movie-fanart.jpg |
|
||||
| `Identifier` | **string* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
|
||||
| `LibrarySectionID` | [*operations.LibrarySectionID](../../models/operations/librarysectionid.md) | :heavy_minus_sign: | N/A | |
|
||||
| `LibrarySectionTitle` | **string* | :heavy_minus_sign: | N/A | Movies |
|
||||
| `LibrarySectionUUID` | **string* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 |
|
||||
| `MediaTagPrefix` | **string* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |
|
||||
| `MediaTagVersion` | **int* | :heavy_minus_sign: | N/A | 1701731894 |
|
||||
| `Thumb` | **string* | :heavy_minus_sign: | N/A | /:/resources/movie.png |
|
||||
| `Title1` | **string* | :heavy_minus_sign: | N/A | Movies |
|
||||
| `Title2` | **string* | :heavy_minus_sign: | N/A | Recently Released |
|
||||
| `ViewGroup` | **string* | :heavy_minus_sign: | N/A | movie |
|
||||
| `ViewMode` | **int* | :heavy_minus_sign: | N/A | 65592 |
|
||||
| `MixedParents` | **bool* | :heavy_minus_sign: | N/A | true |
|
||||
| `Metadata` | [][operations.GetLibraryItemsMetadata](../../models/operations/getlibraryitemsmetadata.md) | :heavy_minus_sign: | N/A | |
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
|
||||
| `Size` | *int* | :heavy_check_mark: | N/A | 70 |
|
||||
| `AllowSync` | *bool* | :heavy_check_mark: | N/A | true |
|
||||
| `Art` | *string* | :heavy_check_mark: | N/A | /:/resources/movie-fanart.jpg |
|
||||
| `Identifier` | *string* | :heavy_check_mark: | N/A | com.plexapp.plugins.library |
|
||||
| `LibrarySectionID` | [operations.LibrarySectionID](../../models/operations/librarysectionid.md) | :heavy_check_mark: | N/A | |
|
||||
| `LibrarySectionTitle` | *string* | :heavy_check_mark: | N/A | Movies |
|
||||
| `LibrarySectionUUID` | *string* | :heavy_check_mark: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 |
|
||||
| `MediaTagPrefix` | *string* | :heavy_check_mark: | N/A | /system/bundle/media/flags/ |
|
||||
| `MediaTagVersion` | *int* | :heavy_check_mark: | N/A | 1701731894 |
|
||||
| `Thumb` | *string* | :heavy_check_mark: | N/A | /:/resources/movie.png |
|
||||
| `Title1` | *string* | :heavy_check_mark: | N/A | Movies |
|
||||
| `Title2` | *string* | :heavy_check_mark: | N/A | Recently Released |
|
||||
| `ViewGroup` | *string* | :heavy_check_mark: | N/A | movie |
|
||||
| `ViewMode` | **int* | :heavy_minus_sign: | N/A | 65592 |
|
||||
| `MixedParents` | **bool* | :heavy_minus_sign: | N/A | true |
|
||||
| `Metadata` | [][operations.GetLibraryItemsMetadata](../../models/operations/getlibraryitemsmetadata.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Meta` | [*operations.Meta](../../models/operations/meta.md) | :heavy_minus_sign: | The Meta object is only included in the response if the `includeMeta` parameter is set to `1`.<br/> | |
|
||||
@@ -5,21 +5,21 @@
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `RatingKey` | **string* | :heavy_minus_sign: | N/A | 58683 |
|
||||
| `Key` | **string* | :heavy_minus_sign: | N/A | /library/metadata/58683 |
|
||||
| `GUID` | **string* | :heavy_minus_sign: | N/A | plex://movie/5d7768ba96b655001fdc0408 |
|
||||
| `RatingKey` | *string* | :heavy_check_mark: | N/A | 58683 |
|
||||
| `Key` | *string* | :heavy_check_mark: | N/A | /library/metadata/58683 |
|
||||
| `GUID` | *string* | :heavy_check_mark: | N/A | plex://movie/5d7768ba96b655001fdc0408 |
|
||||
| `Studio` | **string* | :heavy_minus_sign: | N/A | 20th Century Studios |
|
||||
| `Type` | **string* | :heavy_minus_sign: | N/A | movie |
|
||||
| `Title` | **string* | :heavy_minus_sign: | N/A | Avatar: The Way of Water |
|
||||
| `Type` | *string* | :heavy_check_mark: | N/A | movie |
|
||||
| `Title` | *string* | :heavy_check_mark: | N/A | Avatar: The Way of Water |
|
||||
| `ContentRating` | **string* | :heavy_minus_sign: | N/A | PG-13 |
|
||||
| `Summary` | **string* | :heavy_minus_sign: | N/A | Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home. |
|
||||
| `Rating` | **float64* | :heavy_minus_sign: | N/A | 7.6 |
|
||||
| `AudienceRating` | **float64* | :heavy_minus_sign: | N/A | 9.2 |
|
||||
| `Year` | **int* | :heavy_minus_sign: | N/A | 2022 |
|
||||
| `Year` | *int* | :heavy_check_mark: | N/A | 2022 |
|
||||
| `Tagline` | **string* | :heavy_minus_sign: | N/A | Return to Pandora. |
|
||||
| `Thumb` | **string* | :heavy_minus_sign: | N/A | /library/metadata/58683/thumb/1703239236 |
|
||||
| `Art` | **string* | :heavy_minus_sign: | N/A | /library/metadata/58683/art/1703239236 |
|
||||
| `Duration` | **int* | :heavy_minus_sign: | N/A | 11558112 |
|
||||
| `Duration` | *int* | :heavy_check_mark: | N/A | 11558112 |
|
||||
| `OriginallyAvailableAt` | [*types.Date](../../types/date.md) | :heavy_minus_sign: | N/A | 2022-12-14 00:00:00 +0000 UTC |
|
||||
| `AddedAt` | **int* | :heavy_minus_sign: | N/A | 1680457607 |
|
||||
| `UpdatedAt` | **int* | :heavy_minus_sign: | N/A | 1703239236 |
|
||||
@@ -34,12 +34,13 @@
|
||||
| `GrandparentThumb` | **string* | :heavy_minus_sign: | N/A | /library/metadata/66/thumb/1705716261 |
|
||||
| `GrandparentArt` | **string* | :heavy_minus_sign: | N/A | /library/metadata/66/art/1705716261 |
|
||||
| `GrandparentTheme` | **string* | :heavy_minus_sign: | N/A | /library/metadata/66/theme/1705716261 |
|
||||
| `Media` | [][operations.GetLibraryItemsMedia](../../models/operations/getlibraryitemsmedia.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Media` | [][operations.GetLibraryItemsMedia](../../models/operations/getlibraryitemsmedia.md) | :heavy_check_mark: | N/A | |
|
||||
| `Genre` | [][operations.GetLibraryItemsGenre](../../models/operations/getlibraryitemsgenre.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Country` | [][operations.GetLibraryItemsCountry](../../models/operations/getlibraryitemscountry.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Director` | [][operations.GetLibraryItemsDirector](../../models/operations/getlibraryitemsdirector.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Writer` | [][operations.GetLibraryItemsWriter](../../models/operations/getlibraryitemswriter.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Role` | [][operations.GetLibraryItemsRole](../../models/operations/getlibraryitemsrole.md) | :heavy_minus_sign: | N/A | |
|
||||
| `MediaGUID` | [][operations.MediaGUID](../../models/operations/mediaguid.md) | :heavy_minus_sign: | The Guid object is only included in the response if the `includeGuids` parameter is set to `1`.<br/> | |
|
||||
| `TitleSort` | **string* | :heavy_minus_sign: | N/A | Whale |
|
||||
| `ViewCount` | **int* | :heavy_minus_sign: | N/A | 1 |
|
||||
| `LastViewedAt` | **int* | :heavy_minus_sign: | N/A | 1682752242 |
|
||||
|
||||
9
docs/models/operations/getlibraryitemsoperator.md
Normal file
9
docs/models/operations/getlibraryitemsoperator.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# GetLibraryItemsOperator
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
|
||||
| `Key` | *string* | :heavy_check_mark: | N/A | = |
|
||||
| `Title` | *string* | :heavy_check_mark: | N/A | is |
|
||||
@@ -3,8 +3,12 @@
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- |
|
||||
| `SectionID` | *any* | :heavy_check_mark: | the Id of the library to query | |
|
||||
| `Tag` | [operations.Tag](../../models/operations/tag.md) | :heavy_check_mark: | A key representing a specific tag within the section. | |
|
||||
| `IncludeGuids` | **int64* | :heavy_minus_sign: | Adds the Guids object to the response<br/> | 1 |
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `SectionKey` | *int* | :heavy_check_mark: | The unique key of the Plex library. <br/>Note: This is unique in the context of the Plex server.<br/> | 9518 |
|
||||
| `Tag` | [operations.Tag](../../models/operations/tag.md) | :heavy_check_mark: | A key representing a specific tag within the section. | |
|
||||
| `IncludeGuids` | [*operations.IncludeGuids](../../models/operations/includeguids.md) | :heavy_minus_sign: | Adds the Guids object to the response<br/> | 1 |
|
||||
| `IncludeMeta` | [*operations.IncludeMeta](../../models/operations/includemeta.md) | :heavy_minus_sign: | Adds the Meta object to the response<br/> | 1 |
|
||||
| `Type` | [operations.Type](../../models/operations/type.md) | :heavy_check_mark: | The type of media to retrieve.<br/>1 = movie<br/>2 = show<br/>3 = season<br/>4 = episode<br/>E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries<br/> | 2 |
|
||||
| `XPlexContainerStart` | **int* | :heavy_minus_sign: | The index of the first item to return. If not specified, the first item will be returned.<br/>If the number of items exceeds the limit, the response will be paginated.<br/>By default this is 0<br/> | 0 |
|
||||
| `XPlexContainerSize` | **int* | :heavy_minus_sign: | The number of items to return. If not specified, all items will be returned.<br/>If the number of items exceeds the limit, the response will be paginated.<br/>By default this is 50<br/> | 50 |
|
||||
13
docs/models/operations/getlibraryitemssort.md
Normal file
13
docs/models/operations/getlibraryitemssort.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# GetLibraryItemsSort
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- |
|
||||
| `Default` | **string* | :heavy_minus_sign: | N/A | asc |
|
||||
| `DefaultDirection` | *string* | :heavy_check_mark: | N/A | asc |
|
||||
| `DescKey` | **string* | :heavy_minus_sign: | N/A | titleSort:desc |
|
||||
| `FirstCharacterKey` | **string* | :heavy_minus_sign: | N/A | /library/sections/2/firstCharacter |
|
||||
| `Key` | *string* | :heavy_check_mark: | N/A | titleSort |
|
||||
| `Title` | *string* | :heavy_check_mark: | N/A | Title |
|
||||
14
docs/models/operations/getlibraryitemstype.md
Normal file
14
docs/models/operations/getlibraryitemstype.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# GetLibraryItemsType
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
|
||||
| `Key` | *string* | :heavy_check_mark: | N/A | /library/sections/2/all?type=2 |
|
||||
| `Type` | *string* | :heavy_check_mark: | N/A | show |
|
||||
| `Title` | *string* | :heavy_check_mark: | N/A | TV Shows |
|
||||
| `Active` | *bool* | :heavy_check_mark: | N/A | false |
|
||||
| `Filter` | [][operations.GetLibraryItemsFilter](../../models/operations/getlibraryitemsfilter.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Sort` | [][operations.GetLibraryItemsSort](../../models/operations/getlibraryitemssort.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Field` | [][operations.GetLibraryItemsField](../../models/operations/getlibraryitemsfield.md) | :heavy_minus_sign: | N/A | |
|
||||
@@ -1,22 +0,0 @@
|
||||
# GetLibraryMediaContainer
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
|
||||
| `Size` | **int* | :heavy_minus_sign: | N/A | 29 |
|
||||
| `AllowSync` | **bool* | :heavy_minus_sign: | N/A | false |
|
||||
| `Art` | **string* | :heavy_minus_sign: | N/A | /:/resources/movie-fanart.jpg |
|
||||
| `Content` | **string* | :heavy_minus_sign: | N/A | secondary |
|
||||
| `Identifier` | **string* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
|
||||
| `LibrarySectionID` | **int* | :heavy_minus_sign: | N/A | 1 |
|
||||
| `MediaTagPrefix` | **string* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |
|
||||
| `MediaTagVersion` | **int* | :heavy_minus_sign: | N/A | 1701731894 |
|
||||
| `Thumb` | **string* | :heavy_minus_sign: | N/A | /:/resources/movie.png |
|
||||
| `Title1` | **string* | :heavy_minus_sign: | N/A | Movies |
|
||||
| `ViewGroup` | **string* | :heavy_minus_sign: | N/A | secondary |
|
||||
| `ViewMode` | **int* | :heavy_minus_sign: | N/A | 65592 |
|
||||
| `Directory` | [][operations.GetLibraryDirectory](../../models/operations/getlibrarydirectory.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Type` | [][operations.GetLibraryType](../../models/operations/getlibrarytype.md) | :heavy_minus_sign: | N/A | |
|
||||
| `FieldType` | [][operations.FieldType](../../models/operations/fieldtype.md) | :heavy_minus_sign: | N/A | |
|
||||
@@ -1,11 +0,0 @@
|
||||
# GetLibraryResponse
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
|
||||
| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
|
||||
| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation |
|
||||
| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
|
||||
| `Object` | [*operations.GetLibraryResponseBody](../../models/operations/getlibraryresponsebody.md) | :heavy_minus_sign: | The details of the library |
|
||||
@@ -1,10 +0,0 @@
|
||||
# GetLibraryResponseBody
|
||||
|
||||
The details of the library
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
|
||||
| `MediaContainer` | [*operations.GetLibraryMediaContainer](../../models/operations/getlibrarymediacontainer.md) | :heavy_minus_sign: | N/A |
|
||||
@@ -1,14 +0,0 @@
|
||||
# GetLibraryType
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
|
||||
| `Key` | **string* | :heavy_minus_sign: | N/A | /library/sections/1/all?type=1 |
|
||||
| `Type` | **string* | :heavy_minus_sign: | N/A | movie |
|
||||
| `Title` | **string* | :heavy_minus_sign: | N/A | Movies |
|
||||
| `Active` | **bool* | :heavy_minus_sign: | N/A | false |
|
||||
| `Filter` | [][operations.GetLibraryFilter](../../models/operations/getlibraryfilter.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Sort` | [][operations.Sort](../../models/operations/sort.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Field` | [][operations.Field](../../models/operations/field.md) | :heavy_minus_sign: | N/A | |
|
||||
21
docs/models/operations/getmediaprovidersdirectory.md
Normal file
21
docs/models/operations/getmediaprovidersdirectory.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# GetMediaProvidersDirectory
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ |
|
||||
| `HubKey` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `Title` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `Agent` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `Language` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `Refreshing` | **bool* | :heavy_minus_sign: | N/A |
|
||||
| `Scanner` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `UUID` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `ID` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `Key` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `Type` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `Subtype` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `UpdatedAt` | **int64* | :heavy_minus_sign: | N/A |
|
||||
| `ScannedAt` | **int64* | :heavy_minus_sign: | N/A |
|
||||
| `Pivot` | [][operations.Pivot](../../models/operations/pivot.md) | :heavy_minus_sign: | N/A |
|
||||
51
docs/models/operations/getmediaprovidersmediacontainer.md
Normal file
51
docs/models/operations/getmediaprovidersmediacontainer.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# GetMediaProvidersMediaContainer
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- |
|
||||
| `Size` | **int64* | :heavy_minus_sign: | N/A |
|
||||
| `AllowCameraUpload` | **bool* | :heavy_minus_sign: | N/A |
|
||||
| `AllowChannelAccess` | **bool* | :heavy_minus_sign: | N/A |
|
||||
| `AllowSharing` | **bool* | :heavy_minus_sign: | N/A |
|
||||
| `AllowSync` | **bool* | :heavy_minus_sign: | N/A |
|
||||
| `AllowTuners` | **bool* | :heavy_minus_sign: | N/A |
|
||||
| `BackgroundProcessing` | **bool* | :heavy_minus_sign: | N/A |
|
||||
| `Certificate` | **bool* | :heavy_minus_sign: | N/A |
|
||||
| `CompanionProxy` | **bool* | :heavy_minus_sign: | N/A |
|
||||
| `CountryCode` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `Diagnostics` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `EventStream` | **bool* | :heavy_minus_sign: | N/A |
|
||||
| `FriendlyName` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `Livetv` | **int64* | :heavy_minus_sign: | N/A |
|
||||
| `MachineIdentifier` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `MusicAnalysis` | **int64* | :heavy_minus_sign: | N/A |
|
||||
| `MyPlex` | **bool* | :heavy_minus_sign: | N/A |
|
||||
| `MyPlexMappingState` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `MyPlexSigninState` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `MyPlexSubscription` | **bool* | :heavy_minus_sign: | N/A |
|
||||
| `MyPlexUsername` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `OfflineTranscode` | **int64* | :heavy_minus_sign: | N/A |
|
||||
| `OwnerFeatures` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `Platform` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `PlatformVersion` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `PluginHost` | **bool* | :heavy_minus_sign: | N/A |
|
||||
| `PushNotifications` | **bool* | :heavy_minus_sign: | N/A |
|
||||
| `ReadOnlyLibraries` | **bool* | :heavy_minus_sign: | N/A |
|
||||
| `StreamingBrainABRVersion` | **int64* | :heavy_minus_sign: | N/A |
|
||||
| `StreamingBrainVersion` | **int64* | :heavy_minus_sign: | N/A |
|
||||
| `Sync` | **bool* | :heavy_minus_sign: | N/A |
|
||||
| `TranscoderActiveVideoSessions` | **int64* | :heavy_minus_sign: | N/A |
|
||||
| `TranscoderAudio` | **bool* | :heavy_minus_sign: | N/A |
|
||||
| `TranscoderLyrics` | **bool* | :heavy_minus_sign: | N/A |
|
||||
| `TranscoderSubtitles` | **bool* | :heavy_minus_sign: | N/A |
|
||||
| `TranscoderVideo` | **bool* | :heavy_minus_sign: | N/A |
|
||||
| `TranscoderVideoBitrates` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `TranscoderVideoQualities` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `TranscoderVideoResolutions` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `UpdatedAt` | **int64* | :heavy_minus_sign: | N/A |
|
||||
| `Updater` | **bool* | :heavy_minus_sign: | N/A |
|
||||
| `Version` | **string* | :heavy_minus_sign: | N/A |
|
||||
| `VoiceSearch` | **bool* | :heavy_minus_sign: | N/A |
|
||||
| `MediaProvider` | [][operations.MediaProvider](../../models/operations/mediaprovider.md) | :heavy_minus_sign: | N/A |
|
||||
8
docs/models/operations/getmediaprovidersrequest.md
Normal file
8
docs/models/operations/getmediaprovidersrequest.md
Normal file
@@ -0,0 +1,8 @@
|
||||
# GetMediaProvidersRequest
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ------------------------- | ------------------------- | ------------------------- | ------------------------- | ------------------------- |
|
||||
| `XPlexToken` | *string* | :heavy_check_mark: | Plex Authentication Token | CV5xoxjTpFKUzBTShsaf |
|
||||
11
docs/models/operations/getmediaprovidersresponse.md
Normal file
11
docs/models/operations/getmediaprovidersresponse.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# GetMediaProvidersResponse
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
|
||||
| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
|
||||
| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation |
|
||||
| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
|
||||
| `Object` | [*operations.GetMediaProvidersResponseBody](../../models/operations/getmediaprovidersresponsebody.md) | :heavy_minus_sign: | Media providers and their features |
|
||||
10
docs/models/operations/getmediaprovidersresponsebody.md
Normal file
10
docs/models/operations/getmediaprovidersresponsebody.md
Normal file
@@ -0,0 +1,10 @@
|
||||
# GetMediaProvidersResponseBody
|
||||
|
||||
Media providers and their features
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
|
||||
| `MediaContainer` | [*operations.GetMediaProvidersMediaContainer](../../models/operations/getmediaprovidersmediacontainer.md) | :heavy_minus_sign: | N/A |
|
||||
@@ -1,4 +1,4 @@
|
||||
# GetMetadataCountry
|
||||
# GetMetaDataByRatingKeyCountry
|
||||
|
||||
|
||||
## Fields
|
||||
@@ -1,4 +1,4 @@
|
||||
# GetMetadataDirector
|
||||
# GetMetaDataByRatingKeyDirector
|
||||
|
||||
|
||||
## Fields
|
||||
@@ -1,4 +1,4 @@
|
||||
# GetMetadataGenre
|
||||
# GetMetaDataByRatingKeyGenre
|
||||
|
||||
|
||||
## Fields
|
||||
24
docs/models/operations/getmetadatabyratingkeymedia.md
Normal file
24
docs/models/operations/getmetadatabyratingkeymedia.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# GetMetaDataByRatingKeyMedia
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
|
||||
| `ID` | **int* | :heavy_minus_sign: | N/A | 15 |
|
||||
| `Duration` | **int* | :heavy_minus_sign: | N/A | 141417 |
|
||||
| `Bitrate` | **int* | :heavy_minus_sign: | N/A | 2278 |
|
||||
| `Width` | **int* | :heavy_minus_sign: | N/A | 1920 |
|
||||
| `Height` | **int* | :heavy_minus_sign: | N/A | 814 |
|
||||
| `AspectRatio` | **float64* | :heavy_minus_sign: | N/A | 2.35 |
|
||||
| `AudioChannels` | **int* | :heavy_minus_sign: | N/A | 2 |
|
||||
| `AudioCodec` | **string* | :heavy_minus_sign: | N/A | aac |
|
||||
| `VideoCodec` | **string* | :heavy_minus_sign: | N/A | h264 |
|
||||
| `VideoResolution` | **string* | :heavy_minus_sign: | N/A | 1080 |
|
||||
| `Container` | **string* | :heavy_minus_sign: | N/A | mp4 |
|
||||
| `VideoFrameRate` | **string* | :heavy_minus_sign: | N/A | 24p |
|
||||
| `OptimizedForStreaming` | **int* | :heavy_minus_sign: | N/A | 0 |
|
||||
| `AudioProfile` | **string* | :heavy_minus_sign: | N/A | lc |
|
||||
| `Has64bitOffsets` | **bool* | :heavy_minus_sign: | N/A | false |
|
||||
| `VideoProfile` | **string* | :heavy_minus_sign: | N/A | high |
|
||||
| `Part` | [][operations.GetMetaDataByRatingKeyPart](../../models/operations/getmetadatabyratingkeypart.md) | :heavy_minus_sign: | N/A | |
|
||||
@@ -0,0 +1,16 @@
|
||||
# GetMetaDataByRatingKeyMediaContainer
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
|
||||
| `Size` | **int* | :heavy_minus_sign: | N/A | 1 |
|
||||
| `AllowSync` | **bool* | :heavy_minus_sign: | N/A | true |
|
||||
| `Identifier` | **string* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
|
||||
| `LibrarySectionID` | **int* | :heavy_minus_sign: | N/A | 1 |
|
||||
| `LibrarySectionTitle` | **string* | :heavy_minus_sign: | N/A | Movies |
|
||||
| `LibrarySectionUUID` | **string* | :heavy_minus_sign: | N/A | cfc899d7-3000-46f6-8489-b9592714ada5 |
|
||||
| `MediaTagPrefix` | **string* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |
|
||||
| `MediaTagVersion` | **int* | :heavy_minus_sign: | N/A | 1698860922 |
|
||||
| `Metadata` | [][operations.GetMetaDataByRatingKeyMetadata](../../models/operations/getmetadatabyratingkeymetadata.md) | :heavy_minus_sign: | N/A | |
|
||||
@@ -1,4 +1,4 @@
|
||||
# GetMetadataMetadata
|
||||
# GetMetaDataByRatingKeyMetadata
|
||||
|
||||
|
||||
## Fields
|
||||
@@ -29,12 +29,12 @@
|
||||
| `AudienceRatingImage` | **string* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright |
|
||||
| `HasPremiumPrimaryExtra` | **string* | :heavy_minus_sign: | N/A | 1 |
|
||||
| `RatingImage` | **string* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.ripe |
|
||||
| `Media` | [][operations.GetMetadataMedia](../../models/operations/getmetadatamedia.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Genre` | [][operations.GetMetadataGenre](../../models/operations/getmetadatagenre.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Country` | [][operations.GetMetadataCountry](../../models/operations/getmetadatacountry.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Media` | [][operations.GetMetaDataByRatingKeyMedia](../../models/operations/getmetadatabyratingkeymedia.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Genre` | [][operations.GetMetaDataByRatingKeyGenre](../../models/operations/getmetadatabyratingkeygenre.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Country` | [][operations.GetMetaDataByRatingKeyCountry](../../models/operations/getmetadatabyratingkeycountry.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Guids` | [][operations.Guids](../../models/operations/guids.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Ratings` | [][operations.Ratings](../../models/operations/ratings.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Director` | [][operations.GetMetadataDirector](../../models/operations/getmetadatadirector.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Writer` | [][operations.GetMetadataWriter](../../models/operations/getmetadatawriter.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Role` | [][operations.GetMetadataRole](../../models/operations/getmetadatarole.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Director` | [][operations.GetMetaDataByRatingKeyDirector](../../models/operations/getmetadatabyratingkeydirector.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Writer` | [][operations.GetMetaDataByRatingKeyWriter](../../models/operations/getmetadatabyratingkeywriter.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Role` | [][operations.GetMetaDataByRatingKeyRole](../../models/operations/getmetadatabyratingkeyrole.md) | :heavy_minus_sign: | N/A | |
|
||||
| `Producer` | [][operations.Producer](../../models/operations/producer.md) | :heavy_minus_sign: | N/A | |
|
||||
@@ -1,4 +1,4 @@
|
||||
# GetMetadataPart
|
||||
# GetMetaDataByRatingKeyPart
|
||||
|
||||
|
||||
## Fields
|
||||
@@ -1,8 +1,8 @@
|
||||
# GetMetadataRequest
|
||||
# GetMetaDataByRatingKeyRequest
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- |
|
||||
| `RatingKey` | *float64* | :heavy_check_mark: | the id of the library item to return the children of. |
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- |
|
||||
| `RatingKey` | *int64* | :heavy_check_mark: | the id of the library item to return the children of. | 9518 |
|
||||
11
docs/models/operations/getmetadatabyratingkeyresponse.md
Normal file
11
docs/models/operations/getmetadatabyratingkeyresponse.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# GetMetaDataByRatingKeyResponse
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
|
||||
| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
|
||||
| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation |
|
||||
| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
|
||||
| `Object` | [*operations.GetMetaDataByRatingKeyResponseBody](../../models/operations/getmetadatabyratingkeyresponsebody.md) | :heavy_minus_sign: | The metadata of the library item. |
|
||||
10
docs/models/operations/getmetadatabyratingkeyresponsebody.md
Normal file
10
docs/models/operations/getmetadatabyratingkeyresponsebody.md
Normal file
@@ -0,0 +1,10 @@
|
||||
# GetMetaDataByRatingKeyResponseBody
|
||||
|
||||
The metadata of the library item.
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
|
||||
| `MediaContainer` | [*operations.GetMetaDataByRatingKeyMediaContainer](../../models/operations/getmetadatabyratingkeymediacontainer.md) | :heavy_minus_sign: | N/A |
|
||||
@@ -1,4 +1,4 @@
|
||||
# GetMetadataRole
|
||||
# GetMetaDataByRatingKeyRole
|
||||
|
||||
|
||||
## Fields
|
||||
@@ -1,4 +1,4 @@
|
||||
# GetMetadataWriter
|
||||
# GetMetaDataByRatingKeyWriter
|
||||
|
||||
|
||||
## Fields
|
||||
@@ -1,24 +0,0 @@
|
||||
# GetMetadataMedia
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
|
||||
| `ID` | **int* | :heavy_minus_sign: | N/A | 15 |
|
||||
| `Duration` | **int* | :heavy_minus_sign: | N/A | 141417 |
|
||||
| `Bitrate` | **int* | :heavy_minus_sign: | N/A | 2278 |
|
||||
| `Width` | **int* | :heavy_minus_sign: | N/A | 1920 |
|
||||
| `Height` | **int* | :heavy_minus_sign: | N/A | 814 |
|
||||
| `AspectRatio` | **float64* | :heavy_minus_sign: | N/A | 2.35 |
|
||||
| `AudioChannels` | **int* | :heavy_minus_sign: | N/A | 2 |
|
||||
| `AudioCodec` | **string* | :heavy_minus_sign: | N/A | aac |
|
||||
| `VideoCodec` | **string* | :heavy_minus_sign: | N/A | h264 |
|
||||
| `VideoResolution` | **string* | :heavy_minus_sign: | N/A | 1080 |
|
||||
| `Container` | **string* | :heavy_minus_sign: | N/A | mp4 |
|
||||
| `VideoFrameRate` | **string* | :heavy_minus_sign: | N/A | 24p |
|
||||
| `OptimizedForStreaming` | **int* | :heavy_minus_sign: | N/A | 0 |
|
||||
| `AudioProfile` | **string* | :heavy_minus_sign: | N/A | lc |
|
||||
| `Has64bitOffsets` | **bool* | :heavy_minus_sign: | N/A | false |
|
||||
| `VideoProfile` | **string* | :heavy_minus_sign: | N/A | high |
|
||||
| `Part` | [][operations.GetMetadataPart](../../models/operations/getmetadatapart.md) | :heavy_minus_sign: | N/A | |
|
||||
@@ -1,16 +0,0 @@
|
||||
# GetMetadataMediaContainer
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
|
||||
| `Size` | **int* | :heavy_minus_sign: | N/A | 1 |
|
||||
| `AllowSync` | **bool* | :heavy_minus_sign: | N/A | true |
|
||||
| `Identifier` | **string* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
|
||||
| `LibrarySectionID` | **int* | :heavy_minus_sign: | N/A | 1 |
|
||||
| `LibrarySectionTitle` | **string* | :heavy_minus_sign: | N/A | Movies |
|
||||
| `LibrarySectionUUID` | **string* | :heavy_minus_sign: | N/A | cfc899d7-3000-46f6-8489-b9592714ada5 |
|
||||
| `MediaTagPrefix` | **string* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |
|
||||
| `MediaTagVersion` | **int* | :heavy_minus_sign: | N/A | 1698860922 |
|
||||
| `Metadata` | [][operations.GetMetadataMetadata](../../models/operations/getmetadatametadata.md) | :heavy_minus_sign: | N/A | |
|
||||
@@ -1,11 +0,0 @@
|
||||
# GetMetadataResponse
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
|
||||
| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
|
||||
| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation |
|
||||
| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
|
||||
| `Object` | [*operations.GetMetadataResponseBody](../../models/operations/getmetadataresponsebody.md) | :heavy_minus_sign: | The metadata of the library item. |
|
||||
@@ -1,10 +0,0 @@
|
||||
# GetMetadataResponseBody
|
||||
|
||||
The metadata of the library item.
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
|
||||
| `MediaContainer` | [*operations.GetMetadataMediaContainer](../../models/operations/getmetadatamediacontainer.md) | :heavy_minus_sign: | N/A |
|
||||
21
docs/models/operations/getpinauthpincontainer.md
Normal file
21
docs/models/operations/getpinauthpincontainer.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# GetPinAuthPinContainer
|
||||
|
||||
Requests a new pin id used in the authentication flow
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `ID` | *int64* | :heavy_check_mark: | N/A | 308667304 |
|
||||
| `Code` | *string* | :heavy_check_mark: | N/A | 7RQZ |
|
||||
| `Product` | *string* | :heavy_check_mark: | N/A | Tautulli |
|
||||
| `Trusted` | **bool* | :heavy_minus_sign: | N/A | |
|
||||
| `Qr` | *string* | :heavy_check_mark: | N/A | https://plex.tv/api/v2/pins/qr/7RQZ |
|
||||
| `ClientIdentifier` | *string* | :heavy_check_mark: | The X-Client-Identifier used in the request | Tautulli |
|
||||
| `Location` | [operations.GeoData](../../models/operations/geodata.md) | :heavy_check_mark: | Geo location data | {<br/>"code": "VI",<br/>"continent_code": "NA",<br/>"country": "United States Virgin Islands",<br/>"city": "Amsterdam",<br/>"european_union_member": true,<br/>"time_zone": "America/St_Thomas",<br/>"postal_code": 802,<br/>"in_privacy_restricted_country": true,<br/>"in_privacy_restricted_region": true,<br/>"subdivisions": "Saint Thomas",<br/>"coordinates": "18.3381, -64.8941"<br/>} |
|
||||
| `ExpiresIn` | **int64* | :heavy_minus_sign: | The number of seconds this pin expires, by default 900 seconds | 876 |
|
||||
| `CreatedAt` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A | 2024-07-16T17:03:05Z |
|
||||
| `ExpiresAt` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A | 2024-07-16T17:18:05Z |
|
||||
| `AuthToken` | **string* | :heavy_minus_sign: | N/A | gcgzw5rz2xovp84b4vha3a40 |
|
||||
| `NewRegistration` | *any* | :heavy_minus_sign: | N/A | |
|
||||
@@ -3,6 +3,9 @@
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `XPlexClientIdentifier` | **string* | :heavy_minus_sign: | The unique identifier for the client application<br/>This is used to track the client application and its usage<br/>(UUID, serial number, or other number unique per device)<br/> | Postman |
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
|
||||
| `ClientName` | **string* | :heavy_minus_sign: | N/A | Plex Web |
|
||||
| `DeviceName` | **string* | :heavy_minus_sign: | N/A | Linux |
|
||||
| `ClientVersion` | **string* | :heavy_minus_sign: | N/A | 4.133.0 |
|
||||
| `ClientPlatform` | **string* | :heavy_minus_sign: | N/A | Chrome |
|
||||
@@ -3,8 +3,10 @@
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `Strong` | **bool* | :heavy_minus_sign: | Determines the kind of code returned by the API call<br/>Strong codes are used for Pin authentication flows<br/>Non-Strong codes are used for `Plex.tv/link`<br/> | |
|
||||
| `XPlexClientIdentifier` | **string* | :heavy_minus_sign: | The unique identifier for the client application<br/>This is used to track the client application and its usage<br/>(UUID, serial number, or other number unique per device)<br/> | Postman |
|
||||
| `XPlexProduct` | *string* | :heavy_check_mark: | Product name of the application shown in the list of devices<br/> | Postman |
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `Strong` | **bool* | :heavy_minus_sign: | Determines the kind of code returned by the API call<br/>Strong codes are used for Pin authentication flows<br/>Non-Strong codes are used for `Plex.tv/link`<br/> | |
|
||||
| `ClientName` | **string* | :heavy_minus_sign: | N/A | Plex Web |
|
||||
| `DeviceName` | **string* | :heavy_minus_sign: | N/A | Linux |
|
||||
| `ClientVersion` | **string* | :heavy_minus_sign: | N/A | 4.133.0 |
|
||||
| `ClientPlatform` | **string* | :heavy_minus_sign: | N/A | Chrome |
|
||||
@@ -3,9 +3,9 @@
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
|
||||
| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
|
||||
| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation |
|
||||
| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
|
||||
| `Object` | [*operations.GetPinResponseBody](../../models/operations/getpinresponsebody.md) | :heavy_minus_sign: | The Pin |
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation | |
|
||||
| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation | |
|
||||
| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | |
|
||||
| `AuthPinContainer` | [*operations.GetPinAuthPinContainer](../../models/operations/getpinauthpincontainer.md) | :heavy_minus_sign: | Requests a new pin id used in the authentication flow | {<br/>"id": 308667304,<br/>"code": "7RQZ",<br/>"product": "0",<br/>"trusted": false,<br/>"qr": "https://plex.tv/api/v2/pins/qr/7RQZ",<br/>"clientIdentifier": "string",<br/>"location": {<br/>"code": "VI",<br/>"continent_code": "NA",<br/>"country": "United States Virgin Islands",<br/>"city": "Amsterdam",<br/>"european_union_member": true,<br/>"time_zone": "America/St_Thomas",<br/>"postal_code": 802,<br/>"in_privacy_restricted_country": true,<br/>"in_privacy_restricted_region": true,<br/>"subdivisions": "Saint Thomas",<br/>"coordinates": "18.3381, -64.8941"<br/>},<br/>"expiresIn": 876,<br/>"createdAt": "2024-07-16T17:03:05Z",<br/>"expiresAt": "2024-07-16T17:18:05Z",<br/>"authToken": null,<br/>"newRegistration": null<br/>} |
|
||||
19
docs/models/operations/getplaylistcontentsqueryparamtype.md
Normal file
19
docs/models/operations/getplaylistcontentsqueryparamtype.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# GetPlaylistContentsQueryParamType
|
||||
|
||||
The type of media to retrieve.
|
||||
1 = movie
|
||||
2 = show
|
||||
3 = season
|
||||
4 = episode
|
||||
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
|
||||
|
||||
|
||||
|
||||
## Values
|
||||
|
||||
| Name | Value |
|
||||
| ------------------------------------------ | ------------------------------------------ |
|
||||
| `GetPlaylistContentsQueryParamTypeMovie` | 1 |
|
||||
| `GetPlaylistContentsQueryParamTypeShow` | 2 |
|
||||
| `GetPlaylistContentsQueryParamTypeSeason` | 3 |
|
||||
| `GetPlaylistContentsQueryParamTypeEpisode` | 4 |
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| --------------------------------------- | --------------------------------------- | --------------------------------------- | --------------------------------------- |
|
||||
| `PlaylistID` | *float64* | :heavy_check_mark: | the ID of the playlist |
|
||||
| `Type` | *float64* | :heavy_check_mark: | the metadata type of the item to return |
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `PlaylistID` | *float64* | :heavy_check_mark: | the ID of the playlist | |
|
||||
| `Type` | [operations.GetPlaylistContentsQueryParamType](../../models/operations/getplaylistcontentsqueryparamtype.md) | :heavy_check_mark: | The type of media to retrieve.<br/>1 = movie<br/>2 = show<br/>3 = season<br/>4 = episode<br/>E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries<br/> | 2 |
|
||||
9
docs/models/operations/getrecentlyaddedrequest.md
Normal file
9
docs/models/operations/getrecentlyaddedrequest.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# GetRecentlyAddedRequest
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `XPlexContainerStart` | **int* | :heavy_minus_sign: | The index of the first item to return. If not specified, the first item will be returned.<br/>If the number of items exceeds the limit, the response will be paginated.<br/>By default this is 0<br/> | 0 |
|
||||
| `XPlexContainerSize` | **int* | :heavy_minus_sign: | The number of items to return. If not specified, all items will be returned.<br/>If the number of items exceeds the limit, the response will be paginated.<br/>By default this is 50<br/> | 50 |
|
||||
@@ -0,0 +1,9 @@
|
||||
# GetRefreshLibraryMetadataRequest
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
|
||||
| `SectionKey` | *int* | :heavy_check_mark: | The unique key of the Plex library. <br/>Note: This is unique in the context of the Plex server.<br/> | 9518 |
|
||||
| `Force` | [*operations.Force](../../models/operations/force.md) | :heavy_minus_sign: | Force the refresh even if the library is already being refreshed. | 0 |
|
||||
@@ -1,4 +1,4 @@
|
||||
# RefreshLibraryResponse
|
||||
# GetRefreshLibraryMetadataResponse
|
||||
|
||||
|
||||
## Fields
|
||||
20
docs/models/operations/getsearchlibrarymediacontainer.md
Normal file
20
docs/models/operations/getsearchlibrarymediacontainer.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# GetSearchLibraryMediaContainer
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
|
||||
| `Size` | **int* | :heavy_minus_sign: | N/A | 2 |
|
||||
| `AllowSync` | **bool* | :heavy_minus_sign: | N/A | false |
|
||||
| `Art` | **string* | :heavy_minus_sign: | N/A | /:/resources/show-fanart.jpg |
|
||||
| `Identifier` | **string* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
|
||||
| `MediaTagPrefix` | **string* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |
|
||||
| `MediaTagVersion` | **int* | :heavy_minus_sign: | N/A | 1698860922 |
|
||||
| `Nocache` | **bool* | :heavy_minus_sign: | N/A | true |
|
||||
| `Thumb` | **string* | :heavy_minus_sign: | N/A | /:/resources/show.png |
|
||||
| `Title1` | **string* | :heavy_minus_sign: | N/A | TV Shows |
|
||||
| `Title2` | **string* | :heavy_minus_sign: | N/A | Search for '' |
|
||||
| `ViewGroup` | **string* | :heavy_minus_sign: | N/A | season |
|
||||
| `ViewMode` | **int* | :heavy_minus_sign: | N/A | 65593 |
|
||||
| `Metadata` | [][operations.GetSearchLibraryMetadata](../../models/operations/getsearchlibrarymetadata.md) | :heavy_minus_sign: | N/A | |
|
||||
@@ -1,4 +1,4 @@
|
||||
# SearchLibraryMetadata
|
||||
# GetSearchLibraryMetadata
|
||||
|
||||
|
||||
## Fields
|
||||
@@ -1,9 +1,9 @@
|
||||
# GetTokenRequest
|
||||
# GetSearchLibraryRequest
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description | Example |
|
||||
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `PinID` | *string* | :heavy_check_mark: | The PinID to retrieve an access token for | |
|
||||
| `XPlexClientIdentifier` | **string* | :heavy_minus_sign: | The unique identifier for the client application<br/>This is used to track the client application and its usage<br/>(UUID, serial number, or other number unique per device)<br/> | Postman |
|
||||
| Field | Type | Required | Description | Example |
|
||||
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `SectionKey` | *int* | :heavy_check_mark: | The unique key of the Plex library. <br/>Note: This is unique in the context of the Plex server.<br/> | 9518 |
|
||||
| `Type` | [operations.QueryParamType](../../models/operations/queryparamtype.md) | :heavy_check_mark: | The type of media to retrieve.<br/>1 = movie<br/>2 = show<br/>3 = season<br/>4 = episode<br/>E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries<br/> | 2 |
|
||||
11
docs/models/operations/getsearchlibraryresponse.md
Normal file
11
docs/models/operations/getsearchlibraryresponse.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# GetSearchLibraryResponse
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
|
||||
| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
|
||||
| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation |
|
||||
| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
|
||||
| `Object` | [*operations.GetSearchLibraryResponseBody](../../models/operations/getsearchlibraryresponsebody.md) | :heavy_minus_sign: | The contents of the library by section and type |
|
||||
10
docs/models/operations/getsearchlibraryresponsebody.md
Normal file
10
docs/models/operations/getsearchlibraryresponsebody.md
Normal file
@@ -0,0 +1,10 @@
|
||||
# GetSearchLibraryResponseBody
|
||||
|
||||
The contents of the library by section and type
|
||||
|
||||
|
||||
## Fields
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
|
||||
| `MediaContainer` | [*operations.GetSearchLibraryMediaContainer](../../models/operations/getsearchlibrarymediacontainer.md) | :heavy_minus_sign: | N/A |
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user