Compare commits

...

8 Commits

Author SHA1 Message Date
speakeasybot
9b882120dd ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.542.0 2025-05-02 00:11:38 +00:00
speakeasybot
673a771f04 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.535.1 2025-04-19 17:13:50 +00:00
speakeasybot
216a94fe7d ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.535.1 2025-04-18 23:01:17 +00:00
speakeasybot
88d690ffc2 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.531.4 2025-04-15 00:11:29 +00:00
speakeasybot
48a739d923 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.529.1 2025-04-07 00:11:42 +00:00
speakeasybot
8b50020e1e ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.528.1 2025-04-03 21:57:04 +00:00
speakeasybot
4bcd080211 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.526.6 2025-03-31 17:31:23 +00:00
Luke Hagar
2e0f3b64ea Update workflow.yaml 2025-03-31 12:04:45 -05:00
91 changed files with 3671 additions and 2184 deletions

3
.gitignore vendored
View File

@@ -1,2 +1,5 @@
.DS_Store
**/.speakeasy/temp/
**/.speakeasy/logs/
.speakeasy/reports .speakeasy/reports
# .gitignore # .gitignore

File diff suppressed because one or more lines are too long

View File

@@ -11,11 +11,12 @@ generation:
parameterOrderingFeb2024: true parameterOrderingFeb2024: true
requestResponseComponentNamesFeb2024: true requestResponseComponentNamesFeb2024: true
securityFeb2025: false securityFeb2025: false
sharedErrorComponentsApr2025: false
auth: auth:
oAuth2ClientCredentialsEnabled: true oAuth2ClientCredentialsEnabled: true
oAuth2PasswordEnabled: false oAuth2PasswordEnabled: false
go: go:
version: 0.19.2 version: 0.21.1
additionalDependencies: {} additionalDependencies: {}
allowUnknownFieldsInWeakUnions: false allowUnknownFieldsInWeakUnions: false
clientServerStatusCodesAsErrors: true clientServerStatusCodesAsErrors: true

View File

@@ -1,4 +1,4 @@
speakeasyVersion: 1.513.4 speakeasyVersion: 1.542.0
sources: sources:
my-source: my-source:
sourceNamespace: my-source sourceNamespace: my-source
@@ -9,19 +9,19 @@ sources:
- main - main
plexapi: plexapi:
sourceNamespace: plexapi sourceNamespace: plexapi
sourceRevisionDigest: sha256:2066ba94b55e21d651c79003e3cf402fb77c52a0969fc52310b3383fbed038f4 sourceRevisionDigest: sha256:31ab7b2e65ccf1e0349bcd8b35791d1ce80091313481874749163fc0c80fd8ed
sourceBlobDigest: sha256:1737023e29cd9cf36c07ccd8c8c48c47e14f47ce22b4d6ba9ee241afbbd8f351 sourceBlobDigest: sha256:d971fff9723c626fe70403a2a83d813c396a20b06ccd6b899263762038cfdbb0
tags: tags:
- latest - latest
- speakeasy-sdk-regen-1741565327 - speakeasy-sdk-regen-1746144629
targets: targets:
plexgo: plexgo:
source: plexapi source: plexapi
sourceNamespace: plexapi sourceNamespace: plexapi
sourceRevisionDigest: sha256:2066ba94b55e21d651c79003e3cf402fb77c52a0969fc52310b3383fbed038f4 sourceRevisionDigest: sha256:31ab7b2e65ccf1e0349bcd8b35791d1ce80091313481874749163fc0c80fd8ed
sourceBlobDigest: sha256:1737023e29cd9cf36c07ccd8c8c48c47e14f47ce22b4d6ba9ee241afbbd8f351 sourceBlobDigest: sha256:d971fff9723c626fe70403a2a83d813c396a20b06ccd6b899263762038cfdbb0
codeSamplesNamespace: code-samples-go-plexgo codeSamplesNamespace: code-samples-go-plexgo
codeSamplesRevisionDigest: sha256:1c039b4b936c2e504fdce037068ca992efeb22b94f6fc013db92ed1923c0bc33 codeSamplesRevisionDigest: sha256:97f93f583a41a36f02cac7fe2eefd6ec836588f71204c75d400621ee85326974
workflow: workflow:
workflowVersion: 1.0.0 workflowVersion: 1.0.0
speakeasyVersion: latest speakeasyVersion: latest
@@ -37,3 +37,5 @@ workflow:
output: codeSamples.yaml output: codeSamples.yaml
registry: registry:
location: registry.speakeasyapi.dev/plexapi/plexapi/code-samples-go-plexgo location: registry.speakeasyapi.dev/plexapi/plexapi/code-samples-go-plexgo
labelOverride:
fixedValue: PlexGO

View File

@@ -12,3 +12,5 @@ targets:
output: codeSamples.yaml output: codeSamples.yaml
registry: registry:
location: registry.speakeasyapi.dev/plexapi/plexapi/code-samples-go-plexgo location: registry.speakeasyapi.dev/plexapi/plexapi/code-samples-go-plexgo
labelOverride:
fixedValue: PlexGO

View File

@@ -150,6 +150,10 @@ func main() {
* [GetActorsLibrary](docs/sdks/library/README.md#getactorslibrary) - Get Actors of library media * [GetActorsLibrary](docs/sdks/library/README.md#getactorslibrary) - Get Actors of library media
* [GetSearchAllLibraries](docs/sdks/library/README.md#getsearchalllibraries) - Search All Libraries * [GetSearchAllLibraries](docs/sdks/library/README.md#getsearchalllibraries) - Search All Libraries
* [GetMediaMetaData](docs/sdks/library/README.md#getmediametadata) - Get Media Metadata * [GetMediaMetaData](docs/sdks/library/README.md#getmediametadata) - Get Media Metadata
* [GetMediaArts](docs/sdks/library/README.md#getmediaarts) - Get Media Background Artwork
* [PostMediaArts](docs/sdks/library/README.md#postmediaarts) - Upload Media Background Artwork
* [GetMediaPosters](docs/sdks/library/README.md#getmediaposters) - Get Media Posters
* [PostMediaPoster](docs/sdks/library/README.md#postmediaposter) - Upload Media Poster
* [GetMetadataChildren](docs/sdks/library/README.md#getmetadatachildren) - Get Items Children * [GetMetadataChildren](docs/sdks/library/README.md#getmetadatachildren) - Get Items Children
* [GetTopWatchedContent](docs/sdks/library/README.md#gettopwatchedcontent) - Get Top Watched Content * [GetTopWatchedContent](docs/sdks/library/README.md#gettopwatchedcontent) - Get Top Watched Content

View File

@@ -1072,4 +1072,74 @@ Based on:
### Generated ### Generated
- [go v0.19.2] . - [go v0.19.2] .
### Releases ### Releases
- [Go v0.19.2] https://github.com/LukeHagar/plexgo/releases/tag/v0.19.2 - . - [Go v0.19.2] https://github.com/LukeHagar/plexgo/releases/tag/v0.19.2 - .
## 2025-03-31 17:29:50
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.526.6 (2.563.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.19.3] .
### Releases
- [Go v0.19.3] https://github.com/LukeHagar/plexgo/releases/tag/v0.19.3 - .
## 2025-04-03 21:55:33
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.528.1 (2.565.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.20.0] .
### Releases
- [Go v0.20.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.20.0 - .
## 2025-04-07 00:10:20
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.529.1 (2.566.5) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.20.1] .
### Releases
- [Go v0.20.1] https://github.com/LukeHagar/plexgo/releases/tag/v0.20.1 - .
## 2025-04-15 00:10:03
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.531.4 (2.570.4) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.20.2] .
### Releases
- [Go v0.20.2] https://github.com/LukeHagar/plexgo/releases/tag/v0.20.2 - .
## 2025-04-18 22:59:48
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.535.1 (2.585.2) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.20.3] .
### Releases
- [Go v0.20.3] https://github.com/LukeHagar/plexgo/releases/tag/v0.20.3 - .
## 2025-04-19 17:12:25
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.535.1 (2.585.2) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.21.0] .
### Releases
- [Go v0.21.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.21.0 - .
## 2025-05-02 00:10:13
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.542.0 (2.596.2) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.21.1] .
### Releases
- [Go v0.21.1] https://github.com/LukeHagar/plexgo/releases/tag/v0.21.1 - .

View File

@@ -7,7 +7,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getServerCapabilities label: PlexGO
source: |- source: |-
package main package main
@@ -36,7 +36,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getServerPreferences label: PlexGO
source: |- source: |-
package main package main
@@ -65,7 +65,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: updatePlayProgress label: PlexGO
source: |- source: |-
package main package main
@@ -94,7 +94,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: markPlayed label: PlexGO
source: |- source: |-
package main package main
@@ -123,7 +123,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getTimeline label: PlexGO
source: |- source: |-
package main package main
@@ -164,7 +164,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: markUnplayed label: PlexGO
source: |- source: |-
package main package main
@@ -193,7 +193,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getServerActivities label: PlexGO
source: |- source: |-
package main package main
@@ -222,7 +222,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: cancelServerActivities label: PlexGO
source: |- source: |-
package main package main
@@ -251,7 +251,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: stopAllTasks label: PlexGO
source: |- source: |-
package main package main
@@ -280,7 +280,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getButlerTasks label: PlexGO
source: |- source: |-
package main package main
@@ -309,7 +309,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: startAllTasks label: PlexGO
source: |- source: |-
package main package main
@@ -338,7 +338,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: stopTask label: PlexGO
source: |- source: |-
package main package main
@@ -368,7 +368,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: startTask label: PlexGO
source: |- source: |-
package main package main
@@ -398,7 +398,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getAvailableClients label: PlexGO
source: |- source: |-
package main package main
@@ -427,7 +427,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getCompanionsData label: PlexGO
source: |- source: |-
package main package main
@@ -456,7 +456,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getDevices label: PlexGO
source: |- source: |-
package main package main
@@ -485,7 +485,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getUserFriends label: PlexGO
source: |- source: |-
package main package main
@@ -514,7 +514,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getGeoData label: PlexGO
source: |- source: |-
package main package main
@@ -541,7 +541,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getHomeData label: PlexGO
source: |- source: |-
package main package main
@@ -570,7 +570,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getGlobalHubs label: PlexGO
source: |- source: |-
package main package main
@@ -599,7 +599,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: get-recently-added label: PlexGO
source: |- source: |-
package main package main
@@ -633,7 +633,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: performSearch label: PlexGO
source: |- source: |-
package main package main
@@ -662,7 +662,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: performVoiceSearch label: PlexGO
source: |- source: |-
package main package main
@@ -691,7 +691,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getLibraryHubs label: PlexGO
source: |- source: |-
package main package main
@@ -720,7 +720,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: get-server-identity label: PlexGO
source: |- source: |-
package main package main
@@ -747,7 +747,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getTopWatchedContent label: PlexGO
source: |- source: |-
package main package main
@@ -777,7 +777,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getFileHash label: PlexGO
source: |- source: |-
package main package main
@@ -806,7 +806,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: get-media-meta-data label: PlexGO
source: |- source: |-
package main package main
@@ -847,11 +847,69 @@ actions:
// handle response // handle response
} }
} }
- target: $["paths"]["/library/metadata/{ratingKey}/arts"]["get"]
update:
x-codeSamples:
- lang: go
label: PlexGO
source: |-
package main
import(
"context"
"github.com/LukeHagar/plexgo"
"log"
)
func main() {
ctx := context.Background()
s := plexgo.New(
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
)
res, err := s.Library.GetMediaArts(ctx, 16099)
if err != nil {
log.Fatal(err)
}
if res.Object != nil {
// handle response
}
}
- target: $["paths"]["/library/metadata/{ratingKey}/arts"]["post"]
update:
x-codeSamples:
- lang: go
label: PlexGO
source: |-
package main
import(
"context"
"github.com/LukeHagar/plexgo"
"log"
)
func main() {
ctx := context.Background()
s := plexgo.New(
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
)
res, err := s.Library.PostMediaArts(ctx, 2268, plexgo.String("https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b"), nil)
if err != nil {
log.Fatal(err)
}
if res != nil {
// handle response
}
}
- target: $["paths"]["/library/metadata/{ratingKey}/banner"]["get"] - target: $["paths"]["/library/metadata/{ratingKey}/banner"]["get"]
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: get-banner-image label: PlexGO
source: |- source: |-
package main package main
@@ -888,7 +946,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getMetadataChildren label: PlexGO
source: |- source: |-
package main package main
@@ -913,11 +971,69 @@ actions:
// handle response // handle response
} }
} }
- target: $["paths"]["/library/metadata/{ratingKey}/posters"]["get"]
update:
x-codeSamples:
- lang: go
label: PlexGO
source: |-
package main
import(
"context"
"github.com/LukeHagar/plexgo"
"log"
)
func main() {
ctx := context.Background()
s := plexgo.New(
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
)
res, err := s.Library.GetMediaPosters(ctx, 16099)
if err != nil {
log.Fatal(err)
}
if res.Object != nil {
// handle response
}
}
- target: $["paths"]["/library/metadata/{ratingKey}/posters"]["post"]
update:
x-codeSamples:
- lang: go
label: PlexGO
source: |-
package main
import(
"context"
"github.com/LukeHagar/plexgo"
"log"
)
func main() {
ctx := context.Background()
s := plexgo.New(
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
)
res, err := s.Library.PostMediaPoster(ctx, 2268, plexgo.String("https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b"), nil)
if err != nil {
log.Fatal(err)
}
if res != nil {
// handle response
}
}
- target: $["paths"]["/library/metadata/{ratingKey}/thumb"]["get"] - target: $["paths"]["/library/metadata/{ratingKey}/thumb"]["get"]
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: get-thumb-image label: PlexGO
source: |- source: |-
package main package main
@@ -954,7 +1070,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: get-recently-added-library label: PlexGO
source: |- source: |-
package main package main
@@ -1002,7 +1118,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: get-search-all-libraries label: PlexGO
source: |- source: |-
package main package main
@@ -1038,7 +1154,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: get-all-libraries label: PlexGO
source: |- source: |-
package main package main
@@ -1067,7 +1183,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: get-watch-list label: PlexGO
source: |- source: |-
package main package main
@@ -1100,7 +1216,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: deleteLibrary label: PlexGO
source: |- source: |-
package main package main
@@ -1129,7 +1245,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: get-library-details label: PlexGO
source: |- source: |-
package main package main
@@ -1158,7 +1274,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: get-actors-library label: PlexGO
source: |- source: |-
package main package main
@@ -1188,7 +1304,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: get-all-media-library label: PlexGO
source: |- source: |-
package main package main
@@ -1221,7 +1337,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: get-countries-library label: PlexGO
source: |- source: |-
package main package main
@@ -1251,7 +1367,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: get-genres-library label: PlexGO
source: |- source: |-
package main package main
@@ -1281,7 +1397,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: get-refresh-library-metadata label: PlexGO
source: |- source: |-
package main package main
@@ -1311,7 +1427,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: get-search-library label: PlexGO
source: |- source: |-
package main package main
@@ -1341,7 +1457,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: get-library-items label: PlexGO
source: |- source: |-
package main package main
@@ -1375,7 +1491,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: logLine label: PlexGO
source: |- source: |-
package main package main
@@ -1405,7 +1521,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: logMultiLine label: PlexGO
source: |- source: |-
package main package main
@@ -1436,7 +1552,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: enablePaperTrail label: PlexGO
source: |- source: |-
package main package main
@@ -1465,7 +1581,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: get-media-providers label: PlexGO
source: |- source: |-
package main package main
@@ -1494,7 +1610,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getMyPlexAccount label: PlexGO
source: |- source: |-
package main package main
@@ -1523,7 +1639,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getResizedPhoto label: PlexGO
source: |- source: |-
package main package main
@@ -1561,7 +1677,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getPin label: PlexGO
source: |- source: |-
package main package main
@@ -1595,7 +1711,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getTokenByPinId label: PlexGO
source: |- source: |-
package main package main
@@ -1630,7 +1746,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getPlaylists label: PlexGO
source: |- source: |-
package main package main
@@ -1659,7 +1775,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: createPlaylist label: PlexGO
source: |- source: |-
package main package main
@@ -1694,7 +1810,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: uploadPlaylist label: PlexGO
source: |- source: |-
package main package main
@@ -1724,7 +1840,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: deletePlaylist label: PlexGO
source: |- source: |-
package main package main
@@ -1753,7 +1869,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getPlaylist label: PlexGO
source: |- source: |-
package main package main
@@ -1782,7 +1898,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: updatePlaylist label: PlexGO
source: |- source: |-
package main package main
@@ -1811,7 +1927,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: clearPlaylistContents label: PlexGO
source: |- source: |-
package main package main
@@ -1840,7 +1956,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getPlaylistContents label: PlexGO
source: |- source: |-
package main package main
@@ -1870,7 +1986,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: addPlaylistContents label: PlexGO
source: |- source: |-
package main package main
@@ -1899,7 +2015,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: get-server-resources label: PlexGO
source: |- source: |-
package main package main
@@ -1928,7 +2044,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getSearchResults label: PlexGO
source: |- source: |-
package main package main
@@ -1957,7 +2073,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getSourceConnectionInformation label: PlexGO
source: |- source: |-
package main package main
@@ -1986,7 +2102,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getTransientToken label: PlexGO
source: |- source: |-
package main package main
@@ -2016,7 +2132,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getServerList label: PlexGO
source: |- source: |-
package main package main
@@ -2045,7 +2161,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getBandwidthStatistics label: PlexGO
source: |- source: |-
package main package main
@@ -2074,7 +2190,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getStatistics label: PlexGO
source: |- source: |-
package main package main
@@ -2103,7 +2219,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getResourcesStatistics label: PlexGO
source: |- source: |-
package main package main
@@ -2132,7 +2248,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getSessions label: PlexGO
source: |- source: |-
package main package main
@@ -2161,7 +2277,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getSessionHistory label: PlexGO
source: |- source: |-
package main package main
@@ -2191,7 +2307,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getTranscodeSessions label: PlexGO
source: |- source: |-
package main package main
@@ -2220,7 +2336,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: stopTranscodeSession label: PlexGO
source: |- source: |-
package main package main
@@ -2249,7 +2365,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: applyUpdates label: PlexGO
source: |- source: |-
package main package main
@@ -2279,7 +2395,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: checkForUpdates label: PlexGO
source: |- source: |-
package main package main
@@ -2309,7 +2425,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getUpdateStatus label: PlexGO
source: |- source: |-
package main package main
@@ -2338,7 +2454,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: getTokenDetails label: PlexGO
source: |- source: |-
package main package main
@@ -2367,7 +2483,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: get-users label: PlexGO
source: |- source: |-
package main package main
@@ -2409,7 +2525,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: post-users-sign-in-data label: PlexGO
source: |- source: |-
package main package main
@@ -2448,7 +2564,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: go - lang: go
label: startUniversalTranscode label: PlexGO
source: |- source: |-
package main package main

View File

@@ -0,0 +1,11 @@
# Attributes
Attributes associated with the marker.
## Fields
| Field | Type | Required | Description | Example |
| -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- |
| `ID` | *int64* | :heavy_check_mark: | The identifier for the attributes. | 306970 |
| `Version` | **int64* | :heavy_minus_sign: | The version number of the marker attributes. | 4 |

View File

@@ -0,0 +1,15 @@
# Chapter
The thumbnail for the chapter
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ |
| `ID` | *int64* | :heavy_check_mark: | N/A | 4 |
| `Filter` | *string* | :heavy_check_mark: | N/A | thumb=4 |
| `Index` | *int64* | :heavy_check_mark: | N/A | 1 |
| `StartTimeOffset` | *int64* | :heavy_check_mark: | N/A | 0 |
| `EndTimeOffset` | *int64* | :heavy_check_mark: | N/A | 100100 |
| `Thumb` | *string* | :heavy_check_mark: | N/A | /library/media/46883/chapterImages/1 |

View File

@@ -7,6 +7,6 @@ The filter query string for country media items.
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- |
| `ID` | *int64* | :heavy_check_mark: | N/A | 259 | | `ID` | *int* | :heavy_check_mark: | N/A | 259 |
| `Tag` | *string* | :heavy_check_mark: | The country of origin of this media item | United States of America | | `Tag` | *string* | :heavy_check_mark: | The country of origin of this media item | United States of America |
| `Filter` | **string* | :heavy_minus_sign: | N/A | country=19 | | `Filter` | **string* | :heavy_minus_sign: | N/A | country=19 |

View File

@@ -0,0 +1,8 @@
# Extras
## Fields
| Field | Type | Required | Description | Example |
| ----------------------- | ----------------------- | ----------------------- | ----------------------- | ----------------------- |
| `Size` | **int64* | :heavy_minus_sign: | The size of the extras. | 1 |

View File

