Compare commits

...

8 Commits

Author SHA1 Message Date
speakeasybot
8c4caee48d ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.555.3 2025-06-05 00:12:09 +00:00
speakeasybot
d9f461ec33 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.542.3 2025-05-06 00:11:47 +00:00
speakeasybot
9b882120dd ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.542.0 2025-05-02 00:11:38 +00:00
speakeasybot
673a771f04 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.535.1 2025-04-19 17:13:50 +00:00
speakeasybot
216a94fe7d ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.535.1 2025-04-18 23:01:17 +00:00
speakeasybot
88d690ffc2 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.531.4 2025-04-15 00:11:29 +00:00
speakeasybot
48a739d923 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.529.1 2025-04-07 00:11:42 +00:00
speakeasybot
8b50020e1e ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.528.1 2025-04-03 21:57:04 +00:00
202 changed files with 7299 additions and 5124 deletions

3
.gitignore vendored
View File

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

File diff suppressed because one or more lines are too long

View File

@@ -4,6 +4,7 @@ generation:
maintainOpenAPIOrder: true maintainOpenAPIOrder: true
usageSnippets: usageSnippets:
optionalPropertyRendering: withExample optionalPropertyRendering: withExample
sdkInitStyle: constructor
useClassNamesForArrayFields: true useClassNamesForArrayFields: true
fixes: fixes:
nameResolutionDec2023: true nameResolutionDec2023: true
@@ -11,11 +12,12 @@ generation:
parameterOrderingFeb2024: true parameterOrderingFeb2024: true
requestResponseComponentNamesFeb2024: true requestResponseComponentNamesFeb2024: true
securityFeb2025: false securityFeb2025: false
sharedErrorComponentsApr2025: false
auth: auth:
oAuth2ClientCredentialsEnabled: true oAuth2ClientCredentialsEnabled: true
oAuth2PasswordEnabled: false oAuth2PasswordEnabled: false
go: go:
version: 0.19.3 version: 0.22.0
additionalDependencies: {} additionalDependencies: {}
allowUnknownFieldsInWeakUnions: false allowUnknownFieldsInWeakUnions: false
clientServerStatusCodesAsErrors: true clientServerStatusCodesAsErrors: true

View File

@@ -1,4 +1,4 @@
speakeasyVersion: 1.526.6 speakeasyVersion: 1.555.3
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:cffb18feaa0523b300655a6f0073caad99133b143f5a420fddbb1e1efe47bcaf sourceRevisionDigest: sha256:78d07ad78ff60d0e9918696208d8c68a562e170d4e9c431797c02995fb8816d0
sourceBlobDigest: sha256:1737023e29cd9cf36c07ccd8c8c48c47e14f47ce22b4d6ba9ee241afbbd8f351 sourceBlobDigest: sha256:d38dd2a36c1b2fd73409267f7b30c2d5d45d709616141803ea01db424ec68ae4
tags: tags:
- latest - latest
- speakeasy-sdk-regen-1743442207 - speakeasy-sdk-regen-1749082259
targets: targets:
plexgo: plexgo:
source: plexapi source: plexapi
sourceNamespace: plexapi sourceNamespace: plexapi
sourceRevisionDigest: sha256:cffb18feaa0523b300655a6f0073caad99133b143f5a420fddbb1e1efe47bcaf sourceRevisionDigest: sha256:78d07ad78ff60d0e9918696208d8c68a562e170d4e9c431797c02995fb8816d0
sourceBlobDigest: sha256:1737023e29cd9cf36c07ccd8c8c48c47e14f47ce22b4d6ba9ee241afbbd8f351 sourceBlobDigest: sha256:d38dd2a36c1b2fd73409267f7b30c2d5d45d709616141803ea01db424ec68ae4
codeSamplesNamespace: code-samples-go-plexgo codeSamplesNamespace: code-samples-go-plexgo
codeSamplesRevisionDigest: sha256:b83144bbe1d84087f2f495b945e4b14a898f0ccb54cd57e5036b79f4f0370344 codeSamplesRevisionDigest: sha256:92b1cc82ef36c033e0829db07006a9d1fd240244dd846ed236c51115a902001a
workflow: workflow:
workflowVersion: 1.0.0 workflowVersion: 1.0.0
speakeasyVersion: latest speakeasyVersion: latest

View File

