Compare commits

...

7 Commits

Author SHA1 Message Date
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
66 changed files with 2290 additions and 1326 deletions

File diff suppressed because one or more lines are too long

View File

@@ -15,7 +15,7 @@ generation:
oAuth2ClientCredentialsEnabled: true oAuth2ClientCredentialsEnabled: true
oAuth2PasswordEnabled: false oAuth2PasswordEnabled: false
go: go:
version: 0.19.2 version: 0.21.0
additionalDependencies: {} additionalDependencies: {}
allowUnknownFieldsInWeakUnions: false allowUnknownFieldsInWeakUnions: false
clientServerStatusCodesAsErrors: true clientServerStatusCodesAsErrors: true

View File

@@ -1,4 +1,4 @@
speakeasyVersion: 1.513.4 speakeasyVersion: 1.535.1
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:b2f9599237ceb13cf8f9c1693e38b290177b65fb389cebf0c3c60b8ef4778615
sourceBlobDigest: sha256:1737023e29cd9cf36c07ccd8c8c48c47e14f47ce22b4d6ba9ee241afbbd8f351 sourceBlobDigest: sha256:f8df9ef88ada992cd981d601e6c0b45cc82db76aba3d915c2f9d08f90c81ced9
tags: tags:
- latest - latest
- speakeasy-sdk-regen-1741565327 - speakeasy-sdk-regen-1745082762
targets: targets:
plexgo: plexgo:
source: plexapi source: plexapi
sourceNamespace: plexapi sourceNamespace: plexapi
sourceRevisionDigest: sha256:2066ba94b55e21d651c79003e3cf402fb77c52a0969fc52310b3383fbed038f4 sourceRevisionDigest: sha256:b2f9599237ceb13cf8f9c1693e38b290177b65fb389cebf0c3c60b8ef4778615
sourceBlobDigest: sha256:1737023e29cd9cf36c07ccd8c8c48c47e14f47ce22b4d6ba9ee241afbbd8f351 sourceBlobDigest: sha256:f8df9ef88ada992cd981d601e6c0b45cc82db76aba3d915c2f9d08f90c81ced9
codeSamplesNamespace: code-samples-go-plexgo codeSamplesNamespace: code-samples-go-plexgo
codeSamplesRevisionDigest: sha256:1c039b4b936c2e504fdce037068ca992efeb22b94f6fc013db92ed1923c0bc33 codeSamplesRevisionDigest: sha256:2d25718f4996da172444f082138e8a821c79218d583115151e7d1ebe953e7def
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,64 @@ 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 - .

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

@@ -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,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

@@ -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,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

@@ -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

@@ -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

@@ -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"`

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
}

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"`

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

@@ -17,7 +17,7 @@ import (
// ServerList contains the list of servers available to the SDK // ServerList contains the list of servers available to the SDK
var ServerList = []string{ var ServerList = []string{
// The full address of your Plex Server // The full address of your Plex Server
"{protocol}://{ip}:{port}", "https://10.10.10.47:32400",
} }
// HTTPClient provides an interface for suplying the SDK with a custom HTTP client // HTTPClient provides an interface for suplying the SDK with a custom HTTP client
@@ -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.0",
GenVersion: "2.545.4", GenVersion: "2.585.2",
UserAgent: "speakeasy-sdk/go 0.19.2 2.545.4 0.0.3 github.com/LukeHagar/plexgo", UserAgent: "speakeasy-sdk/go 0.21.0 2.585.2 0.0.3 github.com/LukeHagar/plexgo",
ServerDefaults: []map[string]string{ ServerDefaults: []map[string]string{
{ {
"protocol": "https", "protocol": "https",