@@ -3,26 +3,26 @@
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `AllowSync` | *bool* | :heavy_check_mark: | N/A | true | | `AllowSync` | *bool* | :heavy_check_mark: | Indicates whether syncing is allowed. | false |
| `Art` | *string* | :heavy_check_mark: | N/A | /:/resources/movie-fanart.jpg | | `Art` | *string* | :heavy_check_mark: | URL for the background artwork of the media container. | /:/resources/show-fanart.jpg |
| `Composite` | *string* | :heavy_check_mark: | N/A | /library/sections/1/composite/1705615584 | | `Composite` | *string* | :heavy_check_mark: | The relative path to the composite media item. | /library/sections/1/composite/1743824484 |
| `Filters` | *bool* | :heavy_check_mark: | N/A | true | | `Filters` | *bool* | :heavy_check_mark: | UNKNOWN | true |
| `Refreshing` | *bool* | :heavy_check_mark: | N/A | false | | `Refreshing` | *bool* | :heavy_check_mark: | Indicates whether the library is currently being refreshed or updated | true |
| `Thumb` | *string* | :heavy_check_mark: | N/A | /:/resources/movie.png | | `Thumb` | *string* | :heavy_check_mark: | URL for the thumbnail image of the media container. | /:/resources/show.png |
| `Key` | *string* | :heavy_check_mark: | N/A | 1 | | `Key` | *string* | :heavy_check_mark: | The library key representing the unique identifier | 1 |
| `Type` | *string* | :heavy_check_mark: | N/A | movie | | `Type` | [operations.GetAllLibrariesType](../../models/operations/getalllibrariestype.md) | :heavy_check_mark: | N/A | movie |
| `Title` | *string* | :heavy_check_mark: | N/A | Movies | | `Title` | *string* | :heavy_check_mark: | The title of the library | Movies |
| `Agent` | *string* | :heavy_check_mark: | N/A | tv.plex.agents.movie | | `Agent` | *string* | :heavy_check_mark: | The Plex agent used to match and retrieve media metadata. | tv.plex.agents.movie |
| `Scanner` | *string* | :heavy_check_mark: | N/A | Plex Movie | | `Scanner` | *string* | :heavy_check_mark: | UNKNOWN | Plex Movie |
| `Language` | *string* | :heavy_check_mark: | N/A | en-US | | `Language` | *string* | :heavy_check_mark: | The Plex library language that has been set | en-US |
| `UUID` | *string* | :heavy_check_mark: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 | | `UUID` | *string* | :heavy_check_mark: | The universally unique identifier for the library. | e69655a2-ef48-4aba-bb19-01e7d3cc34d6 |
| `UpdatedAt` | *int64* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 | | `UpdatedAt` | *int64* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 |
| `CreatedAt` | *int64* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 | | `CreatedAt` | **int64* | :heavy_minus_sign: | N/A | 1556281940 |
| `ScannedAt` | *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 | | `Content` | *bool* | :heavy_check_mark: | UNKNOWN | true |
| `Directory` | *bool* | :heavy_check_mark: | N/A | true | | `Directory` | *bool* | :heavy_check_mark: | UNKNOWN | true |
| `ContentChangedAt` | *int64* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 | | `ContentChangedAt` | *int64* | :heavy_check_mark: | Timestamp (in seconds) representing the last time the content was modified.<br/>NOTE: Some Plex server have some absurd values for this field, like 8457612157633039800 so it should be int64<br/> | 9173960 |
| `Hidden` | *int* | :heavy_check_mark: | N/A | 0 | | `Hidden` | [*operations.Hidden](../../models/operations/hidden.md) | :heavy_minus_sign: | N/A | 1 |
| `Location` | [][operations.GetAllLibrariesLocation](../../models/operations/getalllibrarieslocation.md) | :heavy_check_mark: | N/A | | | `Location` | [][operations.GetAllLibrariesLocation](../../models/operations/getalllibrarieslocation.md) | :heavy_check_mark: | N/A | |

View File

@@ -3,7 +3,7 @@
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | | --------------------------- | --------------------------- | --------------------------- | --------------------------- | --------------------------- |
| `ID` | *int* | :heavy_check_mark: | N/A | 1 | | `ID` | *int* | :heavy_check_mark: | The ID of the location. | 1 |
| `Path` | *string* | :heavy_check_mark: | N/A | /movies | | `Path` | *string* | :heavy_check_mark: | The path to the media item. | /Movies |

View File

@@ -5,7 +5,7 @@
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| `Size` | *int* | :heavy_check_mark: | N/A | 5 | | `Size` | *int* | :heavy_check_mark: | Number of media items returned in this response. | 50 |
| `AllowSync` | *bool* | :heavy_check_mark: | N/A | false | | `AllowSync` | *bool* | :heavy_check_mark: | Indicates whether syncing is allowed. | false |
| `Title1` | *string* | :heavy_check_mark: | N/A | Plex Library | | `Title1` | *string* | :heavy_check_mark: | The primary title of the media container. | TV Series |
| `Directory` | [][operations.GetAllLibrariesDirectory](../../models/operations/getalllibrariesdirectory.md) | :heavy_check_mark: | N/A | | | `Directory` | [][operations.GetAllLibrariesDirectory](../../models/operations/getalllibrariesdirectory.md) | :heavy_minus_sign: | N/A | |

View File

@@ -5,6 +5,6 @@ The libraries available on the Server
## Fields ## Fields
| Field | Type | Required | Description | | Field | Type | Required | Description |
| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| `MediaContainer` | [operations.GetAllLibrariesMediaContainer](../../models/operations/getalllibrariesmediacontainer.md) | :heavy_check_mark: | N/A | | `MediaContainer` | [*operations.GetAllLibrariesMediaContainer](../../models/operations/getalllibrariesmediacontainer.md) | :heavy_minus_sign: | N/A |

View File

@@ -0,0 +1,15 @@
# GetAllLibrariesType
The library type
## Values
| Name | Value |
| ---------------------------- | ---------------------------- |
| `GetAllLibrariesTypeMovie` | movie |
| `GetAllLibrariesTypeTvShow` | show |
| `GetAllLibrariesTypeSeason` | season |
| `GetAllLibrariesTypeEpisode` | episode |
| `GetAllLibrariesTypeArtist` | artist |
| `GetAllLibrariesTypeAlbum` | album |

View File

@@ -3,54 +3,56 @@
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| `ID` | *int64* | :heavy_check_mark: | Unique stream identifier. | 1002625 | | `ID` | *int64* | :heavy_check_mark: | Unique stream identifier. | 1002625 |
| `StreamType` | *int* | :heavy_check_mark: | Stream type (1=video, 2=audio, 3=subtitle). | 1 | | `StreamType` | [operations.GetAllMediaLibraryStreamType](../../models/operations/getallmedialibrarystreamtype.md) | :heavy_check_mark: | Stream type:<br/> - 1 = video<br/> - 2 = audio<br/> - 3 = subtitle<br/> | 1 |
| `Default` | **bool* | :heavy_minus_sign: | Indicates if this stream is default. | true | | `Format` | **string* | :heavy_minus_sign: | Format of the stream (e.g., srt). | srt |
| `Codec` | *string* | :heavy_check_mark: | Codec used by the stream. | hevc | | `Default` | **bool* | :heavy_minus_sign: | Indicates if this stream is default. | true |
| `Index` | *int* | :heavy_check_mark: | Index of the stream. | 0 | | `Codec` | *string* | :heavy_check_mark: | Codec used by the stream. | hevc |
| `Bitrate` | **int* | :heavy_minus_sign: | Bitrate of the stream. | 24743 | | `Index` | **int* | :heavy_minus_sign: | Index of the stream. | 0 |
| `Language` | **string* | :heavy_minus_sign: | Language of the stream. | English | | `Bitrate` | **int* | :heavy_minus_sign: | Bitrate of the stream. | 24743 |
| `LanguageTag` | **string* | :heavy_minus_sign: | Language tag (e.g., en). | en | | `Language` | **string* | :heavy_minus_sign: | Language of the stream. | English |
| `LanguageCode` | **string* | :heavy_minus_sign: | ISO language code. | eng | | `LanguageTag` | **string* | :heavy_minus_sign: | Language tag (e.g., en). | en |
| `HeaderCompression` | **bool* | :heavy_minus_sign: | Indicates whether header compression is enabled. | true | | `LanguageCode` | **string* | :heavy_minus_sign: | ISO language code. | eng |
| `DOVIBLCompatID` | **int* | :heavy_minus_sign: | Dolby Vision BL compatibility ID. | 1 | | `HeaderCompression` | **bool* | :heavy_minus_sign: | Indicates whether header compression is enabled. | true |
| `DOVIBLPresent` | **bool* | :heavy_minus_sign: | Indicates if Dolby Vision BL is present. | true | | `DOVIBLCompatID` | **int* | :heavy_minus_sign: | Dolby Vision BL compatibility ID. | 1 |
| `DOVIELPresent` | **bool* | :heavy_minus_sign: | Indicates if Dolby Vision EL is present. | false | | `DOVIBLPresent` | **bool* | :heavy_minus_sign: | Indicates if Dolby Vision BL is present. | true |
| `DOVILevel` | **int* | :heavy_minus_sign: | Dolby Vision level. | 6 | | `DOVIELPresent` | **bool* | :heavy_minus_sign: | Indicates if Dolby Vision EL is present. | false |
| `DOVIPresent` | **bool* | :heavy_minus_sign: | Indicates if Dolby Vision is present. | true | | `DOVILevel` | **int* | :heavy_minus_sign: | Dolby Vision level. | 6 |
| `DOVIProfile` | **int* | :heavy_minus_sign: | Dolby Vision profile. | 8 | | `DOVIPresent` | **bool* | :heavy_minus_sign: | Indicates if Dolby Vision is present. | true |
| `DOVIRPUPresent` | **bool* | :heavy_minus_sign: | Indicates if Dolby Vision RPU is present. | true | | `DOVIProfile` | **int* | :heavy_minus_sign: | Dolby Vision profile. | 8 |
| `DOVIVersion` | **string* | :heavy_minus_sign: | Dolby Vision version. | 1.0 | | `DOVIRPUPresent` | **bool* | :heavy_minus_sign: | Indicates if Dolby Vision RPU is present. | true |
| `BitDepth` | **int* | :heavy_minus_sign: | Bit depth of the video stream. | 10 | | `DOVIVersion` | **string* | :heavy_minus_sign: | Dolby Vision version. | 1.0 |
| `ChromaLocation` | **string* | :heavy_minus_sign: | Chroma sample location. | topleft | | `BitDepth` | **int* | :heavy_minus_sign: | Bit depth of the video stream. | 10 |
| `ChromaSubsampling` | **string* | :heavy_minus_sign: | Chroma subsampling format. | 4:2:0 | | `ChromaLocation` | **string* | :heavy_minus_sign: | Chroma sample location. | topleft |
| `CodedHeight` | **int* | :heavy_minus_sign: | Coded video height. | 1608 | | `ChromaSubsampling` | **string* | :heavy_minus_sign: | Chroma subsampling format. | 4:2:0 |
| `CodedWidth` | **int* | :heavy_minus_sign: | Coded video width. | 3840 | | `CodedHeight` | **int* | :heavy_minus_sign: | Coded video height. | 1608 |
| `ClosedCaptions` | **bool* | :heavy_minus_sign: | N/A | true | | `CodedWidth` | **int* | :heavy_minus_sign: | Coded video width. | 3840 |
| `ColorPrimaries` | **string* | :heavy_minus_sign: | Color primaries used. | bt2020 | | `ClosedCaptions` | **bool* | :heavy_minus_sign: | N/A | true |
| `ColorRange` | **string* | :heavy_minus_sign: | Color range (e.g., tv). | tv | | `ColorPrimaries` | **string* | :heavy_minus_sign: | Color primaries used. | bt2020 |
| `ColorSpace` | **string* | :heavy_minus_sign: | Color space. | bt2020nc | | `ColorRange` | **string* | :heavy_minus_sign: | Color range (e.g., tv). | tv |
| `ColorTrc` | **string* | :heavy_minus_sign: | Color transfer characteristics. | smpte2084 | | `ColorSpace` | **string* | :heavy_minus_sign: | Color space. | bt2020nc |
| `FrameRate` | **float32* | :heavy_minus_sign: | Frame rate of the stream. | 23.976 | | `ColorTrc` | **string* | :heavy_minus_sign: | Color transfer characteristics. | smpte2084 |
| `Height` | **int* | :heavy_minus_sign: | Height of the video stream. | 1602 | | `FrameRate` | **float32* | :heavy_minus_sign: | Frame rate of the stream. | 23.976 |
| `Level` | **int* | :heavy_minus_sign: | Video level. | 150 | | `Key` | **string* | :heavy_minus_sign: | Key to access this stream part. | /library/streams/216389 |
| `Original` | **bool* | :heavy_minus_sign: | Indicates if this is the original stream. | true | | `Height` | **int* | :heavy_minus_sign: | Height of the video stream. | 1602 |
| `HasScalingMatrix` | **bool* | :heavy_minus_sign: | N/A | false | | `Level` | **int* | :heavy_minus_sign: | Video level. | 150 |
| `Profile` | **string* | :heavy_minus_sign: | Video profile. | main 10 | | `Original` | **bool* | :heavy_minus_sign: | Indicates if this is the original stream. | true |
| `ScanType` | **string* | :heavy_minus_sign: | N/A | progressive | | `HasScalingMatrix` | **bool* | :heavy_minus_sign: | N/A | false |
| `EmbeddedInVideo` | **string* | :heavy_minus_sign: | N/A | progressive | | `Profile` | **string* | :heavy_minus_sign: | Video profile. | main 10 |
| `RefFrames` | **int* | :heavy_minus_sign: | Number of reference frames. | 1 | | `ScanType` | **string* | :heavy_minus_sign: | N/A | progressive |
| `Width` | **int* | :heavy_minus_sign: | Width of the video stream. | 3840 | | `EmbeddedInVideo` | **string* | :heavy_minus_sign: | N/A | progressive |
| `DisplayTitle` | *string* | :heavy_check_mark: | Display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | | `RefFrames` | **int* | :heavy_minus_sign: | Number of reference frames. | 1 |
| `ExtendedDisplayTitle` | *string* | :heavy_check_mark: | Extended display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | | `Width` | **int* | :heavy_minus_sign: | Width of the video stream. | 3840 |
| `Selected` | **bool* | :heavy_minus_sign: | Indicates if this stream is selected (applicable for audio streams). | true | | `DisplayTitle` | *string* | :heavy_check_mark: | Display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) |
| `Forced` | **bool* | :heavy_minus_sign: | N/A | true | | `ExtendedDisplayTitle` | *string* | :heavy_check_mark: | Extended display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) |
| `Channels` | **int* | :heavy_minus_sign: | Number of audio channels (for audio streams). | 6 | | `Selected` | **bool* | :heavy_minus_sign: | Indicates if this stream is selected (applicable for audio streams). | true |
| `AudioChannelLayout` | **string* | :heavy_minus_sign: | Audio channel layout. | 5.1(side) | | `Forced` | **bool* | :heavy_minus_sign: | N/A | true |
| `SamplingRate` | **int* | :heavy_minus_sign: | Sampling rate for the audio stream. | 48000 | | `Channels` | **int* | :heavy_minus_sign: | Number of audio channels (for audio streams). | 6 |
| `CanAutoSync` | **bool* | :heavy_minus_sign: | Indicates if the stream can auto-sync. | false | | `AudioChannelLayout` | **string* | :heavy_minus_sign: | Audio channel layout. | 5.1(side) |
| `HearingImpaired` | **bool* | :heavy_minus_sign: | Indicates if the stream is for the hearing impaired. | true | | `SamplingRate` | **int* | :heavy_minus_sign: | Sampling rate for the audio stream. | 48000 |
| `Dub` | **bool* | :heavy_minus_sign: | Indicates if the stream is a dub. | true | | `CanAutoSync` | **bool* | :heavy_minus_sign: | Indicates if the stream can auto-sync. | false |
| `Title` | **string* | :heavy_minus_sign: | Optional title for the stream (e.g., language variant). | SDH | | `HearingImpaired` | **bool* | :heavy_minus_sign: | Indicates if the stream is for the hearing impaired. | true |
| `Dub` | **bool* | :heavy_minus_sign: | Indicates if the stream is a dub. | true |
| `Title` | **string* | :heavy_minus_sign: | Optional title for the stream (e.g., language variant). | SDH |

View File

@@ -0,0 +1,16 @@
# GetAllMediaLibraryStreamType
Stream type:
- 1 = video
- 2 = audio
- 3 = subtitle
## Values
| Name | Value |
| -------------------------------------- | -------------------------------------- |
| `GetAllMediaLibraryStreamTypeVideo` | 1 |
| `GetAllMediaLibraryStreamTypeAudio` | 2 |
| `GetAllMediaLibraryStreamTypeSubtitle` | 3 |

View File

@@ -3,7 +3,7 @@
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `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/> | | | `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/> | |
| `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 | | `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 |

View File

@@ -0,0 +1,12 @@
# GetMediaArtsMediaContainer
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
| `Size` | *int* | :heavy_check_mark: | Number of media items returned in this response. | 50 |
| `MediaTagVersion` | *int64* | :heavy_check_mark: | The version number for media tags. | 1734362201 |
| `MediaTagPrefix` | *string* | :heavy_check_mark: | The prefix used for media tag resource paths. | /system/bundle/media/flags/ |
| `Identifier` | *string* | :heavy_check_mark: | An plugin identifier for the media container. | com.plexapp.plugins.library |
| `Metadata` | [][operations.GetMediaArtsMetadata](../../models/operations/getmediaartsmetadata.md) | :heavy_check_mark: | N/A | |

View File