@@ -142,7 +142,7 @@ func main() {
* [GetLibraryDetails](docs/sdks/library/README.md#getlibrarydetails) - Get Library Details * [GetLibraryDetails](docs/sdks/library/README.md#getlibrarydetails) - Get Library Details
* [DeleteLibrary](docs/sdks/library/README.md#deletelibrary) - Delete Library Section * [DeleteLibrary](docs/sdks/library/README.md#deletelibrary) - Delete Library Section
* [GetLibraryItems](docs/sdks/library/README.md#getlibraryitems) - Get Library Items * [GetLibraryItems](docs/sdks/library/README.md#getlibraryitems) - Get Library Items
* [GetAllMediaLibrary](docs/sdks/library/README.md#getallmedialibrary) - Get all media of library * [GetLibrarySectionsAll](docs/sdks/library/README.md#getlibrarysectionsall) - Get Library section media by tag ALL
* [GetRefreshLibraryMetadata](docs/sdks/library/README.md#getrefreshlibrarymetadata) - Refresh Metadata Of The Library * [GetRefreshLibraryMetadata](docs/sdks/library/README.md#getrefreshlibrarymetadata) - Refresh Metadata Of The Library
* [GetSearchLibrary](docs/sdks/library/README.md#getsearchlibrary) - Search Library * [GetSearchLibrary](docs/sdks/library/README.md#getsearchlibrary) - Search Library
* [GetGenresLibrary](docs/sdks/library/README.md#getgenreslibrary) - Get Genres of library media * [GetGenresLibrary](docs/sdks/library/README.md#getgenreslibrary) - Get Genres of library media
@@ -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
@@ -419,8 +423,8 @@ func main() {
s := plexgo.New( s := plexgo.New(
plexgo.WithProtocol("https"), plexgo.WithProtocol("https"),
plexgo.WithIP("e0c3:bcc0:6bac:dccc:c4ec:34b1:ca98:4cb9"), plexgo.WithIP("4982:bc2a:b4f8:efb5:2394:5bc3:ab4f:0e6d"),
plexgo.WithPort("40311"), plexgo.WithPort("44765"),
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"), plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
) )

View File

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

View File

@@ -6,6 +6,7 @@ import (
"bytes" "bytes"
"context" "context"
"fmt" "fmt"
"github.com/LukeHagar/plexgo/internal/config"
"github.com/LukeHagar/plexgo/internal/hooks" "github.com/LukeHagar/plexgo/internal/hooks"
"github.com/LukeHagar/plexgo/internal/utils" "github.com/LukeHagar/plexgo/internal/utils"
"github.com/LukeHagar/plexgo/models/operations" "github.com/LukeHagar/plexgo/models/operations"
@@ -23,12 +24,16 @@ import (
// - They may contain a `Context` object with attributes which associate the activity with various specific entities (items, libraries, etc.) // - They may contain a `Context` object with attributes which associate the activity with various specific entities (items, libraries, etc.)
// - The may contain a `Response` object which attributes which represent the result of the asynchronous operation. // - The may contain a `Response` object which attributes which represent the result of the asynchronous operation.
type Activities struct { type Activities struct {
sdkConfiguration sdkConfiguration rootSDK *PlexAPI
sdkConfiguration config.SDKConfiguration
hooks *hooks.Hooks
} }
func newActivities(sdkConfig sdkConfiguration) *Activities { func newActivities(rootSDK *PlexAPI, sdkConfig config.SDKConfiguration, hooks *hooks.Hooks) *Activities {
return &Activities{ return &Activities{
rootSDK: rootSDK,
sdkConfiguration: sdkConfig, sdkConfiguration: sdkConfig,
hooks: hooks,
} }
} }
@@ -59,11 +64,13 @@ func (s *Activities) GetServerActivities(ctx context.Context, opts ...operations
} }
hookCtx := hooks.HookContext{ hookCtx := hooks.HookContext{
BaseURL: baseURL, SDK: s.rootSDK,
Context: ctx, SDKConfiguration: s.sdkConfiguration,
OperationID: "getServerActivities", BaseURL: baseURL,
OAuth2Scopes: []string{}, Context: ctx,
SecuritySource: s.sdkConfiguration.Security, OperationID: "getServerActivities",
OAuth2Scopes: []string{},
SecuritySource: s.sdkConfiguration.Security,
} }
timeout := o.Timeout timeout := o.Timeout
@@ -112,15 +119,17 @@ func (s *Activities) GetServerActivities(ctx context.Context, opts ...operations
"504", "504",
}, },
}, func() (*http.Response, error) { }, func() (*http.Response, error) {
if req.Body != nil { if req.Body != nil && req.Body != http.NoBody && req.GetBody != nil {
copyBody, err := req.GetBody() copyBody, err := req.GetBody()
if err != nil { if err != nil {
return nil, err return nil, err
} }
req.Body = copyBody req.Body = copyBody
} }
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
if err != nil { if err != nil {
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) { if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
return nil, err return nil, err
@@ -137,7 +146,7 @@ func (s *Activities) GetServerActivities(ctx context.Context, opts ...operations
err = fmt.Errorf("error sending request: no response") err = fmt.Errorf("error sending request: no response")
} }
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
} }
return httpRes, err return httpRes, err
}) })
@@ -145,13 +154,13 @@ func (s *Activities) GetServerActivities(ctx context.Context, opts ...operations
if err != nil { if err != nil {
return nil, err return nil, err
} else { } else {
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
if err != nil { if err != nil {
return nil, err return nil, err
} }
} }
} else { } else {
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -164,17 +173,17 @@ func (s *Activities) GetServerActivities(ctx context.Context, opts ...operations
err = fmt.Errorf("error sending request: no response") err = fmt.Errorf("error sending request: no response")
} }
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
return nil, err return nil, err
} else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) { } else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) {
_httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) _httpRes, err := s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
if err != nil { if err != nil {
return nil, err return nil, err
} else if _httpRes != nil { } else if _httpRes != nil {
httpRes = _httpRes httpRes = _httpRes
} }
} else { } else {
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -308,11 +317,13 @@ func (s *Activities) CancelServerActivities(ctx context.Context, activityUUID st
} }
hookCtx := hooks.HookContext{ hookCtx := hooks.HookContext{
BaseURL: baseURL, SDK: s.rootSDK,
Context: ctx, SDKConfiguration: s.sdkConfiguration,
OperationID: "cancelServerActivities", BaseURL: baseURL,
OAuth2Scopes: []string{}, Context: ctx,
SecuritySource: s.sdkConfiguration.Security, OperationID: "cancelServerActivities",
OAuth2Scopes: []string{},
SecuritySource: s.sdkConfiguration.Security,
} }
timeout := o.Timeout timeout := o.Timeout
@@ -361,15 +372,17 @@ func (s *Activities) CancelServerActivities(ctx context.Context, activityUUID st
"504", "504",
}, },
}, func() (*http.Response, error) { }, func() (*http.Response, error) {
if req.Body != nil { if req.Body != nil && req.Body != http.NoBody && req.GetBody != nil {
copyBody, err := req.GetBody() copyBody, err := req.GetBody()
if err != nil { if err != nil {
return nil, err return nil, err
} }
req.Body = copyBody req.Body = copyBody
} }
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
if err != nil { if err != nil {
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) { if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
return nil, err return nil, err
@@ -386,7 +399,7 @@ func (s *Activities) CancelServerActivities(ctx context.Context, activityUUID st
err = fmt.Errorf("error sending request: no response") err = fmt.Errorf("error sending request: no response")
} }
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
} }
return httpRes, err return httpRes, err
}) })
@@ -394,13 +407,13 @@ func (s *Activities) CancelServerActivities(ctx context.Context, activityUUID st
if err != nil { if err != nil {
return nil, err return nil, err
} else { } else {
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
if err != nil { if err != nil {
return nil, err return nil, err
} }
} }
} else { } else {
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -413,17 +426,17 @@ func (s *Activities) CancelServerActivities(ctx context.Context, activityUUID st
err = fmt.Errorf("error sending request: no response") err = fmt.Errorf("error sending request: no response")
} }
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
return nil, err return nil, err
} else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) { } else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) {
_httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) _httpRes, err := s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
if err != nil { if err != nil {
return nil, err return nil, err
} else if _httpRes != nil { } else if _httpRes != nil {
httpRes = _httpRes httpRes = _httpRes
} }
} else { } else {
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@@ -6,6 +6,7 @@ import (
"bytes" "bytes"
"context" "context"
"fmt" "fmt"
"github.com/LukeHagar/plexgo/internal/config"
"github.com/LukeHagar/plexgo/internal/hooks" "github.com/LukeHagar/plexgo/internal/hooks"
"github.com/LukeHagar/plexgo/internal/utils" "github.com/LukeHagar/plexgo/internal/utils"
"github.com/LukeHagar/plexgo/models/operations" "github.com/LukeHagar/plexgo/models/operations"
@@ -17,12 +18,16 @@ import (
// Authentication - API Calls regarding authentication for Plex Media Server // Authentication - API Calls regarding authentication for Plex Media Server
type Authentication struct { type Authentication struct {
sdkConfiguration sdkConfiguration rootSDK *PlexAPI
sdkConfiguration config.SDKConfiguration
hooks *hooks.Hooks
} }
func newAuthentication(sdkConfig sdkConfiguration) *Authentication { func newAuthentication(rootSDK *PlexAPI, sdkConfig config.SDKConfiguration, hooks *hooks.Hooks) *Authentication {
return &Authentication{ return &Authentication{
rootSDK: rootSDK,
sdkConfiguration: sdkConfig, sdkConfiguration: sdkConfig,
hooks: hooks,
} }
} }
@@ -58,11 +63,13 @@ func (s *Authentication) GetTransientToken(ctx context.Context, type_ operations
} }
hookCtx := hooks.HookContext{ hookCtx := hooks.HookContext{
BaseURL: baseURL, SDK: s.rootSDK,
Context: ctx, SDKConfiguration: s.sdkConfiguration,
OperationID: "getTransientToken", BaseURL: baseURL,
OAuth2Scopes: []string{}, Context: ctx,
SecuritySource: s.sdkConfiguration.Security, OperationID: "getTransientToken",
OAuth2Scopes: []string{},
SecuritySource: s.sdkConfiguration.Security,
} }
timeout := o.Timeout timeout := o.Timeout
@@ -115,15 +122,17 @@ func (s *Authentication) GetTransientToken(ctx context.Context, type_ operations
"504", "504",
}, },
}, func() (*http.Response, error) { }, func() (*http.Response, error) {
if req.Body != nil { if req.Body != nil && req.Body != http.NoBody && req.GetBody != nil {
copyBody, err := req.GetBody() copyBody, err := req.GetBody()
if err != nil { if err != nil {
return nil, err return nil, err
} }
req.Body = copyBody req.Body = copyBody
} }
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
if err != nil { if err != nil {
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) { if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
return nil, err return nil, err
@@ -140,7 +149,7 @@ func (s *Authentication) GetTransientToken(ctx context.Context, type_ operations
err = fmt.Errorf("error sending request: no response") err = fmt.Errorf("error sending request: no response")
} }
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
} }
return httpRes, err return httpRes, err
}) })
@@ -148,13 +157,13 @@ func (s *Authentication) GetTransientToken(ctx context.Context, type_ operations
if err != nil { if err != nil {
return nil, err return nil, err
} else { } else {
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
if err != nil { if err != nil {
return nil, err return nil, err
} }
} }
} else { } else {
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -167,17 +176,17 @@ func (s *Authentication) GetTransientToken(ctx context.Context, type_ operations
err = fmt.Errorf("error sending request: no response") err = fmt.Errorf("error sending request: no response")
} }
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
return nil, err return nil, err
} else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) { } else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) {
_httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) _httpRes, err := s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
if err != nil { if err != nil {
return nil, err return nil, err
} else if _httpRes != nil { } else if _httpRes != nil {
httpRes = _httpRes httpRes = _httpRes
} }
} else { } else {
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -292,11 +301,13 @@ func (s *Authentication) GetSourceConnectionInformation(ctx context.Context, sou
} }
hookCtx := hooks.HookContext{ hookCtx := hooks.HookContext{
BaseURL: baseURL, SDK: s.rootSDK,
Context: ctx, SDKConfiguration: s.sdkConfiguration,
OperationID: "getSourceConnectionInformation", BaseURL: baseURL,
OAuth2Scopes: []string{}, Context: ctx,
SecuritySource: s.sdkConfiguration.Security, OperationID: "getSourceConnectionInformation",
OAuth2Scopes: []string{},
SecuritySource: s.sdkConfiguration.Security,
} }
timeout := o.Timeout timeout := o.Timeout
@@ -349,15 +360,17 @@ func (s *Authentication) GetSourceConnectionInformation(ctx context.Context, sou
"504", "504",
}, },
}, func() (*http.Response, error) { }, func() (*http.Response, error) {
if req.Body != nil { if req.Body != nil && req.Body != http.NoBody && req.GetBody != nil {
copyBody, err := req.GetBody() copyBody, err := req.GetBody()
if err != nil { if err != nil {
return nil, err return nil, err
} }
req.Body = copyBody req.Body = copyBody
} }
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
if err != nil { if err != nil {
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) { if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
return nil, err return nil, err
@@ -374,7 +387,7 @@ func (s *Authentication) GetSourceConnectionInformation(ctx context.Context, sou
err = fmt.Errorf("error sending request: no response") err = fmt.Errorf("error sending request: no response")
} }
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
} }
return httpRes, err return httpRes, err
}) })
@@ -382,13 +395,13 @@ func (s *Authentication) GetSourceConnectionInformation(ctx context.Context, sou
if err != nil { if err != nil {
return nil, err return nil, err
} else { } else {
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
if err != nil { if err != nil {
return nil, err return nil, err
} }
} }
} else { } else {
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -401,17 +414,17 @@ func (s *Authentication) GetSourceConnectionInformation(ctx context.Context, sou
err = fmt.Errorf("error sending request: no response") err = fmt.Errorf("error sending request: no response")
} }
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
return nil, err return nil, err
} else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) { } else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) {
_httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) _httpRes, err := s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
if err != nil { if err != nil {
return nil, err return nil, err
} else if _httpRes != nil { } else if _httpRes != nil {
httpRes = _httpRes httpRes = _httpRes
} }
} else { } else {
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -520,11 +533,13 @@ func (s *Authentication) GetTokenDetails(ctx context.Context, opts ...operations
} }
hookCtx := hooks.HookContext{ hookCtx := hooks.HookContext{
BaseURL: baseURL, SDK: s.rootSDK,
Context: ctx, SDKConfiguration: s.sdkConfiguration,
OperationID: "getTokenDetails", BaseURL: baseURL,
OAuth2Scopes: []string{}, Context: ctx,
SecuritySource: s.sdkConfiguration.Security, OperationID: "getTokenDetails",
OAuth2Scopes: []string{},
SecuritySource: s.sdkConfiguration.Security,
} }
timeout := o.Timeout timeout := o.Timeout
@@ -573,15 +588,17 @@ func (s *Authentication) GetTokenDetails(ctx context.Context, opts ...operations
"504", "504",
}, },
}, func() (*http.Response, error) { }, func() (*http.Response, error) {
if req.Body != nil { if req.Body != nil && req.Body != http.NoBody && req.GetBody != nil {
copyBody, err := req.GetBody() copyBody, err := req.GetBody()
if err != nil { if err != nil {
return nil, err return nil, err
} }
req.Body = copyBody req.Body = copyBody
} }
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
if err != nil { if err != nil {
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) { if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
return nil, err return nil, err
@@ -598,7 +615,7 @@ func (s *Authentication) GetTokenDetails(ctx context.Context, opts ...operations
err = fmt.Errorf("error sending request: no response") err = fmt.Errorf("error sending request: no response")
} }
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
} }
return httpRes, err return httpRes, err
}) })
@@ -606,13 +623,13 @@ func (s *Authentication) GetTokenDetails(ctx context.Context, opts ...operations
if err != nil { if err != nil {
return nil, err return nil, err
} else { } else {
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
if err != nil { if err != nil {
return nil, err return nil, err
} }
} }
} else { } else {
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -625,17 +642,17 @@ func (s *Authentication) GetTokenDetails(ctx context.Context, opts ...operations
err = fmt.Errorf("error sending request: no response") err = fmt.Errorf("error sending request: no response")
} }
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
return nil, err return nil, err
} else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) { } else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) {
_httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) _httpRes, err := s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
if err != nil { if err != nil {
return nil, err return nil, err
} else if _httpRes != nil { } else if _httpRes != nil {
httpRes = _httpRes httpRes = _httpRes
} }
} else { } else {
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -764,11 +781,13 @@ func (s *Authentication) PostUsersSignInData(ctx context.Context, request operat
} }
hookCtx := hooks.HookContext{ hookCtx := hooks.HookContext{
BaseURL: baseURL, SDK: s.rootSDK,
Context: ctx, SDKConfiguration: s.sdkConfiguration,
OperationID: "post-users-sign-in-data", BaseURL: baseURL,
OAuth2Scopes: []string{}, Context: ctx,
SecuritySource: nil, OperationID: "post-users-sign-in-data",
OAuth2Scopes: []string{},
SecuritySource: nil,
} }
bodyReader, reqContentType, err := utils.SerializeRequestBody(ctx, request, false, true, "RequestBody", "form", `request:"mediaType=application/x-www-form-urlencoded"`) bodyReader, reqContentType, err := utils.SerializeRequestBody(ctx, request, false, true, "RequestBody", "form", `request:"mediaType=application/x-www-form-urlencoded"`)
if err != nil { if err != nil {
@@ -822,15 +841,17 @@ func (s *Authentication) PostUsersSignInData(ctx context.Context, request operat
"504", "504",
}, },
}, func() (*http.Response, error) { }, func() (*http.Response, error) {
if req.Body != nil { if req.Body != nil && req.Body != http.NoBody && req.GetBody != nil {
copyBody, err := req.GetBody() copyBody, err := req.GetBody()
if err != nil { if err != nil {
return nil, err return nil, err
} }
req.Body = copyBody req.Body = copyBody
} }
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
if err != nil { if err != nil {
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) { if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
return nil, err return nil, err
@@ -847,7 +868,7 @@ func (s *Authentication) PostUsersSignInData(ctx context.Context, request operat
err = fmt.Errorf("error sending request: no response") err = fmt.Errorf("error sending request: no response")
} }
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
} }
return httpRes, err return httpRes, err
}) })
@@ -855,13 +876,13 @@ func (s *Authentication) PostUsersSignInData(ctx context.Context, request operat
if err != nil { if err != nil {
return nil, err return nil, err
} else { } else {
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
if err != nil { if err != nil {
return nil, err return nil, err
} }
} }
} else { } else {
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -874,17 +895,17 @@ func (s *Authentication) PostUsersSignInData(ctx context.Context, request operat
err = fmt.Errorf("error sending request: no response") err = fmt.Errorf("error sending request: no response")
} }
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
return nil, err return nil, err
} else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) { } else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) {
_httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) _httpRes, err := s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
if err != nil { if err != nil {
return nil, err return nil, err
} else if _httpRes != nil { } else if _httpRes != nil {
httpRes = _httpRes httpRes = _httpRes
} }
} else { } else {
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
if err != nil { if err != nil {
return nil, err return nil, err
} }

159
butler.go
View File

@@ -6,6 +6,7 @@ import (
"bytes" "bytes"
"context" "context"
"fmt" "fmt"
"github.com/LukeHagar/plexgo/internal/config"
"github.com/LukeHagar/plexgo/internal/hooks" "github.com/LukeHagar/plexgo/internal/hooks"
"github.com/LukeHagar/plexgo/internal/utils" "github.com/LukeHagar/plexgo/internal/utils"
"github.com/LukeHagar/plexgo/models/operations" "github.com/LukeHagar/plexgo/models/operations"
@@ -17,12 +18,16 @@ import (
// Butler is the task manager of the Plex Media Server Ecosystem. // Butler is the task manager of the Plex Media Server Ecosystem.
type Butler struct { type Butler struct {
sdkConfiguration sdkConfiguration rootSDK *PlexAPI
sdkConfiguration config.SDKConfiguration
hooks *hooks.Hooks
} }
func newButler(sdkConfig sdkConfiguration) *Butler { func newButler(rootSDK *PlexAPI, sdkConfig config.SDKConfiguration, hooks *hooks.Hooks) *Butler {
return &Butler{ return &Butler{
rootSDK: rootSDK,
sdkConfiguration: sdkConfig, sdkConfiguration: sdkConfig,
hooks: hooks,
} }
} }
@@ -53,11 +58,13 @@ func (s *Butler) GetButlerTasks(ctx context.Context, opts ...operations.Option)
} }
hookCtx := hooks.HookContext{ hookCtx := hooks.HookContext{
BaseURL: baseURL, SDK: s.rootSDK,
Context: ctx, SDKConfiguration: s.sdkConfiguration,
OperationID: "getButlerTasks", BaseURL: baseURL,
OAuth2Scopes: []string{}, Context: ctx,
SecuritySource: s.sdkConfiguration.Security, OperationID: "getButlerTasks",
OAuth2Scopes: []string{},
SecuritySource: s.sdkConfiguration.Security,
} }
timeout := o.Timeout timeout := o.Timeout
@@ -106,15 +113,17 @@ func (s *Butler) GetButlerTasks(ctx context.Context, opts ...operations.Option)
"504", "504",
}, },
}, func() (*http.Response, error) { }, func() (*http.Response, error) {
if req.Body != nil { if req.Body != nil && req.Body != http.NoBody && req.GetBody != nil {
copyBody, err := req.GetBody() copyBody, err := req.GetBody()
if err != nil { if err != nil {
return nil, err return nil, err
} }
req.Body = copyBody req.Body = copyBody
} }
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
if err != nil { if err != nil {
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) { if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
return nil, err return nil, err
@@ -131,7 +140,7 @@ func (s *Butler) GetButlerTasks(ctx context.Context, opts ...operations.Option)
err = fmt.Errorf("error sending request: no response") err = fmt.Errorf("error sending request: no response")
} }
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
} }
return httpRes, err return httpRes, err
}) })
@@ -139,13 +148,13 @@ func (s *Butler) GetButlerTasks(ctx context.Context, opts ...operations.Option)
if err != nil { if err != nil {
return nil, err return nil, err
} else { } else {
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
if err != nil { if err != nil {
return nil, err return nil, err
} }
} }
} else { } else {
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -158,17 +167,17 @@ func (s *Butler) GetButlerTasks(ctx context.Context, opts ...operations.Option)
err = fmt.Errorf("error sending request: no response") err = fmt.Errorf("error sending request: no response")
} }
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
return nil, err return nil, err
} else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) { } else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) {
_httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) _httpRes, err := s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
if err != nil { if err != nil {
return nil, err return nil, err
} else if _httpRes != nil { } else if _httpRes != nil {
httpRes = _httpRes httpRes = _httpRes
} }
} else { } else {
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -302,11 +311,13 @@ func (s *Butler) StartAllTasks(ctx context.Context, opts ...operations.Option) (
} }
hookCtx := hooks.HookContext{ hookCtx := hooks.HookContext{
BaseURL: baseURL, SDK: s.rootSDK,
Context: ctx, SDKConfiguration: s.sdkConfiguration,
OperationID: "startAllTasks", BaseURL: baseURL,
OAuth2Scopes: []string{}, Context: ctx,
SecuritySource: s.sdkConfiguration.Security, OperationID: "startAllTasks",
OAuth2Scopes: []string{},
SecuritySource: s.sdkConfiguration.Security,
} }
timeout := o.Timeout timeout := o.Timeout
@@ -355,15 +366,17 @@ func (s *Butler) StartAllTasks(ctx context.Context, opts ...operations.Option) (
"504", "504",
}, },
}, func() (*http.Response, error) { }, func() (*http.Response, error) {
if req.Body != nil { if req.Body != nil && req.Body != http.NoBody && req.GetBody != nil {
copyBody, err := req.GetBody() copyBody, err := req.GetBody()
if err != nil { if err != nil {
return nil, err return nil, err
} }
req.Body = copyBody req.Body = copyBody
} }
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
if err != nil { if err != nil {
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) { if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
return nil, err return nil, err
@@ -380,7 +393,7 @@ func (s *Butler) StartAllTasks(ctx context.Context, opts ...operations.Option) (
err = fmt.Errorf("error sending request: no response") err = fmt.Errorf("error sending request: no response")
} }
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
} }
return httpRes, err return httpRes, err
}) })
@@ -388,13 +401,13 @@ func (s *Butler) StartAllTasks(ctx context.Context, opts ...operations.Option) (
if err != nil { if err != nil {
return nil, err return nil, err
} else { } else {
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
if err != nil { if err != nil {
return nil, err return nil, err
} }
} }
} else { } else {
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -407,17 +420,17 @@ func (s *Butler) StartAllTasks(ctx context.Context, opts ...operations.Option) (
err = fmt.Errorf("error sending request: no response") err = fmt.Errorf("error sending request: no response")
} }
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
return nil, err return nil, err
} else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) { } else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) {
_httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) _httpRes, err := s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
if err != nil { if err != nil {
return nil, err return nil, err
} else if _httpRes != nil { } else if _httpRes != nil {
httpRes = _httpRes httpRes = _httpRes
} }
} else { } else {
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -527,11 +540,13 @@ func (s *Butler) StopAllTasks(ctx context.Context, opts ...operations.Option) (*
} }
hookCtx := hooks.HookContext{ hookCtx := hooks.HookContext{
BaseURL: baseURL, SDK: s.rootSDK,
Context: ctx, SDKConfiguration: s.sdkConfiguration,
OperationID: "stopAllTasks", BaseURL: baseURL,
OAuth2Scopes: []string{}, Context: ctx,
SecuritySource: s.sdkConfiguration.Security, OperationID: "stopAllTasks",
OAuth2Scopes: []string{},
SecuritySource: s.sdkConfiguration.Security,
} }
timeout := o.Timeout timeout := o.Timeout
@@ -580,15 +595,17 @@ func (s *Butler) StopAllTasks(ctx context.Context, opts ...operations.Option) (*
"504", "504",
}, },
}, func() (*http.Response, error) { }, func() (*http.Response, error) {
if req.Body != nil { if req.Body != nil && req.Body != http.NoBody && req.GetBody != nil {
copyBody, err := req.GetBody() copyBody, err := req.GetBody()
if err != nil { if err != nil {
return nil, err return nil, err
} }
req.Body = copyBody req.Body = copyBody
} }
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
if err != nil { if err != nil {
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) { if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
return nil, err return nil, err
@@ -605,7 +622,7 @@ func (s *Butler) StopAllTasks(ctx context.Context, opts ...operations.Option) (*
err = fmt.Errorf("error sending request: no response") err = fmt.Errorf("error sending request: no response")
} }
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
} }
return httpRes, err return httpRes, err
}) })
@@ -613,13 +630,13 @@ func (s *Butler) StopAllTasks(ctx context.Context, opts ...operations.Option) (*
if err != nil { if err != nil {
return nil, err return nil, err
} else { } else {
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
if err != nil { if err != nil {
return nil, err return nil, err
} }
} }
} else { } else {
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -632,17 +649,17 @@ func (s *Butler) StopAllTasks(ctx context.Context, opts ...operations.Option) (*
err = fmt.Errorf("error sending request: no response") err = fmt.Errorf("error sending request: no response")
} }
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
return nil, err return nil, err
} else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) { } else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) {
_httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) _httpRes, err := s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
if err != nil { if err != nil {
return nil, err return nil, err
} else if _httpRes != nil { } else if _httpRes != nil {
httpRes = _httpRes httpRes = _httpRes
} }
} else { } else {
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -760,11 +777,13 @@ func (s *Butler) StartTask(ctx context.Context, taskName operations.TaskName, op
} }
hookCtx := hooks.HookContext{ hookCtx := hooks.HookContext{
BaseURL: baseURL, SDK: s.rootSDK,
Context: ctx, SDKConfiguration: s.sdkConfiguration,
OperationID: "startTask", BaseURL: baseURL,
OAuth2Scopes: []string{}, Context: ctx,
SecuritySource: s.sdkConfiguration.Security, OperationID: "startTask",
OAuth2Scopes: []string{},
SecuritySource: s.sdkConfiguration.Security,
} }
timeout := o.Timeout timeout := o.Timeout
@@ -813,15 +832,17 @@ func (s *Butler) StartTask(ctx context.Context, taskName operations.TaskName, op
"504", "504",
}, },
}, func() (*http.Response, error) { }, func() (*http.Response, error) {
if req.Body != nil { if req.Body != nil && req.Body != http.NoBody && req.GetBody != nil {
copyBody, err := req.GetBody() copyBody, err := req.GetBody()
if err != nil { if err != nil {
return nil, err return nil, err
} }
req.Body = copyBody req.Body = copyBody
} }
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
if err != nil { if err != nil {
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) { if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
return nil, err return nil, err
@@ -838,7 +859,7 @@ func (s *Butler) StartTask(ctx context.Context, taskName operations.TaskName, op
err = fmt.Errorf("error sending request: no response") err = fmt.Errorf("error sending request: no response")
} }
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
} }
return httpRes, err return httpRes, err
}) })
@@ -846,13 +867,13 @@ func (s *Butler) StartTask(ctx context.Context, taskName operations.TaskName, op
if err != nil { if err != nil {
return nil, err return nil, err
} else { } else {
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
if err != nil { if err != nil {
return nil, err return nil, err
} }
} }
} else { } else {
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -865,17 +886,17 @@ func (s *Butler) StartTask(ctx context.Context, taskName operations.TaskName, op
err = fmt.Errorf("error sending request: no response") err = fmt.Errorf("error sending request: no response")
} }
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
return nil, err return nil, err
} else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) { } else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) {
_httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) _httpRes, err := s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
if err != nil { if err != nil {
return nil, err return nil, err
} else if _httpRes != nil { } else if _httpRes != nil {
httpRes = _httpRes httpRes = _httpRes
} }
} else { } else {
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -991,11 +1012,13 @@ func (s *Butler) StopTask(ctx context.Context, taskName operations.PathParamTask
} }
hookCtx := hooks.HookContext{ hookCtx := hooks.HookContext{
BaseURL: baseURL, SDK: s.rootSDK,
Context: ctx, SDKConfiguration: s.sdkConfiguration,
OperationID: "stopTask", BaseURL: baseURL,
OAuth2Scopes: []string{}, Context: ctx,
SecuritySource: s.sdkConfiguration.Security, OperationID: "stopTask",
OAuth2Scopes: []string{},
SecuritySource: s.sdkConfiguration.Security,
} }
timeout := o.Timeout timeout := o.Timeout
@@ -1044,15 +1067,17 @@ func (s *Butler) StopTask(ctx context.Context, taskName operations.PathParamTask
"504", "504",
}, },
}, func() (*http.Response, error) { }, func() (*http.Response, error) {
if req.Body != nil { if req.Body != nil && req.Body != http.NoBody && req.GetBody != nil {
copyBody, err := req.GetBody() copyBody, err := req.GetBody()
if err != nil { if err != nil {
return nil, err return nil, err
} }
req.Body = copyBody req.Body = copyBody
} }
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
if err != nil { if err != nil {
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) { if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
return nil, err return nil, err
@@ -1069,7 +1094,7 @@ func (s *Butler) StopTask(ctx context.Context, taskName operations.PathParamTask
err = fmt.Errorf("error sending request: no response") err = fmt.Errorf("error sending request: no response")
} }
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
} }
return httpRes, err return httpRes, err
}) })
@@ -1077,13 +1102,13 @@ func (s *Butler) StopTask(ctx context.Context, taskName operations.PathParamTask
if err != nil { if err != nil {
return nil, err return nil, err
} else { } else {
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
if err != nil { if err != nil {
return nil, err return nil, err
} }
} }
} else { } else {
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) req, err = s.hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -1096,17 +1121,17 @@ func (s *Butler) StopTask(ctx context.Context, taskName operations.PathParamTask
err = fmt.Errorf("error sending request: no response") err = fmt.Errorf("error sending request: no response")
} }
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) _, err = s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
return nil, err return nil, err
} else if utils.MatchStatusCodes([]string{"400", "401", "404", "4XX", "5XX"}, httpRes.StatusCode) { } else if utils.MatchStatusCodes([]string{"400", "401", "404", "4XX", "5XX"}, httpRes.StatusCode) {
_httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) _httpRes, err := s.hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
if err != nil { if err != nil {
return nil, err return nil, err
} else if _httpRes != nil { } else if _httpRes != nil {
httpRes = _httpRes httpRes = _httpRes
} }
} else { } else {
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) httpRes, err = s.hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@@ -356,7 +356,7 @@ actions:
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"), plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
) )
res, err := s.Butler.StopTask(ctx, operations.PathParamTaskNameBackupDatabase) res, err := s.Butler.StopTask(ctx, operations.PathParamTaskNameCleanOldCacheFiles)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
@@ -386,7 +386,7 @@ actions:
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"), plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
) )
res, err := s.Butler.StartTask(ctx, operations.TaskNameCleanOldBundles) res, err := s.Butler.StartTask(ctx, operations.TaskNameRefreshPeriodicMetadata)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
@@ -618,9 +618,10 @@ actions:
) )
res, err := s.Hubs.GetRecentlyAdded(ctx, operations.GetRecentlyAddedRequest{ res, err := s.Hubs.GetRecentlyAdded(ctx, operations.GetRecentlyAddedRequest{
ContentDirectoryID: 470161, ContentDirectoryID: 39486,
SectionID: plexgo.Int64(2), SectionID: plexgo.Int64(2),
Type: operations.TypeTvShow, Type: operations.TypeTvShow,
IncludeMeta: operations.IncludeMetaEnable.ToPointer(),
}) })
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
@@ -650,7 +651,7 @@ actions:
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"), plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
) )
res, err := s.Search.PerformSearch(ctx, "dylan", nil, nil) res, err := s.Search.PerformSearch(ctx, "arnold", nil, plexgo.Float64(5))
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
@@ -679,7 +680,7 @@ actions:
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"), plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
) )
res, err := s.Search.PerformVoiceSearch(ctx, "dead+poop", nil, nil) res, err := s.Search.PerformVoiceSearch(ctx, "dead+poop", nil, plexgo.Float64(5))
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
@@ -708,7 +709,7 @@ actions:
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"), plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
) )
res, err := s.Hubs.GetLibraryHubs(ctx, 6728.76, nil, nil) res, err := s.Hubs.GetLibraryHubs(ctx, 492.74, nil, nil)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
@@ -765,7 +766,7 @@ actions:
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"), plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
) )
res, err := s.Library.GetTopWatchedContent(ctx, operations.GetTopWatchedContentQueryParamTypeTvShow, plexgo.Int64(1)) res, err := s.Library.GetTopWatchedContent(ctx, operations.GetTopWatchedContentQueryParamTypeTvShow, operations.GetTopWatchedContentQueryParamIncludeGuidsEnable.ToPointer())
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
@@ -825,7 +826,7 @@ actions:
) )
res, err := s.Library.GetMediaMetaData(ctx, operations.GetMediaMetaDataRequest{ res, err := s.Library.GetMediaMetaData(ctx, operations.GetMediaMetaDataRequest{
RatingKey: 9518, RatingKey: "21119,21617",
IncludeConcerts: plexgo.Bool(true), IncludeConcerts: plexgo.Bool(true),
IncludeExtras: plexgo.Bool(true), IncludeExtras: plexgo.Bool(true),
IncludeOnDeck: plexgo.Bool(true), IncludeOnDeck: plexgo.Bool(true),
@@ -847,6 +848,64 @@ 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:
@@ -905,7 +964,7 @@ actions:
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"), plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
) )
res, err := s.Library.GetMetadataChildren(ctx, 1539.14, plexgo.String("Stream")) res, err := s.Library.GetMetadataChildren(ctx, 2403.67, plexgo.String("Stream"))
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
@@ -913,6 +972,64 @@ 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:
@@ -990,6 +1107,7 @@ actions:
}, },
SectionID: plexgo.Int64(2), SectionID: plexgo.Int64(2),
Type: operations.QueryParamTypeTvShow, Type: operations.QueryParamTypeTvShow,
IncludeMeta: operations.QueryParamIncludeMetaEnable.ToPointer(),
}) })
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
@@ -1026,6 +1144,8 @@ actions:
SearchTypes: []operations.SearchTypes{ SearchTypes: []operations.SearchTypes{
operations.SearchTypesPeople, operations.SearchTypesPeople,
}, },
IncludeCollections: operations.GetSearchAllLibrariesQueryParamIncludeCollectionsEnable.ToPointer(),
IncludeExternalMedia: operations.GetSearchAllLibrariesQueryParamIncludeExternalMediaEnable.ToPointer(),
}) })
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
@@ -1086,7 +1206,7 @@ actions:
) )
res, err := s.Watchlist.GetWatchList(ctx, operations.GetWatchListRequest{ res, err := s.Watchlist.GetWatchList(ctx, operations.GetWatchListRequest{
Filter: operations.FilterAvailable, Filter: operations.FilterReleased,
XPlexToken: "CV5xoxjTpFKUzBTShsaf", XPlexToken: "CV5xoxjTpFKUzBTShsaf",
}) })
if err != nil { if err != nil {
@@ -1136,6 +1256,7 @@ actions:
import( import(
"context" "context"
"github.com/LukeHagar/plexgo" "github.com/LukeHagar/plexgo"
"github.com/LukeHagar/plexgo/models/operations"
"log" "log"
) )
@@ -1146,7 +1267,7 @@ actions:
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"), plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
) )
res, err := s.Library.GetLibraryDetails(ctx, 9518, nil) res, err := s.Library.GetLibraryDetails(ctx, 9518, operations.IncludeDetailsZero.ToPointer())
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
@@ -1206,9 +1327,14 @@ actions:
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"), plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
) )
res, err := s.Library.GetAllMediaLibrary(ctx, operations.GetAllMediaLibraryRequest{ res, err := s.Library.GetLibrarySectionsAll(ctx, operations.GetLibrarySectionsAllRequest{
SectionKey: 9518, SectionKey: 9518,
Type: operations.GetAllMediaLibraryQueryParamTypeTvShow, Type: operations.GetLibrarySectionsAllQueryParamTypeTvShow,
IncludeMeta: operations.GetLibrarySectionsAllQueryParamIncludeMetaEnable.ToPointer(),
IncludeGuids: operations.QueryParamIncludeGuidsEnable.ToPointer(),
IncludeAdvanced: operations.IncludeAdvancedEnable.ToPointer(),
IncludeCollections: operations.QueryParamIncludeCollectionsEnable.ToPointer(),
IncludeExternalMedia: operations.QueryParamIncludeExternalMediaEnable.ToPointer(),
}) })
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
@@ -1299,7 +1425,7 @@ actions:
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"), plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
) )
res, err := s.Library.GetRefreshLibraryMetadata(ctx, 9518, operations.ForceOne.ToPointer()) res, err := s.Library.GetRefreshLibraryMetadata(ctx, 9518, operations.ForceZero.ToPointer())
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
@@ -1360,9 +1486,11 @@ actions:
) )
res, err := s.Library.GetLibraryItems(ctx, operations.GetLibraryItemsRequest{ res, err := s.Library.GetLibraryItems(ctx, operations.GetLibraryItemsRequest{
Tag: operations.TagEdition, Tag: operations.TagNewest,
IncludeGuids: operations.IncludeGuidsEnable.ToPointer(),
Type: operations.GetLibraryItemsQueryParamTypeTvShow, Type: operations.GetLibraryItemsQueryParamTypeTvShow,
SectionKey: 9518, SectionKey: 9518,
IncludeMeta: operations.GetLibraryItemsQueryParamIncludeMetaEnable.ToPointer(),
}) })
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
@@ -1544,10 +1672,9 @@ actions:
res, err := s.Server.GetResizedPhoto(ctx, operations.GetResizedPhotoRequest{ res, err := s.Server.GetResizedPhoto(ctx, operations.GetResizedPhotoRequest{
Width: 110, Width: 110,
Height: 165, Height: 165,
Opacity: 100,
Blur: 0, Blur: 0,
MinSize: operations.MinSizeOne, MinSize: operations.MinSizeZero,
Upscale: operations.UpscaleOne, Upscale: operations.UpscaleZero,
URL: "/library/metadata/49564/thumb/1654258204", URL: "/library/metadata/49564/thumb/1654258204",
}) })
if err != nil { if err != nil {
@@ -1612,7 +1739,7 @@ actions:
s := plexgo.New() s := plexgo.New()
res, err := s.Plex.GetTokenByPinID(ctx, operations.GetTokenByPinIDRequest{ res, err := s.Plex.GetTokenByPinID(ctx, operations.GetTokenByPinIDRequest{
PinID: 408895, PinID: 232248,
ClientID: "3381b62b-9ab7-4e37-827b-203e9809eb58", ClientID: "3381b62b-9ab7-4e37-827b-203e9809eb58",
ClientName: plexgo.String("Plex for Roku"), ClientName: plexgo.String("Plex for Roku"),
DeviceNickname: plexgo.String("Roku 3"), DeviceNickname: plexgo.String("Roku 3"),
@@ -1679,9 +1806,9 @@ actions:
res, err := s.Playlists.CreatePlaylist(ctx, operations.CreatePlaylistRequest{ res, err := s.Playlists.CreatePlaylist(ctx, operations.CreatePlaylistRequest{
Title: "<value>", Title: "<value>",
Type: operations.CreatePlaylistQueryParamTypePhoto, Type: operations.CreatePlaylistQueryParamTypeAudio,
Smart: operations.SmartOne, Smart: operations.SmartOne,
URI: "https://hoarse-testing.info/", URI: "https://short-term-disconnection.name/",
}) })
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
@@ -1712,7 +1839,7 @@ actions:
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"), plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
) )
res, err := s.Playlists.UploadPlaylist(ctx, "/home/barkley/playlist.m3u", operations.QueryParamForceZero, 1) res, err := s.Playlists.UploadPlaylist(ctx, "/home/barkley/playlist.m3u", operations.QueryParamForceOne, 1)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
@@ -1741,7 +1868,7 @@ actions:
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"), plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
) )
res, err := s.Playlists.DeletePlaylist(ctx, 216.22) res, err := s.Playlists.DeletePlaylist(ctx, 3432.93)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
@@ -1770,7 +1897,7 @@ actions:
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"), plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
) )
res, err := s.Playlists.GetPlaylist(ctx, 4109.48) res, err := s.Playlists.GetPlaylist(ctx, 8419.53)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
@@ -1799,7 +1926,7 @@ actions:
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"), plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
) )
res, err := s.Playlists.UpdatePlaylist(ctx, 3915, nil, nil) res, err := s.Playlists.UpdatePlaylist(ctx, 1579.66, nil, nil)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
@@ -1828,7 +1955,7 @@ actions:
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"), plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
) )
res, err := s.Playlists.ClearPlaylistContents(ctx, 1893.18) res, err := s.Playlists.ClearPlaylistContents(ctx, 4137.37)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
@@ -1858,7 +1985,7 @@ actions:
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"), plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
) )
res, err := s.Playlists.GetPlaylistContents(ctx, 5004.46, operations.GetPlaylistContentsQueryParamTypeTvShow) res, err := s.Playlists.GetPlaylistContents(ctx, 5535.42, operations.GetPlaylistContentsQueryParamTypeTvShow)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
@@ -1887,7 +2014,7 @@ actions:
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"), plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
) )
res, err := s.Playlists.AddPlaylistContents(ctx, 8502.01, "server://12345/com.plexapp.plugins.library/library/metadata/1", plexgo.Float64(123)) res, err := s.Playlists.AddPlaylistContents(ctx, 7013.44, "server://12345/com.plexapp.plugins.library/library/metadata/1", plexgo.Float64(123))
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
@@ -1906,6 +2033,7 @@ actions:
import( import(
"context" "context"
"github.com/LukeHagar/plexgo" "github.com/LukeHagar/plexgo"
"github.com/LukeHagar/plexgo/models/operations"
"log" "log"
) )
@@ -1916,7 +2044,7 @@ actions:
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"), plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
) )
res, err := s.Plex.GetServerResources(ctx, "3381b62b-9ab7-4e37-827b-203e9809eb58", nil, nil, nil) res, err := s.Plex.GetServerResources(ctx, "3381b62b-9ab7-4e37-827b-203e9809eb58", operations.IncludeHTTPSEnable.ToPointer(), operations.IncludeRelayEnable.ToPointer(), operations.IncludeIPv6Enable.ToPointer())
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
@@ -1974,7 +2102,7 @@ actions:
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"), plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
) )
res, err := s.Authentication.GetSourceConnectionInformation(ctx, "provider://provider-identifier") res, err := s.Authentication.GetSourceConnectionInformation(ctx, "server://client-identifier")
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }

View File

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

View File

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

View File

@@ -5,8 +5,8 @@ The filter query string for country media items.
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| `ID` | *int64* | :heavy_check_mark: | N/A | 259 | | `ID` | *int* | :heavy_check_mark: | The unique identifier for the country.<br/>NOTE: This is different for each Plex server and is not globally unique.<br/> | 259 |
| `Tag` | *string* | :heavy_check_mark: | The country of origin of this media item | United States of America | | `Tag` | *string* | :heavy_check_mark: | The country of origin of this media item | United States of America |
| `Filter` | **string* | :heavy_minus_sign: | N/A | country=19 | | `Filter` | *string* | :heavy_check_mark: | N/A | country=19 |

View File

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

View File

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

View File

@@ -5,8 +5,8 @@ The filter query string for similar items.
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| `ID` | *int64* | :heavy_check_mark: | N/A | 259 | | `ID` | *int* | :heavy_check_mark: | The unique identifier for the genre.<br/>NOTE: This is different for each Plex server and is not globally unique.<br/> | 259 |
| `Filter` | *string* | :heavy_check_mark: | N/A | genre=19 | | `Filter` | *string* | :heavy_check_mark: | N/A | genre=19 |
| `Tag` | *string* | :heavy_check_mark: | The genre name of this media-item<br/> | Crime | | `Tag` | *string* | :heavy_check_mark: | The genre name of this media-item<br/> | Crime |