@@ -0,0 +1,12 @@
# GetMediaArtsMetadata
## Fields
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Key` | *string* | :heavy_check_mark: | The URL of the artwork. | https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg |
| `Provider` | **string* | :heavy_minus_sign: | The provider of the artwork. | tmdb |
| `RatingKey` | *string* | :heavy_check_mark: | The URL of the artwork. | https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg |
| `Selected` | *bool* | :heavy_check_mark: | Whether this is the selected artwork. | true |
| `Thumb` | *string* | :heavy_check_mark: | The URL of the artwork thumbnail. | https://images.plex.tv/photo?height=270&width=480&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FixgFmf1X59PUZam2qbAfskx2gQr%2Ejpg |

View File

@@ -0,0 +1,8 @@
# GetMediaArtsRequest
## Fields
| Field | Type | Required | Description | Example |
| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- |
| `RatingKey` | *int64* | :heavy_check_mark: | the id of the library item to return the artwork of. | 16099 |

View File

@@ -0,0 +1,11 @@
# GetMediaArtsResponse
## 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.GetMediaArtsResponseBody](../../models/operations/getmediaartsresponsebody.md) | :heavy_minus_sign: | The available background artwork for the library item. |

View File

@@ -0,0 +1,10 @@
# GetMediaArtsResponseBody
The available background artwork for the library item.
## Fields
| Field | Type | Required | Description |
| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| `MediaContainer` | [*operations.GetMediaArtsMediaContainer](../../models/operations/getmediaartsmediacontainer.md) | :heavy_minus_sign: | N/A |

View File

@@ -1,10 +1,12 @@
# GetMediaMetaDataCountry # GetMediaMetaDataCountry
The filter query string for country media items.
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- |
| `ID` | *int* | :heavy_check_mark: | The unique country identifier. | 58591 | | `ID` | *int* | :heavy_check_mark: | N/A | 259 |
| `Filter` | *string* | :heavy_check_mark: | The filter string for the country. | country=58591 | | `Tag` | *string* | :heavy_check_mark: | The country of origin of this media item | United States of America |
| `Tag` | *string* | :heavy_check_mark: | The country name. | United States of America | | `Filter` | **string* | :heavy_minus_sign: | N/A | country=19 |

View File

@@ -3,11 +3,10 @@
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| `ID` | *int64* | :heavy_check_mark: | The unique role identifier. | 109501 | | `ID` | *int* | :heavy_check_mark: | Unique identifier for the director. | 126522 |
| `Filter` | *string* | :heavy_check_mark: | The filter string for the role. | actor=109501 | | `Tag` | *string* | :heavy_check_mark: | The role of Director | Danny Boyle |
| `Tag` | *string* | :heavy_check_mark: | The actor's name. | Bob Odenkirk | | `Filter` | *string* | :heavy_check_mark: | The filter string used to query this director. | director=235876 |
| `TagKey` | *string* | :heavy_check_mark: | A key associated with the actor tag. | 5d77683254f42c001f8c3f69 | | `TagKey` | **string* | :heavy_minus_sign: | A unique key associated with the director's tag, used for internal identification. | 5d776831151a60001f24d031 |
| `Role` | **string* | :heavy_minus_sign: | The character name or role. | Jimmy McGill | | `Thumb` | **string* | :heavy_minus_sign: | The URL of the thumbnail image for the director. | https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg |
| `Thumb` | **string* | :heavy_minus_sign: | URL for the role thumbnail image. | https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg |

View File

@@ -1,10 +1,12 @@
# GetMediaMetaDataGenre # GetMediaMetaDataGenre
The filter query string for similar items.
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | | ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- |
| `ID` | *int64* | :heavy_check_mark: | The unique genre identifier. | 1057 | | `ID` | *int64* | :heavy_check_mark: | N/A | 259 |
| `Filter` | *string* | :heavy_check_mark: | The filter string for the genre. | genre=1057 | | `Tag` | *string* | :heavy_check_mark: | The genre name of this media-item<br/> | Crime |
| `Tag` | *string* | :heavy_check_mark: | The genre name. | Crime | | `Filter` | *string* | :heavy_check_mark: | N/A | genre=19 |

View File

@@ -3,8 +3,8 @@
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
| `Alt` | *string* | :heavy_check_mark: | Alternate text for the image. | Better Call Saul | | `Alt` | *string* | :heavy_check_mark: | N/A | Episode 1 |
| `Type` | *string* | :heavy_check_mark: | The type of image (e.g., coverPoster, background, clearLogo). | coverPoster | | `Type` | [operations.GetMediaMetaDataLibraryType](../../models/operations/getmediametadatalibrarytype.md) | :heavy_check_mark: | N/A | background |
| `URL` | *string* | :heavy_check_mark: | The URL of the image. | /library/metadata/44288/thumb/1736487993 | | `URL` | *string* | :heavy_check_mark: | N/A | /library/metadata/45521/thumb/1644710589 |

View File

@@ -0,0 +1,11 @@
# GetMediaMetaDataLibraryType
## Values
| Name | Value |
| ---------------------------------------- | ---------------------------------------- |
| `GetMediaMetaDataLibraryTypeCoverPoster` | coverPoster |
| `GetMediaMetaDataLibraryTypeBackground` | background |
| `GetMediaMetaDataLibraryTypeSnapshot` | snapshot |
| `GetMediaMetaDataLibraryTypeClearLogo` | clearLogo |

View File

@@ -1,68 +1,83 @@
# GetMediaMetaDataMetadata # GetMediaMetaDataMetadata
Unknown
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `RatingKey` | *string* | :heavy_check_mark: | The rating key of the metadata item. | 44288 | | `RatingKey` | *string* | :heavy_check_mark: | The rating key (Media ID) of this media item. Note: Although this is always an integer, it is represented as a string in the API. | 58683 |
| `ParentRatingKey` | **string* | :heavy_minus_sign: | The rating key of the parent of this metadata item. | 48047 | | `Key` | *string* | :heavy_check_mark: | The unique key for the media item. | /library/metadata/58683 |
| `GrandparentRatingKey` | **string* | :heavy_minus_sign: | The rating key of the grandparent of this metadata item. | 45520 | | `GUID` | *string* | :heavy_check_mark: | The globally unique identifier for the media item. | plex://movie/5d7768ba96b655001fdc0408 |
| `ParentGUID` | **string* | :heavy_minus_sign: | A GUID identifying the parent entity (e.g., season) for the item. | plex://season/618b89208dde18df707ad15c | | `Slug` | *string* | :heavy_check_mark: | A URLfriendly version of the media title. | 4-for-texas |
| `GrandparentGUID` | **string* | :heavy_minus_sign: | A GUID identifying the grandparent entity (e.g., show). | plex://show/5e16253691c20300412003a8 | | `Studio` | **string* | :heavy_minus_sign: | The studio that produced the media item. | 20th Century Studios |
| `GrandparentSlug` | **string* | :heavy_minus_sign: | A URL-friendly identifier (slug) for the grandparent entity. | alice-in-borderland-2020 | | `Type` | [operations.GetMediaMetaDataType](../../models/operations/getmediametadatatype.md) | :heavy_check_mark: | N/A | movie |
| `GrandparentKey` | **string* | :heavy_minus_sign: | A key identifying the grandparent metadata in the library. | /library/metadata/45520 | | `Title` | *string* | :heavy_check_mark: | The title of the media item. | Avatar: The Way of Water |
| `ParentKey` | **string* | :heavy_minus_sign: | A key identifying the parent metadata in the library. | /library/metadata/48047 | | `TitleSort` | *string* | :heavy_check_mark: | The sort title used for ordering media items. | Whale |
| `Key` | *string* | :heavy_check_mark: | The API key to access metadata details. | /library/metadata/44288/children | | `ContentRating` | **string* | :heavy_minus_sign: | The content rating for the media item. | PG-13 |
| `GUID` | *string* | :heavy_check_mark: | The globally unique identifier for the item. | plex://show/5d9c08254eefaa001f5d6dcb | | `Summary` | *string* | :heavy_check_mark: | A synopsis of the media item. | Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.<br/>Once a familiar threat returns to finish what was previously started, Jake must<br/>work with Neytiri and the army of the Na'vi race to protect their home.<br/> |
| `Slug` | **string* | :heavy_minus_sign: | A URL-friendly identifier for the item. | better-call-saul | | `Rating` | *float32* | :heavy_check_mark: | The critic rating for the media item. | 7.6 |
| `Studio` | **string* | :heavy_minus_sign: | The studio that produced the content. | Sony Pictures Television | | `AudienceRating` | *float64* | :heavy_check_mark: | The audience rating for the media item. | 9.2 |
| `Type` | *string* | :heavy_check_mark: | The type of content (e.g., show, movie). | show | | `Year` | **int* | :heavy_minus_sign: | The release year of the media item. | 2022 |
| `Title` | *string* | :heavy_check_mark: | The title of the content. | Better Call Saul | | `Tagline` | *string* | :heavy_check_mark: | A brief tagline for the media item. | Return to Pandora. |
| `OriginalTitle` | **string* | :heavy_minus_sign: | The original title of the content. | Wicked: Part I | | `Thumb` | *string* | :heavy_check_mark: | The thumbnail image URL for the media item. | /library/metadata/58683/thumb/1703239236 |
| `LibrarySectionTitle` | *string* | :heavy_check_mark: | The title of the library section. | TV Series | | `Art` | *string* | :heavy_check_mark: | The art image URL for the media item. | /library/metadata/58683/art/1703239236 |
| `LibrarySectionID` | *int64* | :heavy_check_mark: | The ID of the library section. | 2 | | `Theme` | *string* | :heavy_check_mark: | The theme URL for the media item. | /library/metadata/1/theme/1705636920 |
| `LibrarySectionKey` | *string* | :heavy_check_mark: | The key of the library section. | /library/sections/2 | | `Index` | *int* | :heavy_check_mark: | The index position of the media item. | 1 |
| `ContentRating` | **string* | :heavy_minus_sign: | The content rating (e.g., TV-MA). | TV-MA | | `LeafCount` | **int* | :heavy_minus_sign: | The number of leaf items (end nodes) under this media item. | 14 |
| `Summary` | *string* | :heavy_check_mark: | A summary of the content. | Before Saul Goodman, he was Jimmy McGill. And if you're calling Jimmy, you're in real trouble. The prequel to "Breaking Bad" follows small-time attorney, Jimmy McGill, as he transforms into Walter White's morally challenged lawyer, Saul Goodman. | | `ViewedLeafCount` | **int* | :heavy_minus_sign: | The number of leaf items that have been viewed. | 0 |
| `Index` | **int64* | :heavy_minus_sign: | The index or order of the item. | 1 | | `ChildCount` | *int* | :heavy_check_mark: | The number of child items associated with this media item. | 1 |
| `GrandparentTitle` | **string* | :heavy_minus_sign: | The title of the grandparent entity (typically the show's title). | Alice in Borderland | | `SeasonCount` | *int* | :heavy_check_mark: | The total number of seasons (for TV shows). | 2022 |
| `ParentTitle` | **string* | :heavy_minus_sign: | The title of the parent entity (typically the season's title). | Season 2 | | `Duration` | *int* | :heavy_check_mark: | The duration of the media item in milliseconds. | 11558112 |
| `AudienceRating` | **float32* | :heavy_minus_sign: | The audience rating for the content. | 8.7 | | `OriginallyAvailableAt` | [types.Date](../../types/date.md) | :heavy_check_mark: | The original release date of the media item. | 2022-12-14 |
| `ViewCount` | **int64* | :heavy_minus_sign: | The number of times the item has been viewed. | 4 | | `AddedAt` | *int64* | :heavy_check_mark: | N/A | 1556281940 |
| `SkipCount` | **int64* | :heavy_minus_sign: | The number of times the item has been skipped. | 1 | | `UpdatedAt` | **int64* | :heavy_minus_sign: | Unix epoch datetime in seconds | 1556281940 |
| `LastViewedAt` | **int64* | :heavy_minus_sign: | Unix timestamp of when the item was last viewed. | 1625764795 | | `AudienceRatingImage` | **string* | :heavy_minus_sign: | The URL for the audience rating image. | rottentomatoes://image.rating.upright |
| `Year` | *int* | :heavy_check_mark: | The release year. | 2015 | | `ChapterSource` | **string* | :heavy_minus_sign: | The source from which chapter data is derived. | media |
| `Rating` | **float32* | :heavy_minus_sign: | The general rating | 6 | | `PrimaryExtraKey` | **string* | :heavy_minus_sign: | The primary extra key associated with this media item. | /library/metadata/58684 |
| `RatingImage` | **string* | :heavy_minus_sign: | The URL or identifier for the rating image (e.g., Rotten Tomatoes rating image). | rottentomatoes://image.rating.ripe | | `OriginalTitle` | **string* | :heavy_minus_sign: | The original title of the media item (if different). | 映画 ブラッククローバー 魔法帝の剣 |
| `Tagline` | **string* | :heavy_minus_sign: | The tagline of the content. | Make the call | | `ParentRatingKey` | **string* | :heavy_minus_sign: | The rating key of the parent media item. | 66 |
| `ChapterSource` | **string* | :heavy_minus_sign: | N/A | media | | `GrandparentRatingKey` | **string* | :heavy_minus_sign: | The rating key of the grandparent media item. | 66 |
| `PrimaryExtraKey` | **string* | :heavy_minus_sign: | N/A | /library/metadata/134704 | | `ParentGUID` | **string* | :heavy_minus_sign: | The GUID of the parent media item. | plex://show/5d9c081b170e24001f2a7be4 |
| `Thumb` | *string* | :heavy_check_mark: | URL of the thumbnail image. | /library/metadata/44288/thumb/1736487993 | | `GrandparentGUID` | **string* | :heavy_minus_sign: | The GUID of the grandparent media item. | plex://show/5d9c081b170e24001f2a7be4 |
| `Art` | *string* | :heavy_check_mark: | URL of the art image. | /library/metadata/44288/art/1736487993 | | `GrandparentSlug` | **string* | :heavy_minus_sign: | The slug for the grandparent media item. | alice-in-borderland-2020 |
| `Theme` | **string* | :heavy_minus_sign: | URL of the theme image. | /library/metadata/44288/theme/1736487993 | | `GrandparentKey` | **string* | :heavy_minus_sign: | The key of the grandparent media item. | /library/metadata/66 |
| `Duration` | *int* | :heavy_check_mark: | Duration of the content in milliseconds. | 2700000 | | `ParentKey` | **string* | :heavy_minus_sign: | The key of the parent media item. | /library/metadata/66 |
| `OriginallyAvailableAt` | [*types.Date](../../types/date.md) | :heavy_minus_sign: | The original release date. | 2015-02-08 | | `GrandparentTitle` | **string* | :heavy_minus_sign: | The title of the grandparent media item. | Caprica |
| `LeafCount` | **int64* | :heavy_minus_sign: | The total number of episodes (or leaves). | 63 | | `GrandparentThumb` | **string* | :heavy_minus_sign: | The thumbnail URL for the grandparent media item. | /library/metadata/66/thumb/1705716261 |
| `ViewedLeafCount` | **int64* | :heavy_minus_sign: | The number of episodes that have been viewed. | 4 | | `GrandparentTheme` | **string* | :heavy_minus_sign: | The theme URL for the grandparent media item. | /library/metadata/66/theme/1705716261 |
| `ChildCount` | **int* | :heavy_minus_sign: | The number of child items. | 6 | | `GrandparentArt` | **string* | :heavy_minus_sign: | The art URL for the grandparent media item. | /library/metadata/66/art/1705716261 |
| `AddedAt` | *int64* | :heavy_check_mark: | N/A | 1556281940 | | `ParentTitle` | **string* | :heavy_minus_sign: | The title of the parent media item. | Caprica |
| `UpdatedAt` | *int64* | :heavy_check_mark: | N/A | 1556281940 | | `ParentIndex` | **int* | :heavy_minus_sign: | The index position of the parent media item. | 1 |
| `AudienceRatingImage` | **string* | :heavy_minus_sign: | The URL for the audience rating image. | themoviedb://image.rating | | `ParentThumb` | **string* | :heavy_minus_sign: | The thumbnail URL for the parent media item. | /library/metadata/66/thumb/1705716261 |
| `ParentIndex` | **int64* | :heavy_minus_sign: | The index number of the parent entity, which could indicate its order or position. | 2 | | `RatingImage` | **string* | :heavy_minus_sign: | The URL for the rating image. | rottentomatoes://image.rating.ripe |
| `ParentThumb` | **string* | :heavy_minus_sign: | The URL of the parent's thumbnail image. | /library/metadata/48047/thumb/1671800243 | | `ViewCount` | **int* | :heavy_minus_sign: | The number of times this media item has been viewed. | 1 |
| `GrandparentThumb` | **string* | :heavy_minus_sign: | The URL of the grandparent's thumbnail image. | /library/metadata/45520/thumb/1736488003 | | `ViewOffset` | **int* | :heavy_minus_sign: | The current playback offset (in milliseconds). | 5222500 |
| `GrandparentArt` | **string* | :heavy_minus_sign: | The URL of the grandparent's art image. | /library/metadata/45520/art/1736488003 | | `SkipCount` | **int* | :heavy_minus_sign: | The number of times this media item has been skipped. | 1 |
| `Media` | [][operations.GetMediaMetaDataMedia](../../models/operations/getmediametadatamedia.md) | :heavy_minus_sign: | N/A | | | `Subtype` | **string* | :heavy_minus_sign: | A classification that further describes the type of media item. For example, 'clip' indicates that the item is a short video clip. | clip |
| `Image` | [][operations.GetMediaMetaDataImage](../../models/operations/getmediametadataimage.md) | :heavy_check_mark: | An array of image objects. | | | `LastRatedAt` | **int64* | :heavy_minus_sign: | The Unix timestamp representing the last time the item was rated. | 1721813113 |
| `UltraBlurColors` | [operations.GetMediaMetaDataUltraBlurColors](../../models/operations/getmediametadataultrablurcolors.md) | :heavy_check_mark: | N/A | | | `CreatedAtAccuracy` | **string* | :heavy_minus_sign: | The accuracy of the creation timestamp. This value indicates the format(s) provided (for example, 'epoch,local' means both epoch and local time formats are available). | epoch,local |
| `Genre` | [][operations.GetMediaMetaDataGenre](../../models/operations/getmediametadatagenre.md) | :heavy_minus_sign: | An array of genre tags. | | | `CreatedAtTZOffset` | **string* | :heavy_minus_sign: | The time zone offset for the creation timestamp, represented as a string. This offset indicates the difference from UTC. | 0 |
| `Country` | [][operations.GetMediaMetaDataCountry](../../models/operations/getmediametadatacountry.md) | :heavy_minus_sign: | An array of country tags. | | | `LastViewedAt` | **int* | :heavy_minus_sign: | Unix timestamp for when the media item was last viewed. | 1682752242 |
| `Guids` | [][operations.GetMediaMetaDataGuids](../../models/operations/getmediametadataguids.md) | :heavy_minus_sign: | An array of GUID objects. | | | `UserRating` | **float32* | :heavy_minus_sign: | The rating provided by a user for the item. This value is expressed as a decimal number. | 10 |
| `Ratings` | [][operations.Ratings](../../models/operations/ratings.md) | :heavy_minus_sign: | An array of rating objects. | | | `Image` | [][operations.GetMediaMetaDataImage](../../models/operations/getmediametadataimage.md) | :heavy_minus_sign: | N/A | |
| `Role` | [][operations.GetMediaMetaDataRole](../../models/operations/getmediametadatarole.md) | :heavy_minus_sign: | An array of Actor roles. | | | `UltraBlurColors` | [*operations.GetMediaMetaDataUltraBlurColors](../../models/operations/getmediametadataultrablurcolors.md) | :heavy_minus_sign: | N/A | |
| `Director` | [][operations.GetMediaMetaDataDirector](../../models/operations/getmediametadatadirector.md) | :heavy_minus_sign: | An array of Director roles. | | | `LibrarySectionID` | *int64* | :heavy_check_mark: | The identifier for the library section. | 1 |
| `Writer` | [][operations.GetMediaMetaDataWriter](../../models/operations/getmediametadatawriter.md) | :heavy_minus_sign: | An array of Writer roles. | | | `LibrarySectionTitle` | *string* | :heavy_check_mark: | The title of the library section. | Movies |
| `Producer` | [][operations.GetMediaMetaDataProducer](../../models/operations/getmediametadataproducer.md) | :heavy_minus_sign: | An array of Writer roles. | | | `LibrarySectionKey` | *string* | :heavy_check_mark: | The key corresponding to the library section. | /library/sections/1 |
| `Similar` | [][operations.GetMediaMetaDataSimilar](../../models/operations/getmediametadatasimilar.md) | :heavy_minus_sign: | An array of similar content objects. | | | `Media` | [][operations.GetMediaMetaDataMedia](../../models/operations/getmediametadatamedia.md) | :heavy_minus_sign: | N/A | |
| `Location` | [][operations.GetMediaMetaDataLocation](../../models/operations/getmediametadatalocation.md) | :heavy_minus_sign: | An array of location objects. | | | `Genre` | [][operations.GetMediaMetaDataGenre](../../models/operations/getmediametadatagenre.md) | :heavy_minus_sign: | N/A | |
| `Country` | [][operations.GetMediaMetaDataCountry](../../models/operations/getmediametadatacountry.md) | :heavy_minus_sign: | N/A | |
| `Director` | [][operations.GetMediaMetaDataDirector](../../models/operations/getmediametadatadirector.md) | :heavy_minus_sign: | N/A | |
| `Writer` | [][operations.GetMediaMetaDataWriter](../../models/operations/getmediametadatawriter.md) | :heavy_minus_sign: | N/A | |
| `Producer` | [][operations.GetMediaMetaDataProducer](../../models/operations/getmediametadataproducer.md) | :heavy_minus_sign: | N/A | |
| `Role` | [][operations.GetMediaMetaDataRole](../../models/operations/getmediametadatarole.md) | :heavy_minus_sign: | N/A | |
| `Guids` | [][operations.GetMediaMetaDataGuids](../../models/operations/getmediametadataguids.md) | :heavy_minus_sign: | N/A | |
| `Ratings` | [][operations.Ratings](../../models/operations/ratings.md) | :heavy_minus_sign: | N/A | |
| `Similar` | [][operations.GetMediaMetaDataSimilar](../../models/operations/getmediametadatasimilar.md) | :heavy_minus_sign: | N/A | |
| `Location` | [][operations.GetMediaMetaDataLocation](../../models/operations/getmediametadatalocation.md) | :heavy_minus_sign: | N/A | |
| `Chapter` | [][operations.Chapter](../../models/operations/chapter.md) | :heavy_minus_sign: | N/A | |
| `Marker` | [][operations.Marker](../../models/operations/marker.md) | :heavy_minus_sign: | N/A | |
| `Extras` | [*operations.Extras](../../models/operations/extras.md) | :heavy_minus_sign: | N/A | |

View File

@@ -3,11 +3,11 @@
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| `ID` | *int64* | :heavy_check_mark: | The unique role identifier. | 109501 | | `ID` | *int64* | :heavy_check_mark: | Unique identifier for the actor or role. | 126522 |
| `Filter` | *string* | :heavy_check_mark: | The filter string for the role. | actor=109501 | | `Tag` | *string* | :heavy_check_mark: | The display tag for the actor (typically the actor's name). | Teller |
| `Tag` | *string* | :heavy_check_mark: | The actor's name. | Bob Odenkirk | | `Role` | **string* | :heavy_minus_sign: | The role played by the actor in the media item. | Self - Judge |
| `TagKey` | *string* | :heavy_check_mark: | A key associated with the actor tag. | 5d77683254f42c001f8c3f69 | | `Filter` | *string* | :heavy_check_mark: | The filter string used to query this actor. For example, it may indicate that this is an actor with a given key. | actor=126522 |
| `Role` | **string* | :heavy_minus_sign: | The character name or role. | Jimmy McGill | | `TagKey` | **string* | :heavy_minus_sign: | A unique key associated with the actor's tag, used for internal identification. | 5d77683d85719b001f3a535e |
| `Thumb` | **string* | :heavy_minus_sign: | URL for the role thumbnail image. | https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg | | `Thumb` | **string* | :heavy_minus_sign: | The URL of the thumbnail image for the actor. | https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg |

View File

@@ -3,54 +3,56 @@
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| `ID` | *int64* | :heavy_check_mark: | Unique stream identifier. | 1002625 | | `ID` | *int64* | :heavy_check_mark: | Unique stream identifier. | 1002625 |
| `StreamType` | *int* | :heavy_check_mark: | Stream type (1=video, 2=audio, 3=subtitle). | 1 | | `StreamType` | [operations.GetMediaMetaDataStreamType](../../models/operations/getmediametadatastreamtype.md) | :heavy_check_mark: | Stream type:<br/> - 1 = video<br/> - 2 = audio<br/> - 3 = subtitle<br/> | 1 |
| `Default` | **bool* | :heavy_minus_sign: | Indicates if this stream is default. | true | | `Format` | **string* | :heavy_minus_sign: | Format of the stream (e.g., srt). | srt |
| `Codec` | *string* | :heavy_check_mark: | Codec used by the stream. | hevc | | `Default` | **bool* | :heavy_minus_sign: | Indicates if this stream is default. | true |
| `Index` | *int* | :heavy_check_mark: | Index of the stream. | 0 | | `Codec` | *string* | :heavy_check_mark: | Codec used by the stream. | hevc |
| `Bitrate` | **int* | :heavy_minus_sign: | Bitrate of the stream. | 24743 | | `Index` | **int* | :heavy_minus_sign: | Index of the stream. | 0 |
| `Language` | **string* | :heavy_minus_sign: | Language of the stream. | English | | `Bitrate` | **int* | :heavy_minus_sign: | Bitrate of the stream. | 24743 |
| `LanguageTag` | **string* | :heavy_minus_sign: | Language tag (e.g., en). | en | | `Language` | **string* | :heavy_minus_sign: | Language of the stream. | English |
| `LanguageCode` | **string* | :heavy_minus_sign: | ISO language code. | eng | | `LanguageTag` | **string* | :heavy_minus_sign: | Language tag (e.g., en). | en |
| `HeaderCompression` | **bool* | :heavy_minus_sign: | Indicates whether header compression is enabled. | true | | `LanguageCode` | **string* | :heavy_minus_sign: | ISO language code. | eng |
| `DOVIBLCompatID` | **int* | :heavy_minus_sign: | Dolby Vision BL compatibility ID. | 1 | | `HeaderCompression` | **bool* | :heavy_minus_sign: | Indicates whether header compression is enabled. | true |
| `DOVIBLPresent` | **bool* | :heavy_minus_sign: | Indicates if Dolby Vision BL is present. | true | | `DOVIBLCompatID` | **int* | :heavy_minus_sign: | Dolby Vision BL compatibility ID. | 1 |
| `DOVIELPresent` | **bool* | :heavy_minus_sign: | Indicates if Dolby Vision EL is present. | false | | `DOVIBLPresent` | **bool* | :heavy_minus_sign: | Indicates if Dolby Vision BL is present. | true |
| `DOVILevel` | **int* | :heavy_minus_sign: | Dolby Vision level. | 6 | | `DOVIELPresent` | **bool* | :heavy_minus_sign: | Indicates if Dolby Vision EL is present. | false |
| `DOVIPresent` | **bool* | :heavy_minus_sign: | Indicates if Dolby Vision is present. | true | | `DOVILevel` | **int* | :heavy_minus_sign: | Dolby Vision level. | 6 |
| `DOVIProfile` | **int* | :heavy_minus_sign: | Dolby Vision profile. | 8 | | `DOVIPresent` | **bool* | :heavy_minus_sign: | Indicates if Dolby Vision is present. | true |
| `DOVIRPUPresent` | **bool* | :heavy_minus_sign: | Indicates if Dolby Vision RPU is present. | true | | `DOVIProfile` | **int* | :heavy_minus_sign: | Dolby Vision profile. | 8 |
| `DOVIVersion` | **string* | :heavy_minus_sign: | Dolby Vision version. | 1.0 | | `DOVIRPUPresent` | **bool* | :heavy_minus_sign: | Indicates if Dolby Vision RPU is present. | true |
| `BitDepth` | **int* | :heavy_minus_sign: | Bit depth of the video stream. | 10 | | `DOVIVersion` | **string* | :heavy_minus_sign: | Dolby Vision version. | 1.0 |
| `ChromaLocation` | **string* | :heavy_minus_sign: | Chroma sample location. | topleft | | `BitDepth` | **int* | :heavy_minus_sign: | Bit depth of the video stream. | 10 |
| `ChromaSubsampling` | **string* | :heavy_minus_sign: | Chroma subsampling format. | 4:2:0 | | `ChromaLocation` | **string* | :heavy_minus_sign: | Chroma sample location. | topleft |
| `CodedHeight` | **int* | :heavy_minus_sign: | Coded video height. | 1608 | | `ChromaSubsampling` | **string* | :heavy_minus_sign: | Chroma subsampling format. | 4:2:0 |
| `CodedWidth` | **int* | :heavy_minus_sign: | Coded video width. | 3840 | | `CodedHeight` | **int* | :heavy_minus_sign: | Coded video height. | 1608 |
| `ClosedCaptions` | **bool* | :heavy_minus_sign: | N/A | true | | `CodedWidth` | **int* | :heavy_minus_sign: | Coded video width. | 3840 |
| `ColorPrimaries` | **string* | :heavy_minus_sign: | Color primaries used. | bt2020 | | `ClosedCaptions` | **bool* | :heavy_minus_sign: | N/A | true |
| `ColorRange` | **string* | :heavy_minus_sign: | Color range (e.g., tv). | tv | | `ColorPrimaries` | **string* | :heavy_minus_sign: | Color primaries used. | bt2020 |
| `ColorSpace` | **string* | :heavy_minus_sign: | Color space. | bt2020nc | | `ColorRange` | **string* | :heavy_minus_sign: | Color range (e.g., tv). | tv |
| `ColorTrc` | **string* | :heavy_minus_sign: | Color transfer characteristics. | smpte2084 | | `ColorSpace` | **string* | :heavy_minus_sign: | Color space. | bt2020nc |
| `FrameRate` | **float32* | :heavy_minus_sign: | Frame rate of the stream. | 23.976 | | `ColorTrc` | **string* | :heavy_minus_sign: | Color transfer characteristics. | smpte2084 |
| `Height` | **int* | :heavy_minus_sign: | Height of the video stream. | 1602 | | `FrameRate` | **float32* | :heavy_minus_sign: | Frame rate of the stream. | 23.976 |
| `Level` | **int* | :heavy_minus_sign: | Video level. | 150 | | `Key` | **string* | :heavy_minus_sign: | Key to access this stream part. | /library/streams/216389 |
| `Original` | **bool* | :heavy_minus_sign: | Indicates if this is the original stream. | true | | `Height` | **int* | :heavy_minus_sign: | Height of the video stream. | 1602 |
| `HasScalingMatrix` | **bool* | :heavy_minus_sign: | N/A | false | | `Level` | **int* | :heavy_minus_sign: | Video level. | 150 |
| `Profile` | **string* | :heavy_minus_sign: | Video profile. | main 10 | | `Original` | **bool* | :heavy_minus_sign: | Indicates if this is the original stream. | true |
| `ScanType` | **string* | :heavy_minus_sign: | N/A | progressive | | `HasScalingMatrix` | **bool* | :heavy_minus_sign: | N/A | false |
| `EmbeddedInVideo` | **string* | :heavy_minus_sign: | N/A | progressive | | `Profile` | **string* | :heavy_minus_sign: | Video profile. | main 10 |
| `RefFrames` | **int* | :heavy_minus_sign: | Number of reference frames. | 1 | | `ScanType` | **string* | :heavy_minus_sign: | N/A | progressive |
| `Width` | **int* | :heavy_minus_sign: | Width of the video stream. | 3840 | | `EmbeddedInVideo` | **string* | :heavy_minus_sign: | N/A | progressive |
| `DisplayTitle` | *string* | :heavy_check_mark: | Display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | | `RefFrames` | **int* | :heavy_minus_sign: | Number of reference frames. | 1 |
| `ExtendedDisplayTitle` | *string* | :heavy_check_mark: | Extended display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | | `Width` | **int* | :heavy_minus_sign: | Width of the video stream. | 3840 |
| `Selected` | **bool* | :heavy_minus_sign: | Indicates if this stream is selected (applicable for audio streams). | true | | `DisplayTitle` | *string* | :heavy_check_mark: | Display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) |
| `Forced` | **bool* | :heavy_minus_sign: | N/A | true | | `ExtendedDisplayTitle` | *string* | :heavy_check_mark: | Extended display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) |
| `Channels` | **int* | :heavy_minus_sign: | Number of audio channels (for audio streams). | 6 | | `Selected` | **bool* | :heavy_minus_sign: | Indicates if this stream is selected (applicable for audio streams). | true |
| `AudioChannelLayout` | **string* | :heavy_minus_sign: | Audio channel layout. | 5.1(side) | | `Forced` | **bool* | :heavy_minus_sign: | N/A | true |
| `SamplingRate` | **int* | :heavy_minus_sign: | Sampling rate for the audio stream. | 48000 | | `Channels` | **int* | :heavy_minus_sign: | Number of audio channels (for audio streams). | 6 |
| `CanAutoSync` | **bool* | :heavy_minus_sign: | Indicates if the stream can auto-sync. | false | | `AudioChannelLayout` | **string* | :heavy_minus_sign: | Audio channel layout. | 5.1(side) |
| `HearingImpaired` | **bool* | :heavy_minus_sign: | Indicates if the stream is for the hearing impaired. | true | | `SamplingRate` | **int* | :heavy_minus_sign: | Sampling rate for the audio stream. | 48000 |
| `Dub` | **bool* | :heavy_minus_sign: | Indicates if the stream is a dub. | true | | `CanAutoSync` | **bool* | :heavy_minus_sign: | Indicates if the stream can auto-sync. | false |
| `Title` | **string* | :heavy_minus_sign: | Optional title for the stream (e.g., language variant). | SDH | | `HearingImpaired` | **bool* | :heavy_minus_sign: | Indicates if the stream is for the hearing impaired. | true |
| `Dub` | **bool* | :heavy_minus_sign: | Indicates if the stream is a dub. | true |
| `Title` | **string* | :heavy_minus_sign: | Optional title for the stream (e.g., language variant). | SDH |

View File

@@ -0,0 +1,16 @@
# GetMediaMetaDataStreamType
Stream type:
- 1 = video
- 2 = audio
- 3 = subtitle
## Values
| Name | Value |
| ------------------------------------ | ------------------------------------ |
| `GetMediaMetaDataStreamTypeVideo` | 1 |
| `GetMediaMetaDataStreamTypeAudio` | 2 |
| `GetMediaMetaDataStreamTypeSubtitle` | 3 |

View File

@@ -0,0 +1,16 @@
# GetMediaMetaDataType
The type of media content
## Values
| Name | Value |
| ----------------------------- | ----------------------------- |
| `GetMediaMetaDataTypeMovie` | movie |
| `GetMediaMetaDataTypeTvShow` | show |
| `GetMediaMetaDataTypeSeason` | season |
| `GetMediaMetaDataTypeEpisode` | episode |
| `GetMediaMetaDataTypeArtist` | artist |
| `GetMediaMetaDataTypeAlbum` | album |

View File

@@ -3,9 +3,9 @@
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
| `TopLeft` | *string* | :heavy_check_mark: | The top-left color value. | 11333a | | `TopLeft` | *string* | :heavy_check_mark: | N/A | 11333b |
| `TopRight` | *string* | :heavy_check_mark: | The top-right color value. | 1d2721 | | `TopRight` | *string* | :heavy_check_mark: | N/A | 0a232d |
| `BottomRight` | *string* | :heavy_check_mark: | The bottom-right color value. | 5c451d | | `BottomRight` | *string* | :heavy_check_mark: | N/A | 73958 |
| `BottomLeft` | *string* | :heavy_check_mark: | The bottom-left color value. | 372c10 | | `BottomLeft` | *string* | :heavy_check_mark: | N/A | 1f5066 |

View File

@@ -3,11 +3,10 @@
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| `ID` | *int64* | :heavy_check_mark: | The unique role identifier. | 109501 | | `ID` | *int* | :heavy_check_mark: | Unique identifier for the writer. | 126522 |
| `Filter` | *string* | :heavy_check_mark: | The filter string for the role. | actor=109501 | | `Tag` | *string* | :heavy_check_mark: | The role of Writer | Jamie P. Hanson |
| `Tag` | *string* | :heavy_check_mark: | The actor's name. | Bob Odenkirk | | `Filter` | *string* | :heavy_check_mark: | The filter string used to query this writer. | writer=126522 |
| `TagKey` | *string* | :heavy_check_mark: | A key associated with the actor tag. | 5d77683254f42c001f8c3f69 | | `Thumb` | **string* | :heavy_minus_sign: | The URL of the thumbnail image for the writer. | https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg |
| `Role` | **string* | :heavy_minus_sign: | The character name or role. | Jimmy McGill | | `TagKey` | **string* | :heavy_minus_sign: | A unique key associated with the writers tag, used for internal identification. | 5d77683d85719b001f3a535e |
| `Thumb` | **string* | :heavy_minus_sign: | URL for the role thumbnail image. | https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg |

View File

@@ -0,0 +1,12 @@
# GetMediaPostersMediaContainer
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
| `Size` | *int* | :heavy_check_mark: | Number of media items returned in this response. | 50 |
| `MediaTagVersion` | *int64* | :heavy_check_mark: | The version number for media tags. | 1734362201 |
| `MediaTagPrefix` | *string* | :heavy_check_mark: | The prefix used for media tag resource paths. | /system/bundle/media/flags/ |
| `Identifier` | *string* | :heavy_check_mark: | An plugin identifier for the media container. | com.plexapp.plugins.library |
| `Metadata` | [][operations.GetMediaPostersMetadata](../../models/operations/getmediapostersmetadata.md) | :heavy_check_mark: | N/A | |

View File

@@ -0,0 +1,12 @@
# GetMediaPostersMetadata
## Fields
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Key` | *string* | :heavy_check_mark: | The URL of the poster. | https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg |
| `Provider` | **string* | :heavy_minus_sign: | The provider of the poster. | tmdb |
| `RatingKey` | *string* | :heavy_check_mark: | The URL of the poster. | https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg |
| `Selected` | *bool* | :heavy_check_mark: | Whether this is the selected poster. | true |
| `Thumb` | *string* | :heavy_check_mark: | The URL of the poster thumbnail. | https://images.plex.tv/photo?height=336&width=225&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FhntBJjqbv4m0Iyniqaztv9xaudI%2Ejpg |