View File

@@ -11,12 +11,14 @@ E.g. A movie library will not return anything with type 3 as there are no season
## Values ## Values
| Name | Value | | Name | Value |
| --------------------------------------- | --------------------------------------- | | ------------------------------------------ | ------------------------------------------ |
| `GetActorsLibraryQueryParamTypeMovie` | 1 | | `GetActorsLibraryQueryParamTypeMovie` | 1 |
| `GetActorsLibraryQueryParamTypeTvShow` | 2 | | `GetActorsLibraryQueryParamTypeTvShow` | 2 |
| `GetActorsLibraryQueryParamTypeSeason` | 3 | | `GetActorsLibraryQueryParamTypeSeason` | 3 |
| `GetActorsLibraryQueryParamTypeEpisode` | 4 | | `GetActorsLibraryQueryParamTypeEpisode` | 4 |
| `GetActorsLibraryQueryParamTypeAudio` | 8 | | `GetActorsLibraryQueryParamTypeArtist` | 5 |
| `GetActorsLibraryQueryParamTypeAlbum` | 9 | | `GetActorsLibraryQueryParamTypeAlbum` | 6 |
| `GetActorsLibraryQueryParamTypeTrack` | 10 | | `GetActorsLibraryQueryParamTypeTrack` | 7 |
| `GetActorsLibraryQueryParamTypePhotoAlbum` | 8 |
| `GetActorsLibraryQueryParamTypePhoto` | 9 |

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: | The Plex library visibility setting | 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,19 @@
# GetAllLibrariesType
The library type
## Values
| Name | Value |
| ------------------------------- | ------------------------------- |
| `GetAllLibrariesTypeMovie` | movie |
| `GetAllLibrariesTypeTvShow` | show |
| `GetAllLibrariesTypeSeason` | season |
| `GetAllLibrariesTypeEpisode` | episode |
| `GetAllLibrariesTypeArtist` | artist |
| `GetAllLibrariesTypeAlbum` | album |
| `GetAllLibrariesTypeTrack` | track |
| `GetAllLibrariesTypePhotoAlbum` | photoalbum |
| `GetAllLibrariesTypePhoto` | photo |
| `GetAllLibrariesTypeCollection` | collection |

View File

@@ -1,12 +0,0 @@
# GetAllMediaLibraryActiveDirection
The direction of the sort. Can be either `asc` or `desc`.
## Values
| Name | Value |
| --------------------------------------------- | --------------------------------------------- |
| `GetAllMediaLibraryActiveDirectionAscending` | asc |
| `GetAllMediaLibraryActiveDirectionDescending` | desc |

View File

@@ -1,12 +0,0 @@
# GetAllMediaLibraryDefaultDirection
The direction of the sort. Can be either `asc` or `desc`.
## Values
| Name | Value |
| ---------------------------------------------- | ---------------------------------------------- |
| `GetAllMediaLibraryDefaultDirectionAscending` | asc |
| `GetAllMediaLibraryDefaultDirectionDescending` | desc |

View File

@@ -1,9 +0,0 @@
# GetAllMediaLibraryFieldType
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
| `Type` | *string* | :heavy_check_mark: | N/A | tag |
| `Operator` | [][operations.GetAllMediaLibraryOperator](../../models/operations/getallmedialibraryoperator.md) | :heavy_check_mark: | N/A | |

View File

@@ -1,8 +0,0 @@
# GetAllMediaLibraryGuids
## Fields
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| `ID` | **string* | :heavy_minus_sign: | The unique identifier for the Guid. Can be imdb://tt0286347, tmdb://1763, tvdb://2337<br/> | tvdb://2337 |

View File

@@ -1,11 +0,0 @@
# GetAllMediaLibraryHasThumbnail
Indicates if the part has a thumbnail.
## Values
| Name | Value |
| ------------------------------------- | ------------------------------------- |
| `GetAllMediaLibraryHasThumbnailFalse` | 0 |
| `GetAllMediaLibraryHasThumbnailTrue` | 1 |

View File

@@ -1,10 +0,0 @@
# GetAllMediaLibraryImage
## Fields
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `Alt` | *string* | :heavy_check_mark: | N/A | Episode 1 |
| `Type` | [operations.GetAllMediaLibraryLibraryResponseType](../../models/operations/getallmedialibrarylibraryresponsetype.md) | :heavy_check_mark: | N/A | background |
| `URL` | *string* | :heavy_check_mark: | N/A | /library/metadata/45521/thumb/1644710589 |

View File

@@ -1,19 +0,0 @@
# GetAllMediaLibraryLibraryOptimizedForStreaming
Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
## Supported Types
### GetAllMediaLibraryOptimizedForStreaming1
```go
getAllMediaLibraryLibraryOptimizedForStreaming := operations.CreateGetAllMediaLibraryLibraryOptimizedForStreamingGetAllMediaLibraryOptimizedForStreaming1(operations.GetAllMediaLibraryOptimizedForStreaming1{/* values here */})
```
###
```go
getAllMediaLibraryLibraryOptimizedForStreaming := operations.CreateGetAllMediaLibraryLibraryOptimizedForStreamingBoolean(bool{/* values here */})
```

View File

@@ -1,11 +0,0 @@
# GetAllMediaLibraryLibraryResponseType
## Values
| Name | Value |
| -------------------------------------------------- | -------------------------------------------------- |
| `GetAllMediaLibraryLibraryResponseTypeCoverPoster` | coverPoster |
| `GetAllMediaLibraryLibraryResponseTypeBackground` | background |
| `GetAllMediaLibraryLibraryResponseTypeSnapshot` | snapshot |
| `GetAllMediaLibraryLibraryResponseTypeClearLogo` | clearLogo |

View File

@@ -1,16 +0,0 @@
# GetAllMediaLibraryLibraryType
The type of media content
## Values
| Name | Value |
| -------------------------------------- | -------------------------------------- |
| `GetAllMediaLibraryLibraryTypeMovie` | movie |
| `GetAllMediaLibraryLibraryTypeTvShow` | show |
| `GetAllMediaLibraryLibraryTypeSeason` | season |
| `GetAllMediaLibraryLibraryTypeEpisode` | episode |
| `GetAllMediaLibraryLibraryTypeArtist` | artist |
| `GetAllMediaLibraryLibraryTypeAlbum` | album |

View File

@@ -1,26 +0,0 @@
# GetAllMediaLibraryMedia
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| `ID` | *int64* | :heavy_check_mark: | Unique media identifier. | 387322 |
| `Duration` | **int* | :heavy_minus_sign: | Duration of the media in milliseconds. | 9610350 |
| `Bitrate` | **int* | :heavy_minus_sign: | Bitrate in bits per second. | 25512 |
| `Width` | **int* | :heavy_minus_sign: | Video width in pixels. | 3840 |
| `Height` | **int* | :heavy_minus_sign: | Video height in pixels. | 1602 |
| `AspectRatio` | **float32* | :heavy_minus_sign: | Aspect ratio of the video. | 2.35 |
| `AudioChannels` | **int* | :heavy_minus_sign: | Number of audio channels. | 6 |
| `DisplayOffset` | **int* | :heavy_minus_sign: | N/A | 50 |
| `AudioCodec` | **string* | :heavy_minus_sign: | Audio codec used. | eac3 |
| `VideoCodec` | **string* | :heavy_minus_sign: | Video codec used. | hevc |
| `VideoResolution` | **string* | :heavy_minus_sign: | Video resolution (e.g., 4k). | 4k |
| `Container` | **string* | :heavy_minus_sign: | File container type. | mkv |
| `VideoFrameRate` | **string* | :heavy_minus_sign: | Frame rate of the video. Values found include NTSC, PAL, 24p<br/> | 24p |
| `VideoProfile` | **string* | :heavy_minus_sign: | Video profile (e.g., main 10). | main 10 |
| `HasVoiceActivity` | **bool* | :heavy_minus_sign: | Indicates whether voice activity is detected. | false |
| `AudioProfile` | **string* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts |
| `OptimizedForStreaming` | [*operations.GetAllMediaLibraryOptimizedForStreaming](../../models/operations/getallmedialibraryoptimizedforstreaming.md) | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true | |
| `Has64bitOffsets` | **bool* | :heavy_minus_sign: | N/A | false |
| `Part` | [][operations.GetAllMediaLibraryPart](../../models/operations/getallmedialibrarypart.md) | :heavy_minus_sign: | An array of parts for this media item. | |

View File

@@ -1,26 +0,0 @@
# GetAllMediaLibraryMediaContainer
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
| `Size` | *int* | :heavy_check_mark: | Number of media items returned in this response. | 50 |
| `TotalSize` | *int* | :heavy_check_mark: | Total number of media items in the library. | 50 |
| `Offset` | *int64* | :heavy_check_mark: | Offset value for pagination. | 0 |
| `AllowSync` | *bool* | :heavy_check_mark: | Indicates whether syncing is allowed. | false |
| `Art` | *string* | :heavy_check_mark: | URL for the background artwork of the media container. | /:/resources/show-fanart.jpg |
| `Content` | *string* | :heavy_check_mark: | The content type or mode. | secondary |
| `Identifier` | *string* | :heavy_check_mark: | An plugin identifier for the media container. | com.plexapp.plugins.library |
| `LibrarySectionID` | *int64* | :heavy_check_mark: | The unique identifier for the library section. | 2 |
| `LibrarySectionTitle` | *string* | :heavy_check_mark: | The title of the library section. | TV Series |
| `LibrarySectionUUID` | **string* | :heavy_minus_sign: | The universally unique identifier for the library section. | e69655a2-ef48-4aba-bb19-0cc34d1e7d36 |
| `MediaTagPrefix` | *string* | :heavy_check_mark: | The prefix used for media tag resource paths. | /system/bundle/media/flags/ |
| `MediaTagVersion` | *int64* | :heavy_check_mark: | The version number for media tags. | 1734362201 |
| `Thumb` | *string* | :heavy_check_mark: | URL for the thumbnail image of the media container. | /:/resources/show.png |
| `Nocache` | *bool* | :heavy_check_mark: | Specifies whether caching is disabled. | true |
| `Title1` | *string* | :heavy_check_mark: | The primary title of the media container. | TV Series |
| `Title2` | *string* | :heavy_check_mark: | The secondary title of the media container. | By Starring Actor |
| `ViewGroup` | *string* | :heavy_check_mark: | Identifier for the view group layout. | secondary |
| `Meta` | [*operations.GetAllMediaLibraryMeta](../../models/operations/getallmedialibrarymeta.md) | :heavy_minus_sign: | The Meta object is only included in the response if the `includeMeta` parameter is set to `1`.<br/> | |
| `Metadata` | [][operations.GetAllMediaLibraryMetadata](../../models/operations/getallmedialibrarymetadata.md) | :heavy_minus_sign: | An array of metadata items. | |

View File

@@ -1,12 +0,0 @@
# GetAllMediaLibraryMeta
The Meta object is only included in the response if the `includeMeta` parameter is set to `1`.
## Fields
| Field | Type | Required | Description |
| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| `Type` | [][operations.GetAllMediaLibraryType](../../models/operations/getallmedialibrarytype.md) | :heavy_minus_sign: | N/A |
| `FieldType` | [][operations.GetAllMediaLibraryFieldType](../../models/operations/getallmedialibraryfieldtype.md) | :heavy_minus_sign: | N/A |

View File

@@ -1,19 +0,0 @@
# GetAllMediaLibraryOptimizedForStreaming
Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
## Supported Types
### OptimizedForStreaming1
```go
getAllMediaLibraryOptimizedForStreaming := operations.CreateGetAllMediaLibraryOptimizedForStreamingOptimizedForStreaming1(operations.OptimizedForStreaming1{/* values here */})
```
###
```go
getAllMediaLibraryOptimizedForStreaming := operations.CreateGetAllMediaLibraryOptimizedForStreamingBoolean(bool{/* values here */})
```

View File

@@ -1,9 +0,0 @@
# GetAllMediaLibraryOptimizedForStreaming1
## Values
| Name | Value |
| ---------------------------------------------- | ---------------------------------------------- |
| `GetAllMediaLibraryOptimizedForStreaming1Zero` | 0 |
| `GetAllMediaLibraryOptimizedForStreaming1One` | 1 |

View File

@@ -1,23 +0,0 @@
# GetAllMediaLibraryPart
## Fields
| Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `Accessible` | **bool* | :heavy_minus_sign: | Indicates if the part is accessible. | true |
| `Exists` | **bool* | :heavy_minus_sign: | Indicates if the part exists. | true |
| `ID` | *int64* | :heavy_check_mark: | Unique part identifier. | 418385 |
| `Key` | *string* | :heavy_check_mark: | Key to access this part. | /library/parts/418385/1735864239/file.mkv |
| `Indexes` | **string* | :heavy_minus_sign: | N/A | sd |
| `Duration` | **int* | :heavy_minus_sign: | Duration of the part in milliseconds. | 9610350 |
| `File` | *string* | :heavy_check_mark: | File path for the part. | /mnt/Movies_1/W/Wicked (2024).mkv |
| `Size` | *int64* | :heavy_check_mark: | File size in bytes. | 30649952104 |
| `PacketLength` | **int* | :heavy_minus_sign: | N/A | 188 |
| `Container` | **string* | :heavy_minus_sign: | Container format of the part. | mkv |
| `VideoProfile` | **string* | :heavy_minus_sign: | Video profile for the part. | main 10 |
| `AudioProfile` | **string* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts |
| `Has64bitOffsets` | **bool* | :heavy_minus_sign: | N/A | false |
| `OptimizedForStreaming` | [*operations.GetAllMediaLibraryLibraryOptimizedForStreaming](../../models/operations/getallmedialibrarylibraryoptimizedforstreaming.md) | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true | |
| `HasThumbnail` | [*operations.GetAllMediaLibraryHasThumbnail](../../models/operations/getallmedialibraryhasthumbnail.md) | :heavy_minus_sign: | N/A | 1 |
| `Stream` | [][operations.GetAllMediaLibraryStream](../../models/operations/getallmedialibrarystream.md) | :heavy_minus_sign: | An array of streams for this part. | |

View File

@@ -1,22 +0,0 @@
# GetAllMediaLibraryQueryParamType
The type of media to retrieve or filter by.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
## Values
| Name | Value |
| ----------------------------------------- | ----------------------------------------- |
| `GetAllMediaLibraryQueryParamTypeMovie` | 1 |
| `GetAllMediaLibraryQueryParamTypeTvShow` | 2 |
| `GetAllMediaLibraryQueryParamTypeSeason` | 3 |
| `GetAllMediaLibraryQueryParamTypeEpisode` | 4 |
| `GetAllMediaLibraryQueryParamTypeAudio` | 8 |
| `GetAllMediaLibraryQueryParamTypeAlbum` | 9 |
| `GetAllMediaLibraryQueryParamTypeTrack` | 10 |

View File

@@ -1,11 +0,0 @@
# GetAllMediaLibraryResponse
## 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.GetAllMediaLibraryResponseBody](../../models/operations/getallmedialibraryresponsebody.md) | :heavy_minus_sign: | Successful response containing media container data. |

View File

@@ -1,10 +0,0 @@
# GetAllMediaLibraryResponseBody
Successful response containing media container data.
## Fields
| Field | Type | Required | Description |
| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| `MediaContainer` | [*operations.GetAllMediaLibraryMediaContainer](../../models/operations/getallmedialibrarymediacontainer.md) | :heavy_minus_sign: | N/A |

View File

@@ -1,15 +0,0 @@
# GetAllMediaLibrarySort
## Fields
| Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| `Default` | **string* | :heavy_minus_sign: | N/A | asc |
| `Active` | **bool* | :heavy_minus_sign: | N/A | false |
| `ActiveDirection` | [*operations.GetAllMediaLibraryActiveDirection](../../models/operations/getallmedialibraryactivedirection.md) | :heavy_minus_sign: | The direction of the sort. Can be either `asc` or `desc`.<br/> | asc |
| `DefaultDirection` | [*operations.GetAllMediaLibraryDefaultDirection](../../models/operations/getallmedialibrarydefaultdirection.md) | :heavy_minus_sign: | The direction of the sort. Can be either `asc` or `desc`.<br/> | asc |
| `DescKey` | **string* | :heavy_minus_sign: | N/A | titleSort:desc |
| `FirstCharacterKey` | **string* | :heavy_minus_sign: | N/A | /library/sections/2/firstCharacter |
| `Key` | *string* | :heavy_check_mark: | N/A | titleSort |
| `Title` | *string* | :heavy_check_mark: | N/A | Title |

View File

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

View File

@@ -1,15 +0,0 @@
# GetAllMediaLibraryType
## Fields
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| `Key` | *string* | :heavy_check_mark: | N/A | /library/sections/2/all?type=2 |
| `Type` | *string* | :heavy_check_mark: | N/A | filter |
| `Subtype` | **string* | :heavy_minus_sign: | N/A | clip |
| `Title` | *string* | :heavy_check_mark: | N/A | TV Shows |
| `Active` | *bool* | :heavy_check_mark: | N/A | false |
| `Filter` | [][operations.GetAllMediaLibraryFilter](../../models/operations/getallmedialibraryfilter.md) | :heavy_minus_sign: | N/A | |
| `Sort` | [][operations.GetAllMediaLibrarySort](../../models/operations/getallmedialibrarysort.md) | :heavy_minus_sign: | N/A | |
| `Field` | [][operations.GetAllMediaLibraryField](../../models/operations/getallmedialibraryfield.md) | :heavy_minus_sign: | N/A | |