View File

@@ -0,0 +1,8 @@
# GetMediaPostersRequest
## Fields
| Field | Type | Required | Description | Example |
| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- |
| `RatingKey` | *int64* | :heavy_check_mark: | the id of the library item to return the posters of. | 16099 |

View File

@@ -0,0 +1,11 @@
# GetMediaPostersResponse
## 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.GetMediaPostersResponseBody](../../models/operations/getmediapostersresponsebody.md) | :heavy_minus_sign: | The available posters for the library item. |

View File

@@ -0,0 +1,10 @@
# GetMediaPostersResponseBody
The available posters for the library item.
## Fields
| Field | Type | Required | Description |
| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| `MediaContainer` | [*operations.GetMediaPostersMediaContainer](../../models/operations/getmediapostersmediacontainer.md) | :heavy_minus_sign: | N/A |

View File

@@ -0,0 +1,11 @@
# Hidden
UNKNOWN
## Values
| Name | Value |
| --------------- | --------------- |
| `HiddenDisable` | 0 |
| `HiddenEnable` | 1 |

View File

@@ -1,6 +1,6 @@
# IncludeDetails # IncludeDetails
Whether or not to include details for a section (types, filters, and sorts). Whether or not to include details for a section (types, filters, and sorts).
Only exists for backwards compatibility, media providers other than the server libraries have it on always. Only exists for backwards compatibility, media providers other than the server libraries have it on always.

View File

@@ -1,10 +1,10 @@
# Level # Level
An integer log level to write to the PMS log with. An integer log level to write to the PMS log with.
0: Error 0: Error
1: Warning 1: Warning
2: Info 2: Info
3: Debug 3: Debug
4: Verbose 4: Verbose

View File

@@ -3,8 +3,8 @@
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| `Level` | [operations.Level](../../models/operations/level.md) | :heavy_check_mark: | An integer log level to write to the PMS log with. <br/>0: Error <br/>1: Warning <br/>2: Info <br/>3: Debug <br/>4: Verbose<br/> | | | `Level` | [operations.Level](../../models/operations/level.md) | :heavy_check_mark: | An integer log level to write to the PMS log with.<br/>0: Error<br/>1: Warning<br/>2: Info<br/>3: Debug<br/>4: Verbose<br/> | |
| `Message` | *string* | :heavy_check_mark: | The text of the message to write to the log. | Test log message | | `Message` | *string* | :heavy_check_mark: | The text of the message to write to the log. | Test log message |
| `Source` | *string* | :heavy_check_mark: | a string indicating the source of the message. | Postman | | `Source` | *string* | :heavy_check_mark: | a string indicating the source of the message. | Postman |

View File

@@ -0,0 +1,15 @@
# Marker
The final status of the marker
## Fields
| Field | Type | Required | Description | Example |
| --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- |
| `ID` | *int64* | :heavy_check_mark: | N/A | 306970 |
| `Type` | *string* | :heavy_check_mark: | N/A | credits |
| `StartTimeOffset` | *int64* | :heavy_check_mark: | N/A | 4176050 |
| `EndTimeOffset` | *int64* | :heavy_check_mark: | N/A | 4393389 |
| `Final` | **bool* | :heavy_minus_sign: | N/A | true |
| `Attributes` | [*operations.Attributes](../../models/operations/attributes.md) | :heavy_minus_sign: | Attributes associated with the marker. | |

View File

@@ -0,0 +1,10 @@
# PostMediaArtsRequest
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| `RatingKey` | *int64* | :heavy_check_mark: | the id of the library item to return the posters of. | 2268 |
| `URL` | **string* | :heavy_minus_sign: | The URL of the image, if uploading a remote image | https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b |
| `RequestBody` | **any* | :heavy_minus_sign: | The contents of the image, if uploading a local file | |

View File

@@ -0,0 +1,10 @@
# PostMediaArtsResponse
## 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 |

View File

@@ -0,0 +1,10 @@
# PostMediaPosterRequest
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| `RatingKey` | *int64* | :heavy_check_mark: | the id of the library item to return the posters of. | 2268 |
| `URL` | **string* | :heavy_minus_sign: | The URL of the image, if uploading a remote image | https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b |
| `RequestBody` | **any* | :heavy_minus_sign: | The contents of the image, if uploading a local file | |

View File

@@ -0,0 +1,10 @@
# PostMediaPosterResponse
## 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 |

View File

@@ -5,7 +5,7 @@
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| `ID` | *int64* | :heavy_check_mark: | Unique identifier for the producer. | 126522 | | `ID` | *int* | :heavy_check_mark: | Unique identifier for the producer. | 126522 |
| `Filter` | *string* | :heavy_check_mark: | The filter string used to query this producer. | producer=126522 | | `Filter` | *string* | :heavy_check_mark: | The filter string used to query this producer. | producer=126522 |
| `Tag` | *string* | :heavy_check_mark: | The name of the producer | Amelia Knapp | | `Tag` | *string* | :heavy_check_mark: | The name of the producer | Amelia Knapp |
| `TagKey` | **string* | :heavy_minus_sign: | A unique key associated with the producer's tag, used for internal identification. | 5d77683d85719b001f3a535e | | `TagKey` | **string* | :heavy_minus_sign: | A unique key associated with the producer's tag, used for internal identification. | 5d77683d85719b001f3a535e |

View File

@@ -1,8 +1,8 @@
# QueryParamForce # QueryParamForce
Force overwriting of duplicate playlists. Force overwriting of duplicate playlists.
By default, a playlist file uploaded with the same path will overwrite the existing playlist. By default, a playlist file uploaded with the same path will overwrite the existing playlist.
The `force` argument is used to disable overwriting. 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. 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.

View File

@@ -6,10 +6,11 @@
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- |
| `ID` | *int64* | :heavy_check_mark: | Unique stream identifier. | 1002625 | | `ID` | *int64* | :heavy_check_mark: | Unique stream identifier. | 1002625 |
| `StreamType` | *int* | :heavy_check_mark: | Stream type (1=video, 2=audio, 3=subtitle). | 1 | | `StreamType` | [operations.StreamType](../../models/operations/streamtype.md) | :heavy_check_mark: | Stream type:<br/> - 1 = video<br/> - 2 = audio<br/> - 3 = subtitle<br/> | 1 |
| `Format` | **string* | :heavy_minus_sign: | Format of the stream (e.g., srt). | srt |
| `Default` | **bool* | :heavy_minus_sign: | Indicates if this stream is default. | true | | `Default` | **bool* | :heavy_minus_sign: | Indicates if this stream is default. | true |
| `Codec` | *string* | :heavy_check_mark: | Codec used by the stream. | hevc | | `Codec` | *string* | :heavy_check_mark: | Codec used by the stream. | hevc |
| `Index` | *int* | :heavy_check_mark: | Index of the stream. | 0 | | `Index` | **int* | :heavy_minus_sign: | Index of the stream. | 0 |
| `Bitrate` | **int* | :heavy_minus_sign: | Bitrate of the stream. | 24743 | | `Bitrate` | **int* | :heavy_minus_sign: | Bitrate of the stream. | 24743 |
| `Language` | **string* | :heavy_minus_sign: | Language of the stream. | English | | `Language` | **string* | :heavy_minus_sign: | Language of the stream. | English |
| `LanguageTag` | **string* | :heavy_minus_sign: | Language tag (e.g., en). | en | | `LanguageTag` | **string* | :heavy_minus_sign: | Language tag (e.g., en). | en |
@@ -34,6 +35,7 @@
| `ColorSpace` | **string* | :heavy_minus_sign: | Color space. | bt2020nc | | `ColorSpace` | **string* | :heavy_minus_sign: | Color space. | bt2020nc |
| `ColorTrc` | **string* | :heavy_minus_sign: | Color transfer characteristics. | smpte2084 | | `ColorTrc` | **string* | :heavy_minus_sign: | Color transfer characteristics. | smpte2084 |
| `FrameRate` | **float32* | :heavy_minus_sign: | Frame rate of the stream. | 23.976 | | `FrameRate` | **float32* | :heavy_minus_sign: | Frame rate of the stream. | 23.976 |
| `Key` | **string* | :heavy_minus_sign: | Key to access this stream part. | /library/streams/216389 |
| `Height` | **int* | :heavy_minus_sign: | Height of the video stream. | 1602 | | `Height` | **int* | :heavy_minus_sign: | Height of the video stream. | 1602 |
| `Level` | **int* | :heavy_minus_sign: | Video level. | 150 | | `Level` | **int* | :heavy_minus_sign: | Video level. | 150 |
| `Original` | **bool* | :heavy_minus_sign: | Indicates if this is the original stream. | true | | `Original` | **bool* | :heavy_minus_sign: | Indicates if this is the original stream. | true |

View File

@@ -0,0 +1,16 @@
# StreamType
Stream type:
- 1 = video
- 2 = audio
- 3 = subtitle
## Values
| Name | Value |
| -------------------- | -------------------- |
| `StreamTypeVideo` | 1 |
| `StreamTypeAudio` | 2 |
| `StreamTypeSubtitle` | 3 |

View File