View File

@@ -11,12 +11,14 @@ E.g. A movie library will not return anything with type 3 as there are no season
## Values ## Values
| Name | Value | | Name | Value |
| ------------------------------------------ | ------------------------------------------ | | --------------------------------------------- | --------------------------------------------- |
| `GetCountriesLibraryQueryParamTypeMovie` | 1 | | `GetCountriesLibraryQueryParamTypeMovie` | 1 |
| `GetCountriesLibraryQueryParamTypeTvShow` | 2 | | `GetCountriesLibraryQueryParamTypeTvShow` | 2 |
| `GetCountriesLibraryQueryParamTypeSeason` | 3 | | `GetCountriesLibraryQueryParamTypeSeason` | 3 |
| `GetCountriesLibraryQueryParamTypeEpisode` | 4 | | `GetCountriesLibraryQueryParamTypeEpisode` | 4 |
| `GetCountriesLibraryQueryParamTypeAudio` | 8 | | `GetCountriesLibraryQueryParamTypeArtist` | 5 |
| `GetCountriesLibraryQueryParamTypeAlbum` | 9 | | `GetCountriesLibraryQueryParamTypeAlbum` | 6 |
| `GetCountriesLibraryQueryParamTypeTrack` | 10 | | `GetCountriesLibraryQueryParamTypeTrack` | 7 |
| `GetCountriesLibraryQueryParamTypePhotoAlbum` | 8 |
| `GetCountriesLibraryQueryParamTypePhoto` | 9 |

View File

@@ -11,12 +11,14 @@ E.g. A movie library will not return anything with type 3 as there are no season
## Values ## Values
| Name | Value | | Name | Value |
| --------------------------------------- | --------------------------------------- | | ------------------------------------------ | ------------------------------------------ |
| `GetGenresLibraryQueryParamTypeMovie` | 1 | | `GetGenresLibraryQueryParamTypeMovie` | 1 |
| `GetGenresLibraryQueryParamTypeTvShow` | 2 | | `GetGenresLibraryQueryParamTypeTvShow` | 2 |
| `GetGenresLibraryQueryParamTypeSeason` | 3 | | `GetGenresLibraryQueryParamTypeSeason` | 3 |
| `GetGenresLibraryQueryParamTypeEpisode` | 4 | | `GetGenresLibraryQueryParamTypeEpisode` | 4 |
| `GetGenresLibraryQueryParamTypeAudio` | 8 | | `GetGenresLibraryQueryParamTypeArtist` | 5 |
| `GetGenresLibraryQueryParamTypeAlbum` | 9 | | `GetGenresLibraryQueryParamTypeAlbum` | 6 |
| `GetGenresLibraryQueryParamTypeTrack` | 10 | | `GetGenresLibraryQueryParamTypeTrack` | 7 |
| `GetGenresLibraryQueryParamTypePhotoAlbum` | 8 |
| `GetGenresLibraryQueryParamTypePhoto` | 9 |

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

@@ -1,16 +1,20 @@
# GetLibraryItemsLibraryType # GetLibraryItemsLibraryType
The type of media content The type of media content in the Plex library. This can represent videos, music, or photos.
## Values ## Values
| Name | Value | | Name | Value |
| ----------------------------------- | ----------------------------------- | | -------------------------------------- | -------------------------------------- |
| `GetLibraryItemsLibraryTypeMovie` | movie | | `GetLibraryItemsLibraryTypeMovie` | movie |
| `GetLibraryItemsLibraryTypeTvShow` | show | | `GetLibraryItemsLibraryTypeTvShow` | show |
| `GetLibraryItemsLibraryTypeSeason` | season | | `GetLibraryItemsLibraryTypeSeason` | season |
| `GetLibraryItemsLibraryTypeEpisode` | episode | | `GetLibraryItemsLibraryTypeEpisode` | episode |
| `GetLibraryItemsLibraryTypeArtist` | artist | | `GetLibraryItemsLibraryTypeArtist` | artist |
| `GetLibraryItemsLibraryTypeAlbum` | album | | `GetLibraryItemsLibraryTypeAlbum` | album |
| `GetLibraryItemsLibraryTypeTrack` | track |
| `GetLibraryItemsLibraryTypePhotoAlbum` | photoalbum |
| `GetLibraryItemsLibraryTypePhoto` | photo |
| `GetLibraryItemsLibraryTypeCollection` | collection |

View File

@@ -13,7 +13,7 @@
| `LibrarySectionID` | **int64* | :heavy_minus_sign: | N/A | 1 | | `LibrarySectionID` | **int64* | :heavy_minus_sign: | N/A | 1 |
| `LibrarySectionTitle` | **string* | :heavy_minus_sign: | N/A | Movies | | `LibrarySectionTitle` | **string* | :heavy_minus_sign: | N/A | Movies |
| `LibrarySectionKey` | **string* | :heavy_minus_sign: | N/A | /library/sections/1 | | `LibrarySectionKey` | **string* | :heavy_minus_sign: | N/A | /library/sections/1 |
| `Type` | [operations.GetLibraryItemsLibraryType](../../models/operations/getlibraryitemslibrarytype.md) | :heavy_check_mark: | The type of media content<br/> | movie | | `Type` | [operations.GetLibraryItemsLibraryType](../../models/operations/getlibraryitemslibrarytype.md) | :heavy_check_mark: | The type of media content in the Plex library. This can represent videos, music, or photos.<br/> | movie |
| `Title` | *string* | :heavy_check_mark: | N/A | Avatar: The Way of Water | | `Title` | *string* | :heavy_check_mark: | N/A | Avatar: The Way of Water |
| `Slug` | **string* | :heavy_minus_sign: | N/A | 4-for-texas | | `Slug` | **string* | :heavy_minus_sign: | N/A | 4-for-texas |
| `ContentRating` | **string* | :heavy_minus_sign: | N/A | PG-13 | | `ContentRating` | **string* | :heavy_minus_sign: | N/A | PG-13 |

View File

@@ -11,12 +11,14 @@ E.g. A movie library will not return anything with type 3 as there are no season
## Values ## Values
| Name | Value | | Name | Value |
| -------------------------------------- | -------------------------------------- | | ----------------------------------------- | ----------------------------------------- |
| `GetLibraryItemsQueryParamTypeMovie` | 1 | | `GetLibraryItemsQueryParamTypeMovie` | 1 |
| `GetLibraryItemsQueryParamTypeTvShow` | 2 | | `GetLibraryItemsQueryParamTypeTvShow` | 2 |
| `GetLibraryItemsQueryParamTypeSeason` | 3 | | `GetLibraryItemsQueryParamTypeSeason` | 3 |
| `GetLibraryItemsQueryParamTypeEpisode` | 4 | | `GetLibraryItemsQueryParamTypeEpisode` | 4 |
| `GetLibraryItemsQueryParamTypeAudio` | 8 | | `GetLibraryItemsQueryParamTypeArtist` | 5 |
| `GetLibraryItemsQueryParamTypeAlbum` | 9 | | `GetLibraryItemsQueryParamTypeAlbum` | 6 |
| `GetLibraryItemsQueryParamTypeTrack` | 10 | | `GetLibraryItemsQueryParamTypeTrack` | 7 |
| `GetLibraryItemsQueryParamTypePhotoAlbum` | 8 |
| `GetLibraryItemsQueryParamTypePhoto` | 9 |

View File

@@ -1,6 +1,6 @@
# GetAllMediaLibraryQueryParamIncludeMeta # GetLibrarySectionsAllActiveDirection
Adds the Meta object to the response The direction of the sort. Can be either `asc` or `desc`.
@@ -8,5 +8,5 @@ Adds the Meta object to the response
| Name | Value | | Name | Value |
| ------------------------------------------------ | ------------------------------------------------ | | ------------------------------------------------ | ------------------------------------------------ |
| `GetAllMediaLibraryQueryParamIncludeMetaDisable` | 0 | | `GetLibrarySectionsAllActiveDirectionAscending` | asc |
| `GetAllMediaLibraryQueryParamIncludeMetaEnable` | 1 | | `GetLibrarySectionsAllActiveDirectionDescending` | desc |

View File

@@ -1,4 +1,4 @@
# GetAllMediaLibraryCollection # GetLibrarySectionsAllCollection
## Fields ## Fields

View File

@@ -1,4 +1,4 @@
# GetAllMediaLibraryCountry # GetLibrarySectionsAllCountry
## Fields ## Fields

View File

@@ -0,0 +1,12 @@
# GetLibrarySectionsAllDefaultDirection
The direction of the sort. Can be either `asc` or `desc`.
## Values
| Name | Value |
| ------------------------------------------------- | ------------------------------------------------- |
| `GetLibrarySectionsAllDefaultDirectionAscending` | asc |
| `GetLibrarySectionsAllDefaultDirectionDescending` | desc |

View File

@@ -1,4 +1,4 @@
# GetAllMediaLibraryDirector # GetLibrarySectionsAllDirector
## Fields ## Fields

View File

@@ -1,4 +1,4 @@
# GetAllMediaLibraryField # GetLibrarySectionsAllField
## Fields ## Fields

View File

@@ -0,0 +1,9 @@
# GetLibrarySectionsAllFieldType
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ |
| `Type` | *string* | :heavy_check_mark: | N/A | tag |
| `Operator` | [][operations.GetLibrarySectionsAllOperator](../../models/operations/getlibrarysectionsalloperator.md) | :heavy_check_mark: | N/A | |

View File

@@ -1,4 +1,4 @@
# GetAllMediaLibraryFilter # GetLibrarySectionsAllFilter
## Fields ## Fields

View File

@@ -1,4 +1,4 @@
# GetAllMediaLibraryGenre # GetLibrarySectionsAllGenre
## Fields ## Fields

View File

@@ -0,0 +1,8 @@
# GetLibrarySectionsAllGuids
## Fields
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ID` | *string* | :heavy_check_mark: | The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb://<br/> | {<br/>"imdbExample": {<br/>"summary": "IMDB example",<br/>"value": "imdb://tt13015952"<br/>},<br/>"tmdbExample": {<br/>"summary": "TMDB example",<br/>"value": "tmdb://2434012"<br/>},<br/>"tvdbExample": {<br/>"summary": "TVDB example",<br/>"value": "tvdb://7945991"<br/>}<br/>} |

View File

@@ -0,0 +1,11 @@
# GetLibrarySectionsAllHasThumbnail
Indicates if the part has a thumbnail.
## Values
| Name | Value |
| ---------------------------------------- | ---------------------------------------- |
| `GetLibrarySectionsAllHasThumbnailFalse` | 0 |
| `GetLibrarySectionsAllHasThumbnailTrue` | 1 |

View File

@@ -0,0 +1,10 @@
# GetLibrarySectionsAllImage
## Fields
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `Alt` | *string* | :heavy_check_mark: | N/A | Episode 1 |
| `Type` | [operations.GetLibrarySectionsAllLibraryResponseType](../../models/operations/getlibrarysectionsalllibraryresponsetype.md) | :heavy_check_mark: | N/A | background |
| `URL` | *string* | :heavy_check_mark: | N/A | /library/metadata/45521/thumb/1644710589 |

View File

@@ -0,0 +1,19 @@
# GetLibrarySectionsAllLibraryOptimizedForStreaming
Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
## Supported Types
### GetLibrarySectionsAllOptimizedForStreaming1
```go
getLibrarySectionsAllLibraryOptimizedForStreaming := operations.CreateGetLibrarySectionsAllLibraryOptimizedForStreamingGetLibrarySectionsAllOptimizedForStreaming1(operations.GetLibrarySectionsAllOptimizedForStreaming1{/* values here */})
```
###
```go
getLibrarySectionsAllLibraryOptimizedForStreaming := operations.CreateGetLibrarySectionsAllLibraryOptimizedForStreamingBoolean(bool{/* values here */})
```

View File

@@ -0,0 +1,11 @@
# GetLibrarySectionsAllLibraryResponseType
## Values
| Name | Value |
| ----------------------------------------------------- | ----------------------------------------------------- |
| `GetLibrarySectionsAllLibraryResponseTypeCoverPoster` | coverPoster |
| `GetLibrarySectionsAllLibraryResponseTypeBackground` | background |
| `GetLibrarySectionsAllLibraryResponseTypeSnapshot` | snapshot |
| `GetLibrarySectionsAllLibraryResponseTypeClearLogo` | clearLogo |

View File

@@ -0,0 +1,20 @@
# GetLibrarySectionsAllLibraryType
The type of media content in the Plex library. This can represent videos, music, or photos.
## Values
| Name | Value |
| -------------------------------------------- | -------------------------------------------- |
| `GetLibrarySectionsAllLibraryTypeMovie` | movie |
| `GetLibrarySectionsAllLibraryTypeTvShow` | show |
| `GetLibrarySectionsAllLibraryTypeSeason` | season |
| `GetLibrarySectionsAllLibraryTypeEpisode` | episode |
| `GetLibrarySectionsAllLibraryTypeArtist` | artist |
| `GetLibrarySectionsAllLibraryTypeAlbum` | album |
| `GetLibrarySectionsAllLibraryTypeTrack` | track |
| `GetLibrarySectionsAllLibraryTypePhotoAlbum` | photoalbum |
| `GetLibrarySectionsAllLibraryTypePhoto` | photo |
| `GetLibrarySectionsAllLibraryTypeCollection` | collection |

View File

@@ -0,0 +1,26 @@
# GetLibrarySectionsAllMedia
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `ID` | *int64* | :heavy_check_mark: | Unique media identifier. | 387322 |
| `Duration` | **int* | :heavy_minus_sign: | Duration of the media in milliseconds. | 9610350 |
| `Bitrate` | **int* | :heavy_minus_sign: | Bitrate in bits per second. | 25512 |
| `Width` | **int* | :heavy_minus_sign: | Video width in pixels. | 3840 |
| `Height` | **int* | :heavy_minus_sign: | Video height in pixels. | 1602 |
| `AspectRatio` | **float32* | :heavy_minus_sign: | Aspect ratio of the video. | 2.35 |
| `AudioChannels` | **int* | :heavy_minus_sign: | Number of audio channels. | 6 |
| `DisplayOffset` | **int* | :heavy_minus_sign: | N/A | 50 |
| `AudioCodec` | **string* | :heavy_minus_sign: | Audio codec used. | eac3 |
| `VideoCodec` | **string* | :heavy_minus_sign: | Video codec used. | hevc |
| `VideoResolution` | **string* | :heavy_minus_sign: | Video resolution (e.g., 4k). | 4k |
| `Container` | **string* | :heavy_minus_sign: | File container type. | mkv |
| `VideoFrameRate` | **string* | :heavy_minus_sign: | Frame rate of the video. Values found include NTSC, PAL, 24p<br/> | 24p |
| `VideoProfile` | **string* | :heavy_minus_sign: | Video profile (e.g., main 10). | main 10 |
| `HasVoiceActivity` | **bool* | :heavy_minus_sign: | Indicates whether voice activity is detected. | false |
| `AudioProfile` | **string* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts |
| `OptimizedForStreaming` | [*operations.GetLibrarySectionsAllOptimizedForStreaming](../../models/operations/getlibrarysectionsalloptimizedforstreaming.md) | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true | |
| `Has64bitOffsets` | **bool* | :heavy_minus_sign: | N/A | false |
| `Part` | [][operations.GetLibrarySectionsAllPart](../../models/operations/getlibrarysectionsallpart.md) | :heavy_minus_sign: | An array of parts for this media item. | |

View File

@@ -0,0 +1,26 @@
# GetLibrarySectionsAllMediaContainer
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ |
| `Size` | *int* | :heavy_check_mark: | Number of media items returned in this response. | 50 |
| `TotalSize` | *int* | :heavy_check_mark: | Total number of media items in the library. | 50 |
| `Offset` | *int64* | :heavy_check_mark: | Offset value for pagination. | 0 |
| `AllowSync` | *bool* | :heavy_check_mark: | Indicates whether syncing is allowed. | false |
| `Art` | *string* | :heavy_check_mark: | URL for the background artwork of the media container. | /:/resources/show-fanart.jpg |
| `Content` | *string* | :heavy_check_mark: | The content type or mode. | secondary |
| `Identifier` | *string* | :heavy_check_mark: | An plugin identifier for the media container. | com.plexapp.plugins.library |
| `LibrarySectionID` | *int64* | :heavy_check_mark: | The unique identifier for the library section. | 2 |
| `LibrarySectionTitle` | *string* | :heavy_check_mark: | The title of the library section. | TV Series |
| `LibrarySectionUUID` | **string* | :heavy_minus_sign: | The universally unique identifier for the library section. | e69655a2-ef48-4aba-bb19-0cc34d1e7d36 |
| `MediaTagPrefix` | *string* | :heavy_check_mark: | The prefix used for media tag resource paths. | /system/bundle/media/flags/ |
| `MediaTagVersion` | *int64* | :heavy_check_mark: | The version number for media tags. | 1734362201 |
| `Thumb` | *string* | :heavy_check_mark: | URL for the thumbnail image of the media container. | /:/resources/show.png |
| `Nocache` | *bool* | :heavy_check_mark: | Specifies whether caching is disabled. | true |
| `Title1` | *string* | :heavy_check_mark: | The primary title of the media container. | TV Series |
| `Title2` | *string* | :heavy_check_mark: | The secondary title of the media container. | By Starring Actor |
| `ViewGroup` | *string* | :heavy_check_mark: | Identifier for the view group layout. | secondary |
| `Meta` | [*operations.GetLibrarySectionsAllMeta](../../models/operations/getlibrarysectionsallmeta.md) | :heavy_minus_sign: | The Meta object is only included in the response if the `includeMeta` parameter is set to `1`.<br/> | |
| `Metadata` | [][operations.GetLibrarySectionsAllMetadata](../../models/operations/getlibrarysectionsallmetadata.md) | :heavy_minus_sign: | An array of metadata items. | |

View File

@@ -1,11 +1,12 @@
# GetAllMediaLibraryUnauthorized # GetLibrarySectionsAllMeta
The Meta object is only included in the response if the `includeMeta` parameter is set to `1`.
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
## Fields ## Fields
| Field | Type | Required | Description | | Field | Type | Required | Description |
| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| `Errors` | [][sdkerrors.GetAllMediaLibraryLibraryErrors](../../models/sdkerrors/getallmedialibrarylibraryerrors.md) | :heavy_minus_sign: | N/A | | `Type` | [][operations.GetLibrarySectionsAllType](../../models/operations/getlibrarysectionsalltype.md) | :heavy_minus_sign: | N/A |
| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing | | `FieldType` | [][operations.GetLibrarySectionsAllFieldType](../../models/operations/getlibrarysectionsallfieldtype.md) | :heavy_minus_sign: | N/A |

View File

@@ -1,4 +1,4 @@
# GetAllMediaLibraryMetadata # GetLibrarySectionsAllMetadata
Unknown Unknown
@@ -13,7 +13,7 @@ Unknown
| `GUID` | *string* | :heavy_check_mark: | The globally unique identifier for the media item. | plex://movie/5d7768ba96b655001fdc0408 | | `GUID` | *string* | :heavy_check_mark: | The globally unique identifier for the media item. | plex://movie/5d7768ba96b655001fdc0408 |
| `Slug` | *string* | :heavy_check_mark: | A URLfriendly version of the media title. | 4-for-texas | | `Slug` | *string* | :heavy_check_mark: | A URLfriendly version of the media title. | 4-for-texas |
| `Studio` | **string* | :heavy_minus_sign: | The studio that produced the media item. | 20th Century Studios | | `Studio` | **string* | :heavy_minus_sign: | The studio that produced the media item. | 20th Century Studios |
| `Type` | [operations.GetAllMediaLibraryLibraryType](../../models/operations/getallmedialibrarylibrarytype.md) | :heavy_check_mark: | N/A | movie | | `Type` | [operations.GetLibrarySectionsAllLibraryType](../../models/operations/getlibrarysectionsalllibrarytype.md) | :heavy_check_mark: | N/A | movie |
| `Title` | *string* | :heavy_check_mark: | The title of the media item. | Avatar: The Way of Water | | `Title` | *string* | :heavy_check_mark: | The title of the media item. | Avatar: The Way of Water |
| `TitleSort` | *string* | :heavy_check_mark: | The sort title used for ordering media items. | Whale | | `TitleSort` | *string* | :heavy_check_mark: | The sort title used for ordering media items. | Whale |
| `ContentRating` | **string* | :heavy_minus_sign: | The content rating for the media item. | PG-13 | | `ContentRating` | **string* | :heavy_minus_sign: | The content rating for the media item. | PG-13 |
@@ -62,13 +62,13 @@ Unknown
| `CreatedAtTZOffset` | **string* | :heavy_minus_sign: | The time zone offset for the creation timestamp, represented as a string. This offset indicates the difference from UTC. | 0 | | `CreatedAtTZOffset` | **string* | :heavy_minus_sign: | The time zone offset for the creation timestamp, represented as a string. This offset indicates the difference from UTC. | 0 |
| `LastViewedAt` | **int* | :heavy_minus_sign: | Unix timestamp for when the media item was last viewed. | 1682752242 | | `LastViewedAt` | **int* | :heavy_minus_sign: | Unix timestamp for when the media item was last viewed. | 1682752242 |
| `UserRating` | **float32* | :heavy_minus_sign: | The rating provided by a user for the item. This value is expressed as a decimal number. | 10 | | `UserRating` | **float32* | :heavy_minus_sign: | The rating provided by a user for the item. This value is expressed as a decimal number. | 10 |
| `Image` | [][operations.GetAllMediaLibraryImage](../../models/operations/getallmedialibraryimage.md) | :heavy_minus_sign: | N/A | | | `Image` | [][operations.GetLibrarySectionsAllImage](../../models/operations/getlibrarysectionsallimage.md) | :heavy_minus_sign: | N/A | |
| `UltraBlurColors` | [*operations.GetAllMediaLibraryUltraBlurColors](../../models/operations/getallmedialibraryultrablurcolors.md) | :heavy_minus_sign: | N/A | | | `UltraBlurColors` | [*operations.GetLibrarySectionsAllUltraBlurColors](../../models/operations/getlibrarysectionsallultrablurcolors.md) | :heavy_minus_sign: | N/A | |
| `Media` | [][operations.GetAllMediaLibraryMedia](../../models/operations/getallmedialibrarymedia.md) | :heavy_minus_sign: | N/A | | | `Guids` | [][operations.GetLibrarySectionsAllGuids](../../models/operations/getlibrarysectionsallguids.md) | :heavy_minus_sign: | N/A | |
| `Genre` | [][operations.GetAllMediaLibraryGenre](../../models/operations/getallmedialibrarygenre.md) | :heavy_minus_sign: | N/A | | | `Media` | [][operations.GetLibrarySectionsAllMedia](../../models/operations/getlibrarysectionsallmedia.md) | :heavy_minus_sign: | N/A | |
| `Country` | [][operations.GetAllMediaLibraryCountry](../../models/operations/getallmedialibrarycountry.md) | :heavy_minus_sign: | N/A | | | `Genre` | [][operations.GetLibrarySectionsAllGenre](../../models/operations/getlibrarysectionsallgenre.md) | :heavy_minus_sign: | N/A | |
| `Director` | [][operations.GetAllMediaLibraryDirector](../../models/operations/getallmedialibrarydirector.md) | :heavy_minus_sign: | N/A | | | `Country` | [][operations.GetLibrarySectionsAllCountry](../../models/operations/getlibrarysectionsallcountry.md) | :heavy_minus_sign: | N/A | |
| `Writer` | [][operations.GetAllMediaLibraryWriter](../../models/operations/getallmedialibrarywriter.md) | :heavy_minus_sign: | N/A | | | `Director` | [][operations.GetLibrarySectionsAllDirector](../../models/operations/getlibrarysectionsalldirector.md) | :heavy_minus_sign: | N/A | |
| `Role` | [][operations.GetAllMediaLibraryRole](../../models/operations/getallmedialibraryrole.md) | :heavy_minus_sign: | N/A | | | `Writer` | [][operations.GetLibrarySectionsAllWriter](../../models/operations/getlibrarysectionsallwriter.md) | :heavy_minus_sign: | N/A | |
| `Guids` | [][operations.GetAllMediaLibraryGuids](../../models/operations/getallmedialibraryguids.md) | :heavy_minus_sign: | N/A | | | `Role` | [][operations.GetLibrarySectionsAllRole](../../models/operations/getlibrarysectionsallrole.md) | :heavy_minus_sign: | N/A | |
| `Collection` | [][operations.GetAllMediaLibraryCollection](../../models/operations/getallmedialibrarycollection.md) | :heavy_minus_sign: | N/A | | | `Collection` | [][operations.GetLibrarySectionsAllCollection](../../models/operations/getlibrarysectionsallcollection.md) | :heavy_minus_sign: | N/A | |

View File

@@ -1,4 +1,4 @@
# GetAllMediaLibraryOperator # GetLibrarySectionsAllOperator
## Fields ## Fields

View File

@@ -0,0 +1,19 @@
# GetLibrarySectionsAllOptimizedForStreaming
Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
## Supported Types
### OptimizedForStreaming1
```go
getLibrarySectionsAllOptimizedForStreaming := operations.CreateGetLibrarySectionsAllOptimizedForStreamingOptimizedForStreaming1(operations.OptimizedForStreaming1{/* values here */})
```
###
```go
getLibrarySectionsAllOptimizedForStreaming := operations.CreateGetLibrarySectionsAllOptimizedForStreamingBoolean(bool{/* values here */})
```

View File

@@ -0,0 +1,9 @@
# GetLibrarySectionsAllOptimizedForStreaming1
## Values
| Name | Value |
| ------------------------------------------------- | ------------------------------------------------- |
| `GetLibrarySectionsAllOptimizedForStreaming1Zero` | 0 |
| `GetLibrarySectionsAllOptimizedForStreaming1One` | 1 |

View File

@@ -0,0 +1,23 @@
# GetLibrarySectionsAllPart
## Fields
| Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `Accessible` | **bool* | :heavy_minus_sign: | Indicates if the part is accessible. | true |
| `Exists` | **bool* | :heavy_minus_sign: | Indicates if the part exists. | true |
| `ID` | *int64* | :heavy_check_mark: | Unique part identifier. | 418385 |
| `Key` | *string* | :heavy_check_mark: | Key to access this part. | /library/parts/418385/1735864239/file.mkv |
| `Indexes` | **string* | :heavy_minus_sign: | N/A | sd |
| `Duration` | **int* | :heavy_minus_sign: | Duration of the part in milliseconds. | 9610350 |
| `File` | *string* | :heavy_check_mark: | File path for the part. | /mnt/Movies_1/W/Wicked (2024).mkv |
| `Size` | *int64* | :heavy_check_mark: | File size in bytes. | 30649952104 |
| `PacketLength` | **int* | :heavy_minus_sign: | N/A | 188 |
| `Container` | **string* | :heavy_minus_sign: | Container format of the part. | mkv |
| `VideoProfile` | **string* | :heavy_minus_sign: | Video profile for the part. | main 10 |
| `AudioProfile` | **string* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts |
| `Has64bitOffsets` | **bool* | :heavy_minus_sign: | N/A | false |
| `OptimizedForStreaming` | [*operations.GetLibrarySectionsAllLibraryOptimizedForStreaming](../../models/operations/getlibrarysectionsalllibraryoptimizedforstreaming.md) | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true | |
| `HasThumbnail` | [*operations.GetLibrarySectionsAllHasThumbnail](../../models/operations/getlibrarysectionsallhasthumbnail.md) | :heavy_minus_sign: | N/A | 1 |
| `Stream` | [][operations.GetLibrarySectionsAllStream](../../models/operations/getlibrarysectionsallstream.md) | :heavy_minus_sign: | An array of streams for this part. | |

View File

@@ -0,0 +1,12 @@
# GetLibrarySectionsAllQueryParamIncludeMeta
Adds the Meta object to the response
## Values
| Name | Value |
| --------------------------------------------------- | --------------------------------------------------- |
| `GetLibrarySectionsAllQueryParamIncludeMetaDisable` | 0 |
| `GetLibrarySectionsAllQueryParamIncludeMetaEnable` | 1 |

View File

@@ -0,0 +1,24 @@
# GetLibrarySectionsAllQueryParamType
The type of media to retrieve or filter by.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
## Values
| Name | Value |
| ----------------------------------------------- | ----------------------------------------------- |
| `GetLibrarySectionsAllQueryParamTypeMovie` | 1 |
| `GetLibrarySectionsAllQueryParamTypeTvShow` | 2 |
| `GetLibrarySectionsAllQueryParamTypeSeason` | 3 |
| `GetLibrarySectionsAllQueryParamTypeEpisode` | 4 |
| `GetLibrarySectionsAllQueryParamTypeArtist` | 5 |
| `GetLibrarySectionsAllQueryParamTypeAlbum` | 6 |
| `GetLibrarySectionsAllQueryParamTypeTrack` | 7 |
| `GetLibrarySectionsAllQueryParamTypePhotoAlbum` | 8 |
| `GetLibrarySectionsAllQueryParamTypePhoto` | 9 |

View File

@@ -1,4 +1,4 @@
# GetAllMediaLibraryRequest # GetLibrarySectionsAllRequest
## Fields ## Fields
@@ -6,8 +6,8 @@
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SectionKey` | *int* | :heavy_check_mark: | The unique key of the Plex library. <br/>Note: This is unique in the context of the Plex server.<br/> | 9518 | | `SectionKey` | *int* | :heavy_check_mark: | The unique key of the Plex library. <br/>Note: This is unique in the context of the Plex server.<br/> | 9518 |
| `Type` | [operations.GetAllMediaLibraryQueryParamType](../../models/operations/getallmedialibraryqueryparamtype.md) | :heavy_check_mark: | The type of media to retrieve or filter by.<br/>1 = movie<br/>2 = show<br/>3 = season<br/>4 = episode<br/>E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries<br/> | 2 | | `Type` | [operations.GetLibrarySectionsAllQueryParamType](../../models/operations/getlibrarysectionsallqueryparamtype.md) | :heavy_check_mark: | The type of media to retrieve or filter by.<br/>1 = movie<br/>2 = show<br/>3 = season<br/>4 = episode<br/>E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries<br/> | 2 |
| `IncludeMeta` | [*operations.GetAllMediaLibraryQueryParamIncludeMeta](../../models/operations/getallmedialibraryqueryparamincludemeta.md) | :heavy_minus_sign: | Adds the Meta object to the response<br/> | 1 | | `IncludeMeta` | [*operations.GetLibrarySectionsAllQueryParamIncludeMeta](../../models/operations/getlibrarysectionsallqueryparamincludemeta.md) | :heavy_minus_sign: | Adds the Meta object to the response<br/> | 1 |
| `IncludeGuids` | [*operations.QueryParamIncludeGuids](../../models/operations/queryparamincludeguids.md) | :heavy_minus_sign: | Adds the Guid object to the response<br/> | 1 | | `IncludeGuids` | [*operations.QueryParamIncludeGuids](../../models/operations/queryparamincludeguids.md) | :heavy_minus_sign: | Adds the Guid object to the response<br/> | 1 |
| `IncludeAdvanced` | [*operations.IncludeAdvanced](../../models/operations/includeadvanced.md) | :heavy_minus_sign: | N/A | 1 | | `IncludeAdvanced` | [*operations.IncludeAdvanced](../../models/operations/includeadvanced.md) | :heavy_minus_sign: | N/A | 1 |
| `IncludeCollections` | [*operations.QueryParamIncludeCollections](../../models/operations/queryparamincludecollections.md) | :heavy_minus_sign: | N/A | 1 | | `IncludeCollections` | [*operations.QueryParamIncludeCollections](../../models/operations/queryparamincludecollections.md) | :heavy_minus_sign: | N/A | 1 |