@@ -3,8 +3,8 @@
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Path` | *string* | :heavy_check_mark: | absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server. <br/>If the `path` argument is a directory, that path will be scanned for playlist files to be processed. <br/>Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it. <br/>The GUID of each playlist is based on the filename. <br/>If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it. <br/>The GUID of each playlist is based on the filename.<br/> | /home/barkley/playlist.m3u | | `Path` | *string* | :heavy_check_mark: | absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server.<br/>If the `path` argument is a directory, that path will be scanned for playlist files to be processed.<br/>Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it.<br/>The GUID of each playlist is based on the filename.<br/>If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it.<br/>The GUID of each playlist is based on the filename.<br/> | /home/barkley/playlist.m3u |
| `Force` | [operations.QueryParamForce](../../models/operations/queryparamforce.md) | :heavy_check_mark: | Force overwriting of duplicate playlists. <br/>By default, a playlist file uploaded with the same path will overwrite the existing playlist. <br/>The `force` argument is used to disable overwriting. <br/>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.<br/> | | | `Force` | [operations.QueryParamForce](../../models/operations/queryparamforce.md) | :heavy_check_mark: | Force overwriting of duplicate playlists.<br/>By default, a playlist file uploaded with the same path will overwrite the existing playlist.<br/>The `force` argument is used to disable overwriting.<br/>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.<br/> | |
| `SectionID` | *int64* | :heavy_check_mark: | Possibly the section ID to upload the playlist to, we are not certain. | 1 | | `SectionID` | *int64* | :heavy_check_mark: | Possibly the section ID to upload the playlist to, we are not certain. | 1 |

View File

@@ -5,7 +5,7 @@
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| `ID` | *int64* | :heavy_check_mark: | Unique identifier for the writer. | 126522 | | `ID` | *int* | :heavy_check_mark: | Unique identifier for the writer. | 126522 |
| `Filter` | *string* | :heavy_check_mark: | The filter string used to query this writer. | writer=126522 | | `Filter` | *string* | :heavy_check_mark: | The filter string used to query this writer. | writer=126522 |
| `Tag` | *string* | :heavy_check_mark: | The role of Writer | Jamie P. Hanson | | `Tag` | *string* | :heavy_check_mark: | The role of Writer | Jamie P. Hanson |
| `TagKey` | **string* | :heavy_minus_sign: | A unique key associated with the writers tag, used for internal identification. | 5d77683d85719b001f3a535e | | `TagKey` | **string* | :heavy_minus_sign: | A unique key associated with the writers tag, used for internal identification. | 5d77683d85719b001f3a535e |

View File

@@ -22,6 +22,10 @@ API Calls interacting with Plex Media Server Libraries
* [GetActorsLibrary](#getactorslibrary) - Get Actors of library media * [GetActorsLibrary](#getactorslibrary) - Get Actors of library media
* [GetSearchAllLibraries](#getsearchalllibraries) - Search All Libraries * [GetSearchAllLibraries](#getsearchalllibraries) - Search All Libraries
* [GetMediaMetaData](#getmediametadata) - Get Media Metadata * [GetMediaMetaData](#getmediametadata) - Get Media Metadata
* [GetMediaArts](#getmediaarts) - Get Media Background Artwork
* [PostMediaArts](#postmediaarts) - Upload Media Background Artwork
* [GetMediaPosters](#getmediaposters) - Get Media Posters
* [PostMediaPoster](#postmediaposter) - Upload Media Poster
* [GetMetadataChildren](#getmetadatachildren) - Get Items Children * [GetMetadataChildren](#getmetadatachildren) - Get Items Children
* [GetTopWatchedContent](#gettopwatchedcontent) - Get Top Watched Content * [GetTopWatchedContent](#gettopwatchedcontent) - Get Top Watched Content
@@ -211,14 +215,14 @@ func main() {
## Library Details Endpoint ## Library Details Endpoint
This endpoint provides comprehensive details about the library, focusing on organizational aspects rather than the content itself. This endpoint provides comprehensive details about the library, focusing on organizational aspects rather than the content itself.
The details include: The details include:
### Directories ### Directories
Organized into three categories: Organized into three categories:
- **Primary Directories**: - **Primary Directories**:
- Used in some clients for quick access to media subsets (e.g., "All", "On Deck"). - Used in some clients for quick access to media subsets (e.g., "All", "On Deck").
- Most can be replicated via media queries. - Most can be replicated via media queries.
- Customizable by users. - Customizable by users.
@@ -280,12 +284,12 @@ func main() {
### Parameters ### Parameters
| Parameter | Type | Required | Description | Example | | Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | | | `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | |
| `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 | | `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/> | | | `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/> | |
| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | | | `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | |
### Response ### Response
@@ -907,6 +911,210 @@ func main() {
| sdkerrors.GetMediaMetaDataUnauthorized | 401 | application/json | | sdkerrors.GetMediaMetaDataUnauthorized | 401 | application/json |
| sdkerrors.SDKError | 4XX, 5XX | \*/\* | | sdkerrors.SDKError | 4XX, 5XX | \*/\* |
## GetMediaArts
Returns the background artwork for a library item.
### Example Usage
```go
package main
import(
"context"
"github.com/LukeHagar/plexgo"
"log"
)
func main() {
ctx := context.Background()
s := plexgo.New(
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
)
res, err := s.Library.GetMediaArts(ctx, 16099)
if err != nil {
log.Fatal(err)
}
if res.Object != nil {
// handle response
}
}
```
### Parameters
| Parameter | Type | Required | Description | Example |
| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- |
| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | |
| `ratingKey` | *int64* | :heavy_check_mark: | the id of the library item to return the artwork of. | 16099 |
| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | |
### Response
**[*operations.GetMediaArtsResponse](../../models/operations/getmediaartsresponse.md), error**
### Errors
| Error Type | Status Code | Content Type |
| ------------------ | ------------------ | ------------------ |
| sdkerrors.SDKError | 4XX, 5XX | \*/\* |
## PostMediaArts
Uploads an image to use as the background artwork for a library item, either from a local file or a remote URL
### Example Usage
```go
package main
import(
"context"
"github.com/LukeHagar/plexgo"
"log"
)
func main() {
ctx := context.Background()
s := plexgo.New(
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
)
res, err := s.Library.PostMediaArts(ctx, 2268, plexgo.String("https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b"), nil)
if err != nil {
log.Fatal(err)
}
if res != nil {
// handle response
}
}
```
### Parameters
| Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | |
| `ratingKey` | *int64* | :heavy_check_mark: | the id of the library item to return the posters of. | 2268 |
| `url_` | **string* | :heavy_minus_sign: | The URL of the image, if uploading a remote image | https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b |
| `requestBody` | **any* | :heavy_minus_sign: | The contents of the image, if uploading a local file | |
| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | |
### Response
**[*operations.PostMediaArtsResponse](../../models/operations/postmediaartsresponse.md), error**
### Errors
| Error Type | Status Code | Content Type |
| ------------------ | ------------------ | ------------------ |
| sdkerrors.SDKError | 4XX, 5XX | \*/\* |
## GetMediaPosters
Returns the available posters for a library item.
### Example Usage
```go
package main
import(
"context"
"github.com/LukeHagar/plexgo"
"log"
)
func main() {
ctx := context.Background()
s := plexgo.New(
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
)
res, err := s.Library.GetMediaPosters(ctx, 16099)
if err != nil {
log.Fatal(err)
}
if res.Object != nil {
// handle response
}
}
```
### Parameters
| Parameter | Type | Required | Description | Example |
| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- |
| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | |
| `ratingKey` | *int64* | :heavy_check_mark: | the id of the library item to return the posters of. | 16099 |
| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | |
### Response
**[*operations.GetMediaPostersResponse](../../models/operations/getmediapostersresponse.md), error**
### Errors
| Error Type | Status Code | Content Type |
| ------------------ | ------------------ | ------------------ |
| sdkerrors.SDKError | 4XX, 5XX | \*/\* |
## PostMediaPoster
Uploads a poster to a library item, either from a local file or a remote URL
### Example Usage
```go
package main
import(
"context"
"github.com/LukeHagar/plexgo"
"log"
)
func main() {
ctx := context.Background()
s := plexgo.New(
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
)
res, err := s.Library.PostMediaPoster(ctx, 2268, plexgo.String("https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b"), nil)
if err != nil {
log.Fatal(err)
}
if res != nil {
// handle response
}
}
```
### Parameters
| Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | |
| `ratingKey` | *int64* | :heavy_check_mark: | the id of the library item to return the posters of. | 2268 |
| `url_` | **string* | :heavy_minus_sign: | The URL of the image, if uploading a remote image | https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b |
| `requestBody` | **any* | :heavy_minus_sign: | The contents of the image, if uploading a local file | |
| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | |
### Response
**[*operations.PostMediaPosterResponse](../../models/operations/postmediaposterresponse.md), error**
### Errors
| Error Type | Status Code | Content Type |
| ------------------ | ------------------ | ------------------ |
| sdkerrors.SDKError | 4XX, 5XX | \*/\* |
## GetMetadataChildren ## GetMetadataChildren
This endpoint will return the children of of a library item specified with the ratingKey. This endpoint will return the children of of a library item specified with the ratingKey.

View File

@@ -48,13 +48,13 @@ func main() {
### Parameters ### Parameters
| Parameter | Type | Required | Description | Example | | Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | | | `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | |
| `level` | [operations.Level](../../models/operations/level.md) | :heavy_check_mark: | An integer log level to write to the PMS log with. <br/>0: Error <br/>1: Warning <br/>2: Info <br/>3: Debug <br/>4: Verbose<br/> | | | `level` | [operations.Level](../../models/operations/level.md) | :heavy_check_mark: | An integer log level to write to the PMS log with.<br/>0: Error<br/>1: Warning<br/>2: Info<br/>3: Debug<br/>4: Verbose<br/> | |
| `message` | *string* | :heavy_check_mark: | The text of the message to write to the log. | Test log message | | `message` | *string* | :heavy_check_mark: | The text of the message to write to the log. | Test log message |
| `source` | *string* | :heavy_check_mark: | a string indicating the source of the message. | Postman | | `source` | *string* | :heavy_check_mark: | a string indicating the source of the message. | Postman |
| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | | | `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | |
### Response ### Response
@@ -70,13 +70,13 @@ func main() {
## LogMultiLine ## LogMultiLine
This endpoint allows for the batch addition of log entries to the main Plex Media Server log. This endpoint allows for the batch addition of log entries to the main Plex Media Server log.
It accepts a text/plain request body, where each line represents a distinct log entry. It accepts a text/plain request body, where each line represents a distinct log entry.
Each log entry consists of URL-encoded key-value pairs, specifying log attributes such as 'level', 'message', and 'source'. Each log entry consists of URL-encoded key-value pairs, specifying log attributes such as 'level', 'message', and 'source'.
Log entries are separated by a newline character (`\n`). Log entries are separated by a newline character (`\n`).
Each entry's parameters should be URL-encoded to ensure accurate parsing and handling of special characters. Each entry's parameters should be URL-encoded to ensure accurate parsing and handling of special characters.
This method is efficient for logging multiple entries in a single API call, reducing the overhead of multiple individual requests. This method is efficient for logging multiple entries in a single API call, reducing the overhead of multiple individual requests.
The 'level' parameter specifies the log entry's severity or importance, with the following integer values: The 'level' parameter specifies the log entry's severity or importance, with the following integer values:
- `0`: Error - Critical issues that require immediate attention. - `0`: Error - Critical issues that require immediate attention.

View File

@@ -3,9 +3,9 @@
## Overview ## Overview
Playlists are ordered collections of media. They can be dumb (just a list of media) or smart (based on a media query, such as "all albums from 2017"). Playlists are ordered collections of media. They can be dumb (just a list of media) or smart (based on a media query, such as "all albums from 2017").
They can be organized in (optionally nesting) folders. They can be organized in (optionally nesting) folders.
Retrieving a playlist, or its items, will trigger a refresh of its metadata. Retrieving a playlist, or its items, will trigger a refresh of its metadata.
This may cause the duration and number of items to change. This may cause the duration and number of items to change.
@@ -500,13 +500,13 @@ func main() {
### Parameters ### Parameters
| Parameter | Type | Required | Description | Example | | Parameter | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | | | `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | |
| `path` | *string* | :heavy_check_mark: | absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server. <br/>If the `path` argument is a directory, that path will be scanned for playlist files to be processed. <br/>Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it. <br/>The GUID of each playlist is based on the filename. <br/>If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it. <br/>The GUID of each playlist is based on the filename.<br/> | /home/barkley/playlist.m3u | | `path` | *string* | :heavy_check_mark: | absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server.<br/>If the `path` argument is a directory, that path will be scanned for playlist files to be processed.<br/>Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it.<br/>The GUID of each playlist is based on the filename.<br/>If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it.<br/>The GUID of each playlist is based on the filename.<br/> | /home/barkley/playlist.m3u |
| `force` | [operations.QueryParamForce](../../models/operations/queryparamforce.md) | :heavy_check_mark: | Force overwriting of duplicate playlists. <br/>By default, a playlist file uploaded with the same path will overwrite the existing playlist. <br/>The `force` argument is used to disable overwriting. <br/>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.<br/> | | | `force` | [operations.QueryParamForce](../../models/operations/queryparamforce.md) | :heavy_check_mark: | Force overwriting of duplicate playlists.<br/>By default, a playlist file uploaded with the same path will overwrite the existing playlist.<br/>The `force` argument is used to disable overwriting.<br/>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.<br/> | |
| `sectionID` | *int64* | :heavy_check_mark: | Possibly the section ID to upload the playlist to, we are not certain. | 1 | | `sectionID` | *int64* | :heavy_check_mark: | Possibly the section ID to upload the playlist to, we are not certain. | 1 |
| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | | | `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | |
### Response ### Response

View File

@@ -186,8 +186,8 @@ func UnmarshalJSON(b []byte, v interface{}, tag reflect.StructTag, topLevel bool
value, ok := unmarhsaled[fieldName] value, ok := unmarhsaled[fieldName]
if !ok { if !ok {
defaultTag := field.Tag.Get("default") defaultTag, defaultOk := field.Tag.Lookup("default")
if defaultTag != "" { if defaultOk {
value = handleDefaultConstValue(defaultTag, fieldVal.Interface(), field.Tag) value = handleDefaultConstValue(defaultTag, fieldVal.Interface(), field.Tag)
ok = true ok = true
} }
@@ -257,8 +257,8 @@ func marshalValue(v interface{}, tag reflect.StructTag) (json.RawMessage, error)
} }
if isNil(reflect.TypeOf(v), reflect.ValueOf(v)) { if isNil(reflect.TypeOf(v), reflect.ValueOf(v)) {
defaultTag := tag.Get("default") defaultTag, ok := tag.Lookup("default")
if defaultTag != "" { if ok {
return handleDefaultConstValue(defaultTag, v, tag), nil return handleDefaultConstValue(defaultTag, v, tag), nil
} }

View File

@@ -3575,6 +3575,820 @@ func (s *Library) GetMediaMetaData(ctx context.Context, request operations.GetMe
} }
// GetMediaArts - Get Media Background Artwork
// Returns the background artwork for a library item.
func (s *Library) GetMediaArts(ctx context.Context, ratingKey int64, opts ...operations.Option) (*operations.GetMediaArtsResponse, error) {
request := operations.GetMediaArtsRequest{
RatingKey: ratingKey,
}
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)
}
}
var baseURL string
if o.ServerURL == nil {
baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
} else {
baseURL = *o.ServerURL
}
opURL, err := utils.GenerateURL(ctx, baseURL, "/library/metadata/{ratingKey}/arts", request, nil)
if err != nil {
return nil, fmt.Errorf("error generating URL: %w", err)
}
hookCtx := hooks.HookContext{
BaseURL: baseURL,
Context: ctx,
OperationID: "get-media-arts",
OAuth2Scopes: []string{},
SecuritySource: s.sdkConfiguration.Security,
}
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
}
for k, v := range o.SetHeaders {
req.Header.Set(k, v)
}
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 {
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
return nil, err
}
return nil, retry.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{"404", "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.GetMediaArtsResponse{
StatusCode: httpRes.StatusCode,
ContentType: httpRes.Header.Get("Content-Type"),
RawResponse: httpRes,
}
switch {
case httpRes.StatusCode == 200:
switch {
case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
rawBody, err := utils.ConsumeRawBody(httpRes)
if err != nil {
return nil, err
}
var out operations.GetMediaArtsResponseBody
if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
return nil, err
}
res.Object = &out
default:
rawBody, err := utils.ConsumeRawBody(httpRes)
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 == 404:
fallthrough
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
rawBody, err := utils.ConsumeRawBody(httpRes)
if err != nil {
return nil, err
}
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
rawBody, err := utils.ConsumeRawBody(httpRes)
if err != nil {
return nil, err
}
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
default:
rawBody, err := utils.ConsumeRawBody(httpRes)
if err != nil {
return nil, err
}
return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes)
}
return res, nil
}
// PostMediaArts - Upload Media Background Artwork
// Uploads an image to use as the background artwork for a library item, either from a local file or a remote URL
func (s *Library) PostMediaArts(ctx context.Context, ratingKey int64, url_ *string, requestBody *any, opts ...operations.Option) (*operations.PostMediaArtsResponse, error) {
request := operations.PostMediaArtsRequest{
RatingKey: ratingKey,
URL: url_,
RequestBody: requestBody,
}
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)
}
}
var baseURL string
if o.ServerURL == nil {
baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
} else {
baseURL = *o.ServerURL
}
opURL, err := utils.GenerateURL(ctx, baseURL, "/library/metadata/{ratingKey}/arts", request, nil)
if err != nil {
return nil, fmt.Errorf("error generating URL: %w", err)
}
hookCtx := hooks.HookContext{
BaseURL: baseURL,
Context: ctx,
OperationID: "post-media-arts",
OAuth2Scopes: []string{},
SecuritySource: s.sdkConfiguration.Security,
}
bodyReader, reqContentType, err := utils.SerializeRequestBody(ctx, request, false, true, "RequestBody", "raw", `request:"mediaType=image/*"`)
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", "*/*")
req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
if reqContentType != "" {
req.Header.Set("Content-Type", reqContentType)
}
if err := utils.PopulateQueryParams(ctx, req, request, nil); err != nil {
return nil, fmt.Errorf("error populating query params: %w", err)
}
if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
return nil, err
}
for k, v := range o.SetHeaders {
req.Header.Set(k, v)
}
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 {
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
return nil, err
}
return nil, retry.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{"404", "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.PostMediaArtsResponse{
StatusCode: httpRes.StatusCode,
ContentType: httpRes.Header.Get("Content-Type"),
RawResponse: httpRes,
}
switch {
case httpRes.StatusCode == 200:
case httpRes.StatusCode == 404:
fallthrough
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
rawBody, err := utils.ConsumeRawBody(httpRes)
if err != nil {
return nil, err
}
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
rawBody, err := utils.ConsumeRawBody(httpRes)
if err != nil {
return nil, err
}
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
default:
rawBody, err := utils.ConsumeRawBody(httpRes)
if err != nil {
return nil, err
}
return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes)
}
return res, nil
}
// GetMediaPosters - Get Media Posters
// Returns the available posters for a library item.
func (s *Library) GetMediaPosters(ctx context.Context, ratingKey int64, opts ...operations.Option) (*operations.GetMediaPostersResponse, error) {
request := operations.GetMediaPostersRequest{
RatingKey: ratingKey,
}
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)
}
}
var baseURL string
if o.ServerURL == nil {
baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
} else {
baseURL = *o.ServerURL
}
opURL, err := utils.GenerateURL(ctx, baseURL, "/library/metadata/{ratingKey}/posters", request, nil)
if err != nil {
return nil, fmt.Errorf("error generating URL: %w", err)
}
hookCtx := hooks.HookContext{
BaseURL: baseURL,
Context: ctx,
OperationID: "get-media-posters",
OAuth2Scopes: []string{},
SecuritySource: s.sdkConfiguration.Security,
}
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
}
for k, v := range o.SetHeaders {
req.Header.Set(k, v)
}
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 {
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
return nil, err
}
return nil, retry.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{"404", "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.GetMediaPostersResponse{
StatusCode: httpRes.StatusCode,
ContentType: httpRes.Header.Get("Content-Type"),
RawResponse: httpRes,
}
switch {
case httpRes.StatusCode == 200:
switch {
case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
rawBody, err := utils.ConsumeRawBody(httpRes)
if err != nil {
return nil, err
}
var out operations.GetMediaPostersResponseBody
if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
return nil, err
}
res.Object = &out
default:
rawBody, err := utils.ConsumeRawBody(httpRes)
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 == 404:
fallthrough
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
rawBody, err := utils.ConsumeRawBody(httpRes)
if err != nil {
return nil, err
}
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
rawBody, err := utils.ConsumeRawBody(httpRes)
if err != nil {
return nil, err
}
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
default:
rawBody, err := utils.ConsumeRawBody(httpRes)
if err != nil {
return nil, err
}
return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes)
}
return res, nil
}
// PostMediaPoster - Upload Media Poster
// Uploads a poster to a library item, either from a local file or a remote URL
func (s *Library) PostMediaPoster(ctx context.Context, ratingKey int64, url_ *string, requestBody *any, opts ...operations.Option) (*operations.PostMediaPosterResponse, error) {
request := operations.PostMediaPosterRequest{
RatingKey: ratingKey,
URL: url_,
RequestBody: requestBody,
}
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)
}
}
var baseURL string
if o.ServerURL == nil {
baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
} else {
baseURL = *o.ServerURL
}
opURL, err := utils.GenerateURL(ctx, baseURL, "/library/metadata/{ratingKey}/posters", request, nil)
if err != nil {
return nil, fmt.Errorf("error generating URL: %w", err)
}
hookCtx := hooks.HookContext{
BaseURL: baseURL,
Context: ctx,
OperationID: "post-media-poster",
OAuth2Scopes: []string{},
SecuritySource: s.sdkConfiguration.Security,
}
bodyReader, reqContentType, err := utils.SerializeRequestBody(ctx, request, false, true, "RequestBody", "raw", `request:"mediaType=image/*"`)
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", "*/*")
req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
if reqContentType != "" {
req.Header.Set("Content-Type", reqContentType)
}
if err := utils.PopulateQueryParams(ctx, req, request, nil); err != nil {
return nil, fmt.Errorf("error populating query params: %w", err)
}
if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
return nil, err
}
for k, v := range o.SetHeaders {
req.Header.Set(k, v)
}
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 {
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
return nil, err
}
return nil, retry.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{"404", "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.PostMediaPosterResponse{
StatusCode: httpRes.StatusCode,
ContentType: httpRes.Header.Get("Content-Type"),
RawResponse: httpRes,
}
switch {
case httpRes.StatusCode == 200:
case httpRes.StatusCode == 404:
fallthrough
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
rawBody, err := utils.ConsumeRawBody(httpRes)
if err != nil {
return nil, err
}
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
rawBody, err := utils.ConsumeRawBody(httpRes)
if err != nil {
return nil, err
}
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
default:
rawBody, err := utils.ConsumeRawBody(httpRes)
if err != nil {
return nil, err
}
return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes)
}
return res, nil
}
// GetMetadataChildren - Get Items Children // GetMetadataChildren - Get Items Children
// This endpoint will return the children of of a library item specified with the ratingKey. // This endpoint will return the children of of a library item specified with the ratingKey.
func (s *Library) GetMetadataChildren(ctx context.Context, ratingKey float64, includeElements *string, opts ...operations.Option) (*operations.GetMetadataChildrenResponse, error) { func (s *Library) GetMetadataChildren(ctx context.Context, ratingKey float64, includeElements *string, opts ...operations.Option) (*operations.GetMetadataChildrenResponse, error) {

View File

@@ -20,23 +20,6 @@ const (
func (e CreatePlaylistQueryParamType) ToPointer() *CreatePlaylistQueryParamType { func (e CreatePlaylistQueryParamType) ToPointer() *CreatePlaylistQueryParamType {
return &e return &e
} }
func (e *CreatePlaylistQueryParamType) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "audio":
fallthrough
case "video":
fallthrough
case "photo":
*e = CreatePlaylistQueryParamType(v)
return nil
default:
return fmt.Errorf("invalid value for CreatePlaylistQueryParamType: %v", v)
}
}
// Smart - whether the playlist is smart or not // Smart - whether the playlist is smart or not
type Smart int64 type Smart int64

View File

@@ -3,8 +3,6 @@
package operations package operations
import ( import (
"encoding/json"
"fmt"
"net/http" "net/http"
) )
@@ -29,31 +27,6 @@ const (
func (e GetActorsLibraryQueryParamType) ToPointer() *GetActorsLibraryQueryParamType { func (e GetActorsLibraryQueryParamType) ToPointer() *GetActorsLibraryQueryParamType {
return &e return &e
} }
func (e *GetActorsLibraryQueryParamType) UnmarshalJSON(data []byte) error {
var v int64
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case 1:
fallthrough
case 2:
fallthrough
case 3:
fallthrough
case 4:
fallthrough
case 8:
fallthrough
case 9:
fallthrough
case 10:
*e = GetActorsLibraryQueryParamType(v)
return nil
default:
return fmt.Errorf("invalid value for GetActorsLibraryQueryParamType: %v", v)
}
}
type GetActorsLibraryRequest struct { type GetActorsLibraryRequest struct {
// The unique key of the Plex library. // The unique key of the Plex library.

View File

@@ -3,11 +3,59 @@
package operations package operations
import ( import (
"encoding/json"
"fmt"
"github.com/LukeHagar/plexgo/internal/utils"
"net/http" "net/http"
) )
// GetAllLibrariesType - The library type
type GetAllLibrariesType string
const (
GetAllLibrariesTypeMovie GetAllLibrariesType = "movie"
GetAllLibrariesTypeTvShow GetAllLibrariesType = "show"
GetAllLibrariesTypeSeason GetAllLibrariesType = "season"
GetAllLibrariesTypeEpisode GetAllLibrariesType = "episode"
GetAllLibrariesTypeArtist GetAllLibrariesType = "artist"
GetAllLibrariesTypeAlbum GetAllLibrariesType = "album"
)
func (e GetAllLibrariesType) ToPointer() *GetAllLibrariesType {
return &e
}
// Hidden - UNKNOWN
type Hidden int
const (
HiddenDisable Hidden = 0
HiddenEnable Hidden = 1
)
func (e Hidden) ToPointer() *Hidden {
return &e
}
func (e *Hidden) UnmarshalJSON(data []byte) error {
var v int
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case 0:
fallthrough
case 1:
*e = Hidden(v)
return nil
default:
return fmt.Errorf("invalid value for Hidden: %v", v)
}
}
type GetAllLibrariesLocation struct { type GetAllLibrariesLocation struct {
ID int `json:"id"` // The ID of the location.
ID int `json:"id"`
// The path to the media item.
Path string `json:"path"` Path string `json:"path"`
} }
@@ -26,33 +74,59 @@ func (o *GetAllLibrariesLocation) GetPath() string {
} }
type GetAllLibrariesDirectory struct { type GetAllLibrariesDirectory struct {
AllowSync bool `json:"allowSync"` // Indicates whether syncing is allowed.
Art string `json:"art"` AllowSync bool `json:"allowSync"`
Composite string `json:"composite"` // URL for the background artwork of the media container.
Filters bool `json:"filters"` Art string `json:"art"`
Refreshing bool `json:"refreshing"` // The relative path to the composite media item.
Thumb string `json:"thumb"` Composite string `json:"composite"`
Key string `json:"key"` // UNKNOWN
Type string `json:"type"` Filters bool `json:"filters"`
Title string `json:"title"` // Indicates whether the library is currently being refreshed or updated
Agent string `json:"agent"` Refreshing bool `json:"refreshing"`
Scanner string `json:"scanner"` // URL for the thumbnail image of the media container.
Language string `json:"language"` Thumb string `json:"thumb"`
UUID string `json:"uuid"` // The library key representing the unique identifier
Key string `json:"key"`
Type GetAllLibrariesType `json:"type"`
// The title of the library
Title string `json:"title"`
// The Plex agent used to match and retrieve media metadata.
Agent string `json:"agent"`
// UNKNOWN
Scanner string `json:"scanner"`
// The Plex library language that has been set
Language string `json:"language"`
// The universally unique identifier for the library.
UUID string `json:"uuid"`
// Unix epoch datetime in seconds // Unix epoch datetime in seconds
UpdatedAt int64 `json:"updatedAt"` UpdatedAt int64 `json:"updatedAt"`
// Unix epoch datetime in seconds CreatedAt *int64 `json:"createdAt,omitempty"`
CreatedAt int64 `json:"createdAt"`
// Unix epoch datetime in seconds // Unix epoch datetime in seconds
ScannedAt int64 `json:"scannedAt"` ScannedAt int64 `json:"scannedAt"`
Content bool `json:"content"` // UNKNOWN
Directory bool `json:"directory"` Content bool `json:"content"`
// Unix epoch datetime in seconds // UNKNOWN
Directory bool `json:"directory"`
// Timestamp (in seconds) representing the last time the content was modified.
// NOTE: Some Plex server have some absurd values for this field, like 8457612157633039800 so it should be int64
//
ContentChangedAt int64 `json:"contentChangedAt"` ContentChangedAt int64 `json:"contentChangedAt"`
Hidden int `json:"hidden"` Hidden *Hidden `default:"0" json:"hidden"`
Location []GetAllLibrariesLocation `json:"Location"` Location []GetAllLibrariesLocation `json:"Location"`
} }
func (g GetAllLibrariesDirectory) MarshalJSON() ([]byte, error) {
return utils.MarshalJSON(g, "", false)
}
func (g *GetAllLibrariesDirectory) UnmarshalJSON(data []byte) error {
if err := utils.UnmarshalJSON(data, &g, "", false, false); err != nil {
return err
}
return nil
}
func (o *GetAllLibrariesDirectory) GetAllowSync() bool { func (o *GetAllLibrariesDirectory) GetAllowSync() bool {
if o == nil { if o == nil {
return false return false
@@ -102,9 +176,9 @@ func (o *GetAllLibrariesDirectory) GetKey() string {
return o.Key return o.Key
} }
func (o *GetAllLibrariesDirectory) GetType() string { func (o *GetAllLibrariesDirectory) GetType() GetAllLibrariesType {
if o == nil { if o == nil {
return "" return GetAllLibrariesType("")
} }
return o.Type return o.Type
} }
@@ -151,9 +225,9 @@ func (o *GetAllLibrariesDirectory) GetUpdatedAt() int64 {
return o.UpdatedAt return o.UpdatedAt
} }
func (o *GetAllLibrariesDirectory) GetCreatedAt() int64 { func (o *GetAllLibrariesDirectory) GetCreatedAt() *int64 {
if o == nil { if o == nil {
return 0 return nil
} }
return o.CreatedAt return o.CreatedAt
} }
@@ -186,9 +260,9 @@ func (o *GetAllLibrariesDirectory) GetContentChangedAt() int64 {
return o.ContentChangedAt return o.ContentChangedAt
} }
func (o *GetAllLibrariesDirectory) GetHidden() int { func (o *GetAllLibrariesDirectory) GetHidden() *Hidden {
if o == nil { if o == nil {
return 0 return nil
} }
return o.Hidden return o.Hidden
} }
@@ -201,10 +275,13 @@ func (o *GetAllLibrariesDirectory) GetLocation() []GetAllLibrariesLocation {
} }
type GetAllLibrariesMediaContainer struct { type GetAllLibrariesMediaContainer struct {
Size int `json:"size"` // Number of media items returned in this response.
AllowSync bool `json:"allowSync"` Size int `json:"size"`
// Indicates whether syncing is allowed.
AllowSync bool `json:"allowSync"`
// The primary title of the media container.
Title1 string `json:"title1"` Title1 string `json:"title1"`
Directory []GetAllLibrariesDirectory `json:"Directory"` Directory []GetAllLibrariesDirectory `json:"Directory,omitempty"`
} }
func (o *GetAllLibrariesMediaContainer) GetSize() int { func (o *GetAllLibrariesMediaContainer) GetSize() int {
@@ -230,19 +307,19 @@ func (o *GetAllLibrariesMediaContainer) GetTitle1() string {
func (o *GetAllLibrariesMediaContainer) GetDirectory() []GetAllLibrariesDirectory { func (o *GetAllLibrariesMediaContainer) GetDirectory() []GetAllLibrariesDirectory {
if o == nil { if o == nil {
return []GetAllLibrariesDirectory{} return nil
} }
return o.Directory return o.Directory
} }
// GetAllLibrariesResponseBody - The libraries available on the Server // GetAllLibrariesResponseBody - The libraries available on the Server
type GetAllLibrariesResponseBody struct { type GetAllLibrariesResponseBody struct {
MediaContainer GetAllLibrariesMediaContainer `json:"MediaContainer"` MediaContainer *GetAllLibrariesMediaContainer `json:"MediaContainer,omitempty"`
} }
func (o *GetAllLibrariesResponseBody) GetMediaContainer() GetAllLibrariesMediaContainer { func (o *GetAllLibrariesResponseBody) GetMediaContainer() *GetAllLibrariesMediaContainer {
if o == nil { if o == nil {
return GetAllLibrariesMediaContainer{} return nil
} }
return o.MediaContainer return o.MediaContainer
} }

View File

@@ -32,31 +32,6 @@ const (
func (e GetAllMediaLibraryQueryParamType) ToPointer() *GetAllMediaLibraryQueryParamType { func (e GetAllMediaLibraryQueryParamType) ToPointer() *GetAllMediaLibraryQueryParamType {
return &e return &e
} }
func (e *GetAllMediaLibraryQueryParamType) UnmarshalJSON(data []byte) error {
var v int64
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case 1:
fallthrough
case 2:
fallthrough
case 3:
fallthrough
case 4:
fallthrough
case 8:
fallthrough
case 9:
fallthrough
case 10:
*e = GetAllMediaLibraryQueryParamType(v)
return nil
default:
return fmt.Errorf("invalid value for GetAllMediaLibraryQueryParamType: %v", v)
}
}
// GetAllMediaLibraryQueryParamIncludeMeta - Adds the Meta object to the response // GetAllMediaLibraryQueryParamIncludeMeta - Adds the Meta object to the response
type GetAllMediaLibraryQueryParamIncludeMeta int type GetAllMediaLibraryQueryParamIncludeMeta int
@@ -660,29 +635,6 @@ const (
func (e GetAllMediaLibraryLibraryType) ToPointer() *GetAllMediaLibraryLibraryType { func (e GetAllMediaLibraryLibraryType) ToPointer() *GetAllMediaLibraryLibraryType {
return &e return &e
} }
func (e *GetAllMediaLibraryLibraryType) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "movie":
fallthrough
case "show":
fallthrough
case "season":
fallthrough
case "episode":
fallthrough
case "artist":
fallthrough
case "album":
*e = GetAllMediaLibraryLibraryType(v)
return nil
default:
return fmt.Errorf("invalid value for GetAllMediaLibraryLibraryType: %v", v)
}
}
type GetAllMediaLibraryLibraryResponseType string type GetAllMediaLibraryLibraryResponseType string
@@ -696,25 +648,6 @@ const (
func (e GetAllMediaLibraryLibraryResponseType) ToPointer() *GetAllMediaLibraryLibraryResponseType { func (e GetAllMediaLibraryLibraryResponseType) ToPointer() *GetAllMediaLibraryLibraryResponseType {
return &e return &e
} }
func (e *GetAllMediaLibraryLibraryResponseType) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "coverPoster":
fallthrough
case "background":
fallthrough
case "snapshot":
fallthrough
case "clearLogo":
*e = GetAllMediaLibraryLibraryResponseType(v)
return nil
default:
return fmt.Errorf("invalid value for GetAllMediaLibraryLibraryResponseType: %v", v)
}
}
type GetAllMediaLibraryImage struct { type GetAllMediaLibraryImage struct {
Alt string `json:"alt"` Alt string `json:"alt"`
@@ -985,17 +918,39 @@ func (e *GetAllMediaLibraryHasThumbnail) UnmarshalJSON(data []byte) error {
} }
} }
// GetAllMediaLibraryStreamType - Stream type:
// - 1 = video
// - 2 = audio
// - 3 = subtitle
type GetAllMediaLibraryStreamType int
const (
GetAllMediaLibraryStreamTypeVideo GetAllMediaLibraryStreamType = 1
GetAllMediaLibraryStreamTypeAudio GetAllMediaLibraryStreamType = 2
GetAllMediaLibraryStreamTypeSubtitle GetAllMediaLibraryStreamType = 3
)
func (e GetAllMediaLibraryStreamType) ToPointer() *GetAllMediaLibraryStreamType {
return &e
}
type GetAllMediaLibraryStream struct { type GetAllMediaLibraryStream struct {
// Unique stream identifier. // Unique stream identifier.
ID int64 `json:"id"` ID int64 `json:"id"`
// Stream type (1=video, 2=audio, 3=subtitle). // Stream type:
StreamType int `json:"streamType"` // - 1 = video
// - 2 = audio
// - 3 = subtitle
//
StreamType GetAllMediaLibraryStreamType `json:"streamType"`
// Format of the stream (e.g., srt).
Format *string `json:"format,omitempty"`
// Indicates if this stream is default. // Indicates if this stream is default.
Default *bool `json:"default,omitempty"` Default *bool `json:"default,omitempty"`
// Codec used by the stream. // Codec used by the stream.
Codec string `json:"codec"` Codec string `json:"codec"`
// Index of the stream. // Index of the stream.
Index int `json:"index"` Index *int `json:"index,omitempty"`
// Bitrate of the stream. // Bitrate of the stream.
Bitrate *int `json:"bitrate,omitempty"` Bitrate *int `json:"bitrate,omitempty"`
// Language of the stream. // Language of the stream.
@@ -1043,6 +998,8 @@ type GetAllMediaLibraryStream struct {
ColorTrc *string `json:"colorTrc,omitempty"` ColorTrc *string `json:"colorTrc,omitempty"`
// Frame rate of the stream. // Frame rate of the stream.
FrameRate *float32 `json:"frameRate,omitempty"` FrameRate *float32 `json:"frameRate,omitempty"`
// Key to access this stream part.
Key *string `json:"key,omitempty"`
// Height of the video stream. // Height of the video stream.
Height *int `json:"height,omitempty"` Height *int `json:"height,omitempty"`
// Video level. // Video level.
@@ -1088,13 +1045,20 @@ func (o *GetAllMediaLibraryStream) GetID() int64 {
return o.ID return o.ID
} }
func (o *GetAllMediaLibraryStream) GetStreamType() int { func (o *GetAllMediaLibraryStream) GetStreamType() GetAllMediaLibraryStreamType {
if o == nil { if o == nil {
return 0 return GetAllMediaLibraryStreamType(0)
} }
return o.StreamType return o.StreamType
} }
func (o *GetAllMediaLibraryStream) GetFormat() *string {
if o == nil {
return nil
}
return o.Format
}
func (o *GetAllMediaLibraryStream) GetDefault() *bool { func (o *GetAllMediaLibraryStream) GetDefault() *bool {
if o == nil { if o == nil {
return nil return nil
@@ -1109,9 +1073,9 @@ func (o *GetAllMediaLibraryStream) GetCodec() string {
return o.Codec return o.Codec
} }
func (o *GetAllMediaLibraryStream) GetIndex() int { func (o *GetAllMediaLibraryStream) GetIndex() *int {
if o == nil { if o == nil {
return 0 return nil
} }
return o.Index return o.Index
} }
@@ -1284,6 +1248,13 @@ func (o *GetAllMediaLibraryStream) GetFrameRate() *float32 {
return o.FrameRate return o.FrameRate
} }
func (o *GetAllMediaLibraryStream) GetKey() *string {
if o == nil {
return nil
}
return o.Key
}
func (o *GetAllMediaLibraryStream) GetHeight() *int { func (o *GetAllMediaLibraryStream) GetHeight() *int {
if o == nil { if o == nil {
return nil return nil

View File

@@ -3,8 +3,6 @@
package operations package operations
import ( import (
"encoding/json"
"fmt"
"net/http" "net/http"
) )
@@ -29,31 +27,6 @@ const (
func (e GetCountriesLibraryQueryParamType) ToPointer() *GetCountriesLibraryQueryParamType { func (e GetCountriesLibraryQueryParamType) ToPointer() *GetCountriesLibraryQueryParamType {
return &e return &e
} }
func (e *GetCountriesLibraryQueryParamType) UnmarshalJSON(data []byte) error {
var v int64
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case 1:
fallthrough
case 2:
fallthrough
case 3:
fallthrough
case 4:
fallthrough
case 8:
fallthrough
case 9:
fallthrough
case 10:
*e = GetCountriesLibraryQueryParamType(v)
return nil
default:
return fmt.Errorf("invalid value for GetCountriesLibraryQueryParamType: %v", v)
}
}
type GetCountriesLibraryRequest struct { type GetCountriesLibraryRequest struct {
// The unique key of the Plex library. // The unique key of the Plex library.

View File

@@ -3,8 +3,6 @@
package operations package operations
import ( import (
"encoding/json"
"fmt"
"net/http" "net/http"
) )
@@ -29,31 +27,6 @@ const (
func (e GetGenresLibraryQueryParamType) ToPointer() *GetGenresLibraryQueryParamType { func (e GetGenresLibraryQueryParamType) ToPointer() *GetGenresLibraryQueryParamType {
return &e return &e
} }
func (e *GetGenresLibraryQueryParamType) UnmarshalJSON(data []byte) error {
var v int64
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case 1:
fallthrough
case 2:
fallthrough
case 3:
fallthrough
case 4:
fallthrough
case 8:
fallthrough
case 9:
fallthrough
case 10:
*e = GetGenresLibraryQueryParamType(v)
return nil
default:
return fmt.Errorf("invalid value for GetGenresLibraryQueryParamType: %v", v)
}
}
type GetGenresLibraryRequest struct { type GetGenresLibraryRequest struct {
// The unique key of the Plex library. // The unique key of the Plex library.

View File

@@ -35,49 +35,6 @@ const (
func (e Tag) ToPointer() *Tag { func (e Tag) ToPointer() *Tag {
return &e return &e
} }
func (e *Tag) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "unwatched":
fallthrough
case "newest":
fallthrough
case "recentlyAdded":
fallthrough
case "recentlyViewed":
fallthrough
case "onDeck":
fallthrough
case "collection":
fallthrough
case "edition":
fallthrough
case "year":
fallthrough
case "decade":
fallthrough
case "director":
fallthrough
case "contentRating":
fallthrough
case "rating":
fallthrough
case "resolution":
fallthrough
case "firstCharacter":
fallthrough
case "folder":
fallthrough
case "albums":
*e = Tag(v)
return nil
default:
return fmt.Errorf("invalid value for Tag: %v", v)
}
}
// IncludeGuids - Adds the Guids object to the response // IncludeGuids - Adds the Guids object to the response
type IncludeGuids int type IncludeGuids int
@@ -127,31 +84,6 @@ const (
func (e GetLibraryItemsQueryParamType) ToPointer() *GetLibraryItemsQueryParamType { func (e GetLibraryItemsQueryParamType) ToPointer() *GetLibraryItemsQueryParamType {
return &e return &e
} }
func (e *GetLibraryItemsQueryParamType) UnmarshalJSON(data []byte) error {
var v int64
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case 1:
fallthrough
case 2:
fallthrough
case 3:
fallthrough
case 4:
fallthrough
case 8:
fallthrough
case 9:
fallthrough
case 10:
*e = GetLibraryItemsQueryParamType(v)
return nil
default:
return fmt.Errorf("invalid value for GetLibraryItemsQueryParamType: %v", v)
}
}
// GetLibraryItemsQueryParamIncludeMeta - Adds the Meta object to the response // GetLibraryItemsQueryParamIncludeMeta - Adds the Meta object to the response
type GetLibraryItemsQueryParamIncludeMeta int type GetLibraryItemsQueryParamIncludeMeta int
@@ -615,29 +547,6 @@ const (
func (e GetLibraryItemsLibraryType) ToPointer() *GetLibraryItemsLibraryType { func (e GetLibraryItemsLibraryType) ToPointer() *GetLibraryItemsLibraryType {
return &e return &e
} }
func (e *GetLibraryItemsLibraryType) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "movie":
fallthrough
case "show":
fallthrough
case "season":
fallthrough
case "episode":
fallthrough
case "artist":
fallthrough
case "album":
*e = GetLibraryItemsLibraryType(v)
return nil
default:
return fmt.Errorf("invalid value for GetLibraryItemsLibraryType: %v", v)
}
}
// FlattenSeasons - Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). // FlattenSeasons - Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show).
type FlattenSeasons string type FlattenSeasons string
@@ -651,23 +560,6 @@ const (
func (e FlattenSeasons) ToPointer() *FlattenSeasons { func (e FlattenSeasons) ToPointer() *FlattenSeasons {
return &e return &e
} }
func (e *FlattenSeasons) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "-1":
fallthrough
case "0":
fallthrough
case "1":
*e = FlattenSeasons(v)
return nil
default:
return fmt.Errorf("invalid value for FlattenSeasons: %v", v)
}
}
// EpisodeSort - Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). // EpisodeSort - Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first).
type EpisodeSort string type EpisodeSort string
@@ -681,23 +573,6 @@ const (
func (e EpisodeSort) ToPointer() *EpisodeSort { func (e EpisodeSort) ToPointer() *EpisodeSort {
return &e return &e
} }
func (e *EpisodeSort) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "-1":
fallthrough
case "0":
fallthrough
case "1":
*e = EpisodeSort(v)
return nil
default:
return fmt.Errorf("invalid value for EpisodeSort: %v", v)
}
}
// EnableCreditsMarkerGeneration - Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). // EnableCreditsMarkerGeneration - Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled).
type EnableCreditsMarkerGeneration string type EnableCreditsMarkerGeneration string
@@ -710,21 +585,6 @@ const (
func (e EnableCreditsMarkerGeneration) ToPointer() *EnableCreditsMarkerGeneration { func (e EnableCreditsMarkerGeneration) ToPointer() *EnableCreditsMarkerGeneration {
return &e return &e
} }
func (e *EnableCreditsMarkerGeneration) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "-1":
fallthrough
case "0":
*e = EnableCreditsMarkerGeneration(v)
return nil
default:
return fmt.Errorf("invalid value for EnableCreditsMarkerGeneration: %v", v)
}
}
// ShowOrdering - Setting that indicates the episode ordering for the show. // ShowOrdering - Setting that indicates the episode ordering for the show.
// None = Library default, // None = Library default,
@@ -745,27 +605,6 @@ const (
func (e ShowOrdering) ToPointer() *ShowOrdering { func (e ShowOrdering) ToPointer() *ShowOrdering {
return &e return &e
} }
func (e *ShowOrdering) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "None":
fallthrough
case "tmdbAiring":
fallthrough
case "aired":
fallthrough
case "dvd":
fallthrough
case "absolute":
*e = ShowOrdering(v)
return nil
default:
return fmt.Errorf("invalid value for ShowOrdering: %v", v)
}
}
type GetLibraryItemsOptimizedForStreaming int type GetLibraryItemsOptimizedForStreaming int
@@ -1652,25 +1491,6 @@ const (
func (e GetLibraryItemsLibraryResponse200Type) ToPointer() *GetLibraryItemsLibraryResponse200Type { func (e GetLibraryItemsLibraryResponse200Type) ToPointer() *GetLibraryItemsLibraryResponse200Type {
return &e return &e
} }
func (e *GetLibraryItemsLibraryResponse200Type) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "coverPoster":
fallthrough
case "background":
fallthrough
case "snapshot":
fallthrough
case "clearLogo":
*e = GetLibraryItemsLibraryResponse200Type(v)
return nil
default:
return fmt.Errorf("invalid value for GetLibraryItemsLibraryResponse200Type: %v", v)
}
}
type GetLibraryItemsImage struct { type GetLibraryItemsImage struct {
Alt string `json:"alt"` Alt string `json:"alt"`

View File

@@ -0,0 +1,165 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
package operations
import (
"net/http"
)
type GetMediaArtsRequest struct {
// the id of the library item to return the artwork of.
RatingKey int64 `pathParam:"style=simple,explode=false,name=ratingKey"`
}
func (o *GetMediaArtsRequest) GetRatingKey() int64 {
if o == nil {
return 0
}
return o.RatingKey
}
type GetMediaArtsMetadata struct {
// The URL of the artwork.
Key string `json:"key"`
// The provider of the artwork.
Provider *string `json:"provider,omitempty"`
// The URL of the artwork.
RatingKey string `json:"ratingKey"`
// Whether this is the selected artwork.
Selected bool `json:"selected"`
// The URL of the artwork thumbnail.
Thumb string `json:"thumb"`
}
func (o *GetMediaArtsMetadata) GetKey() string {
if o == nil {
return ""
}
return o.Key
}
func (o *GetMediaArtsMetadata) GetProvider() *string {
if o == nil {
return nil
}
return o.Provider
}
func (o *GetMediaArtsMetadata) GetRatingKey() string {
if o == nil {
return ""
}
return o.RatingKey
}
func (o *GetMediaArtsMetadata) GetSelected() bool {
if o == nil {
return false
}
return o.Selected
}
func (o *GetMediaArtsMetadata) GetThumb() string {
if o == nil {
return ""
}
return o.Thumb
}
type GetMediaArtsMediaContainer struct {
// Number of media items returned in this response.
Size int `json:"size"`
// The version number for media tags.
MediaTagVersion int64 `json:"mediaTagVersion"`
// The prefix used for media tag resource paths.
MediaTagPrefix string `json:"mediaTagPrefix"`
// An plugin identifier for the media container.
Identifier string `json:"identifier"`
Metadata []GetMediaArtsMetadata `json:"Metadata"`
}
func (o *GetMediaArtsMediaContainer) GetSize() int {
if o == nil {
return 0
}
return o.Size
}
func (o *GetMediaArtsMediaContainer) GetMediaTagVersion() int64 {
if o == nil {
return 0
}
return o.MediaTagVersion
}
func (o *GetMediaArtsMediaContainer) GetMediaTagPrefix() string {
if o == nil {
return ""
}
return o.MediaTagPrefix
}
func (o *GetMediaArtsMediaContainer) GetIdentifier() string {
if o == nil {
return ""
}
return o.Identifier
}
func (o *GetMediaArtsMediaContainer) GetMetadata() []GetMediaArtsMetadata {
if o == nil {
return []GetMediaArtsMetadata{}
}
return o.Metadata
}
// GetMediaArtsResponseBody - The available background artwork for the library item.
type GetMediaArtsResponseBody struct {
MediaContainer *GetMediaArtsMediaContainer `json:"MediaContainer,omitempty"`
}
func (o *GetMediaArtsResponseBody) GetMediaContainer() *GetMediaArtsMediaContainer {
if o == nil {
return nil
}
return o.MediaContainer
}
type GetMediaArtsResponse struct {
// HTTP response content type for this operation
ContentType string
// HTTP response status code for this operation
StatusCode int
// Raw HTTP response; suitable for custom response parsing
RawResponse *http.Response
// The available background artwork for the library item.
Object *GetMediaArtsResponseBody
}
func (o *GetMediaArtsResponse) GetContentType() string {
if o == nil {
return ""
}
return o.ContentType
}
func (o *GetMediaArtsResponse) GetStatusCode() int {
if o == nil {
return 0
}
return o.StatusCode
}
func (o *GetMediaArtsResponse) GetRawResponse() *http.Response {
if o == nil {
return nil
}
return o.RawResponse
}
func (o *GetMediaArtsResponse) GetObject() *GetMediaArtsResponseBody {
if o == nil {
return nil
}
return o.Object
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,165 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
package operations
import (
"net/http"
)
type GetMediaPostersRequest struct {
// the id of the library item to return the posters of.
RatingKey int64 `pathParam:"style=simple,explode=false,name=ratingKey"`
}
func (o *GetMediaPostersRequest) GetRatingKey() int64 {
if o == nil {
return 0
}
return o.RatingKey
}
type GetMediaPostersMetadata struct {
// The URL of the poster.
Key string `json:"key"`
// The provider of the poster.
Provider *string `json:"provider,omitempty"`
// The URL of the poster.
RatingKey string `json:"ratingKey"`
// Whether this is the selected poster.
Selected bool `json:"selected"`
// The URL of the poster thumbnail.
Thumb string `json:"thumb"`
}
func (o *GetMediaPostersMetadata) GetKey() string {
if o == nil {
return ""
}
return o.Key
}
func (o *GetMediaPostersMetadata) GetProvider() *string {
if o == nil {
return nil
}
return o.Provider
}
func (o *GetMediaPostersMetadata) GetRatingKey() string {
if o == nil {
return ""
}
return o.RatingKey
}
func (o *GetMediaPostersMetadata) GetSelected() bool {
if o == nil {
return false
}
return o.Selected
}
func (o *GetMediaPostersMetadata) GetThumb() string {
if o == nil {
return ""
}
return o.Thumb
}
type GetMediaPostersMediaContainer struct {
// Number of media items returned in this response.
Size int `json:"size"`
// The version number for media tags.
MediaTagVersion int64 `json:"mediaTagVersion"`
// The prefix used for media tag resource paths.
MediaTagPrefix string `json:"mediaTagPrefix"`
// An plugin identifier for the media container.
Identifier string `json:"identifier"`
Metadata []GetMediaPostersMetadata `json:"Metadata"`
}
func (o *GetMediaPostersMediaContainer) GetSize() int {
if o == nil {
return 0
}
return o.Size
}
func (o *GetMediaPostersMediaContainer) GetMediaTagVersion() int64 {
if o == nil {
return 0
}
return o.MediaTagVersion
}
func (o *GetMediaPostersMediaContainer) GetMediaTagPrefix() string {
if o == nil {
return ""
}
return o.MediaTagPrefix
}
func (o *GetMediaPostersMediaContainer) GetIdentifier() string {
if o == nil {
return ""
}
return o.Identifier
}
func (o *GetMediaPostersMediaContainer) GetMetadata() []GetMediaPostersMetadata {
if o == nil {
return []GetMediaPostersMetadata{}
}
return o.Metadata
}
// GetMediaPostersResponseBody - The available posters for the library item.
type GetMediaPostersResponseBody struct {
MediaContainer *GetMediaPostersMediaContainer `json:"MediaContainer,omitempty"`
}
func (o *GetMediaPostersResponseBody) GetMediaContainer() *GetMediaPostersMediaContainer {
if o == nil {
return nil
}
return o.MediaContainer
}
type GetMediaPostersResponse struct {
// HTTP response content type for this operation
ContentType string
// HTTP response status code for this operation
StatusCode int
// Raw HTTP response; suitable for custom response parsing
RawResponse *http.Response
// The available posters for the library item.
Object *GetMediaPostersResponseBody
}
func (o *GetMediaPostersResponse) GetContentType() string {
if o == nil {
return ""
}
return o.ContentType
}
func (o *GetMediaPostersResponse) GetStatusCode() int {
if o == nil {
return 0
}
return o.StatusCode
}
func (o *GetMediaPostersResponse) GetRawResponse() *http.Response {
if o == nil {
return nil
}
return o.RawResponse
}
func (o *GetMediaPostersResponse) GetObject() *GetMediaPostersResponseBody {
if o == nil {
return nil
}
return o.Object
}

View File

@@ -3,8 +3,6 @@
package operations package operations
import ( import (
"encoding/json"
"fmt"
"github.com/LukeHagar/plexgo/internal/utils" "github.com/LukeHagar/plexgo/internal/utils"
"github.com/LukeHagar/plexgo/types" "github.com/LukeHagar/plexgo/types"
"net/http" "net/http"
@@ -31,31 +29,6 @@ const (
func (e GetPlaylistContentsQueryParamType) ToPointer() *GetPlaylistContentsQueryParamType { func (e GetPlaylistContentsQueryParamType) ToPointer() *GetPlaylistContentsQueryParamType {
return &e return &e
} }
func (e *GetPlaylistContentsQueryParamType) UnmarshalJSON(data []byte) error {
var v int64
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case 1:
fallthrough
case 2:
fallthrough
case 3:
fallthrough
case 4:
fallthrough
case 8:
fallthrough
case 9:
fallthrough
case 10:
*e = GetPlaylistContentsQueryParamType(v)
return nil
default:
return fmt.Errorf("invalid value for GetPlaylistContentsQueryParamType: %v", v)
}
}
type GetPlaylistContentsRequest struct { type GetPlaylistContentsRequest struct {
// the ID of the playlist // the ID of the playlist

View File

@@ -3,8 +3,6 @@
package operations package operations
import ( import (
"encoding/json"
"fmt"
"net/http" "net/http"
) )
@@ -20,23 +18,6 @@ const (
func (e PlaylistType) ToPointer() *PlaylistType { func (e PlaylistType) ToPointer() *PlaylistType {
return &e return &e
} }
func (e *PlaylistType) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "audio":
fallthrough
case "video":
fallthrough
case "photo":
*e = PlaylistType(v)
return nil
default:
return fmt.Errorf("invalid value for PlaylistType: %v", v)
}
}
// QueryParamSmart - type of playlists to return (default is all). // QueryParamSmart - type of playlists to return (default is all).
type QueryParamSmart int64 type QueryParamSmart int64
@@ -49,21 +30,6 @@ const (
func (e QueryParamSmart) ToPointer() *QueryParamSmart { func (e QueryParamSmart) ToPointer() *QueryParamSmart {
return &e return &e
} }
func (e *QueryParamSmart) UnmarshalJSON(data []byte) error {
var v int64
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case 0:
fallthrough
case 1:
*e = QueryParamSmart(v)
return nil
default:
return fmt.Errorf("invalid value for QueryParamSmart: %v", v)
}
}
type GetPlaylistsRequest struct { type GetPlaylistsRequest struct {
// limit to a type of playlist. // limit to a type of playlist.

View File

@@ -32,31 +32,6 @@ const (
func (e Type) ToPointer() *Type { func (e Type) ToPointer() *Type {
return &e return &e
} }
func (e *Type) UnmarshalJSON(data []byte) error {
var v int64
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case 1:
fallthrough
case 2:
fallthrough
case 3:
fallthrough
case 4:
fallthrough
case 8:
fallthrough
case 9:
fallthrough
case 10:
*e = Type(v)
return nil
default:
return fmt.Errorf("invalid value for Type: %v", v)
}
}
// IncludeMeta - Adds the Meta object to the response // IncludeMeta - Adds the Meta object to the response
type IncludeMeta int type IncludeMeta int
@@ -537,29 +512,6 @@ const (
func (e GetRecentlyAddedHubsType) ToPointer() *GetRecentlyAddedHubsType { func (e GetRecentlyAddedHubsType) ToPointer() *GetRecentlyAddedHubsType {
return &e return &e
} }
func (e *GetRecentlyAddedHubsType) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "movie":
fallthrough
case "show":
fallthrough
case "season":
fallthrough
case "episode":
fallthrough
case "artist":
fallthrough
case "album":
*e = GetRecentlyAddedHubsType(v)
return nil
default:
return fmt.Errorf("invalid value for GetRecentlyAddedHubsType: %v", v)
}
}
type GetRecentlyAddedHubsResponseType string type GetRecentlyAddedHubsResponseType string
@@ -573,25 +525,6 @@ const (
func (e GetRecentlyAddedHubsResponseType) ToPointer() *GetRecentlyAddedHubsResponseType { func (e GetRecentlyAddedHubsResponseType) ToPointer() *GetRecentlyAddedHubsResponseType {
return &e return &e
} }
func (e *GetRecentlyAddedHubsResponseType) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "coverPoster":
fallthrough
case "background":
fallthrough
case "snapshot":
fallthrough
case "clearLogo":
*e = GetRecentlyAddedHubsResponseType(v)
return nil
default:
return fmt.Errorf("invalid value for GetRecentlyAddedHubsResponseType: %v", v)
}
}
type GetRecentlyAddedImage struct { type GetRecentlyAddedImage struct {
Alt string `json:"alt"` Alt string `json:"alt"`
@@ -862,17 +795,39 @@ func (e *HasThumbnail) UnmarshalJSON(data []byte) error {
} }
} }
// StreamType - Stream type:
// - 1 = video
// - 2 = audio
// - 3 = subtitle
type StreamType int
const (
StreamTypeVideo StreamType = 1
StreamTypeAudio StreamType = 2
StreamTypeSubtitle StreamType = 3
)
func (e StreamType) ToPointer() *StreamType {
return &e
}
type Stream struct { type Stream struct {
// Unique stream identifier. // Unique stream identifier.
ID int64 `json:"id"` ID int64 `json:"id"`
// Stream type (1=video, 2=audio, 3=subtitle). // Stream type:
StreamType int `json:"streamType"` // - 1 = video
// - 2 = audio
// - 3 = subtitle
//
StreamType StreamType `json:"streamType"`
// Format of the stream (e.g., srt).
Format *string `json:"format,omitempty"`
// Indicates if this stream is default. // Indicates if this stream is default.
Default *bool `json:"default,omitempty"` Default *bool `json:"default,omitempty"`
// Codec used by the stream. // Codec used by the stream.
Codec string `json:"codec"` Codec string `json:"codec"`
// Index of the stream. // Index of the stream.
Index int `json:"index"` Index *int `json:"index,omitempty"`
// Bitrate of the stream. // Bitrate of the stream.
Bitrate *int `json:"bitrate,omitempty"` Bitrate *int `json:"bitrate,omitempty"`
// Language of the stream. // Language of the stream.
@@ -920,6 +875,8 @@ type Stream struct {
ColorTrc *string `json:"colorTrc,omitempty"` ColorTrc *string `json:"colorTrc,omitempty"`
// Frame rate of the stream. // Frame rate of the stream.
FrameRate *float32 `json:"frameRate,omitempty"` FrameRate *float32 `json:"frameRate,omitempty"`
// Key to access this stream part.
Key *string `json:"key,omitempty"`
// Height of the video stream. // Height of the video stream.
Height *int `json:"height,omitempty"` Height *int `json:"height,omitempty"`
// Video level. // Video level.
@@ -965,13 +922,20 @@ func (o *Stream) GetID() int64 {
return o.ID return o.ID
} }
func (o *Stream) GetStreamType() int { func (o *Stream) GetStreamType() StreamType {
if o == nil { if o == nil {
return 0 return StreamType(0)
} }
return o.StreamType return o.StreamType
} }
func (o *Stream) GetFormat() *string {
if o == nil {
return nil
}
return o.Format
}
func (o *Stream) GetDefault() *bool { func (o *Stream) GetDefault() *bool {
if o == nil { if o == nil {
return nil return nil
@@ -986,9 +950,9 @@ func (o *Stream) GetCodec() string {
return o.Codec return o.Codec
} }
func (o *Stream) GetIndex() int { func (o *Stream) GetIndex() *int {
if o == nil { if o == nil {
return 0 return nil
} }
return o.Index return o.Index
} }
@@ -1161,6 +1125,13 @@ func (o *Stream) GetFrameRate() *float32 {
return o.FrameRate return o.FrameRate
} }
func (o *Stream) GetKey() *string {
if o == nil {
return nil
}
return o.Key
}
func (o *Stream) GetHeight() *int { func (o *Stream) GetHeight() *int {
if o == nil { if o == nil {
return nil return nil
@@ -1660,13 +1631,13 @@ func (o *Genre) GetTag() string {
// Country - The filter query string for country media items. // Country - The filter query string for country media items.
type Country struct { type Country struct {
ID int64 `json:"id"` ID int `json:"id"`
// The country of origin of this media item // The country of origin of this media item
Tag string `json:"tag"` Tag string `json:"tag"`
Filter *string `json:"filter,omitempty"` Filter *string `json:"filter,omitempty"`
} }
func (o *Country) GetID() int64 { func (o *Country) GetID() int {
if o == nil { if o == nil {
return 0 return 0
} }
@@ -1701,7 +1672,7 @@ func (o *Director) GetTag() string {
type Writer struct { type Writer struct {
// Unique identifier for the writer. // Unique identifier for the writer.
ID int64 `json:"id"` ID int `json:"id"`
// The filter string used to query this writer. // The filter string used to query this writer.
Filter string `json:"filter"` Filter string `json:"filter"`
// The role of Writer // The role of Writer
@@ -1710,7 +1681,7 @@ type Writer struct {
TagKey *string `json:"tagKey,omitempty"` TagKey *string `json:"tagKey,omitempty"`
} }
func (o *Writer) GetID() int64 { func (o *Writer) GetID() int {
if o == nil { if o == nil {
return 0 return 0
} }
@@ -1797,7 +1768,7 @@ func (o *Role) GetThumb() *string {
type Producer struct { type Producer struct {
// Unique identifier for the producer. // Unique identifier for the producer.
ID int64 `json:"id"` ID int `json:"id"`
// The filter string used to query this producer. // The filter string used to query this producer.
Filter string `json:"filter"` Filter string `json:"filter"`
// The name of the producer // The name of the producer
@@ -1808,7 +1779,7 @@ type Producer struct {
Thumb *string `json:"thumb,omitempty"` Thumb *string `json:"thumb,omitempty"`
} }
func (o *Producer) GetID() int64 { func (o *Producer) GetID() int {
if o == nil { if o == nil {
return 0 return 0
} }

View File

@@ -31,31 +31,6 @@ const (
func (e QueryParamType) ToPointer() *QueryParamType { func (e QueryParamType) ToPointer() *QueryParamType {
return &e return &e
} }
func (e *QueryParamType) UnmarshalJSON(data []byte) error {
var v int64
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case 1:
fallthrough
case 2:
fallthrough
case 3:
fallthrough
case 4:
fallthrough
case 8:
fallthrough
case 9:
fallthrough
case 10:
*e = QueryParamType(v)
return nil
default:
return fmt.Errorf("invalid value for QueryParamType: %v", v)
}
}
// QueryParamIncludeMeta - Adds the Meta object to the response // QueryParamIncludeMeta - Adds the Meta object to the response
type QueryParamIncludeMeta int type QueryParamIncludeMeta int

View File

@@ -23,27 +23,6 @@ const (
func (e SearchTypes) ToPointer() *SearchTypes { func (e SearchTypes) ToPointer() *SearchTypes {
return &e return &e
} }
func (e *SearchTypes) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "movies":
fallthrough
case "music":
fallthrough
case "otherVideos":
fallthrough
case "people":
fallthrough
case "tv":
*e = SearchTypes(v)
return nil
default:
return fmt.Errorf("invalid value for SearchTypes: %v", v)
}
}
// GetSearchAllLibrariesQueryParamIncludeCollections - Whether to include collections in the search results. // GetSearchAllLibrariesQueryParamIncludeCollections - Whether to include collections in the search results.
type GetSearchAllLibrariesQueryParamIncludeCollections int type GetSearchAllLibrariesQueryParamIncludeCollections int
@@ -183,29 +162,6 @@ const (
func (e GetSearchAllLibrariesType) ToPointer() *GetSearchAllLibrariesType { func (e GetSearchAllLibrariesType) ToPointer() *GetSearchAllLibrariesType {
return &e return &e
} }
func (e *GetSearchAllLibrariesType) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "movie":
fallthrough
case "show":
fallthrough
case "season":
fallthrough
case "episode":
fallthrough
case "artist":
fallthrough
case "album":
*e = GetSearchAllLibrariesType(v)
return nil
default:
return fmt.Errorf("invalid value for GetSearchAllLibrariesType: %v", v)
}
}
// GetSearchAllLibrariesFlattenSeasons - Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). // GetSearchAllLibrariesFlattenSeasons - Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show).
type GetSearchAllLibrariesFlattenSeasons string type GetSearchAllLibrariesFlattenSeasons string
@@ -219,23 +175,6 @@ const (
func (e GetSearchAllLibrariesFlattenSeasons) ToPointer() *GetSearchAllLibrariesFlattenSeasons { func (e GetSearchAllLibrariesFlattenSeasons) ToPointer() *GetSearchAllLibrariesFlattenSeasons {
return &e return &e
} }
func (e *GetSearchAllLibrariesFlattenSeasons) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "-1":
fallthrough
case "0":
fallthrough
case "1":
*e = GetSearchAllLibrariesFlattenSeasons(v)
return nil
default:
return fmt.Errorf("invalid value for GetSearchAllLibrariesFlattenSeasons: %v", v)
}
}
// GetSearchAllLibrariesEpisodeSort - Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). // GetSearchAllLibrariesEpisodeSort - Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first).
type GetSearchAllLibrariesEpisodeSort string type GetSearchAllLibrariesEpisodeSort string
@@ -249,23 +188,6 @@ const (
func (e GetSearchAllLibrariesEpisodeSort) ToPointer() *GetSearchAllLibrariesEpisodeSort { func (e GetSearchAllLibrariesEpisodeSort) ToPointer() *GetSearchAllLibrariesEpisodeSort {
return &e return &e
} }
func (e *GetSearchAllLibrariesEpisodeSort) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "-1":
fallthrough
case "0":
fallthrough
case "1":
*e = GetSearchAllLibrariesEpisodeSort(v)
return nil
default:
return fmt.Errorf("invalid value for GetSearchAllLibrariesEpisodeSort: %v", v)
}
}
// GetSearchAllLibrariesEnableCreditsMarkerGeneration - Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). // GetSearchAllLibrariesEnableCreditsMarkerGeneration - Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled).
type GetSearchAllLibrariesEnableCreditsMarkerGeneration string type GetSearchAllLibrariesEnableCreditsMarkerGeneration string
@@ -278,21 +200,6 @@ const (
func (e GetSearchAllLibrariesEnableCreditsMarkerGeneration) ToPointer() *GetSearchAllLibrariesEnableCreditsMarkerGeneration { func (e GetSearchAllLibrariesEnableCreditsMarkerGeneration) ToPointer() *GetSearchAllLibrariesEnableCreditsMarkerGeneration {
return &e return &e
} }
func (e *GetSearchAllLibrariesEnableCreditsMarkerGeneration) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "-1":
fallthrough
case "0":
*e = GetSearchAllLibrariesEnableCreditsMarkerGeneration(v)
return nil
default:
return fmt.Errorf("invalid value for GetSearchAllLibrariesEnableCreditsMarkerGeneration: %v", v)
}
}
// GetSearchAllLibrariesShowOrdering - Setting that indicates the episode ordering for the show. // GetSearchAllLibrariesShowOrdering - Setting that indicates the episode ordering for the show.
// None = Library default, // None = Library default,
@@ -313,27 +220,6 @@ const (
func (e GetSearchAllLibrariesShowOrdering) ToPointer() *GetSearchAllLibrariesShowOrdering { func (e GetSearchAllLibrariesShowOrdering) ToPointer() *GetSearchAllLibrariesShowOrdering {
return &e return &e
} }
func (e *GetSearchAllLibrariesShowOrdering) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "None":
fallthrough
case "tmdbAiring":
fallthrough
case "aired":
fallthrough
case "dvd":
fallthrough
case "absolute":
*e = GetSearchAllLibrariesShowOrdering(v)
return nil
default:
return fmt.Errorf("invalid value for GetSearchAllLibrariesShowOrdering: %v", v)
}
}
type GetSearchAllLibrariesOptimizedForStreaming int type GetSearchAllLibrariesOptimizedForStreaming int
@@ -1220,25 +1106,6 @@ const (
func (e GetSearchAllLibrariesLibraryType) ToPointer() *GetSearchAllLibrariesLibraryType { func (e GetSearchAllLibrariesLibraryType) ToPointer() *GetSearchAllLibrariesLibraryType {
return &e return &e
} }
func (e *GetSearchAllLibrariesLibraryType) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "coverPoster":
fallthrough
case "background":
fallthrough
case "snapshot":
fallthrough
case "clearLogo":
*e = GetSearchAllLibrariesLibraryType(v)
return nil
default:
return fmt.Errorf("invalid value for GetSearchAllLibrariesLibraryType: %v", v)
}
}
type GetSearchAllLibrariesImage struct { type GetSearchAllLibrariesImage struct {
Alt string `json:"alt"` Alt string `json:"alt"`

View File

@@ -3,8 +3,6 @@
package operations package operations
import ( import (
"encoding/json"
"fmt"
"net/http" "net/http"
) )
@@ -29,31 +27,6 @@ const (
func (e GetSearchLibraryQueryParamType) ToPointer() *GetSearchLibraryQueryParamType { func (e GetSearchLibraryQueryParamType) ToPointer() *GetSearchLibraryQueryParamType {
return &e return &e
} }
func (e *GetSearchLibraryQueryParamType) UnmarshalJSON(data []byte) error {
var v int64
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case 1:
fallthrough
case 2:
fallthrough
case 3:
fallthrough
case 4:
fallthrough
case 8:
fallthrough
case 9:
fallthrough
case 10:
*e = GetSearchLibraryQueryParamType(v)
return nil
default:
return fmt.Errorf("invalid value for GetSearchLibraryQueryParamType: %v", v)
}
}
type GetSearchLibraryRequest struct { type GetSearchLibraryRequest struct {
// The unique key of the Plex library. // The unique key of the Plex library.

View File

@@ -3,8 +3,6 @@
package operations package operations
import ( import (
"encoding/json"
"fmt"
"net/http" "net/http"
) )
@@ -20,23 +18,6 @@ const (
func (e State) ToPointer() *State { func (e State) ToPointer() *State {
return &e return &e
} }
func (e *State) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "playing":
fallthrough
case "paused":
fallthrough
case "stopped":
*e = State(v)
return nil
default:
return fmt.Errorf("invalid value for State: %v", v)
}
}
type GetTimelineRequest struct { type GetTimelineRequest struct {
// The rating key of the media item // The rating key of the media item

View File

@@ -24,21 +24,6 @@ const (
func (e MailingListStatus) ToPointer() *MailingListStatus { func (e MailingListStatus) ToPointer() *MailingListStatus {
return &e return &e
} }
func (e *MailingListStatus) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "active":
fallthrough
case "unsubscribed":
*e = MailingListStatus(v)
return nil
default:
return fmt.Errorf("invalid value for MailingListStatus: %v", v)
}
}
// AutoSelectSubtitle - The auto-select subtitle mode (0 = Manually selected, 1 = Shown with foreign audio, 2 = Always enabled) // AutoSelectSubtitle - The auto-select subtitle mode (0 = Manually selected, 1 = Shown with foreign audio, 2 = Always enabled)
type AutoSelectSubtitle int type AutoSelectSubtitle int
@@ -266,21 +251,6 @@ const (
func (e GetTokenDetailsStatus) ToPointer() *GetTokenDetailsStatus { func (e GetTokenDetailsStatus) ToPointer() *GetTokenDetailsStatus {
return &e return &e
} }
func (e *GetTokenDetailsStatus) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "online":
fallthrough
case "offline":
*e = GetTokenDetailsStatus(v)
return nil
default:
return fmt.Errorf("invalid value for GetTokenDetailsStatus: %v", v)
}
}
type Services struct { type Services struct {
Identifier string `json:"identifier"` Identifier string `json:"identifier"`
@@ -336,21 +306,6 @@ const (
func (e GetTokenDetailsAuthenticationStatus) ToPointer() *GetTokenDetailsAuthenticationStatus { func (e GetTokenDetailsAuthenticationStatus) ToPointer() *GetTokenDetailsAuthenticationStatus {
return &e return &e
} }
func (e *GetTokenDetailsAuthenticationStatus) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "Inactive":
fallthrough
case "Active":
*e = GetTokenDetailsAuthenticationStatus(v)
return nil
default:
return fmt.Errorf("invalid value for GetTokenDetailsAuthenticationStatus: %v", v)
}
}
// Subscription - If the accounts Plex Pass subscription is active // Subscription - If the accounts Plex Pass subscription is active
type Subscription struct { type Subscription struct {
@@ -421,21 +376,6 @@ const (
func (e GetTokenDetailsAuthenticationResponseStatus) ToPointer() *GetTokenDetailsAuthenticationResponseStatus { func (e GetTokenDetailsAuthenticationResponseStatus) ToPointer() *GetTokenDetailsAuthenticationResponseStatus {
return &e return &e
} }
func (e *GetTokenDetailsAuthenticationResponseStatus) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "Inactive":
fallthrough
case "Active":
*e = GetTokenDetailsAuthenticationResponseStatus(v)
return nil
default:
return fmt.Errorf("invalid value for GetTokenDetailsAuthenticationResponseStatus: %v", v)
}
}
type GetTokenDetailsSubscription struct { type GetTokenDetailsSubscription struct {
// List of features allowed on your Plex Pass subscription // List of features allowed on your Plex Pass subscription

View File

@@ -3,8 +3,6 @@
package operations package operations
import ( import (
"encoding/json"
"fmt"
"github.com/LukeHagar/plexgo/internal/utils" "github.com/LukeHagar/plexgo/internal/utils"
"github.com/LukeHagar/plexgo/types" "github.com/LukeHagar/plexgo/types"
"net/http" "net/http"
@@ -31,31 +29,6 @@ const (
func (e GetTopWatchedContentQueryParamType) ToPointer() *GetTopWatchedContentQueryParamType { func (e GetTopWatchedContentQueryParamType) ToPointer() *GetTopWatchedContentQueryParamType {
return &e return &e
} }
func (e *GetTopWatchedContentQueryParamType) UnmarshalJSON(data []byte) error {
var v int64
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case 1:
fallthrough
case 2:
fallthrough
case 3:
fallthrough
case 4:
fallthrough
case 8:
fallthrough
case 9:
fallthrough
case 10:
*e = GetTopWatchedContentQueryParamType(v)
return nil
default:
return fmt.Errorf("invalid value for GetTopWatchedContentQueryParamType: %v", v)
}
}
type GetTopWatchedContentRequest struct { type GetTopWatchedContentRequest struct {
// Adds the Guids object to the response // Adds the Guids object to the response

View File

@@ -3,8 +3,6 @@
package operations package operations
import ( import (
"encoding/json"
"fmt"
"github.com/LukeHagar/plexgo/internal/utils" "github.com/LukeHagar/plexgo/internal/utils"
"net/http" "net/http"
) )
@@ -29,19 +27,6 @@ const (
func (e Status) ToPointer() *Status { func (e Status) ToPointer() *Status {
return &e return &e
} }
func (e *Status) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "accepted":
*e = Status(v)
return nil
default:
return fmt.Errorf("invalid value for Status: %v", v)
}
}
type Friend struct { type Friend struct {
// The account email address // The account email address

View File

@@ -26,23 +26,6 @@ const (
func (e Filter) ToPointer() *Filter { func (e Filter) ToPointer() *Filter {
return &e return &e
} }
func (e *Filter) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "all":
fallthrough
case "available":
fallthrough
case "released":
*e = Filter(v)
return nil
default:
return fmt.Errorf("invalid value for Filter: %v", v)
}
}
// Libtype - The type of library to filter. Can be "movie" or "show", or all if not present. // Libtype - The type of library to filter. Can be "movie" or "show", or all if not present.
type Libtype string type Libtype string
@@ -55,21 +38,6 @@ const (
func (e Libtype) ToPointer() *Libtype { func (e Libtype) ToPointer() *Libtype {
return &e return &e
} }
func (e *Libtype) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "movie":
fallthrough
case "show":
*e = Libtype(v)
return nil
default:
return fmt.Errorf("invalid value for Libtype: %v", v)
}
}
// IncludeCollections - include collections in the results // IncludeCollections - include collections in the results
type IncludeCollections int64 type IncludeCollections int64

View File

@@ -3,8 +3,6 @@
package operations package operations
import ( import (
"encoding/json"
"fmt"
"net/http" "net/http"
) )
@@ -27,27 +25,6 @@ const (
func (e Level) ToPointer() *Level { func (e Level) ToPointer() *Level {
return &e return &e
} }
func (e *Level) UnmarshalJSON(data []byte) error {
var v int64
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case 0:
fallthrough
case 1:
fallthrough
case 2:
fallthrough
case 3:
fallthrough
case 4:
*e = Level(v)
return nil
default:
return fmt.Errorf("invalid value for Level: %v", v)
}
}
type LogLineRequest struct { type LogLineRequest struct {
// An integer log level to write to the PMS log with. // An integer log level to write to the PMS log with.

View File

@@ -21,9 +21,10 @@ const (
type AcceptHeaderEnum string type AcceptHeaderEnum string
const ( const (
AcceptHeaderEnumApplicationJson AcceptHeaderEnum = "application/json" AcceptHeaderEnumApplicationJson AcceptHeaderEnum = "application/json"
AcceptHeaderEnumImageJpeg AcceptHeaderEnum = "image/jpeg" AcceptHeaderEnumImageJpeg AcceptHeaderEnum = "image/jpeg"
AcceptHeaderEnumApplicationXml AcceptHeaderEnum = "application/xml" AcceptHeaderEnumWildcardRootWildcard AcceptHeaderEnum = "*/*"
AcceptHeaderEnumApplicationXml AcceptHeaderEnum = "application/xml"
) )
func (e AcceptHeaderEnum) ToPointer() *AcceptHeaderEnum { func (e AcceptHeaderEnum) ToPointer() *AcceptHeaderEnum {

View File

@@ -0,0 +1,68 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
package operations
import (
"net/http"
)
type PostMediaArtsRequest struct {
// the id of the library item to return the posters of.
RatingKey int64 `pathParam:"style=simple,explode=false,name=ratingKey"`
// The URL of the image, if uploading a remote image
URL *string `queryParam:"style=form,explode=true,name=url"`
// The contents of the image, if uploading a local file
// This field accepts []byte data or io.Reader implementations, such as *os.File.
RequestBody *any `request:"mediaType=image/*"`
}
func (o *PostMediaArtsRequest) GetRatingKey() int64 {
if o == nil {
return 0
}
return o.RatingKey
}
func (o *PostMediaArtsRequest) GetURL() *string {
if o == nil {
return nil
}
return o.URL
}
func (o *PostMediaArtsRequest) GetRequestBody() *any {
if o == nil {
return nil
}
return o.RequestBody
}
type PostMediaArtsResponse struct {
// HTTP response content type for this operation
ContentType string
// HTTP response status code for this operation
StatusCode int
// Raw HTTP response; suitable for custom response parsing
RawResponse *http.Response
}
func (o *PostMediaArtsResponse) GetContentType() string {
if o == nil {
return ""
}
return o.ContentType
}
func (o *PostMediaArtsResponse) GetStatusCode() int {
if o == nil {
return 0
}
return o.StatusCode
}
func (o *PostMediaArtsResponse) GetRawResponse() *http.Response {
if o == nil {
return nil
}
return o.RawResponse
}

View File

@@ -0,0 +1,68 @@
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
package operations
import (
"net/http"
)
type PostMediaPosterRequest struct {
// the id of the library item to return the posters of.
RatingKey int64 `pathParam:"style=simple,explode=false,name=ratingKey"`
// The URL of the image, if uploading a remote image
URL *string `queryParam:"style=form,explode=true,name=url"`
// The contents of the image, if uploading a local file
// This field accepts []byte data or io.Reader implementations, such as *os.File.
RequestBody *any `request:"mediaType=image/*"`
}
func (o *PostMediaPosterRequest) GetRatingKey() int64 {
if o == nil {
return 0
}
return o.RatingKey
}
func (o *PostMediaPosterRequest) GetURL() *string {
if o == nil {
return nil
}
return o.URL
}
func (o *PostMediaPosterRequest) GetRequestBody() *any {
if o == nil {
return nil
}
return o.RequestBody
}
type PostMediaPosterResponse struct {
// HTTP response content type for this operation
ContentType string
// HTTP response status code for this operation
StatusCode int
// Raw HTTP response; suitable for custom response parsing
RawResponse *http.Response
}
func (o *PostMediaPosterResponse) GetContentType() string {
if o == nil {
return ""
}
return o.ContentType
}
func (o *PostMediaPosterResponse) GetStatusCode() int {
if o == nil {
return 0
}
return o.StatusCode
}
func (o *PostMediaPosterResponse) GetRawResponse() *http.Response {
if o == nil {
return nil
}
return o.RawResponse
}

View File

@@ -128,21 +128,6 @@ const (
func (e PostUsersSignInDataMailingListStatus) ToPointer() *PostUsersSignInDataMailingListStatus { func (e PostUsersSignInDataMailingListStatus) ToPointer() *PostUsersSignInDataMailingListStatus {
return &e return &e
} }
func (e *PostUsersSignInDataMailingListStatus) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "active":
fallthrough
case "unsubscribed":
*e = PostUsersSignInDataMailingListStatus(v)
return nil
default:
return fmt.Errorf("invalid value for PostUsersSignInDataMailingListStatus: %v", v)
}
}
// PostUsersSignInDataAutoSelectSubtitle - The auto-select subtitle mode (0 = Manually selected, 1 = Shown with foreign audio, 2 = Always enabled) // PostUsersSignInDataAutoSelectSubtitle - The auto-select subtitle mode (0 = Manually selected, 1 = Shown with foreign audio, 2 = Always enabled)
type PostUsersSignInDataAutoSelectSubtitle int type PostUsersSignInDataAutoSelectSubtitle int
@@ -370,21 +355,6 @@ const (
func (e PostUsersSignInDataStatus) ToPointer() *PostUsersSignInDataStatus { func (e PostUsersSignInDataStatus) ToPointer() *PostUsersSignInDataStatus {
return &e return &e
} }
func (e *PostUsersSignInDataStatus) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "online":
fallthrough
case "offline":
*e = PostUsersSignInDataStatus(v)
return nil
default:
return fmt.Errorf("invalid value for PostUsersSignInDataStatus: %v", v)
}
}
type PostUsersSignInDataServices struct { type PostUsersSignInDataServices struct {
Identifier string `json:"identifier"` Identifier string `json:"identifier"`
@@ -440,21 +410,6 @@ const (
func (e PostUsersSignInDataAuthenticationStatus) ToPointer() *PostUsersSignInDataAuthenticationStatus { func (e PostUsersSignInDataAuthenticationStatus) ToPointer() *PostUsersSignInDataAuthenticationStatus {
return &e return &e
} }
func (e *PostUsersSignInDataAuthenticationStatus) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "Inactive":
fallthrough
case "Active":
*e = PostUsersSignInDataAuthenticationStatus(v)
return nil
default:
return fmt.Errorf("invalid value for PostUsersSignInDataAuthenticationStatus: %v", v)
}
}
// PostUsersSignInDataSubscription - If the accounts Plex Pass subscription is active // PostUsersSignInDataSubscription - If the accounts Plex Pass subscription is active
type PostUsersSignInDataSubscription struct { type PostUsersSignInDataSubscription struct {
@@ -525,21 +480,6 @@ const (
func (e PostUsersSignInDataAuthenticationResponseStatus) ToPointer() *PostUsersSignInDataAuthenticationResponseStatus { func (e PostUsersSignInDataAuthenticationResponseStatus) ToPointer() *PostUsersSignInDataAuthenticationResponseStatus {
return &e return &e
} }
func (e *PostUsersSignInDataAuthenticationResponseStatus) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "Inactive":
fallthrough
case "Active":
*e = PostUsersSignInDataAuthenticationResponseStatus(v)
return nil
default:
return fmt.Errorf("invalid value for PostUsersSignInDataAuthenticationResponseStatus: %v", v)
}
}
type PostUsersSignInDataAuthenticationSubscription struct { type PostUsersSignInDataAuthenticationSubscription struct {
// List of features allowed on your Plex Pass subscription // List of features allowed on your Plex Pass subscription
@@ -607,19 +547,6 @@ const (
func (e PostUsersSignInDataState) ToPointer() *PostUsersSignInDataState { func (e PostUsersSignInDataState) ToPointer() *PostUsersSignInDataState {
return &e return &e
} }
func (e *PostUsersSignInDataState) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "ended":
*e = PostUsersSignInDataState(v)
return nil
default:
return fmt.Errorf("invalid value for PostUsersSignInDataState: %v", v)
}
}
type InternalPaymentMethod struct { type InternalPaymentMethod struct {
} }

View File

@@ -3,8 +3,6 @@
package operations package operations
import ( import (
"encoding/json"
"fmt"
"net/http" "net/http"
) )
@@ -31,45 +29,6 @@ const (
func (e TaskName) ToPointer() *TaskName { func (e TaskName) ToPointer() *TaskName {
return &e return &e
} }
func (e *TaskName) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "BackupDatabase":
fallthrough
case "BuildGracenoteCollections":
fallthrough
case "CheckForUpdates":
fallthrough
case "CleanOldBundles":
fallthrough
case "CleanOldCacheFiles":
fallthrough
case "DeepMediaAnalysis":
fallthrough
case "GenerateAutoTags":
fallthrough
case "GenerateChapterThumbs":
fallthrough
case "GenerateMediaIndexFiles":
fallthrough
case "OptimizeDatabase":
fallthrough
case "RefreshLibraries":
fallthrough
case "RefreshLocalMedia":
fallthrough
case "RefreshPeriodicMetadata":
fallthrough
case "UpgradeMediaAnalysis":
*e = TaskName(v)
return nil
default:
return fmt.Errorf("invalid value for TaskName: %v", v)
}
}
type StartTaskRequest struct { type StartTaskRequest struct {
// the name of the task to be started. // the name of the task to be started.

View File

@@ -3,8 +3,6 @@
package operations package operations
import ( import (
"encoding/json"
"fmt"
"net/http" "net/http"
) )
@@ -31,45 +29,6 @@ const (
func (e PathParamTaskName) ToPointer() *PathParamTaskName { func (e PathParamTaskName) ToPointer() *PathParamTaskName {
return &e return &e
} }
func (e *PathParamTaskName) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "BackupDatabase":
fallthrough
case "BuildGracenoteCollections":
fallthrough
case "CheckForUpdates":
fallthrough
case "CleanOldBundles":
fallthrough
case "CleanOldCacheFiles":
fallthrough
case "DeepMediaAnalysis":
fallthrough
case "GenerateAutoTags":
fallthrough
case "GenerateChapterThumbs":
fallthrough
case "GenerateMediaIndexFiles":
fallthrough
case "OptimizeDatabase":
fallthrough
case "RefreshLibraries":
fallthrough
case "RefreshLocalMedia":
fallthrough
case "RefreshPeriodicMetadata":
fallthrough
case "UpgradeMediaAnalysis":
*e = PathParamTaskName(v)
return nil
default:
return fmt.Errorf("invalid value for PathParamTaskName: %v", v)
}
}
type StopTaskRequest struct { type StopTaskRequest struct {
// The name of the task to be started. // The name of the task to be started.

View File

@@ -299,9 +299,9 @@ func New(opts ...SDKOption) *PlexAPI {
sdkConfiguration: sdkConfiguration{ sdkConfiguration: sdkConfiguration{
Language: "go", Language: "go",
OpenAPIDocVersion: "0.0.3", OpenAPIDocVersion: "0.0.3",
SDKVersion: "0.19.2", SDKVersion: "0.21.1",
GenVersion: "2.545.4", GenVersion: "2.596.2",
UserAgent: "speakeasy-sdk/go 0.19.2 2.545.4 0.0.3 github.com/LukeHagar/plexgo", UserAgent: "speakeasy-sdk/go 0.21.1 2.596.2 0.0.3 github.com/LukeHagar/plexgo",
ServerDefaults: []map[string]string{ ServerDefaults: []map[string]string{
{ {
"protocol": "https", "protocol": "https",