View File

@@ -0,0 +1,11 @@
# GetLibrarySectionsAllResponse
## 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.GetLibrarySectionsAllResponseBody](../../models/operations/getlibrarysectionsallresponsebody.md) | :heavy_minus_sign: | Successful response containing media container data. |

View File

@@ -0,0 +1,10 @@
# GetLibrarySectionsAllResponseBody
Successful response containing media container data.
## Fields
| Field | Type | Required | Description |
| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| `MediaContainer` | [*operations.GetLibrarySectionsAllMediaContainer](../../models/operations/getlibrarysectionsallmediacontainer.md) | :heavy_minus_sign: | N/A |

View File

@@ -1,4 +1,4 @@
# GetAllMediaLibraryRole # GetLibrarySectionsAllRole
## Fields ## Fields

View File

@@ -0,0 +1,15 @@
# GetLibrarySectionsAllSort
## Fields
| Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| `Default` | **string* | :heavy_minus_sign: | N/A | asc |
| `Active` | **bool* | :heavy_minus_sign: | N/A | false |
| `ActiveDirection` | [*operations.GetLibrarySectionsAllActiveDirection](../../models/operations/getlibrarysectionsallactivedirection.md) | :heavy_minus_sign: | The direction of the sort. Can be either `asc` or `desc`.<br/> | asc |
| `DefaultDirection` | [*operations.GetLibrarySectionsAllDefaultDirection](../../models/operations/getlibrarysectionsalldefaultdirection.md) | :heavy_minus_sign: | The direction of the sort. Can be either `asc` or `desc`.<br/> | asc |
| `DescKey` | **string* | :heavy_minus_sign: | N/A | titleSort:desc |
| `FirstCharacterKey` | **string* | :heavy_minus_sign: | N/A | /library/sections/2/firstCharacter |
| `Key` | *string* | :heavy_check_mark: | N/A | titleSort |
| `Title` | *string* | :heavy_check_mark: | N/A | Title |

View File

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

View File

@@ -0,0 +1,16 @@
# GetLibrarySectionsAllStreamType
Stream type:
- 1 = video
- 2 = audio
- 3 = subtitle
## Values
| Name | Value |
| ----------------------------------------- | ----------------------------------------- |
| `GetLibrarySectionsAllStreamTypeVideo` | 1 |
| `GetLibrarySectionsAllStreamTypeAudio` | 2 |
| `GetLibrarySectionsAllStreamTypeSubtitle` | 3 |

View File

@@ -0,0 +1,15 @@
# GetLibrarySectionsAllType
## Fields
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| `Key` | *string* | :heavy_check_mark: | N/A | /library/sections/2/all?type=2 |
| `Type` | *string* | :heavy_check_mark: | N/A | filter |
| `Subtype` | **string* | :heavy_minus_sign: | N/A | clip |
| `Title` | *string* | :heavy_check_mark: | N/A | TV Shows |
| `Active` | *bool* | :heavy_check_mark: | N/A | false |
| `Filter` | [][operations.GetLibrarySectionsAllFilter](../../models/operations/getlibrarysectionsallfilter.md) | :heavy_minus_sign: | N/A | |
| `Sort` | [][operations.GetLibrarySectionsAllSort](../../models/operations/getlibrarysectionsallsort.md) | :heavy_minus_sign: | N/A | |
| `Field` | [][operations.GetLibrarySectionsAllField](../../models/operations/getlibrarysectionsallfield.md) | :heavy_minus_sign: | N/A | |

View File

@@ -1,4 +1,4 @@
# GetAllMediaLibraryUltraBlurColors # GetLibrarySectionsAllUltraBlurColors
## Fields ## Fields

View File

@@ -1,4 +1,4 @@
# GetAllMediaLibraryWriter # GetLibrarySectionsAllWriter
## Fields ## Fields

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,11 @@
# GetMediaArtsResponse
## Fields
| Field | Type | Required | Description |
| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation |
| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
| `Object` | [*operations.GetMediaArtsResponseBody](../../models/operations/getmediaartsresponsebody.md) | :heavy_minus_sign: | The available background artwork for the library item. |

View File

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

View File

@@ -1,10 +1,12 @@
# GetMediaMetaDataCountry # GetMediaMetaDataCountry
The filter query string for country media items.
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| `ID` | *int* | :heavy_check_mark: | The unique country identifier. | 58591 | | `ID` | *int* | :heavy_check_mark: | The unique identifier for the country.<br/>NOTE: This is different for each Plex server and is not globally unique.<br/> | 259 |
| `Filter` | *string* | :heavy_check_mark: | The filter string for the country. | country=58591 | | `Tag` | *string* | :heavy_check_mark: | The country of origin of this media item | United States of America |
| `Tag` | *string* | :heavy_check_mark: | The country name. | United States of America | | `Filter` | *string* | :heavy_check_mark: | N/A | country=19 |

View File

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

View File

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

View File

@@ -3,6 +3,6 @@
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ID` | *string* | :heavy_check_mark: | The GUID value. | imdb://tt3032476 | | `ID` | *string* | :heavy_check_mark: | The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb://<br/> | {<br/>"imdbExample": {<br/>"summary": "IMDB example",<br/>"value": "imdb://tt13015952"<br/>},<br/>"tmdbExample": {<br/>"summary": "TMDB example",<br/>"value": "tmdb://2434012"<br/>},<br/>"tvdbExample": {<br/>"summary": "TVDB example",<br/>"value": "tvdb://7945991"<br/>}<br/>} |

View File

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

View File

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

View File

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

View File

@@ -3,19 +3,19 @@
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| `RatingKey` | *int64* | :heavy_check_mark: | the id of the library item to return the children of. | 9518 | | `RatingKey` | *string* | :heavy_check_mark: | The id(s) of the library item(s) to return metadata for. Can be a single ID or comma-separated list of IDs. | 21119,21617 |
| `IncludeConcerts` | **bool* | :heavy_minus_sign: | Include concerts data if set to true. | true | | `IncludeConcerts` | **bool* | :heavy_minus_sign: | Include concerts data if set to true. | true |
| `IncludeExtras` | **bool* | :heavy_minus_sign: | Include extra content (e.g. bonus features). | true | | `IncludeExtras` | **bool* | :heavy_minus_sign: | Include extra content (e.g. bonus features). | true |
| `IncludeOnDeck` | **bool* | :heavy_minus_sign: | Include on-deck items. | true | | `IncludeOnDeck` | **bool* | :heavy_minus_sign: | Include on-deck items. | true |
| `IncludePopularLeaves` | **bool* | :heavy_minus_sign: | Include popular leaves (episodes/chapters). | true | | `IncludePopularLeaves` | **bool* | :heavy_minus_sign: | Include popular leaves (episodes/chapters). | true |
| `IncludePreferences` | **bool* | :heavy_minus_sign: | Include preferences information. | true | | `IncludePreferences` | **bool* | :heavy_minus_sign: | Include preferences information. | true |
| `IncludeReviews` | **bool* | :heavy_minus_sign: | Include reviews for the content. | true | | `IncludeReviews` | **bool* | :heavy_minus_sign: | Include reviews for the content. | true |
| `IncludeChapters` | **bool* | :heavy_minus_sign: | Include chapter details. | true | | `IncludeChapters` | **bool* | :heavy_minus_sign: | Include chapter details. | true |
| `IncludeStations` | **bool* | :heavy_minus_sign: | Include station data. | true | | `IncludeStations` | **bool* | :heavy_minus_sign: | Include station data. | true |
| `IncludeExternalMedia` | **bool* | :heavy_minus_sign: | Include external media data. | true | | `IncludeExternalMedia` | **bool* | :heavy_minus_sign: | Include external media data. | true |
| `AsyncAugmentMetadata` | **bool* | :heavy_minus_sign: | Trigger asynchronous metadata augmentation. | true | | `AsyncAugmentMetadata` | **bool* | :heavy_minus_sign: | Trigger asynchronous metadata augmentation. | true |
| `AsyncCheckFiles` | **bool* | :heavy_minus_sign: | Trigger asynchronous file checking. | true | | `AsyncCheckFiles` | **bool* | :heavy_minus_sign: | Trigger asynchronous file checking. | true |
| `AsyncRefreshAnalysis` | **bool* | :heavy_minus_sign: | Trigger asynchronous refresh of analysis. | true | | `AsyncRefreshAnalysis` | **bool* | :heavy_minus_sign: | Trigger asynchronous refresh of analysis. | true |
| `AsyncRefreshLocalMediaAgent` | **bool* | :heavy_minus_sign: | Trigger asynchronous refresh of the local media agent. | true | | `AsyncRefreshLocalMediaAgent` | **bool* | :heavy_minus_sign: | Trigger asynchronous refresh of the local media agent. | true |

View File

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

View File

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

View File

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

Some files were not shown because too many files have changed in this diff Show More