Compare commits

...

36 Commits

Author SHA1 Message Date
speakeasybot
e4db9f59ee ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.323.0 2024-07-01 15:44:08 +00:00
speakeasy-bot
79aced35cd Update push code samples in generation action 2024-07-01 15:42:28 +00:00
speakeasy-bot
2135733290 Create speakeasy tagging action workflow 2024-07-01 15:42:27 +00:00
speakeasy-bot
66d2bed79b Add code samples registry configuration 2024-07-01 15:42:27 +00:00
speakeasybot
42be0c1e5b ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.322.3 2024-07-01 00:11:58 +00:00
speakeasybot
4f8ae99d93 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.322.3 2024-06-30 00:11:17 +00:00
speakeasybot
1802af77f6 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.322.3 2024-06-29 00:10:03 +00:00
speakeasybot
d77dabeb98 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.322.1 2024-06-28 00:10:18 +00:00
speakeasybot
7b82e1d5a3 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.321.0 2024-06-27 00:10:25 +00:00
speakeasybot
f677adc9a9 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.318.0 2024-06-26 00:10:15 +00:00
speakeasybot
9de12cb55c ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.315.2 2024-06-25 00:10:05 +00:00
speakeasybot
52e3fd977d ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.314.2 2024-06-24 00:11:26 +00:00
speakeasybot
88cd5f17cf ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.314.2 2024-06-23 00:11:03 +00:00
speakeasybot
6e9e5028bc ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.314.2 2024-06-22 00:10:56 +00:00
speakeasybot
5fc7421ebf ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.308.1 2024-06-15 00:10:35 +00:00
speakeasybot
caedf0fada ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.307.2 2024-06-14 00:10:13 +00:00
speakeasybot
2e6d62cc3d ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.306.0 2024-06-13 00:10:32 +00:00
speakeasybot
ee418c915d ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.305.0 2024-06-12 00:51:55 +00:00
speakeasybot
89eb756371 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.300.1 2024-06-10 00:53:01 +00:00
speakeasybot
747f1cc472 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.300.1 2024-06-09 00:55:46 +00:00
speakeasybot
3caad468dc ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.300.1 2024-06-08 00:51:08 +00:00
speakeasybot
135f07bb5b ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.300.1 2024-06-07 00:52:51 +00:00
speakeasybot
f713adaa5f ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.300.0 2024-06-06 00:50:20 +00:00
speakeasybot
afd7c86d0b ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.299.7 2024-06-05 00:50:36 +00:00
speakeasybot
a1c0bd593c ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.299.6 2024-06-04 00:51:49 +00:00
speakeasybot
7f62aa433e ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.299.4 2024-06-03 00:51:39 +00:00
speakeasybot
d6b4319cf2 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.299.4 2024-06-02 00:54:03 +00:00
speakeasybot
c487a62f2c ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.299.4 2024-06-01 00:53:37 +00:00
speakeasybot
d2d4cd1c5a ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.299.3 2024-05-31 00:51:15 +00:00
speakeasybot
686079b3d5 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.299.1 2024-05-30 00:50:06 +00:00
speakeasybot
8ebf35b969 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.296.1 2024-05-29 00:53:30 +00:00
speakeasybot
8558402eae ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.296.1 2024-05-28 00:49:49 +00:00
speakeasybot
89b2332133 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.296.1 2024-05-27 00:50:58 +00:00
speakeasybot
98cfef0ea2 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.296.1 2024-05-26 00:53:37 +00:00
speakeasybot
cb95b7e9ac ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.296.1 2024-05-25 00:47:52 +00:00
speakeasybot
e290570ac9 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.295.2 2024-05-24 00:50:32 +00:00
103 changed files with 5741 additions and 1396 deletions

View File

@@ -11,6 +11,10 @@ permissions:
description: Force generation of SDKs description: Force generation of SDKs
type: boolean type: boolean
default: false default: false
push_code_samples_only:
description: Force push only code samples from SDK generation
type: boolean
default: false
schedule: schedule:
- cron: 0 0 * * * - cron: 0 0 * * *
jobs: jobs:
@@ -19,6 +23,7 @@ jobs:
with: with:
force: ${{ github.event.inputs.force }} force: ${{ github.event.inputs.force }}
mode: direct mode: direct
push_code_samples_only: ${{ fromJSON(github.event.inputs.push_code_samples_only) }}
speakeasy_version: latest speakeasy_version: latest
secrets: secrets:
github_access_token: ${{ secrets.GITHUB_TOKEN }} github_access_token: ${{ secrets.GITHUB_TOKEN }}

20
.github/workflows/tagging.yaml vendored Normal file
View File

@@ -0,0 +1,20 @@
name: Speakeasy Tagging
permissions:
checks: write
contents: write
pull-requests: write
statuses: write
"on":
push:
branches:
- main
paths: []
workflow_dispatch: {}
jobs:
tag:
uses: speakeasy-api/sdk-generation-action/.github/workflows/tag.yaml@v15
with:
registry_tags: main
secrets:
github_access_token: ${{ secrets.GITHUB_TOKEN }}
speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }}

View File

@@ -1,12 +1,12 @@
lockVersion: 2.0.0 lockVersion: 2.0.0
id: dfa99515-01c0-42eb-9be5-ee212fd03eb3 id: dfa99515-01c0-42eb-9be5-ee212fd03eb3
management: management:
docChecksum: 911d74baa0d06121d2ce2c71d94e977a docChecksum: e73920abd3a55e8d249592f2e3090574
docVersion: 0.0.3 docVersion: 0.0.3
speakeasyVersion: 1.295.1 speakeasyVersion: 1.323.0
generationVersion: 2.335.5 generationVersion: 2.356.0
releaseVersion: 0.8.0 releaseVersion: 0.10.1
configChecksum: 9936959f866802e61eb9349bd46ba213 configChecksum: 513d92bc28d06bf5f85b74de4e501cc1
repoURL: https://github.com/LukeHagar/plexgo.git repoURL: https://github.com/LukeHagar/plexgo.git
repoSubDirectory: . repoSubDirectory: .
installationURL: https://github.com/LukeHagar/plexgo installationURL: https://github.com/LukeHagar/plexgo
@@ -15,7 +15,7 @@ features:
go: go:
additionalDependencies: 0.1.0 additionalDependencies: 0.1.0
constsAndDefaults: 0.1.4 constsAndDefaults: 0.1.4
core: 3.4.10 core: 3.4.14
flattening: 2.81.1 flattening: 2.81.1
globalSecurity: 2.82.9 globalSecurity: 2.82.9
globalSecurityCallbacks: 0.1.0 globalSecurityCallbacks: 0.1.0
@@ -25,24 +25,28 @@ features:
intellisenseMarkdownSupport: 0.1.0 intellisenseMarkdownSupport: 0.1.0
methodServerURLs: 2.82.1 methodServerURLs: 2.82.1
nameOverrides: 2.81.2 nameOverrides: 2.81.2
nullables: 0.1.0
responseFormat: 0.1.2 responseFormat: 0.1.2
sdkHooks: 0.1.0 sdkHooks: 0.1.0
typeOverrides: 2.81.1
unions: 2.85.8
generatedFiles: generatedFiles:
- server.go - server.go
- media.go - media.go
- video.go - video.go
- activities.go - activities.go
- butler.go - butler.go
- plex.go
- hubs.go - hubs.go
- search.go - search.go
- library.go - library.go
- log.go - log.go
- plex.go
- playlists.go - playlists.go
- authentication.go - authentication.go
- statistics.go - statistics.go
- sessions.go - sessions.go
- updater.go - updater.go
- watchlist.go
- plexapi.go - plexapi.go
- go.mod - go.mod
- models/sdkerrors/sdkerror.go - models/sdkerrors/sdkerror.go
@@ -82,6 +86,9 @@ generatedFiles:
- /models/operations/stopalltasks.go - /models/operations/stopalltasks.go
- /models/operations/starttask.go - /models/operations/starttask.go
- /models/operations/stoptask.go - /models/operations/stoptask.go
- /models/operations/gethomedata.go
- /models/operations/getpin.go
- /models/operations/gettoken.go
- /models/operations/getglobalhubs.go - /models/operations/getglobalhubs.go
- /models/operations/getlibraryhubs.go - /models/operations/getlibraryhubs.go
- /models/operations/performsearch.go - /models/operations/performsearch.go
@@ -97,12 +104,11 @@ generatedFiles:
- /models/operations/searchlibrary.go - /models/operations/searchlibrary.go
- /models/operations/getmetadata.go - /models/operations/getmetadata.go
- /models/operations/getmetadatachildren.go - /models/operations/getmetadatachildren.go
- /models/operations/gettopwatchedcontent.go
- /models/operations/getondeck.go - /models/operations/getondeck.go
- /models/operations/logline.go - /models/operations/logline.go
- /models/operations/logmultiline.go - /models/operations/logmultiline.go
- /models/operations/enablepapertrail.go - /models/operations/enablepapertrail.go
- /models/operations/getpin.go
- /models/operations/gettoken.go
- /models/operations/createplaylist.go - /models/operations/createplaylist.go
- /models/operations/getplaylists.go - /models/operations/getplaylists.go
- /models/operations/getplaylist.go - /models/operations/getplaylist.go
@@ -115,6 +121,8 @@ generatedFiles:
- /models/operations/gettransienttoken.go - /models/operations/gettransienttoken.go
- /models/operations/getsourceconnectioninformation.go - /models/operations/getsourceconnectioninformation.go
- /models/operations/getstatistics.go - /models/operations/getstatistics.go
- /models/operations/getresourcesstatistics.go
- /models/operations/getbandwidthstatistics.go
- /models/operations/getsessions.go - /models/operations/getsessions.go
- /models/operations/getsessionhistory.go - /models/operations/getsessionhistory.go
- /models/operations/gettranscodesessions.go - /models/operations/gettranscodesessions.go
@@ -122,6 +130,7 @@ generatedFiles:
- /models/operations/getupdatestatus.go - /models/operations/getupdatestatus.go
- /models/operations/checkforupdates.go - /models/operations/checkforupdates.go
- /models/operations/applyupdates.go - /models/operations/applyupdates.go
- /models/operations/getwatchlist.go
- /models/sdkerrors/getservercapabilities.go - /models/sdkerrors/getservercapabilities.go
- /models/sdkerrors/getserverpreferences.go - /models/sdkerrors/getserverpreferences.go
- /models/sdkerrors/getavailableclients.go - /models/sdkerrors/getavailableclients.go
@@ -142,6 +151,9 @@ generatedFiles:
- /models/sdkerrors/stopalltasks.go - /models/sdkerrors/stopalltasks.go
- /models/sdkerrors/starttask.go - /models/sdkerrors/starttask.go
- /models/sdkerrors/stoptask.go - /models/sdkerrors/stoptask.go
- /models/sdkerrors/gethomedata.go
- /models/sdkerrors/getpin.go
- /models/sdkerrors/gettoken.go
- /models/sdkerrors/getglobalhubs.go - /models/sdkerrors/getglobalhubs.go
- /models/sdkerrors/getlibraryhubs.go - /models/sdkerrors/getlibraryhubs.go
- /models/sdkerrors/performsearch.go - /models/sdkerrors/performsearch.go
@@ -161,8 +173,6 @@ generatedFiles:
- /models/sdkerrors/logline.go - /models/sdkerrors/logline.go
- /models/sdkerrors/logmultiline.go - /models/sdkerrors/logmultiline.go
- /models/sdkerrors/enablepapertrail.go - /models/sdkerrors/enablepapertrail.go
- /models/sdkerrors/getpin.go
- /models/sdkerrors/gettoken.go
- /models/sdkerrors/createplaylist.go - /models/sdkerrors/createplaylist.go
- /models/sdkerrors/getplaylists.go - /models/sdkerrors/getplaylists.go
- /models/sdkerrors/getplaylist.go - /models/sdkerrors/getplaylist.go
@@ -175,6 +185,8 @@ generatedFiles:
- /models/sdkerrors/gettransienttoken.go - /models/sdkerrors/gettransienttoken.go
- /models/sdkerrors/getsourceconnectioninformation.go - /models/sdkerrors/getsourceconnectioninformation.go
- /models/sdkerrors/getstatistics.go - /models/sdkerrors/getstatistics.go
- /models/sdkerrors/getresourcesstatistics.go
- /models/sdkerrors/getbandwidthstatistics.go
- /models/sdkerrors/getsessions.go - /models/sdkerrors/getsessions.go
- /models/sdkerrors/getsessionhistory.go - /models/sdkerrors/getsessionhistory.go
- /models/sdkerrors/gettranscodesessions.go - /models/sdkerrors/gettranscodesessions.go
@@ -182,6 +194,7 @@ generatedFiles:
- /models/sdkerrors/getupdatestatus.go - /models/sdkerrors/getupdatestatus.go
- /models/sdkerrors/checkforupdates.go - /models/sdkerrors/checkforupdates.go
- /models/sdkerrors/applyupdates.go - /models/sdkerrors/applyupdates.go
- /models/sdkerrors/getwatchlist.go
- /models/components/security.go - /models/components/security.go
- docs/models/operations/directory.md - docs/models/operations/directory.md
- docs/models/operations/mediacontainer.md - docs/models/operations/mediacontainer.md
@@ -243,6 +256,18 @@ generatedFiles:
- docs/models/operations/pathparamtaskname.md - docs/models/operations/pathparamtaskname.md
- docs/models/operations/stoptaskrequest.md - docs/models/operations/stoptaskrequest.md
- docs/models/operations/stoptaskresponse.md - docs/models/operations/stoptaskresponse.md
- docs/models/operations/gethomedataresponsebody.md
- docs/models/operations/gethomedataresponse.md
- docs/models/operations/getpinglobals.md
- docs/models/operations/getpinrequest.md
- docs/models/operations/location.md
- docs/models/operations/getpinresponsebody.md
- docs/models/operations/getpinresponse.md
- docs/models/operations/gettokenglobals.md
- docs/models/operations/gettokenrequest.md
- docs/models/operations/gettokenlocation.md
- docs/models/operations/gettokenresponsebody.md
- docs/models/operations/gettokenresponse.md
- docs/models/operations/onlytransient.md - docs/models/operations/onlytransient.md
- docs/models/operations/getglobalhubsrequest.md - docs/models/operations/getglobalhubsrequest.md
- docs/models/operations/getglobalhubsmetadata.md - docs/models/operations/getglobalhubsmetadata.md
@@ -291,7 +316,7 @@ generatedFiles:
- docs/models/operations/writer.md - docs/models/operations/writer.md
- docs/models/operations/country.md - docs/models/operations/country.md
- docs/models/operations/role.md - docs/models/operations/role.md
- docs/models/operations/metadata.md - docs/models/operations/getrecentlyaddedmetadata.md
- docs/models/operations/getrecentlyaddedmediacontainer.md - docs/models/operations/getrecentlyaddedmediacontainer.md
- docs/models/operations/getrecentlyaddedresponsebody.md - docs/models/operations/getrecentlyaddedresponsebody.md
- docs/models/operations/getrecentlyaddedresponse.md - docs/models/operations/getrecentlyaddedresponse.md
@@ -303,7 +328,7 @@ generatedFiles:
- docs/models/operations/includedetails.md - docs/models/operations/includedetails.md
- docs/models/operations/getlibraryrequest.md - docs/models/operations/getlibraryrequest.md
- docs/models/operations/getlibrarydirectory.md - docs/models/operations/getlibrarydirectory.md
- docs/models/operations/filter.md - docs/models/operations/getlibraryfilter.md
- docs/models/operations/sort.md - docs/models/operations/sort.md
- docs/models/operations/field.md - docs/models/operations/field.md
- docs/models/operations/getlibrarytype.md - docs/models/operations/getlibrarytype.md
@@ -316,6 +341,7 @@ generatedFiles:
- docs/models/operations/deletelibraryresponse.md - docs/models/operations/deletelibraryresponse.md
- docs/models/operations/tag.md - docs/models/operations/tag.md
- docs/models/operations/getlibraryitemsrequest.md - docs/models/operations/getlibraryitemsrequest.md
- docs/models/operations/librarysectionid.md
- docs/models/operations/getlibraryitemspart.md - docs/models/operations/getlibraryitemspart.md
- docs/models/operations/getlibraryitemsmedia.md - docs/models/operations/getlibraryitemsmedia.md
- docs/models/operations/getlibraryitemsgenre.md - docs/models/operations/getlibraryitemsgenre.md
@@ -357,6 +383,16 @@ generatedFiles:
- docs/models/operations/getmetadatachildrenmediacontainer.md - docs/models/operations/getmetadatachildrenmediacontainer.md
- docs/models/operations/getmetadatachildrenresponsebody.md - docs/models/operations/getmetadatachildrenresponsebody.md
- docs/models/operations/getmetadatachildrenresponse.md - docs/models/operations/getmetadatachildrenresponse.md
- docs/models/operations/gettopwatchedcontentrequest.md
- docs/models/operations/gettopwatchedcontentgenre.md
- docs/models/operations/gettopwatchedcontentcountry.md
- docs/models/operations/gettopwatchedcontentguids.md
- docs/models/operations/gettopwatchedcontentrole.md
- docs/models/operations/user.md
- docs/models/operations/gettopwatchedcontentmetadata.md
- docs/models/operations/gettopwatchedcontentmediacontainer.md
- docs/models/operations/gettopwatchedcontentresponsebody.md
- docs/models/operations/gettopwatchedcontentresponse.md
- docs/models/operations/getondeckstream.md - docs/models/operations/getondeckstream.md
- docs/models/operations/getondeckpart.md - docs/models/operations/getondeckpart.md
- docs/models/operations/getondeckmedia.md - docs/models/operations/getondeckmedia.md
@@ -370,14 +406,6 @@ generatedFiles:
- docs/models/operations/loglineresponse.md - docs/models/operations/loglineresponse.md
- docs/models/operations/logmultilineresponse.md - docs/models/operations/logmultilineresponse.md
- docs/models/operations/enablepapertrailresponse.md - docs/models/operations/enablepapertrailresponse.md
- docs/models/operations/getpinglobals.md
- docs/models/operations/getpinrequest.md
- docs/models/operations/location.md
- docs/models/operations/getpinresponsebody.md
- docs/models/operations/getpinresponse.md
- docs/models/operations/gettokenglobals.md
- docs/models/operations/gettokenrequest.md
- docs/models/operations/gettokenresponse.md
- docs/models/operations/queryparamtype.md - docs/models/operations/queryparamtype.md
- docs/models/operations/smart.md - docs/models/operations/smart.md
- docs/models/operations/createplaylistrequest.md - docs/models/operations/createplaylistrequest.md
@@ -436,16 +464,30 @@ generatedFiles:
- docs/models/operations/getstatisticsmediacontainer.md - docs/models/operations/getstatisticsmediacontainer.md
- docs/models/operations/getstatisticsresponsebody.md - docs/models/operations/getstatisticsresponsebody.md
- docs/models/operations/getstatisticsresponse.md - docs/models/operations/getstatisticsresponse.md
- docs/models/operations/getresourcesstatisticsrequest.md
- docs/models/operations/statisticsresources.md
- docs/models/operations/getresourcesstatisticsmediacontainer.md
- docs/models/operations/getresourcesstatisticsresponsebody.md
- docs/models/operations/getresourcesstatisticsresponse.md
- docs/models/operations/getbandwidthstatisticsrequest.md
- docs/models/operations/getbandwidthstatisticsdevice.md
- docs/models/operations/getbandwidthstatisticsaccount.md
- docs/models/operations/statisticsbandwidth.md
- docs/models/operations/getbandwidthstatisticsmediacontainer.md
- docs/models/operations/getbandwidthstatisticsresponsebody.md
- docs/models/operations/getbandwidthstatisticsresponse.md
- docs/models/operations/getsessionsstream.md - docs/models/operations/getsessionsstream.md
- docs/models/operations/getsessionspart.md - docs/models/operations/getsessionspart.md
- docs/models/operations/getsessionsmedia.md - docs/models/operations/getsessionsmedia.md
- docs/models/operations/user.md - docs/models/operations/getsessionsuser.md
- docs/models/operations/player.md - docs/models/operations/player.md
- docs/models/operations/session.md - docs/models/operations/session.md
- docs/models/operations/getsessionsmetadata.md - docs/models/operations/getsessionsmetadata.md
- docs/models/operations/getsessionsmediacontainer.md - docs/models/operations/getsessionsmediacontainer.md
- docs/models/operations/getsessionsresponsebody.md - docs/models/operations/getsessionsresponsebody.md
- docs/models/operations/getsessionsresponse.md - docs/models/operations/getsessionsresponse.md
- docs/models/operations/filter.md
- docs/models/operations/getsessionhistoryrequest.md
- docs/models/operations/getsessionhistorymetadata.md - docs/models/operations/getsessionhistorymetadata.md
- docs/models/operations/getsessionhistorymediacontainer.md - docs/models/operations/getsessionhistorymediacontainer.md
- docs/models/operations/getsessionhistoryresponsebody.md - docs/models/operations/getsessionhistoryresponsebody.md
@@ -467,6 +509,15 @@ generatedFiles:
- docs/models/operations/skip.md - docs/models/operations/skip.md
- docs/models/operations/applyupdatesrequest.md - docs/models/operations/applyupdatesrequest.md
- docs/models/operations/applyupdatesresponse.md - docs/models/operations/applyupdatesresponse.md
- docs/models/operations/pathparamfilter.md
- docs/models/operations/libtype.md
- docs/models/operations/includecollections.md
- docs/models/operations/includeexternalmedia.md
- docs/models/operations/getwatchlistrequest.md
- docs/models/operations/image.md
- docs/models/operations/metadata.md
- docs/models/operations/getwatchlistresponsebody.md
- docs/models/operations/getwatchlistresponse.md
- docs/models/sdkerrors/errors.md - docs/models/sdkerrors/errors.md
- docs/models/sdkerrors/getservercapabilitiesresponsebody.md - docs/models/sdkerrors/getservercapabilitiesresponsebody.md
- docs/models/sdkerrors/getserverpreferenceserrors.md - docs/models/sdkerrors/getserverpreferenceserrors.md
@@ -507,6 +558,12 @@ generatedFiles:
- docs/models/sdkerrors/starttaskresponsebody.md - docs/models/sdkerrors/starttaskresponsebody.md
- docs/models/sdkerrors/stoptaskerrors.md - docs/models/sdkerrors/stoptaskerrors.md
- docs/models/sdkerrors/stoptaskresponsebody.md - docs/models/sdkerrors/stoptaskresponsebody.md
- docs/models/sdkerrors/gethomedataerrors.md
- docs/models/sdkerrors/gethomedataresponsebody.md
- docs/models/sdkerrors/getpinerrors.md
- docs/models/sdkerrors/getpinresponsebody.md
- docs/models/sdkerrors/gettokenerrors.md
- docs/models/sdkerrors/gettokenresponsebody.md
- docs/models/sdkerrors/getglobalhubserrors.md - docs/models/sdkerrors/getglobalhubserrors.md
- docs/models/sdkerrors/getglobalhubsresponsebody.md - docs/models/sdkerrors/getglobalhubsresponsebody.md
- docs/models/sdkerrors/getlibraryhubserrors.md - docs/models/sdkerrors/getlibraryhubserrors.md
@@ -545,10 +602,6 @@ generatedFiles:
- docs/models/sdkerrors/logmultilineresponsebody.md - docs/models/sdkerrors/logmultilineresponsebody.md
- docs/models/sdkerrors/enablepapertrailerrors.md - docs/models/sdkerrors/enablepapertrailerrors.md
- docs/models/sdkerrors/enablepapertrailresponsebody.md - docs/models/sdkerrors/enablepapertrailresponsebody.md
- docs/models/sdkerrors/getpinerrors.md
- docs/models/sdkerrors/getpinresponsebody.md
- docs/models/sdkerrors/gettokenerrors.md
- docs/models/sdkerrors/gettokenresponsebody.md
- docs/models/sdkerrors/createplaylisterrors.md - docs/models/sdkerrors/createplaylisterrors.md
- docs/models/sdkerrors/createplaylistresponsebody.md - docs/models/sdkerrors/createplaylistresponsebody.md
- docs/models/sdkerrors/getplaylistserrors.md - docs/models/sdkerrors/getplaylistserrors.md
@@ -573,6 +626,10 @@ generatedFiles:
- docs/models/sdkerrors/getsourceconnectioninformationresponsebody.md - docs/models/sdkerrors/getsourceconnectioninformationresponsebody.md
- docs/models/sdkerrors/getstatisticserrors.md - docs/models/sdkerrors/getstatisticserrors.md
- docs/models/sdkerrors/getstatisticsresponsebody.md - docs/models/sdkerrors/getstatisticsresponsebody.md
- docs/models/sdkerrors/getresourcesstatisticserrors.md
- docs/models/sdkerrors/getresourcesstatisticsresponsebody.md
- docs/models/sdkerrors/getbandwidthstatisticserrors.md
- docs/models/sdkerrors/getbandwidthstatisticsresponsebody.md
- docs/models/sdkerrors/getsessionserrors.md - docs/models/sdkerrors/getsessionserrors.md
- docs/models/sdkerrors/getsessionsresponsebody.md - docs/models/sdkerrors/getsessionsresponsebody.md
- docs/models/sdkerrors/getsessionhistoryerrors.md - docs/models/sdkerrors/getsessionhistoryerrors.md
@@ -587,6 +644,8 @@ generatedFiles:
- docs/models/sdkerrors/checkforupdatesresponsebody.md - docs/models/sdkerrors/checkforupdatesresponsebody.md
- docs/models/sdkerrors/applyupdateserrors.md - docs/models/sdkerrors/applyupdateserrors.md
- docs/models/sdkerrors/applyupdatesresponsebody.md - docs/models/sdkerrors/applyupdatesresponsebody.md
- docs/models/sdkerrors/getwatchlisterrors.md
- docs/models/sdkerrors/getwatchlistresponsebody.md
- docs/models/components/security.md - docs/models/components/security.md
- docs/sdks/plexapi/README.md - docs/sdks/plexapi/README.md
- docs/sdks/server/README.md - docs/sdks/server/README.md
@@ -594,17 +653,18 @@ generatedFiles:
- docs/sdks/video/README.md - docs/sdks/video/README.md
- docs/sdks/activities/README.md - docs/sdks/activities/README.md
- docs/sdks/butler/README.md - docs/sdks/butler/README.md
- docs/models/operations/option.md
- docs/sdks/plex/README.md
- docs/sdks/hubs/README.md - docs/sdks/hubs/README.md
- docs/sdks/search/README.md - docs/sdks/search/README.md
- docs/sdks/library/README.md - docs/sdks/library/README.md
- docs/sdks/log/README.md - docs/sdks/log/README.md
- docs/models/operations/option.md
- docs/sdks/plex/README.md
- docs/sdks/playlists/README.md - docs/sdks/playlists/README.md
- docs/sdks/authentication/README.md - docs/sdks/authentication/README.md
- docs/sdks/statistics/README.md - docs/sdks/statistics/README.md
- docs/sdks/sessions/README.md - docs/sdks/sessions/README.md
- docs/sdks/updater/README.md - docs/sdks/updater/README.md
- docs/sdks/watchlist/README.md
- USAGE.md - USAGE.md
- models/operations/options.go - models/operations/options.go
- .gitattributes - .gitattributes

View File

@@ -12,7 +12,7 @@ generation:
auth: auth:
oAuth2ClientCredentialsEnabled: true oAuth2ClientCredentialsEnabled: true
go: go:
version: 0.8.0 version: 0.10.1
additionalDependencies: {} additionalDependencies: {}
allowUnknownFieldsInWeakUnions: false allowUnknownFieldsInWeakUnions: false
clientServerStatusCodesAsErrors: true clientServerStatusCodesAsErrors: true

View File

@@ -1,9 +1,9 @@
speakeasyVersion: 1.295.1 speakeasyVersion: 1.323.0
sources: sources:
my-source: my-source:
sourceNamespace: my-source sourceNamespace: my-source
sourceRevisionDigest: sha256:a8e70a54c6c002b5d94d5c56bbe0faaaf04d522187c6efcd9ca75abd261ee1a6 sourceRevisionDigest: sha256:ff9779ff7b4bdff35d146a962e94b766578532ac129d6adff9883756f1e4e8ed
sourceBlobDigest: sha256:aa91e9d758bdbae409d488c1c3baa559c3da86899544d53c8279851b6fad8d31 sourceBlobDigest: sha256:f5d953ec4a6fb0e4fc2a8fa79009d6d5c818c97394020a744172870ea27a0e32
tags: tags:
- latest - latest
- main - main
@@ -11,8 +11,10 @@ targets:
plexgo: plexgo:
source: my-source source: my-source
sourceNamespace: my-source sourceNamespace: my-source
sourceRevisionDigest: sha256:a8e70a54c6c002b5d94d5c56bbe0faaaf04d522187c6efcd9ca75abd261ee1a6 sourceRevisionDigest: sha256:ff9779ff7b4bdff35d146a962e94b766578532ac129d6adff9883756f1e4e8ed
sourceBlobDigest: sha256:aa91e9d758bdbae409d488c1c3baa559c3da86899544d53c8279851b6fad8d31 sourceBlobDigest: sha256:f5d953ec4a6fb0e4fc2a8fa79009d6d5c818c97394020a744172870ea27a0e32
codeSamplesNamespace: code-samples-go-plexgo
codeSamplesRevisionDigest: sha256:2ba78526af38dcbc157c79a2ffe44ed0a6746610f0fa145e806ad99d3f45dacb
outLocation: /github/workspace/repo outLocation: /github/workspace/repo
workflow: workflow:
workflowVersion: 1.0.0 workflowVersion: 1.0.0
@@ -29,3 +31,5 @@ workflow:
source: my-source source: my-source
codeSamples: codeSamples:
output: codeSamples.yaml output: codeSamples.yaml
registry:
location: registry.speakeasyapi.dev/lukehagar/lukehagar/code-samples-go-plexgo

View File

@@ -12,3 +12,5 @@ targets:
source: my-source source: my-source
codeSamples: codeSamples:
output: codeSamples.yaml output: codeSamples.yaml
registry:
location: registry.speakeasyapi.dev/lukehagar/lukehagar/code-samples-go-plexgo

View File

@@ -53,7 +53,7 @@ func main() {
### [Server](docs/sdks/server/README.md) ### [Server](docs/sdks/server/README.md)
* [GetServerCapabilities](docs/sdks/server/README.md#getservercapabilities) - Server Capabilities * [GetServerCapabilities](docs/sdks/server/README.md#getservercapabilities) - Get Server Capabilities
* [GetServerPreferences](docs/sdks/server/README.md#getserverpreferences) - Get Server Preferences * [GetServerPreferences](docs/sdks/server/README.md#getserverpreferences) - Get Server Preferences
* [GetAvailableClients](docs/sdks/server/README.md#getavailableclients) - Get Available Clients * [GetAvailableClients](docs/sdks/server/README.md#getavailableclients) - Get Available Clients
* [GetDevices](docs/sdks/server/README.md#getdevices) - Get Devices * [GetDevices](docs/sdks/server/README.md#getdevices) - Get Devices
@@ -86,6 +86,12 @@ func main() {
* [StartTask](docs/sdks/butler/README.md#starttask) - Start a single Butler task * [StartTask](docs/sdks/butler/README.md#starttask) - Start a single Butler task
* [StopTask](docs/sdks/butler/README.md#stoptask) - Stop a single Butler task * [StopTask](docs/sdks/butler/README.md#stoptask) - Stop a single Butler task
### [Plex](docs/sdks/plex/README.md)
* [GetHomeData](docs/sdks/plex/README.md#gethomedata) - Get Plex Home Data
* [GetPin](docs/sdks/plex/README.md#getpin) - Get a Pin
* [GetToken](docs/sdks/plex/README.md#gettoken) - Get Access Token
### [Hubs](docs/sdks/hubs/README.md) ### [Hubs](docs/sdks/hubs/README.md)
* [GetGlobalHubs](docs/sdks/hubs/README.md#getglobalhubs) - Get Global Hubs * [GetGlobalHubs](docs/sdks/hubs/README.md#getglobalhubs) - Get Global Hubs
@@ -109,6 +115,7 @@ func main() {
* [SearchLibrary](docs/sdks/library/README.md#searchlibrary) - Search Library * [SearchLibrary](docs/sdks/library/README.md#searchlibrary) - Search Library
* [GetMetadata](docs/sdks/library/README.md#getmetadata) - Get Items Metadata * [GetMetadata](docs/sdks/library/README.md#getmetadata) - Get Items Metadata
* [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
* [GetOnDeck](docs/sdks/library/README.md#getondeck) - Get On Deck * [GetOnDeck](docs/sdks/library/README.md#getondeck) - Get On Deck
### [Log](docs/sdks/log/README.md) ### [Log](docs/sdks/log/README.md)
@@ -117,11 +124,6 @@ func main() {
* [LogMultiLine](docs/sdks/log/README.md#logmultiline) - Logging a multi-line message * [LogMultiLine](docs/sdks/log/README.md#logmultiline) - Logging a multi-line message
* [EnablePaperTrail](docs/sdks/log/README.md#enablepapertrail) - Enabling Papertrail * [EnablePaperTrail](docs/sdks/log/README.md#enablepapertrail) - Enabling Papertrail
### [Plex](docs/sdks/plex/README.md)
* [GetPin](docs/sdks/plex/README.md#getpin) - Get a Pin
* [GetToken](docs/sdks/plex/README.md#gettoken) - Get Access Token
### [Playlists](docs/sdks/playlists/README.md) ### [Playlists](docs/sdks/playlists/README.md)
* [CreatePlaylist](docs/sdks/playlists/README.md#createplaylist) - Create a Playlist * [CreatePlaylist](docs/sdks/playlists/README.md#createplaylist) - Create a Playlist
@@ -142,6 +144,8 @@ func main() {
### [Statistics](docs/sdks/statistics/README.md) ### [Statistics](docs/sdks/statistics/README.md)
* [GetStatistics](docs/sdks/statistics/README.md#getstatistics) - Get Media Statistics * [GetStatistics](docs/sdks/statistics/README.md#getstatistics) - Get Media Statistics
* [GetResourcesStatistics](docs/sdks/statistics/README.md#getresourcesstatistics) - Get Resources Statistics
* [GetBandwidthStatistics](docs/sdks/statistics/README.md#getbandwidthstatistics) - Get Bandwidth Statistics
### [Sessions](docs/sdks/sessions/README.md) ### [Sessions](docs/sdks/sessions/README.md)
@@ -155,6 +159,10 @@ func main() {
* [GetUpdateStatus](docs/sdks/updater/README.md#getupdatestatus) - Querying status of updates * [GetUpdateStatus](docs/sdks/updater/README.md#getupdatestatus) - Querying status of updates
* [CheckForUpdates](docs/sdks/updater/README.md#checkforupdates) - Checking for updates * [CheckForUpdates](docs/sdks/updater/README.md#checkforupdates) - Checking for updates
* [ApplyUpdates](docs/sdks/updater/README.md#applyupdates) - Apply Updates * [ApplyUpdates](docs/sdks/updater/README.md#applyupdates) - Apply Updates
### [Watchlist](docs/sdks/watchlist/README.md)
* [GetWatchlist](docs/sdks/watchlist/README.md#getwatchlist) - Get User Watchlist
<!-- End Available Resources and Operations [operations] --> <!-- End Available Resources and Operations [operations] -->
<!-- Start Error Handling [errors] --> <!-- Start Error Handling [errors] -->
@@ -303,11 +311,13 @@ func main() {
s := plexgo.New( s := plexgo.New(
plexgo.WithXPlexClientIdentifier("Postman"), plexgo.WithXPlexClientIdentifier("Postman"),
) )
var xPlexProduct string = "Postman"
var strong *bool = plexgo.Bool(false) var strong *bool = plexgo.Bool(false)
var xPlexClientIdentifier *string = plexgo.String("Postman") var xPlexClientIdentifier *string = plexgo.String("Postman")
ctx := context.Background() ctx := context.Background()
res, err := s.Plex.GetPin(ctx, strong, xPlexClientIdentifier, operations.WithServerURL("https://plex.tv/api/v2")) res, err := s.Plex.GetPin(ctx, xPlexProduct, strong, xPlexClientIdentifier, operations.WithServerURL("https://plex.tv/api/v2"))
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
@@ -417,18 +427,18 @@ d6 := types.MustDateFromString("2019-01-01") // returns types.Date and panics on
<!-- Start Global Parameters [global-parameters] --> <!-- Start Global Parameters [global-parameters] -->
## Global Parameters ## Global Parameters
A parameter is configured globally. This parameter must be set on the SDK client instance itself during initialization. When configured as an option during SDK initialization, This global value will be used as the default on the operations that use it. When such operations are called, there is a place in each to override the global value, if needed. A parameter is configured globally. This parameter may be set on the SDK client instance itself during initialization. When configured as an option during SDK initialization, This global value will be used as the default on the operations that use it. When such operations are called, there is a place in each to override the global value, if needed.
For example, you can set `X-Plex-Client-Identifier` to `"Postman"` at SDK initialization and then you do not have to pass the same value on calls to operations like `GetPin`. But if you want to do so you may, which will locally override the global setting. See the example code below for a demonstration. For example, you can set `X-Plex-Client-Identifier` to `"Postman"` at SDK initialization and then you do not have to pass the same value on calls to operations like `GetPin`. But if you want to do so you may, which will locally override the global setting. See the example code below for a demonstration.
### Available Globals ### Available Globals
The following global parameter is available. The required parameter must be set when you initialize the SDK client. The following global parameter is available.
| Name | Type | Required | Description | | Name | Type | Required | Description |
| ---- | ---- |:--------:| ----------- | | ---- | ---- |:--------:| ----------- |
| XPlexClientIdentifier | string | ✔️ | The unique identifier for the client application | XPlexClientIdentifier | string | | The unique identifier for the client application
This is used to track the client application and its usage This is used to track the client application and its usage
(UUID, serial number, or other number unique per device) (UUID, serial number, or other number unique per device)
| |
@@ -449,11 +459,13 @@ func main() {
s := plexgo.New( s := plexgo.New(
plexgo.WithXPlexClientIdentifier("Postman"), plexgo.WithXPlexClientIdentifier("Postman"),
) )
var xPlexProduct string = "Postman"
var strong *bool = plexgo.Bool(false) var strong *bool = plexgo.Bool(false)
var xPlexClientIdentifier *string = plexgo.String("Postman") var xPlexClientIdentifier *string = plexgo.String("Postman")
ctx := context.Background() ctx := context.Background()
res, err := s.Plex.GetPin(ctx, strong, xPlexClientIdentifier) res, err := s.Plex.GetPin(ctx, xPlexProduct, strong, xPlexClientIdentifier)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }

View File

@@ -422,4 +422,334 @@ Based on:
### Generated ### Generated
- [go v0.8.0] . - [go v0.8.0] .
### Releases ### Releases
- [Go v0.8.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.8.0 - . - [Go v0.8.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.8.0 - .
## 2024-05-24 00:50:00
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.295.2 (2.335.5) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.8.0] .
### Releases
- [Go v0.8.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.8.0 - .
## 2024-05-25 00:47:20
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.296.1 (2.338.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.8.0] .
### Releases
- [Go v0.8.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.8.0 - .
## 2024-05-26 00:53:07
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.296.1 (2.338.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.8.0] .
### Releases
- [Go v0.8.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.8.0 - .
## 2024-05-27 00:50:25
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.296.1 (2.338.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.8.0] .
### Releases
- [Go v0.8.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.8.0 - .
## 2024-05-28 00:49:16
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.296.1 (2.338.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.8.0] .
### Releases
- [Go v0.8.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.8.0 - .
## 2024-05-29 00:52:58
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.296.1 (2.338.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.8.0] .
### Releases
- [Go v0.8.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.8.0 - .
## 2024-05-30 00:49:31
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.299.1 (2.338.5) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.8.0] .
### Releases
- [Go v0.8.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.8.0 - .
## 2024-05-31 00:50:44
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.299.3 (2.338.7) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.8.0] .
### Releases
- [Go v0.8.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.8.0 - .
## 2024-06-01 00:53:07
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.299.4 (2.338.7) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.8.0] .
### Releases
- [Go v0.8.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.8.0 - .
## 2024-06-02 00:53:31
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.299.4 (2.338.7) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.8.0] .
### Releases
- [Go v0.8.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.8.0 - .
## 2024-06-03 00:51:07
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.299.4 (2.338.7) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.8.0] .
### Releases
- [Go v0.8.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.8.0 - .
## 2024-06-04 00:50:48
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.299.6 (2.338.12) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.8.1] .
### Releases
- [Go v0.8.1] https://github.com/LukeHagar/plexgo/releases/tag/v0.8.1 - .
## 2024-06-05 00:50:03
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.299.7 (2.338.12) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.8.1] .
### Releases
- [Go v0.8.1] https://github.com/LukeHagar/plexgo/releases/tag/v0.8.1 - .
## 2024-06-06 00:49:48
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.300.0 (2.338.14) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.8.1] .
### Releases
- [Go v0.8.1] https://github.com/LukeHagar/plexgo/releases/tag/v0.8.1 - .
## 2024-06-07 00:52:21
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.300.1 (2.339.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.8.1] .
### Releases
- [Go v0.8.1] https://github.com/LukeHagar/plexgo/releases/tag/v0.8.1 - .
## 2024-06-08 00:50:36
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.300.1 (2.339.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.8.1] .
### Releases
- [Go v0.8.1] https://github.com/LukeHagar/plexgo/releases/tag/v0.8.1 - .
## 2024-06-09 00:55:16
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.300.1 (2.339.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.8.1] .
### Releases
- [Go v0.8.1] https://github.com/LukeHagar/plexgo/releases/tag/v0.8.1 - .
## 2024-06-10 00:52:30
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.300.1 (2.339.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.8.1] .
### Releases
- [Go v0.8.1] https://github.com/LukeHagar/plexgo/releases/tag/v0.8.1 - .
## 2024-06-12 00:51:32
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.305.0 (2.340.3) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.8.1] .
### Releases
- [Go v0.8.1] https://github.com/LukeHagar/plexgo/releases/tag/v0.8.1 - .
## 2024-06-13 00:10:09
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.306.0 (2.340.3) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.8.1] .
### Releases
- [Go v0.8.1] https://github.com/LukeHagar/plexgo/releases/tag/v0.8.1 - .
## 2024-06-14 00:09:51
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.307.2 (2.342.2) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.8.1] .
### Releases
- [Go v0.8.1] https://github.com/LukeHagar/plexgo/releases/tag/v0.8.1 - .
## 2024-06-15 00:09:44
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.308.1 (2.342.6) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.9.0] .
### Releases
- [Go v0.9.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.9.0 - .
## 2024-06-22 00:10:02
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.314.2 (2.349.6) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.10.0] .
### Releases
- [Go v0.10.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.10.0 - .
## 2024-06-23 00:10:38
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.314.2 (2.349.6) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.10.0] .
### Releases
- [Go v0.10.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.10.0 - .
## 2024-06-24 00:11:02
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.314.2 (2.349.6) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.10.0] .
### Releases
- [Go v0.10.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.10.0 - .
## 2024-06-25 00:09:42
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.315.2 (2.352.0) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.10.0] .
### Releases
- [Go v0.10.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.10.0 - .
## 2024-06-26 00:09:52
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.318.0 (2.352.0) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.10.0] .
### Releases
- [Go v0.10.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.10.0 - .
## 2024-06-27 00:10:00
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.321.0 (2.354.2) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.10.0] .
### Releases
- [Go v0.10.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.10.0 - .
## 2024-06-28 00:09:54
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.322.1 (2.354.2) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.10.0] .
### Releases
- [Go v0.10.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.10.0 - .
## 2024-06-29 00:09:38
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.322.3 (2.354.2) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.10.0] .
### Releases
- [Go v0.10.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.10.0 - .
## 2024-06-30 00:10:54
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.322.3 (2.354.2) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.10.0] .
### Releases
- [Go v0.10.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.10.0 - .
## 2024-07-01 00:11:32
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.322.3 (2.354.2) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.10.0] .
### Releases
- [Go v0.10.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.10.0 - .
## 2024-07-01 15:43:13
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.323.0 (2.356.0) https://github.com/speakeasy-api/speakeasy
### Generated
- [go v0.10.1] .
### Releases
- [Go v0.10.1] https://github.com/LukeHagar/plexgo/releases/tag/v0.10.1 - .

File diff suppressed because it is too large Load Diff

View File

@@ -1,12 +1,11 @@
# Filter # Filter
Filters content by field and direction/equality
(Unknown if viewedAt is the only supported column)
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description |
| ------------------------- | ------------------------- | ------------------------- | ------------------------- | ------------------------- | | ----------- | ----------- | ----------- | ----------- |
| `Filter` | **string* | :heavy_minus_sign: | N/A | label |
| `FilterType` | **string* | :heavy_minus_sign: | N/A | string |
| `Key` | **string* | :heavy_minus_sign: | N/A | /library/sections/1/label |
| `Title` | **string* | :heavy_minus_sign: | N/A | Labels |
| `Type` | **string* | :heavy_minus_sign: | N/A | filter |

View File

@@ -0,0 +1,15 @@
# GetBandwidthStatisticsAccount
## Fields
| Field | Type | Required | Description | Example |
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
| `ID` | **int* | :heavy_minus_sign: | N/A | 238960586 |
| `Key` | **string* | :heavy_minus_sign: | N/A | /accounts/238960586 |
| `Name` | **string* | :heavy_minus_sign: | N/A | Diane |
| `DefaultAudioLanguage` | **string* | :heavy_minus_sign: | N/A | en |
| `AutoSelectAudio` | **bool* | :heavy_minus_sign: | N/A | true |
| `DefaultSubtitleLanguage` | **string* | :heavy_minus_sign: | N/A | en |
| `SubtitleMode` | **int* | :heavy_minus_sign: | N/A | 1 |
| `Thumb` | **string* | :heavy_minus_sign: | N/A | https://plex.tv/users/50d83634246da1de/avatar?c=1707110967 |

View File

@@ -0,0 +1,12 @@
# GetBandwidthStatisticsDevice
## Fields
| Field | Type | Required | Description | Example |
| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- |
| `ID` | **int* | :heavy_minus_sign: | N/A | 208 |
| `Name` | **string* | :heavy_minus_sign: | N/A | Roku Express |
| `Platform` | **string* | :heavy_minus_sign: | N/A | Roku |
| `ClientIdentifier` | **string* | :heavy_minus_sign: | N/A | 793095d235660625108ef785cc7646e9 |
| `CreatedAt` | **int* | :heavy_minus_sign: | N/A | 1706470556 |

View File

@@ -0,0 +1,11 @@
# GetBandwidthStatisticsMediaContainer
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ |
| `Size` | **int* | :heavy_minus_sign: | N/A | 5497 |
| `Device` | [][operations.GetBandwidthStatisticsDevice](../../models/operations/getbandwidthstatisticsdevice.md) | :heavy_minus_sign: | N/A | |
| `Account` | [][operations.GetBandwidthStatisticsAccount](../../models/operations/getbandwidthstatisticsaccount.md) | :heavy_minus_sign: | N/A | |
| `StatisticsBandwidth` | [][operations.StatisticsBandwidth](../../models/operations/statisticsbandwidth.md) | :heavy_minus_sign: | N/A | |

View File

@@ -0,0 +1,8 @@
# GetBandwidthStatisticsRequest
## Fields
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| `Timespan` | **int64* | :heavy_minus_sign: | The timespan to retrieve statistics for<br/>the exact meaning of this parameter is not known<br/> | 4 |

View File

@@ -0,0 +1,11 @@
# GetBandwidthStatisticsResponse
## 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.GetBandwidthStatisticsResponseBody](../../models/operations/getbandwidthstatisticsresponsebody.md) | :heavy_minus_sign: | Bandwidth Statistics |

View File

@@ -0,0 +1,10 @@
# GetBandwidthStatisticsResponseBody
Bandwidth Statistics
## Fields
| Field | Type | Required | Description |
| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `MediaContainer` | [*operations.GetBandwidthStatisticsMediaContainer](../../models/operations/getbandwidthstatisticsmediacontainer.md) | :heavy_minus_sign: | N/A |

View File

@@ -0,0 +1,11 @@
# GetHomeDataResponse
## 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.GetHomeDataResponseBody](../../models/operations/gethomedataresponsebody.md) | :heavy_minus_sign: | Home Data |

View File

@@ -0,0 +1,15 @@
# GetHomeDataResponseBody
Home Data
## Fields
| Field | Type | Required | Description | Example |
| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
| `ID` | **float64* | :heavy_minus_sign: | N/A | 1841489 |
| `Name` | **string* | :heavy_minus_sign: | N/A | Blindkitty38's home |
| `GuestUserID` | **float64* | :heavy_minus_sign: | N/A | 58815432 |
| `GuestUserUUID` | **string* | :heavy_minus_sign: | N/A | f3df4e01bfca0787 |
| `GuestEnabled` | **bool* | :heavy_minus_sign: | N/A | |
| `Subscription` | **bool* | :heavy_minus_sign: | N/A | |

View File

@@ -0,0 +1,12 @@
# GetLibraryFilter
## Fields
| Field | Type | Required | Description | Example |
| ------------------------- | ------------------------- | ------------------------- | ------------------------- | ------------------------- |
| `Filter` | **string* | :heavy_minus_sign: | N/A | label |
| `FilterType` | **string* | :heavy_minus_sign: | N/A | string |
| `Key` | **string* | :heavy_minus_sign: | N/A | /library/sections/1/label |
| `Title` | **string* | :heavy_minus_sign: | N/A | Labels |
| `Type` | **string* | :heavy_minus_sign: | N/A | filter |

View File

@@ -9,7 +9,7 @@
| `AllowSync` | **bool* | :heavy_minus_sign: | N/A | true | | `AllowSync` | **bool* | :heavy_minus_sign: | N/A | true |
| `Art` | **string* | :heavy_minus_sign: | N/A | /:/resources/movie-fanart.jpg | | `Art` | **string* | :heavy_minus_sign: | N/A | /:/resources/movie-fanart.jpg |
| `Identifier` | **string* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library | | `Identifier` | **string* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
| `LibrarySectionID` | **int* | :heavy_minus_sign: | N/A | 1 | | `LibrarySectionID` | [*operations.LibrarySectionID](../../models/operations/librarysectionid.md) | :heavy_minus_sign: | N/A | |
| `LibrarySectionTitle` | **string* | :heavy_minus_sign: | N/A | Movies | | `LibrarySectionTitle` | **string* | :heavy_minus_sign: | N/A | Movies |
| `LibrarySectionUUID` | **string* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 | | `LibrarySectionUUID` | **string* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 |
| `MediaTagPrefix` | **string* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ | | `MediaTagPrefix` | **string* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |

View File

@@ -5,5 +5,6 @@
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- |
| `SectionID` | *int64* | :heavy_check_mark: | the Id of the library to query | 1 | | `SectionID` | *any* | :heavy_check_mark: | the Id of the library to query | |
| `Tag` | [operations.Tag](../../models/operations/tag.md) | :heavy_check_mark: | A key representing a specific tag within the section. | | | `Tag` | [operations.Tag](../../models/operations/tag.md) | :heavy_check_mark: | A key representing a specific tag within the section. | |
| `IncludeGuids` | **int64* | :heavy_minus_sign: | Adds the Guids object to the response<br/> | 1 |

View File

@@ -3,12 +3,12 @@
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| `Key` | **string* | :heavy_minus_sign: | N/A | /library/sections/1/all?type=1 | | `Key` | **string* | :heavy_minus_sign: | N/A | /library/sections/1/all?type=1 |
| `Type` | **string* | :heavy_minus_sign: | N/A | movie | | `Type` | **string* | :heavy_minus_sign: | N/A | movie |
| `Title` | **string* | :heavy_minus_sign: | N/A | Movies | | `Title` | **string* | :heavy_minus_sign: | N/A | Movies |
| `Active` | **bool* | :heavy_minus_sign: | N/A | false | | `Active` | **bool* | :heavy_minus_sign: | N/A | false |
| `Filter` | [][operations.Filter](../../models/operations/filter.md) | :heavy_minus_sign: | N/A | | | `Filter` | [][operations.GetLibraryFilter](../../models/operations/getlibraryfilter.md) | :heavy_minus_sign: | N/A | |
| `Sort` | [][operations.Sort](../../models/operations/sort.md) | :heavy_minus_sign: | N/A | | | `Sort` | [][operations.Sort](../../models/operations/sort.md) | :heavy_minus_sign: | N/A | |
| `Field` | [][operations.Field](../../models/operations/field.md) | :heavy_minus_sign: | N/A | | | `Field` | [][operations.Field](../../models/operations/field.md) | :heavy_minus_sign: | N/A | |

View File

@@ -3,6 +3,7 @@
## Fields ## Fields
| Field | Type | Required | Description | | Field | Type | Required | Description |
| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| `RatingKey` | *float64* | :heavy_check_mark: | the id of the library item to return the children of. | | `RatingKey` | *float64* | :heavy_check_mark: | the id of the library item to return the children of. |
| `IncludeElements` | **string* | :heavy_minus_sign: | Adds additional elements to the response. Supported types are (Stream)<br/> |

View File

@@ -5,4 +5,4 @@
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `XPlexClientIdentifier` | *string* | :heavy_check_mark: | The unique identifier for the client application<br/>This is used to track the client application and its usage<br/>(UUID, serial number, or other number unique per device)<br/> | Postman | | `XPlexClientIdentifier` | **string* | :heavy_minus_sign: | The unique identifier for the client application<br/>This is used to track the client application and its usage<br/>(UUID, serial number, or other number unique per device)<br/> | Postman |

View File

@@ -6,4 +6,5 @@
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Strong` | **bool* | :heavy_minus_sign: | Determines the kind of code returned by the API call<br/>Strong codes are used for Pin authentication flows<br/>Non-Strong codes are used for `Plex.tv/link`<br/> | | | `Strong` | **bool* | :heavy_minus_sign: | Determines the kind of code returned by the API call<br/>Strong codes are used for Pin authentication flows<br/>Non-Strong codes are used for `Plex.tv/link`<br/> | |
| `XPlexClientIdentifier` | **string* | :heavy_minus_sign: | The unique identifier for the client application<br/>This is used to track the client application and its usage<br/>(UUID, serial number, or other number unique per device)<br/> | Postman | | `XPlexClientIdentifier` | **string* | :heavy_minus_sign: | The unique identifier for the client application<br/>This is used to track the client application and its usage<br/>(UUID, serial number, or other number unique per device)<br/> | Postman |
| `XPlexProduct` | *string* | :heavy_check_mark: | Product name of the application shown in the list of devices<br/> | Postman |

View File

@@ -18,4 +18,4 @@ The Pin
| `CreatedAt` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A | 2023-04-12 17:00:03 +0000 UTC | | `CreatedAt` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A | 2023-04-12 17:00:03 +0000 UTC |
| `ExpiresAt` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A | 2023-04-12 17:30:03 +0000 UTC | | `ExpiresAt` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A | 2023-04-12 17:30:03 +0000 UTC |
| `AuthToken` | **string* | :heavy_minus_sign: | N/A | | | `AuthToken` | **string* | :heavy_minus_sign: | N/A | |
| `NewRegistration` | **string* | :heavy_minus_sign: | N/A | | | `NewRegistration` | **bool* | :heavy_minus_sign: | N/A | |

View File

@@ -3,12 +3,12 @@
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| `Size` | **float64* | :heavy_minus_sign: | N/A | 50 | | `Size` | **float64* | :heavy_minus_sign: | N/A | 50 |
| `AllowSync` | **bool* | :heavy_minus_sign: | N/A | | | `AllowSync` | **bool* | :heavy_minus_sign: | N/A | |
| `Identifier` | **string* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library | | `Identifier` | **string* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
| `MediaTagPrefix` | **string* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ | | `MediaTagPrefix` | **string* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |
| `MediaTagVersion` | **float64* | :heavy_minus_sign: | N/A | 1680021154 | | `MediaTagVersion` | **float64* | :heavy_minus_sign: | N/A | 1680021154 |
| `MixedParents` | **bool* | :heavy_minus_sign: | N/A | | | `MixedParents` | **bool* | :heavy_minus_sign: | N/A | |
| `Metadata` | [][operations.Metadata](../../models/operations/metadata.md) | :heavy_minus_sign: | N/A | | | `Metadata` | [][operations.GetRecentlyAddedMetadata](../../models/operations/getrecentlyaddedmetadata.md) | :heavy_minus_sign: | N/A | |

View File

@@ -0,0 +1,39 @@
# GetRecentlyAddedMetadata
## Fields
| Field | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `AllowSync` | **bool* | :heavy_minus_sign: | N/A | |
| `LibrarySectionID` | **float64* | :heavy_minus_sign: | N/A | 1 |
| `LibrarySectionTitle` | **string* | :heavy_minus_sign: | N/A | Movies |
| `LibrarySectionUUID` | **string* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 |
| `RatingKey` | **float64* | :heavy_minus_sign: | N/A | 59398 |
| `Key` | **string* | :heavy_minus_sign: | N/A | /library/metadata/59398 |
| `GUID` | **string* | :heavy_minus_sign: | N/A | plex://movie/5e161a83bea6ac004126e148 |
| `Studio` | **string* | :heavy_minus_sign: | N/A | Marvel Studios |
| `Type` | **string* | :heavy_minus_sign: | N/A | movie |
| `Title` | **string* | :heavy_minus_sign: | N/A | Ant-Man and the Wasp: Quantumania |
| `ContentRating` | **string* | :heavy_minus_sign: | N/A | PG-13 |
| `Summary` | **string* | :heavy_minus_sign: | N/A | Scott Lang and Hope Van Dyne along with Hank Pym and Janet Van Dyne explore the Quantum Realm where they interact with strange creatures and embark on an adventure that goes beyond the limits of what they thought was possible. |
| `Rating` | **float64* | :heavy_minus_sign: | N/A | 4.7 |
| `AudienceRating` | **float64* | :heavy_minus_sign: | N/A | 8.3 |
| `Year` | **float64* | :heavy_minus_sign: | N/A | 2023 |
| `Tagline` | **string* | :heavy_minus_sign: | N/A | Witness the beginning of a new dynasty. |
| `Thumb` | **string* | :heavy_minus_sign: | N/A | /library/metadata/59398/thumb/1681888010 |
| `Art` | **string* | :heavy_minus_sign: | N/A | /library/metadata/59398/art/1681888010 |
| `Duration` | **float64* | :heavy_minus_sign: | N/A | 7474422 |
| `OriginallyAvailableAt` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A | 2023-02-15 00:00:00 +0000 UTC |
| `AddedAt` | **float64* | :heavy_minus_sign: | N/A | 1681803215 |
| `UpdatedAt` | **float64* | :heavy_minus_sign: | N/A | 1681888010 |
| `AudienceRatingImage` | **string* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright |
| `ChapterSource` | **string* | :heavy_minus_sign: | N/A | media |
| `PrimaryExtraKey` | **string* | :heavy_minus_sign: | N/A | /library/metadata/59399 |
| `RatingImage` | **string* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.rotten |
| `Media` | [][operations.Media](../../models/operations/media.md) | :heavy_minus_sign: | N/A | |
| `Genre` | [][operations.Genre](../../models/operations/genre.md) | :heavy_minus_sign: | N/A | |
| `Director` | [][operations.Director](../../models/operations/director.md) | :heavy_minus_sign: | N/A | |
| `Writer` | [][operations.Writer](../../models/operations/writer.md) | :heavy_minus_sign: | N/A | |
| `Country` | [][operations.Country](../../models/operations/country.md) | :heavy_minus_sign: | N/A | |
| `Role` | [][operations.Role](../../models/operations/role.md) | :heavy_minus_sign: | N/A | |

View File

@@ -0,0 +1,9 @@
# GetResourcesStatisticsMediaContainer
## Fields
| Field | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| `Size` | **int* | :heavy_minus_sign: | N/A | 5497 |
| `StatisticsResources` | [][operations.StatisticsResources](../../models/operations/statisticsresources.md) | :heavy_minus_sign: | N/A | |

View File

@@ -0,0 +1,8 @@
# GetResourcesStatisticsRequest
## Fields
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| `Timespan` | **int64* | :heavy_minus_sign: | The timespan to retrieve statistics for<br/>the exact meaning of this parameter is not known<br/> | 4 |

View File

@@ -0,0 +1,11 @@
# GetResourcesStatisticsResponse
## 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.GetResourcesStatisticsResponseBody](../../models/operations/getresourcesstatisticsresponsebody.md) | :heavy_minus_sign: | Resource Statistics |

View File

@@ -0,0 +1,10 @@
# GetResourcesStatisticsResponseBody
Resource Statistics
## Fields
| Field | Type | Required | Description |
| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `MediaContainer` | [*operations.GetResourcesStatisticsMediaContainer](../../models/operations/getresourcesstatisticsmediacontainer.md) | :heavy_minus_sign: | N/A |

View File

@@ -0,0 +1,11 @@
# GetSessionHistoryRequest
## Fields
| Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Sort` | **string* | :heavy_minus_sign: | Sorts the results by the specified field followed by the direction (asc, desc)<br/> | |
| `AccountID` | **int64* | :heavy_minus_sign: | Filter results by those that are related to a specific users id<br/> | 1 |
| `Filter` | [*operations.Filter](../../models/operations/filter.md) | :heavy_minus_sign: | Filters content by field and direction/equality<br/>(Unknown if viewedAt is the only supported column)<br/> | {<br/>"viewed-at-greater-than": {<br/>"value": "viewedAt\u003e"<br/>},<br/>"viewed-at-greater-than-or-equal-to": {<br/>"value": "viewedAt\u003e=\u003e"<br/>},<br/>"viewed-at-less-than": {<br/>"value": "viewedAt\u003c"<br/>}<br/>} |
| `LibrarySectionID` | **int64* | :heavy_minus_sign: | Filters the results based on the id of a valid library section<br/> | 12 |

View File

@@ -39,6 +39,6 @@
| `UpdatedAt` | **int* | :heavy_minus_sign: | N/A | 1705543314 | | `UpdatedAt` | **int* | :heavy_minus_sign: | N/A | 1705543314 |
| `ViewOffset` | **int* | :heavy_minus_sign: | N/A | 1000 | | `ViewOffset` | **int* | :heavy_minus_sign: | N/A | 1000 |
| `Media` | [][operations.GetSessionsMedia](../../models/operations/getsessionsmedia.md) | :heavy_minus_sign: | N/A | | | `Media` | [][operations.GetSessionsMedia](../../models/operations/getsessionsmedia.md) | :heavy_minus_sign: | N/A | |
| `User` | [*operations.User](../../models/operations/user.md) | :heavy_minus_sign: | N/A | | | `User` | [*operations.GetSessionsUser](../../models/operations/getsessionsuser.md) | :heavy_minus_sign: | N/A | |
| `Player` | [*operations.Player](../../models/operations/player.md) | :heavy_minus_sign: | N/A | | | `Player` | [*operations.Player](../../models/operations/player.md) | :heavy_minus_sign: | N/A | |
| `Session` | [*operations.Session](../../models/operations/session.md) | :heavy_minus_sign: | N/A | | | `Session` | [*operations.Session](../../models/operations/session.md) | :heavy_minus_sign: | N/A | |

View File

@@ -0,0 +1,10 @@
# GetSessionsUser
## Fields
| Field | Type | Required | Description | Example |
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
| `ID` | **string* | :heavy_minus_sign: | N/A | 1 |
| `Thumb` | **string* | :heavy_minus_sign: | N/A | https://plex.tv/users/844780fc6f8a26b5/avatar?c=1705853661 |
| `Title` | **string* | :heavy_minus_sign: | N/A | Blindkitty38 |

View File

@@ -5,4 +5,4 @@
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `XPlexClientIdentifier` | *string* | :heavy_check_mark: | The unique identifier for the client application<br/>This is used to track the client application and its usage<br/>(UUID, serial number, or other number unique per device)<br/> | Postman | | `XPlexClientIdentifier` | **string* | :heavy_minus_sign: | The unique identifier for the client application<br/>This is used to track the client application and its usage<br/>(UUID, serial number, or other number unique per device)<br/> | Postman |

View File

@@ -0,0 +1,17 @@
# GetTokenLocation
## Fields
| Field | Type | Required | Description | Example |
| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
| `Code` | **string* | :heavy_minus_sign: | N/A | US |
| `EuropeanUnionMember` | **bool* | :heavy_minus_sign: | N/A | |
| `ContinentCode` | **string* | :heavy_minus_sign: | N/A | NA |
| `Country` | **string* | :heavy_minus_sign: | N/A | United States |
| `City` | **string* | :heavy_minus_sign: | N/A | Austin |
| `TimeZone` | **string* | :heavy_minus_sign: | N/A | America/Chicago |
| `PostalCode` | **string* | :heavy_minus_sign: | N/A | 78732 |
| `InPrivacyRestrictedCountry` | **bool* | :heavy_minus_sign: | N/A | |
| `Subdivisions` | **string* | :heavy_minus_sign: | N/A | Texas |
| `Coordinates` | **string* | :heavy_minus_sign: | N/A | 30.3768 -97.8935 |

View File

@@ -3,8 +3,9 @@
## Fields ## Fields
| Field | Type | Required | Description | | Field | Type | Required | Description |
| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation | | `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code 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 | | `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
| `Object` | [*operations.GetTokenResponseBody](../../models/operations/gettokenresponsebody.md) | :heavy_minus_sign: | Access Token |

View File

@@ -0,0 +1,21 @@
# GetTokenResponseBody
Access Token
## Fields
| Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ID` | **float64* | :heavy_minus_sign: | PinID for use with authentication | 1272322473 |
| `Code` | **string* | :heavy_minus_sign: | N/A | 3patfx1a78ukcbr7x0n9bl26t |
| `Product` | **string* | :heavy_minus_sign: | N/A | Plex Web |
| `Trusted` | **bool* | :heavy_minus_sign: | N/A | |
| `Qr` | **string* | :heavy_minus_sign: | a link to a QR code hosted on plex.tv <br/>The QR code redirects to the relevant `plex.tv/link` authentication page<br/>Which then prompts the user for the 4 Digit Link Pin<br/> | https://plex.tv/api/v2/pins/qr/3patfx1a78ukcbr7x0n9bl26t |
| `ClientIdentifier` | **string* | :heavy_minus_sign: | N/A | Postman |
| `Location` | [*operations.GetTokenLocation](../../models/operations/gettokenlocation.md) | :heavy_minus_sign: | N/A | |
| `ExpiresIn` | **float64* | :heavy_minus_sign: | N/A | 1800 |
| `CreatedAt` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A | 2023-04-12 17:00:03 +0000 UTC |
| `ExpiresAt` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A | 2023-04-12 17:30:03 +0000 UTC |
| `AuthToken` | **string* | :heavy_minus_sign: | N/A | |
| `NewRegistration` | **string* | :heavy_minus_sign: | N/A | |

View File

@@ -0,0 +1,10 @@
# GetTopWatchedContentCountry
## Fields
| Field | Type | Required | Description | Example |
| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ |
| `ID` | **int* | :heavy_minus_sign: | N/A | 116 |
| `Filter` | **string* | :heavy_minus_sign: | N/A | country=116 |
| `Tag` | **string* | :heavy_minus_sign: | N/A | United States of America |

View File

@@ -0,0 +1,10 @@
# GetTopWatchedContentGenre
## Fields
| Field | Type | Required | Description | Example |
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
| `ID` | **int* | :heavy_minus_sign: | N/A | 184 |
| `Filter` | **string* | :heavy_minus_sign: | N/A | genre=184 |
| `Tag` | **string* | :heavy_minus_sign: | N/A | Thriller |

View File

@@ -0,0 +1,8 @@
# GetTopWatchedContentGuids
## Fields
| Field | Type | Required | Description | Example |
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
| `ID` | **string* | :heavy_minus_sign: | N/A | tvdb://2337 |

View File

@@ -0,0 +1,13 @@
# GetTopWatchedContentMediaContainer
## Fields
| Field | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| `Size` | **int* | :heavy_minus_sign: | N/A | 1 |
| `AllowSync` | **bool* | :heavy_minus_sign: | N/A | true |
| `Identifier` | **string* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
| `MediaTagPrefix` | **string* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |
| `MediaTagVersion` | **int* | :heavy_minus_sign: | N/A | 1698860922 |
| `Metadata` | [][operations.GetTopWatchedContentMetadata](../../models/operations/gettopwatchedcontentmetadata.md) | :heavy_minus_sign: | N/A | |

View File

@@ -0,0 +1,39 @@
# GetTopWatchedContentMetadata
## Fields
| Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `RatingKey` | **string* | :heavy_minus_sign: | N/A | 17 |
| `Key` | **string* | :heavy_minus_sign: | N/A | /library/metadata/17 |
| `GUID` | **string* | :heavy_minus_sign: | N/A | plex://movie/5d77683f6f4521001ea9dc53 |
| `Slug` | **string* | :heavy_minus_sign: | N/A | waterloo-road |
| `Studio` | **string* | :heavy_minus_sign: | N/A | Universal Pictures |
| `Type` | **string* | :heavy_minus_sign: | N/A | movie |
| `Title` | **string* | :heavy_minus_sign: | N/A | Serenity |
| `LibrarySectionTitle` | **string* | :heavy_minus_sign: | N/A | Movies |
| `LibrarySectionID` | **int* | :heavy_minus_sign: | N/A | 1 |
| `LibrarySectionKey` | **string* | :heavy_minus_sign: | N/A | /library/sections/1 |
| `ContentRating` | **string* | :heavy_minus_sign: | N/A | PG-13 |
| `Summary` | **string* | :heavy_minus_sign: | N/A | Serenity continues the story of the TV series it was based upon ("Firefly"). River Tam had a secret - one in which she's not even aware - so dangerous, no one's safe, as an Alliance operative's sent to capture her, and all others are considered irrelevant to his job. |
| `Index` | **int64* | :heavy_minus_sign: | N/A | 1 |
| `AudienceRating` | **float64* | :heavy_minus_sign: | N/A | 9.1 |
| `Year` | **int* | :heavy_minus_sign: | N/A | 2005 |
| `Tagline` | **string* | :heavy_minus_sign: | N/A | They aim to misbehave. |
| `Thumb` | **string* | :heavy_minus_sign: | N/A | /library/metadata/17/thumb/1705637165 |
| `Art` | **string* | :heavy_minus_sign: | N/A | /library/metadata/17/art/1705637165 |
| `Duration` | **int* | :heavy_minus_sign: | N/A | 141417 |
| `OriginallyAvailableAt` | [*types.Date](../../types/date.md) | :heavy_minus_sign: | N/A | 2005-09-29 00:00:00 +0000 UTC |
| `LeafCount` | **int64* | :heavy_minus_sign: | N/A | 222 |
| `ViewedLeafCount` | **int64* | :heavy_minus_sign: | N/A | 100 |
| `ChildCount` | **int64* | :heavy_minus_sign: | N/A | 13 |
| `AddedAt` | **int* | :heavy_minus_sign: | N/A | 1705637164 |
| `UpdatedAt` | **int* | :heavy_minus_sign: | N/A | 1705637165 |
| `GlobalViewCount` | **int64* | :heavy_minus_sign: | N/A | 80 |
| `AudienceRatingImage` | **string* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright |
| `Genre` | [][operations.GetTopWatchedContentGenre](../../models/operations/gettopwatchedcontentgenre.md) | :heavy_minus_sign: | N/A | |
| `Country` | [][operations.GetTopWatchedContentCountry](../../models/operations/gettopwatchedcontentcountry.md) | :heavy_minus_sign: | N/A | |
| `Guids` | [][operations.GetTopWatchedContentGuids](../../models/operations/gettopwatchedcontentguids.md) | :heavy_minus_sign: | N/A | |
| `Role` | [][operations.GetTopWatchedContentRole](../../models/operations/gettopwatchedcontentrole.md) | :heavy_minus_sign: | N/A | |
| `User` | [][operations.User](../../models/operations/user.md) | :heavy_minus_sign: | N/A | |

View File

@@ -0,0 +1,9 @@
# GetTopWatchedContentRequest
## Fields
| Field | Type | Required | Description | Example |
| --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- |
| `Type` | *int64* | :heavy_check_mark: | the library type (1 - movies, 2 - shows, 3 - music) | |
| `IncludeGuids` | **int64* | :heavy_minus_sign: | Adds the Guids object to the response<br/> | 1 |

View File

@@ -0,0 +1,11 @@
# GetTopWatchedContentResponse
## 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.GetTopWatchedContentResponseBody](../../models/operations/gettopwatchedcontentresponsebody.md) | :heavy_minus_sign: | The metadata of the library item. |

View File

@@ -0,0 +1,10 @@
# GetTopWatchedContentResponseBody
The metadata of the library item.
## Fields
| Field | Type | Required | Description |
| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| `MediaContainer` | [*operations.GetTopWatchedContentMediaContainer](../../models/operations/gettopwatchedcontentmediacontainer.md) | :heavy_minus_sign: | N/A |

View File

@@ -0,0 +1,13 @@
# GetTopWatchedContentRole
## Fields
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| `ID` | **int* | :heavy_minus_sign: | N/A | 220 |
| `Filter` | **string* | :heavy_minus_sign: | N/A | actor=220 |
| `Tag` | **string* | :heavy_minus_sign: | N/A | Dennis Keiffer |
| `TagKey` | **string* | :heavy_minus_sign: | N/A | 5d77683554f42c001f8c4708 |
| `Role` | **string* | :heavy_minus_sign: | N/A | Bar Guy (uncredited) |
| `Thumb` | **string* | :heavy_minus_sign: | N/A | https://metadata-static.plex.tv/6/people/648e9a7ea1d537bccfcd7615134b78ce.jpg |

View File

@@ -0,0 +1,16 @@
# GetWatchlistRequest
## Fields
| Field | Type | Required | Description |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Filter` | [operations.PathParamFilter](../../models/operations/pathparamfilter.md) | :heavy_check_mark: | Filter |
| `Sort` | **string* | :heavy_minus_sign: | In the format "field:dir". Available fields are "watchlistedAt" (Added At),<br/>"titleSort" (Title), "originallyAvailableAt" (Release Date), or "rating" (Critic Rating).<br/>"dir" can be "asc" or "desc"<br/> |
| `Libtype` | [*operations.Libtype](../../models/operations/libtype.md) | :heavy_minus_sign: | The type of library to filter. Can be "movie" or "show", or all if not present.<br/> |
| `Maxresults` | **int* | :heavy_minus_sign: | The number of items to return. If not specified, all items will be returned.<br/>If the number of items exceeds the limit, the response will be paginated.<br/> |
| `IncludeCollections` | [*operations.IncludeCollections](../../models/operations/includecollections.md) | :heavy_minus_sign: | include collections in the results<br/> |
| `IncludeExternalMedia` | [*operations.IncludeExternalMedia](../../models/operations/includeexternalmedia.md) | :heavy_minus_sign: | include external media in the results<br/> |
| `XPlexToken` | *string* | :heavy_check_mark: | User Token |
| `XPlexContainerStart` | **int* | :heavy_minus_sign: | The index of the first item to return. If not specified, the first item will be returned.<br/>If the number of items exceeds the limit, the response will be paginated.<br/> |
| `XPlexContainerSize` | **int* | :heavy_minus_sign: | The number of items to return. If not specified, all items will be returned.<br/>If the number of items exceeds the limit, the response will be paginated.<br/> |

View File

@@ -0,0 +1,11 @@
# GetWatchlistResponse
## 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.GetWatchlistResponseBody](../../models/operations/getwatchlistresponsebody.md) | :heavy_minus_sign: | Watchlist Data |

View File

@@ -0,0 +1,16 @@
# GetWatchlistResponseBody
Watchlist Data
## Fields
| Field | Type | Required | Description |
| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| `LibrarySectionID` | **string* | :heavy_minus_sign: | N/A |
| `LibrarySectionTitle` | **string* | :heavy_minus_sign: | N/A |
| `Offset` | **int* | :heavy_minus_sign: | N/A |
| `TotalSize` | **int* | :heavy_minus_sign: | N/A |
| `Identifier` | **string* | :heavy_minus_sign: | N/A |
| `Size` | **int* | :heavy_minus_sign: | N/A |
| `Metadata` | [][operations.Metadata](../../models/operations/metadata.md) | :heavy_minus_sign: | N/A |

View File

@@ -0,0 +1,10 @@
# Image
## Fields
| Field | Type | Required | Description |
| ------------------ | ------------------ | ------------------ | ------------------ |
| `Alt` | **string* | :heavy_minus_sign: | N/A |
| `Type` | **string* | :heavy_minus_sign: | N/A |
| `URL` | **string* | :heavy_minus_sign: | N/A |

View File

@@ -0,0 +1,12 @@
# IncludeCollections
include collections in the results
## Values
| Name | Value |
| ------------------------ | ------------------------ |
| `IncludeCollectionsOne` | 1 |
| `IncludeCollectionsZero` | 0 |

View File

@@ -0,0 +1,12 @@
# IncludeExternalMedia
include external media in the results
## Values
| Name | Value |
| -------------------------- | -------------------------- |
| `IncludeExternalMediaOne` | 1 |
| `IncludeExternalMediaZero` | 0 |

View File

@@ -0,0 +1,17 @@
# LibrarySectionID
## Supported Types
###
```go
librarySectionID := operations.CreateLibrarySectionIDInteger(int64{/* values here */})
```
###
```go
librarySectionID := operations.CreateLibrarySectionIDStr(string{/* values here */})
```

View File

@@ -0,0 +1,12 @@
# Libtype
The type of library to filter. Can be "movie" or "show", or all if not present.
## Values
| Name | Value |
| -------------- | -------------- |
| `LibtypeMovie` | movie |
| `LibtypeShow` | show |

View File

@@ -11,7 +11,7 @@
| `Country` | **string* | :heavy_minus_sign: | N/A | United States | | `Country` | **string* | :heavy_minus_sign: | N/A | United States |
| `City` | **string* | :heavy_minus_sign: | N/A | Austin | | `City` | **string* | :heavy_minus_sign: | N/A | Austin |
| `TimeZone` | **string* | :heavy_minus_sign: | N/A | America/Chicago | | `TimeZone` | **string* | :heavy_minus_sign: | N/A | America/Chicago |
| `PostalCode` | **float64* | :heavy_minus_sign: | N/A | 78732 | | `PostalCode` | **string* | :heavy_minus_sign: | N/A | 78732 |
| `InPrivacyRestrictedCountry` | **bool* | :heavy_minus_sign: | N/A | | | `InPrivacyRestrictedCountry` | **bool* | :heavy_minus_sign: | N/A | |
| `Subdivisions` | **string* | :heavy_minus_sign: | N/A | Texas | | `Subdivisions` | **string* | :heavy_minus_sign: | N/A | Texas |
| `Coordinates` | **string* | :heavy_minus_sign: | N/A | 30.3768 -97.8935 | | `Coordinates` | **string* | :heavy_minus_sign: | N/A | 30.3768 -97.8935 |

View File

@@ -3,37 +3,40 @@
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ |
| `AllowSync` | **bool* | :heavy_minus_sign: | N/A | | | `Art` | **string* | :heavy_minus_sign: | N/A |
| `LibrarySectionID` | **float64* | :heavy_minus_sign: | N/A | 1 | | `GUID` | **string* | :heavy_minus_sign: | N/A |
| `LibrarySectionTitle` | **string* | :heavy_minus_sign: | N/A | Movies | | `Key` | **string* | :heavy_minus_sign: | N/A |
| `LibrarySectionUUID` | **string* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 | | `RatingKey` | **string* | :heavy_minus_sign: | N/A |
| `RatingKey` | **float64* | :heavy_minus_sign: | N/A | 59398 | | `Studio` | **string* | :heavy_minus_sign: | N/A |
| `Key` | **string* | :heavy_minus_sign: | N/A | /library/metadata/59398 | | `Tagline` | **string* | :heavy_minus_sign: | N/A |
| `GUID` | **string* | :heavy_minus_sign: | N/A | plex://movie/5e161a83bea6ac004126e148 | | `Type` | **string* | :heavy_minus_sign: | N/A |
| `Studio` | **string* | :heavy_minus_sign: | N/A | Marvel Studios | | `Thumb` | **string* | :heavy_minus_sign: | N/A |
| `Type` | **string* | :heavy_minus_sign: | N/A | movie | | `AddedAt` | **int* | :heavy_minus_sign: | N/A |
| `Title` | **string* | :heavy_minus_sign: | N/A | Ant-Man and the Wasp: Quantumania | | `Duration` | **int* | :heavy_minus_sign: | N/A |
| `ContentRating` | **string* | :heavy_minus_sign: | N/A | PG-13 | | `PublicPagesURL` | **string* | :heavy_minus_sign: | N/A |
| `Summary` | **string* | :heavy_minus_sign: | N/A | Scott Lang and Hope Van Dyne along with Hank Pym and Janet Van Dyne explore the Quantum Realm where they interact with strange creatures and embark on an adventure that goes beyond the limits of what they thought was possible. | | `Slug` | **string* | :heavy_minus_sign: | N/A |
| `Rating` | **float64* | :heavy_minus_sign: | N/A | 4.7 | | `UserState` | **bool* | :heavy_minus_sign: | N/A |
| `AudienceRating` | **float64* | :heavy_minus_sign: | N/A | 8.3 | | `Title` | **string* | :heavy_minus_sign: | N/A |
| `Year` | **float64* | :heavy_minus_sign: | N/A | 2023 | | `ContentRating` | **string* | :heavy_minus_sign: | N/A |
| `Tagline` | **string* | :heavy_minus_sign: | N/A | Witness the beginning of a new dynasty. | | `OriginallyAvailableAt` | [*types.Date](../../types/date.md) | :heavy_minus_sign: | N/A |
| `Thumb` | **string* | :heavy_minus_sign: | N/A | /library/metadata/59398/thumb/1681888010 | | `Year` | **int* | :heavy_minus_sign: | N/A |
| `Art` | **string* | :heavy_minus_sign: | N/A | /library/metadata/59398/art/1681888010 | | `Image` | [][operations.Image](../../models/operations/image.md) | :heavy_minus_sign: | N/A |
| `Duration` | **float64* | :heavy_minus_sign: | N/A | 7474422 | | `Banner` | **string* | :heavy_minus_sign: | N/A |
| `OriginallyAvailableAt` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A | 2023-02-15 00:00:00 +0000 UTC | | `Rating` | **float64* | :heavy_minus_sign: | N/A |
| `AddedAt` | **float64* | :heavy_minus_sign: | N/A | 1681803215 | | `ExpiresAt` | **int* | :heavy_minus_sign: | N/A |
| `UpdatedAt` | **float64* | :heavy_minus_sign: | N/A | 1681888010 | | `OriginalTitle` | **string* | :heavy_minus_sign: | N/A |
| `AudienceRatingImage` | **string* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright | | `AudienceRating` | **float64* | :heavy_minus_sign: | N/A |
| `ChapterSource` | **string* | :heavy_minus_sign: | N/A | media | | `AudienceRatingImage` | **string* | :heavy_minus_sign: | N/A |
| `PrimaryExtraKey` | **string* | :heavy_minus_sign: | N/A | /library/metadata/59399 | | `RatingImage` | **string* | :heavy_minus_sign: | N/A |
| `RatingImage` | **string* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.rotten | | `ImdbRatingCount` | **int* | :heavy_minus_sign: | N/A |
| `Media` | [][operations.Media](../../models/operations/media.md) | :heavy_minus_sign: | N/A | | | `Subtype` | **string* | :heavy_minus_sign: | N/A |
| `Genre` | [][operations.Genre](../../models/operations/genre.md) | :heavy_minus_sign: | N/A | | | `Theme` | **string* | :heavy_minus_sign: | N/A |
| `Director` | [][operations.Director](../../models/operations/director.md) | :heavy_minus_sign: | N/A | | | `LeafCount` | **int* | :heavy_minus_sign: | N/A |
| `Writer` | [][operations.Writer](../../models/operations/writer.md) | :heavy_minus_sign: | N/A | | | `ChildCount` | **int* | :heavy_minus_sign: | N/A |
| `Country` | [][operations.Country](../../models/operations/country.md) | :heavy_minus_sign: | N/A | | | `IsContinuingSeries` | **bool* | :heavy_minus_sign: | N/A |
| `Role` | [][operations.Role](../../models/operations/role.md) | :heavy_minus_sign: | N/A | | | `SkipChildren` | **bool* | :heavy_minus_sign: | N/A |
| `AvailabilityID` | **string* | :heavy_minus_sign: | N/A |
| `StreamingMediaID` | **string* | :heavy_minus_sign: | N/A |
| `PlayableKey` | **string* | :heavy_minus_sign: | N/A |

View File

@@ -0,0 +1,12 @@
# PathParamFilter
Filter
## Values
| Name | Value |
| -------------------------- | -------------------------- |
| `PathParamFilterAll` | all |
| `PathParamFilterAvailable` | available |
| `PathParamFilterReleased` | released |

View File

@@ -0,0 +1,13 @@
# StatisticsBandwidth
## Fields
| Field | Type | Required | Description | Example |
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
| `AccountID` | **int* | :heavy_minus_sign: | N/A | 238960586 |
| `DeviceID` | **int* | :heavy_minus_sign: | N/A | |
| `Timespan` | **int64* | :heavy_minus_sign: | N/A | 6 |
| `At` | **int* | :heavy_minus_sign: | N/A | 1718387650 |
| `Lan` | **bool* | :heavy_minus_sign: | N/A | true |
| `Bytes` | **int64* | :heavy_minus_sign: | N/A | 22 |

View File

@@ -0,0 +1,13 @@
# StatisticsResources
## Fields
| Field | Type | Required | Description | Example |
| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -------------------------- |
| `Timespan` | **int64* | :heavy_minus_sign: | N/A | 6 |
| `At` | **int64* | :heavy_minus_sign: | N/A | 1718384427 |
| `HostCPUUtilization` | **float32* | :heavy_minus_sign: | N/A | 1.276 |
| `ProcessCPUUtilization` | **float32* | :heavy_minus_sign: | N/A | 0.025 |
| `HostMemoryUtilization` | **float32* | :heavy_minus_sign: | N/A | 17.026 |
| `ProcessMemoryUtilization` | **float32* | :heavy_minus_sign: | N/A | 0.493 |

View File

@@ -3,8 +3,6 @@
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
| `ID` | **string* | :heavy_minus_sign: | N/A | 1 | | `ID` | **int* | :heavy_minus_sign: | N/A | 220 |
| `Thumb` | **string* | :heavy_minus_sign: | N/A | https://plex.tv/users/844780fc6f8a26b5/avatar?c=1705853661 |
| `Title` | **string* | :heavy_minus_sign: | N/A | Blindkitty38 |

View File

@@ -0,0 +1,10 @@
# GetBandwidthStatisticsErrors
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
| `Code` | **float64* | :heavy_minus_sign: | N/A | 1001 |
| `Message` | **string* | :heavy_minus_sign: | N/A | User could not be authenticated |
| `Status` | **float64* | :heavy_minus_sign: | N/A | 401 |

View File

@@ -0,0 +1,11 @@
# GetBandwidthStatisticsResponseBody
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
## Fields
| Field | Type | Required | Description |
| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| `Errors` | [][sdkerrors.GetBandwidthStatisticsErrors](../../models/sdkerrors/getbandwidthstatisticserrors.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 |

View File

@@ -0,0 +1,10 @@
# GetHomeDataErrors
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
| `Code` | **float64* | :heavy_minus_sign: | N/A | 1001 |
| `Message` | **string* | :heavy_minus_sign: | N/A | User could not be authenticated |
| `Status` | **float64* | :heavy_minus_sign: | N/A | 401 |

View File

@@ -0,0 +1,11 @@
# GetHomeDataResponseBody
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
## Fields
| Field | Type | Required | Description |
| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| `Errors` | [][sdkerrors.GetHomeDataErrors](../../models/sdkerrors/gethomedataerrors.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 |

View File

@@ -0,0 +1,10 @@
# GetResourcesStatisticsErrors
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
| `Code` | **float64* | :heavy_minus_sign: | N/A | 1001 |
| `Message` | **string* | :heavy_minus_sign: | N/A | User could not be authenticated |
| `Status` | **float64* | :heavy_minus_sign: | N/A | 401 |

View File

@@ -0,0 +1,11 @@
# GetResourcesStatisticsResponseBody
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
## Fields
| Field | Type | Required | Description |
| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| `Errors` | [][sdkerrors.GetResourcesStatisticsErrors](../../models/sdkerrors/getresourcesstatisticserrors.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 |

View File

@@ -0,0 +1,10 @@
# GetWatchlistErrors
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
| `Code` | **float64* | :heavy_minus_sign: | N/A | 1001 |
| `Message` | **string* | :heavy_minus_sign: | N/A | User could not be authenticated |
| `Status` | **float64* | :heavy_minus_sign: | N/A | 401 |

View File

@@ -0,0 +1,11 @@
# GetWatchlistResponseBody
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
## Fields
| Field | Type | Required | Description |
| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
| `Errors` | [][sdkerrors.GetWatchlistErrors](../../models/sdkerrors/getwatchlisterrors.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 |

View File

@@ -18,6 +18,7 @@ API Calls interacting with Plex Media Server Libraries
* [SearchLibrary](#searchlibrary) - Search Library * [SearchLibrary](#searchlibrary) - Search Library
* [GetMetadata](#getmetadata) - Get Items Metadata * [GetMetadata](#getmetadata) - Get Items Metadata
* [GetMetadataChildren](#getmetadatachildren) - Get Items Children * [GetMetadataChildren](#getmetadatachildren) - Get Items Children
* [GetTopWatchedContent](#gettopwatchedcontent) - Get Top Watched Content
* [GetOnDeck](#getondeck) - Get On Deck * [GetOnDeck](#getondeck) - Get On Deck
## GetFileHash ## GetFileHash
@@ -352,11 +353,13 @@ func main() {
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"), plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
plexgo.WithXPlexClientIdentifier("Postman"), plexgo.WithXPlexClientIdentifier("Postman"),
) )
var sectionID int64 = 1 var sectionID any = "<value>"
var tag operations.Tag = operations.TagGenre var tag operations.Tag = operations.TagGenre
var includeGuids *int64 = plexgo.Int64(1)
ctx := context.Background() ctx := context.Background()
res, err := s.Library.GetLibraryItems(ctx, sectionID, tag) res, err := s.Library.GetLibraryItems(ctx, sectionID, tag, includeGuids)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
@@ -371,8 +374,9 @@ func main() {
| Parameter | Type | Required | Description | Example | | Parameter | Type | Required | Description | Example |
| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- |
| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | | | `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | |
| `sectionID` | *int64* | :heavy_check_mark: | the Id of the library to query | 1 | | `sectionID` | *any* | :heavy_check_mark: | the Id of the library to query | |
| `tag` | [operations.Tag](../../models/operations/tag.md) | :heavy_check_mark: | A key representing a specific tag within the section. | | | `tag` | [operations.Tag](../../models/operations/tag.md) | :heavy_check_mark: | A key representing a specific tag within the section. | |
| `includeGuids` | **int64* | :heavy_minus_sign: | Adds the Guids object to the response<br/> | 1 |
### Response ### Response
@@ -573,8 +577,10 @@ func main() {
plexgo.WithXPlexClientIdentifier("Postman"), plexgo.WithXPlexClientIdentifier("Postman"),
) )
var ratingKey float64 = 1539.14 var ratingKey float64 = 1539.14
var includeElements *string = plexgo.String("<value>")
ctx := context.Background() ctx := context.Background()
res, err := s.Library.GetMetadataChildren(ctx, ratingKey) res, err := s.Library.GetMetadataChildren(ctx, ratingKey, includeElements)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
@@ -586,10 +592,11 @@ func main() {
### Parameters ### Parameters
| Parameter | Type | Required | Description | | Parameter | Type | Required | Description |
| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | | `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
| `ratingKey` | *float64* | :heavy_check_mark: | the id of the library item to return the children of. | | `ratingKey` | *float64* | :heavy_check_mark: | the id of the library item to return the children of. |
| `includeElements` | **string* | :heavy_minus_sign: | Adds additional elements to the response. Supported types are (Stream)<br/> |
### Response ### Response
@@ -600,6 +607,57 @@ func main() {
| sdkerrors.GetMetadataChildrenResponseBody | 401 | application/json | | sdkerrors.GetMetadataChildrenResponseBody | 401 | application/json |
| sdkerrors.SDKError | 4xx-5xx | */* | | sdkerrors.SDKError | 4xx-5xx | */* |
## GetTopWatchedContent
This endpoint will return the top watched content from libraries of a certain type
### Example Usage
```go
package main
import(
"github.com/LukeHagar/plexgo"
"context"
"log"
)
func main() {
s := plexgo.New(
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
plexgo.WithXPlexClientIdentifier("Postman"),
)
var type_ int64 = 505531
var includeGuids *int64 = plexgo.Int64(1)
ctx := context.Background()
res, err := s.Library.GetTopWatchedContent(ctx, type_, includeGuids)
if err != nil {
log.Fatal(err)
}
if res.Object != nil {
// handle response
}
}
```
### Parameters
| Parameter | Type | Required | Description | Example |
| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- |
| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | |
| `type_` | *int64* | :heavy_check_mark: | the library type (1 - movies, 2 - shows, 3 - music) | |
| `includeGuids` | **int64* | :heavy_minus_sign: | Adds the Guids object to the response<br/> | 1 |
### Response
**[*operations.GetTopWatchedContentResponse](../../models/operations/gettopwatchedcontentresponse.md), error**
| Error Object | Status Code | Content Type |
| ------------------ | ------------------ | ------------------ |
| sdkerrors.SDKError | 4xx-5xx | */* |
## GetOnDeck ## GetOnDeck
This endpoint will return the on deck content. This endpoint will return the on deck content.

View File

@@ -8,9 +8,57 @@ API Calls that perform operations directly against https://Plex.tv
### Available Operations ### Available Operations
* [GetHomeData](#gethomedata) - Get Plex Home Data
* [GetPin](#getpin) - Get a Pin * [GetPin](#getpin) - Get a Pin
* [GetToken](#gettoken) - Get Access Token * [GetToken](#gettoken) - Get Access Token
## GetHomeData
Retrieves the home data for the authenticated user, including details like home ID, name, guest access information, and subscription status.
### Example Usage
```go
package main
import(
"github.com/LukeHagar/plexgo"
"context"
"log"
)
func main() {
s := plexgo.New(
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
plexgo.WithXPlexClientIdentifier("Postman"),
)
ctx := context.Background()
res, err := s.Plex.GetHomeData(ctx)
if err != nil {
log.Fatal(err)
}
if res.Object != nil {
// handle response
}
}
```
### Parameters
| Parameter | Type | Required | Description |
| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- |
| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
### Response
**[*operations.GetHomeDataResponse](../../models/operations/gethomedataresponse.md), error**
| Error Object | Status Code | Content Type |
| --------------------------------- | --------------------------------- | --------------------------------- |
| sdkerrors.GetHomeDataResponseBody | 401 | application/json |
| sdkerrors.SDKError | 4xx-5xx | */* |
## GetPin ## GetPin
Retrieve a Pin from Plex.tv for authentication flows Retrieve a Pin from Plex.tv for authentication flows
@@ -30,11 +78,13 @@ func main() {
s := plexgo.New( s := plexgo.New(
plexgo.WithXPlexClientIdentifier("Postman"), plexgo.WithXPlexClientIdentifier("Postman"),
) )
var xPlexProduct string = "Postman"
var strong *bool = plexgo.Bool(false) var strong *bool = plexgo.Bool(false)
var xPlexClientIdentifier *string = plexgo.String("Postman") var xPlexClientIdentifier *string = plexgo.String("Postman")
ctx := context.Background() ctx := context.Background()
res, err := s.Plex.GetPin(ctx, strong, xPlexClientIdentifier) res, err := s.Plex.GetPin(ctx, xPlexProduct, strong, xPlexClientIdentifier)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
@@ -49,6 +99,7 @@ func main() {
| Parameter | Type | Required | Description | Example | | Parameter | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | | | `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | |
| `xPlexProduct` | *string* | :heavy_check_mark: | Product name of the application shown in the list of devices<br/> | Postman |
| `strong` | **bool* | :heavy_minus_sign: | Determines the kind of code returned by the API call<br/>Strong codes are used for Pin authentication flows<br/>Non-Strong codes are used for `Plex.tv/link`<br/> | | | `strong` | **bool* | :heavy_minus_sign: | Determines the kind of code returned by the API call<br/>Strong codes are used for Pin authentication flows<br/>Non-Strong codes are used for `Plex.tv/link`<br/> | |
| `xPlexClientIdentifier` | **string* | :heavy_minus_sign: | The unique identifier for the client application<br/>This is used to track the client application and its usage<br/>(UUID, serial number, or other number unique per device)<br/> | Postman | | `xPlexClientIdentifier` | **string* | :heavy_minus_sign: | The unique identifier for the client application<br/>This is used to track the client application and its usage<br/>(UUID, serial number, or other number unique per device)<br/> | Postman |
| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | | | `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | |
@@ -89,7 +140,7 @@ func main() {
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
if res != nil { if res.Object != nil {
// handle response // handle response
} }
} }

View File

@@ -8,7 +8,7 @@ Operations against the Plex Media Server System.
### Available Operations ### Available Operations
* [GetServerCapabilities](#getservercapabilities) - Server Capabilities * [GetServerCapabilities](#getservercapabilities) - Get Server Capabilities
* [GetServerPreferences](#getserverpreferences) - Get Server Preferences * [GetServerPreferences](#getserverpreferences) - Get Server Preferences
* [GetAvailableClients](#getavailableclients) - Get Available Clients * [GetAvailableClients](#getavailableclients) - Get Available Clients
* [GetDevices](#getdevices) - Get Devices * [GetDevices](#getdevices) - Get Devices
@@ -19,7 +19,7 @@ Operations against the Plex Media Server System.
## GetServerCapabilities ## GetServerCapabilities
Server Capabilities Get Server Capabilities
### Example Usage ### Example Usage

View File

@@ -71,6 +71,7 @@ package main
import( import(
"github.com/LukeHagar/plexgo" "github.com/LukeHagar/plexgo"
"github.com/LukeHagar/plexgo/models/operations"
"context" "context"
"log" "log"
) )
@@ -80,9 +81,15 @@ func main() {
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"), plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
plexgo.WithXPlexClientIdentifier("Postman"), plexgo.WithXPlexClientIdentifier("Postman"),
) )
var sort *string = plexgo.String("<value>")
var accountID *int64 = plexgo.Int64(1)
var filter *operations.Filter = &operations.Filter{}
var librarySectionID *int64 = plexgo.Int64(12)
ctx := context.Background() ctx := context.Background()
res, err := s.Sessions.GetSessionHistory(ctx) res, err := s.Sessions.GetSessionHistory(ctx, sort, accountID, filter, librarySectionID)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
@@ -94,9 +101,13 @@ func main() {
### Parameters ### Parameters
| Parameter | Type | Required | Description | | Parameter | Type | Required | Description | Example |
| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | | `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | |
| `sort` | **string* | :heavy_minus_sign: | Sorts the results by the specified field followed by the direction (asc, desc)<br/> | |
| `accountID` | **int64* | :heavy_minus_sign: | Filter results by those that are related to a specific users id<br/> | 1 |
| `filter` | [*operations.Filter](../../models/operations/filter.md) | :heavy_minus_sign: | Filters content by field and direction/equality<br/>(Unknown if viewedAt is the only supported column)<br/> | {<br/>"viewed-at-greater-than": {<br/>"value": "viewedAt\u003e"<br/>},<br/>"viewed-at-greater-than-or-equal-to": {<br/>"value": "viewedAt\u003e=\u003e"<br/>},<br/>"viewed-at-less-than": {<br/>"value": "viewedAt\u003c"<br/>}<br/>} |
| `librarySectionID` | **int64* | :heavy_minus_sign: | Filters the results based on the id of a valid library section<br/> | 12 |
### Response ### Response

View File

@@ -9,6 +9,8 @@ API Calls that perform operations with Plex Media Server Statistics
### Available Operations ### Available Operations
* [GetStatistics](#getstatistics) - Get Media Statistics * [GetStatistics](#getstatistics) - Get Media Statistics
* [GetResourcesStatistics](#getresourcesstatistics) - Get Resources Statistics
* [GetBandwidthStatistics](#getbandwidthstatistics) - Get Bandwidth Statistics
## GetStatistics ## GetStatistics
@@ -57,3 +59,99 @@ func main() {
| ----------------------------------- | ----------------------------------- | ----------------------------------- | | ----------------------------------- | ----------------------------------- | ----------------------------------- |
| sdkerrors.GetStatisticsResponseBody | 401 | application/json | | sdkerrors.GetStatisticsResponseBody | 401 | application/json |
| sdkerrors.SDKError | 4xx-5xx | */* | | sdkerrors.SDKError | 4xx-5xx | */* |
## GetResourcesStatistics
This will return the resources for the server
### Example Usage
```go
package main
import(
"github.com/LukeHagar/plexgo"
"context"
"log"
)
func main() {
s := plexgo.New(
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
plexgo.WithXPlexClientIdentifier("Postman"),
)
var timespan *int64 = plexgo.Int64(4)
ctx := context.Background()
res, err := s.Statistics.GetResourcesStatistics(ctx, timespan)
if err != nil {
log.Fatal(err)
}
if res.Object != nil {
// handle response
}
}
```
### Parameters
| Parameter | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | |
| `timespan` | **int64* | :heavy_minus_sign: | The timespan to retrieve statistics for<br/>the exact meaning of this parameter is not known<br/> | 4 |
### Response
**[*operations.GetResourcesStatisticsResponse](../../models/operations/getresourcesstatisticsresponse.md), error**
| Error Object | Status Code | Content Type |
| -------------------------------------------- | -------------------------------------------- | -------------------------------------------- |
| sdkerrors.GetResourcesStatisticsResponseBody | 401 | application/json |
| sdkerrors.SDKError | 4xx-5xx | */* |
## GetBandwidthStatistics
This will return the bandwidth statistics for the server
### Example Usage
```go
package main
import(
"github.com/LukeHagar/plexgo"
"context"
"log"
)
func main() {
s := plexgo.New(
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
plexgo.WithXPlexClientIdentifier("Postman"),
)
var timespan *int64 = plexgo.Int64(4)
ctx := context.Background()
res, err := s.Statistics.GetBandwidthStatistics(ctx, timespan)
if err != nil {
log.Fatal(err)
}
if res.Object != nil {
// handle response
}
}
```
### Parameters
| Parameter | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | |
| `timespan` | **int64* | :heavy_minus_sign: | The timespan to retrieve statistics for<br/>the exact meaning of this parameter is not known<br/> | 4 |
### Response
**[*operations.GetBandwidthStatisticsResponse](../../models/operations/getbandwidthstatisticsresponse.md), error**
| Error Object | Status Code | Content Type |
| -------------------------------------------- | -------------------------------------------- | -------------------------------------------- |
| sdkerrors.GetBandwidthStatisticsResponseBody | 401 | application/json |
| sdkerrors.SDKError | 4xx-5xx | */* |

View File

@@ -0,0 +1,64 @@
# Watchlist
(*Watchlist*)
## Overview
API Calls that perform operations with Plex Media Server Watchlists
### Available Operations
* [GetWatchlist](#getwatchlist) - Get User Watchlist
## GetWatchlist
Get User Watchlist
### Example Usage
```go
package main
import(
"github.com/LukeHagar/plexgo"
"github.com/LukeHagar/plexgo/models/operations"
"context"
"log"
)
func main() {
s := plexgo.New(
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
plexgo.WithXPlexClientIdentifier("Postman"),
)
request := operations.GetWatchlistRequest{
Filter: operations.PathParamFilterReleased,
XPlexToken: "<value>",
}
ctx := context.Background()
res, err := s.Watchlist.GetWatchlist(ctx, request)
if err != nil {
log.Fatal(err)
}
if res.Object != nil {
// handle response
}
}
```
### Parameters
| Parameter | Type | Required | Description |
| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
| `request` | [operations.GetWatchlistRequest](../../models/operations/getwatchlistrequest.md) | :heavy_check_mark: | The request object to use for the request. |
| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
### Response
**[*operations.GetWatchlistResponse](../../models/operations/getwatchlistresponse.md), error**
| Error Object | Status Code | Content Type |
| ---------------------------------- | ---------------------------------- | ---------------------------------- |
| sdkerrors.GetWatchlistResponseBody | 401 | application/json |
| sdkerrors.SDKError | 4xx-5xx | */* |

View File

@@ -7,12 +7,12 @@ type Globals struct {
// This is used to track the client application and its usage // This is used to track the client application and its usage
// (UUID, serial number, or other number unique per device) // (UUID, serial number, or other number unique per device)
// //
XPlexClientIdentifier string `header:"style=simple,explode=false,name=X-Plex-Client-Identifier"` XPlexClientIdentifier *string `header:"style=simple,explode=false,name=X-Plex-Client-Identifier"`
} }
func (o *Globals) GetXPlexClientIdentifier() string { func (o *Globals) GetXPlexClientIdentifier() *string {
if o == nil { if o == nil {
return "" return nil
} }
return o.XPlexClientIdentifier return o.XPlexClientIdentifier
} }

View File

@@ -9,6 +9,10 @@ import (
) )
func MatchContentType(contentType string, pattern string) bool { func MatchContentType(contentType string, pattern string) bool {
if contentType == "" {
contentType = "application/octet-stream"
}
if contentType == pattern || pattern == "*" || pattern == "*/*" { if contentType == pattern || pattern == "*" || pattern == "*/*" {
return true return true
} }

View File

@@ -635,7 +635,7 @@ func (s *Library) DeleteLibrary(ctx context.Context, sectionID float64) (*operat
// - `resolution`: Items categorized by resolution. // - `resolution`: Items categorized by resolution.
// - `firstCharacter`: Items categorized by the first letter. // - `firstCharacter`: Items categorized by the first letter.
// - `folder`: Items categorized by folder. // - `folder`: Items categorized by folder.
func (s *Library) GetLibraryItems(ctx context.Context, sectionID int64, tag operations.Tag) (*operations.GetLibraryItemsResponse, error) { func (s *Library) GetLibraryItems(ctx context.Context, sectionID any, tag operations.Tag, includeGuids *int64) (*operations.GetLibraryItemsResponse, error) {
hookCtx := hooks.HookContext{ hookCtx := hooks.HookContext{
Context: ctx, Context: ctx,
OperationID: "getLibraryItems", OperationID: "getLibraryItems",
@@ -644,8 +644,9 @@ func (s *Library) GetLibraryItems(ctx context.Context, sectionID int64, tag oper
} }
request := operations.GetLibraryItemsRequest{ request := operations.GetLibraryItemsRequest{
SectionID: sectionID, SectionID: sectionID,
Tag: tag, Tag: tag,
IncludeGuids: includeGuids,
} }
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails()) baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
@@ -661,6 +662,10 @@ func (s *Library) GetLibraryItems(ctx context.Context, sectionID int64, tag oper
req.Header.Set("Accept", "application/json") req.Header.Set("Accept", "application/json")
req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent) req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
if err := utils.PopulateQueryParams(ctx, req, request, nil); err != nil {
return nil, fmt.Errorf("error populating query params: %w", err)
}
if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil { if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
return nil, err return nil, err
} }
@@ -1099,7 +1104,7 @@ func (s *Library) GetMetadata(ctx context.Context, ratingKey float64) (*operatio
// GetMetadataChildren - Get Items Children // GetMetadataChildren - Get Items Children
// This endpoint will return the children of of a library item specified with the ratingKey. // This endpoint will return the children of of a library item specified with the ratingKey.
func (s *Library) GetMetadataChildren(ctx context.Context, ratingKey float64) (*operations.GetMetadataChildrenResponse, error) { func (s *Library) GetMetadataChildren(ctx context.Context, ratingKey float64, includeElements *string) (*operations.GetMetadataChildrenResponse, error) {
hookCtx := hooks.HookContext{ hookCtx := hooks.HookContext{
Context: ctx, Context: ctx,
OperationID: "getMetadataChildren", OperationID: "getMetadataChildren",
@@ -1108,7 +1113,8 @@ func (s *Library) GetMetadataChildren(ctx context.Context, ratingKey float64) (*
} }
request := operations.GetMetadataChildrenRequest{ request := operations.GetMetadataChildrenRequest{
RatingKey: ratingKey, RatingKey: ratingKey,
IncludeElements: includeElements,
} }
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails()) baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
@@ -1124,6 +1130,10 @@ func (s *Library) GetMetadataChildren(ctx context.Context, ratingKey float64) (*
req.Header.Set("Accept", "application/json") req.Header.Set("Accept", "application/json")
req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent) req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
if err := utils.PopulateQueryParams(ctx, req, request, nil); err != nil {
return nil, fmt.Errorf("error populating query params: %w", err)
}
if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil { if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
return nil, err return nil, err
} }
@@ -1210,6 +1220,109 @@ func (s *Library) GetMetadataChildren(ctx context.Context, ratingKey float64) (*
} }
// GetTopWatchedContent - Get Top Watched Content
// This endpoint will return the top watched content from libraries of a certain type
func (s *Library) GetTopWatchedContent(ctx context.Context, type_ int64, includeGuids *int64) (*operations.GetTopWatchedContentResponse, error) {
hookCtx := hooks.HookContext{
Context: ctx,
OperationID: "getTopWatchedContent",
OAuth2Scopes: []string{},
SecuritySource: s.sdkConfiguration.Security,
}
request := operations.GetTopWatchedContentRequest{
Type: type_,
IncludeGuids: includeGuids,
}
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
opURL, err := url.JoinPath(baseURL, "/library/all/top")
if err != nil {
return nil, fmt.Errorf("error generating URL: %w", err)
}
req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
if err != nil {
return nil, fmt.Errorf("error creating request: %w", err)
}
req.Header.Set("Accept", "application/json")
req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
if err := utils.PopulateQueryParams(ctx, req, request, nil); err != nil {
return nil, fmt.Errorf("error populating query params: %w", err)
}
if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
return nil, err
}
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
if err != nil {
return nil, err
}
httpRes, err := s.sdkConfiguration.Client.Do(req)
if err != nil || httpRes == nil {
if err != nil {
err = fmt.Errorf("error sending request: %w", err)
} else {
err = fmt.Errorf("error sending request: no response")
}
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
return nil, err
} else if utils.MatchStatusCodes([]string{"4XX", "5XX"}, httpRes.StatusCode) {
_httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
if err != nil {
return nil, err
} else if _httpRes != nil {
httpRes = _httpRes
}
} else {
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
if err != nil {
return nil, err
}
}
res := &operations.GetTopWatchedContentResponse{
StatusCode: httpRes.StatusCode,
ContentType: httpRes.Header.Get("Content-Type"),
RawResponse: httpRes,
}
rawBody, err := io.ReadAll(httpRes.Body)
if err != nil {
return nil, fmt.Errorf("error reading response body: %w", err)
}
httpRes.Body.Close()
httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
switch {
case httpRes.StatusCode == 200:
switch {
case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
var out operations.GetTopWatchedContentResponseBody
if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
return nil, err
}
res.Object = &out
default:
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
}
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
fallthrough
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
default:
return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes)
}
return res, nil
}
// GetOnDeck - Get On Deck // GetOnDeck - Get On Deck
// This endpoint will return the on deck content. // This endpoint will return the on deck content.
func (s *Library) GetOnDeck(ctx context.Context) (*operations.GetOnDeckResponse, error) { func (s *Library) GetOnDeck(ctx context.Context) (*operations.GetOnDeckResponse, error) {

View File

@@ -0,0 +1,268 @@
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
package operations
import (
"net/http"
)
type GetBandwidthStatisticsRequest struct {
// The timespan to retrieve statistics for
// the exact meaning of this parameter is not known
//
Timespan *int64 `queryParam:"style=form,explode=true,name=Timespan"`
}
func (o *GetBandwidthStatisticsRequest) GetTimespan() *int64 {
if o == nil {
return nil
}
return o.Timespan
}
type GetBandwidthStatisticsDevice struct {
ID *int `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Platform *string `json:"platform,omitempty"`
ClientIdentifier *string `json:"clientIdentifier,omitempty"`
CreatedAt *int `json:"createdAt,omitempty"`
}
func (o *GetBandwidthStatisticsDevice) GetID() *int {
if o == nil {
return nil
}
return o.ID
}
func (o *GetBandwidthStatisticsDevice) GetName() *string {
if o == nil {
return nil
}
return o.Name
}
func (o *GetBandwidthStatisticsDevice) GetPlatform() *string {
if o == nil {
return nil
}
return o.Platform
}
func (o *GetBandwidthStatisticsDevice) GetClientIdentifier() *string {
if o == nil {
return nil
}
return o.ClientIdentifier
}
func (o *GetBandwidthStatisticsDevice) GetCreatedAt() *int {
if o == nil {
return nil
}
return o.CreatedAt
}
type GetBandwidthStatisticsAccount struct {
ID *int `json:"id,omitempty"`
Key *string `json:"key,omitempty"`
Name *string `json:"name,omitempty"`
DefaultAudioLanguage *string `json:"defaultAudioLanguage,omitempty"`
AutoSelectAudio *bool `json:"autoSelectAudio,omitempty"`
DefaultSubtitleLanguage *string `json:"defaultSubtitleLanguage,omitempty"`
SubtitleMode *int `json:"subtitleMode,omitempty"`
Thumb *string `json:"thumb,omitempty"`
}
func (o *GetBandwidthStatisticsAccount) GetID() *int {
if o == nil {
return nil
}
return o.ID
}
func (o *GetBandwidthStatisticsAccount) GetKey() *string {
if o == nil {
return nil
}
return o.Key
}
func (o *GetBandwidthStatisticsAccount) GetName() *string {
if o == nil {
return nil
}
return o.Name
}
func (o *GetBandwidthStatisticsAccount) GetDefaultAudioLanguage() *string {
if o == nil {
return nil
}
return o.DefaultAudioLanguage
}
func (o *GetBandwidthStatisticsAccount) GetAutoSelectAudio() *bool {
if o == nil {
return nil
}
return o.AutoSelectAudio
}
func (o *GetBandwidthStatisticsAccount) GetDefaultSubtitleLanguage() *string {
if o == nil {
return nil
}
return o.DefaultSubtitleLanguage
}
func (o *GetBandwidthStatisticsAccount) GetSubtitleMode() *int {
if o == nil {
return nil
}
return o.SubtitleMode
}
func (o *GetBandwidthStatisticsAccount) GetThumb() *string {
if o == nil {
return nil
}
return o.Thumb
}
type StatisticsBandwidth struct {
AccountID *int `json:"accountID,omitempty"`
DeviceID *int `json:"deviceID,omitempty"`
Timespan *int64 `json:"timespan,omitempty"`
At *int `json:"at,omitempty"`
Lan *bool `json:"lan,omitempty"`
Bytes *int64 `json:"bytes,omitempty"`
}
func (o *StatisticsBandwidth) GetAccountID() *int {
if o == nil {
return nil
}
return o.AccountID
}
func (o *StatisticsBandwidth) GetDeviceID() *int {
if o == nil {
return nil
}
return o.DeviceID
}
func (o *StatisticsBandwidth) GetTimespan() *int64 {
if o == nil {
return nil
}
return o.Timespan
}
func (o *StatisticsBandwidth) GetAt() *int {
if o == nil {
return nil
}
return o.At
}
func (o *StatisticsBandwidth) GetLan() *bool {
if o == nil {
return nil
}
return o.Lan
}
func (o *StatisticsBandwidth) GetBytes() *int64 {
if o == nil {
return nil
}
return o.Bytes
}
type GetBandwidthStatisticsMediaContainer struct {
Size *int `json:"size,omitempty"`
Device []GetBandwidthStatisticsDevice `json:"Device,omitempty"`
Account []GetBandwidthStatisticsAccount `json:"Account,omitempty"`
StatisticsBandwidth []StatisticsBandwidth `json:"StatisticsBandwidth,omitempty"`
}
func (o *GetBandwidthStatisticsMediaContainer) GetSize() *int {
if o == nil {
return nil
}
return o.Size
}
func (o *GetBandwidthStatisticsMediaContainer) GetDevice() []GetBandwidthStatisticsDevice {
if o == nil {
return nil
}
return o.Device
}
func (o *GetBandwidthStatisticsMediaContainer) GetAccount() []GetBandwidthStatisticsAccount {
if o == nil {
return nil
}
return o.Account
}
func (o *GetBandwidthStatisticsMediaContainer) GetStatisticsBandwidth() []StatisticsBandwidth {
if o == nil {
return nil
}
return o.StatisticsBandwidth
}
// GetBandwidthStatisticsResponseBody - Bandwidth Statistics
type GetBandwidthStatisticsResponseBody struct {
MediaContainer *GetBandwidthStatisticsMediaContainer `json:"MediaContainer,omitempty"`
}
func (o *GetBandwidthStatisticsResponseBody) GetMediaContainer() *GetBandwidthStatisticsMediaContainer {
if o == nil {
return nil
}
return o.MediaContainer
}
type GetBandwidthStatisticsResponse struct {
// HTTP response content type for this operation
ContentType string
// HTTP response status code for this operation
StatusCode int
// Raw HTTP response; suitable for custom response parsing
RawResponse *http.Response
// Bandwidth Statistics
Object *GetBandwidthStatisticsResponseBody
}
func (o *GetBandwidthStatisticsResponse) GetContentType() string {
if o == nil {
return ""
}
return o.ContentType
}
func (o *GetBandwidthStatisticsResponse) GetStatusCode() int {
if o == nil {
return 0
}
return o.StatusCode
}
func (o *GetBandwidthStatisticsResponse) GetRawResponse() *http.Response {
if o == nil {
return nil
}
return o.RawResponse
}
func (o *GetBandwidthStatisticsResponse) GetObject() *GetBandwidthStatisticsResponseBody {
if o == nil {
return nil
}
return o.Object
}

View File

@@ -0,0 +1,98 @@
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
package operations
import (
"net/http"
)
// GetHomeDataResponseBody - Home Data
type GetHomeDataResponseBody struct {
ID *float64 `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
GuestUserID *float64 `json:"guestUserID,omitempty"`
GuestUserUUID *string `json:"guestUserUUID,omitempty"`
GuestEnabled *bool `json:"guestEnabled,omitempty"`
Subscription *bool `json:"subscription,omitempty"`
}
func (o *GetHomeDataResponseBody) GetID() *float64 {
if o == nil {
return nil
}
return o.ID
}
func (o *GetHomeDataResponseBody) GetName() *string {
if o == nil {
return nil
}
return o.Name
}
func (o *GetHomeDataResponseBody) GetGuestUserID() *float64 {
if o == nil {
return nil
}
return o.GuestUserID
}
func (o *GetHomeDataResponseBody) GetGuestUserUUID() *string {
if o == nil {
return nil
}
return o.GuestUserUUID
}
func (o *GetHomeDataResponseBody) GetGuestEnabled() *bool {
if o == nil {
return nil
}
return o.GuestEnabled
}
func (o *GetHomeDataResponseBody) GetSubscription() *bool {
if o == nil {
return nil
}
return o.Subscription
}
type GetHomeDataResponse struct {
// HTTP response content type for this operation
ContentType string
// HTTP response status code for this operation
StatusCode int
// Raw HTTP response; suitable for custom response parsing
RawResponse *http.Response
// Home Data
Object *GetHomeDataResponseBody
}
func (o *GetHomeDataResponse) GetContentType() string {
if o == nil {
return ""
}
return o.ContentType
}
func (o *GetHomeDataResponse) GetStatusCode() int {
if o == nil {
return 0
}
return o.StatusCode
}
func (o *GetHomeDataResponse) GetRawResponse() *http.Response {
if o == nil {
return nil
}
return o.RawResponse
}
func (o *GetHomeDataResponse) GetObject() *GetHomeDataResponseBody {
if o == nil {
return nil
}
return o.Object
}

View File

@@ -114,7 +114,7 @@ func (o *GetLibraryDirectory) GetSearch() *bool {
return o.Search return o.Search
} }
type Filter struct { type GetLibraryFilter struct {
Filter *string `json:"filter,omitempty"` Filter *string `json:"filter,omitempty"`
FilterType *string `json:"filterType,omitempty"` FilterType *string `json:"filterType,omitempty"`
Key *string `json:"key,omitempty"` Key *string `json:"key,omitempty"`
@@ -122,35 +122,35 @@ type Filter struct {
Type *string `json:"type,omitempty"` Type *string `json:"type,omitempty"`
} }
func (o *Filter) GetFilter() *string { func (o *GetLibraryFilter) GetFilter() *string {
if o == nil { if o == nil {
return nil return nil
} }
return o.Filter return o.Filter
} }
func (o *Filter) GetFilterType() *string { func (o *GetLibraryFilter) GetFilterType() *string {
if o == nil { if o == nil {
return nil return nil
} }
return o.FilterType return o.FilterType
} }
func (o *Filter) GetKey() *string { func (o *GetLibraryFilter) GetKey() *string {
if o == nil { if o == nil {
return nil return nil
} }
return o.Key return o.Key
} }
func (o *Filter) GetTitle() *string { func (o *GetLibraryFilter) GetTitle() *string {
if o == nil { if o == nil {
return nil return nil
} }
return o.Title return o.Title
} }
func (o *Filter) GetType() *string { func (o *GetLibraryFilter) GetType() *string {
if o == nil { if o == nil {
return nil return nil
} }
@@ -244,13 +244,13 @@ func (o *Field) GetSubType() *string {
} }
type GetLibraryType struct { type GetLibraryType struct {
Key *string `json:"key,omitempty"` Key *string `json:"key,omitempty"`
Type *string `json:"type,omitempty"` Type *string `json:"type,omitempty"`
Title *string `json:"title,omitempty"` Title *string `json:"title,omitempty"`
Active *bool `json:"active,omitempty"` Active *bool `json:"active,omitempty"`
Filter []Filter `json:"Filter,omitempty"` Filter []GetLibraryFilter `json:"Filter,omitempty"`
Sort []Sort `json:"Sort,omitempty"` Sort []Sort `json:"Sort,omitempty"`
Field []Field `json:"Field,omitempty"` Field []Field `json:"Field,omitempty"`
} }
func (o *GetLibraryType) GetKey() *string { func (o *GetLibraryType) GetKey() *string {
@@ -281,7 +281,7 @@ func (o *GetLibraryType) GetActive() *bool {
return o.Active return o.Active
} }
func (o *GetLibraryType) GetFilter() []Filter { func (o *GetLibraryType) GetFilter() []GetLibraryFilter {
if o == nil { if o == nil {
return nil return nil
} }

View File

@@ -4,6 +4,7 @@ package operations
import ( import (
"encoding/json" "encoding/json"
"errors"
"fmt" "fmt"
"github.com/LukeHagar/plexgo/internal/utils" "github.com/LukeHagar/plexgo/internal/utils"
"github.com/LukeHagar/plexgo/types" "github.com/LukeHagar/plexgo/types"
@@ -90,14 +91,17 @@ func (e *Tag) UnmarshalJSON(data []byte) error {
type GetLibraryItemsRequest struct { type GetLibraryItemsRequest struct {
// the Id of the library to query // the Id of the library to query
SectionID int64 `pathParam:"style=simple,explode=false,name=sectionId"` SectionID any `pathParam:"style=simple,explode=false,name=sectionId"`
// A key representing a specific tag within the section. // A key representing a specific tag within the section.
Tag Tag `pathParam:"style=simple,explode=false,name=tag"` Tag Tag `pathParam:"style=simple,explode=false,name=tag"`
// Adds the Guids object to the response
//
IncludeGuids *int64 `queryParam:"style=form,explode=true,name=includeGuids"`
} }
func (o *GetLibraryItemsRequest) GetSectionID() int64 { func (o *GetLibraryItemsRequest) GetSectionID() any {
if o == nil { if o == nil {
return 0 return nil
} }
return o.SectionID return o.SectionID
} }
@@ -109,6 +113,76 @@ func (o *GetLibraryItemsRequest) GetTag() Tag {
return o.Tag return o.Tag
} }
func (o *GetLibraryItemsRequest) GetIncludeGuids() *int64 {
if o == nil {
return nil
}
return o.IncludeGuids
}
type LibrarySectionIDType string
const (
LibrarySectionIDTypeInteger LibrarySectionIDType = "integer"
LibrarySectionIDTypeStr LibrarySectionIDType = "str"
)
type LibrarySectionID struct {
Integer *int64
Str *string
Type LibrarySectionIDType
}
func CreateLibrarySectionIDInteger(integer int64) LibrarySectionID {
typ := LibrarySectionIDTypeInteger
return LibrarySectionID{
Integer: &integer,
Type: typ,
}
}
func CreateLibrarySectionIDStr(str string) LibrarySectionID {
typ := LibrarySectionIDTypeStr
return LibrarySectionID{
Str: &str,
Type: typ,
}
}
func (u *LibrarySectionID) UnmarshalJSON(data []byte) error {
var integer int64 = int64(0)
if err := utils.UnmarshalJSON(data, &integer, "", true, true); err == nil {
u.Integer = &integer
u.Type = LibrarySectionIDTypeInteger
return nil
}
var str string = ""
if err := utils.UnmarshalJSON(data, &str, "", true, true); err == nil {
u.Str = &str
u.Type = LibrarySectionIDTypeStr
return nil
}
return fmt.Errorf("could not unmarshal `%s` into any supported union types for LibrarySectionID", string(data))
}
func (u LibrarySectionID) MarshalJSON() ([]byte, error) {
if u.Integer != nil {
return utils.MarshalJSON(u.Integer, "", true)
}
if u.Str != nil {
return utils.MarshalJSON(u.Str, "", true)
}
return nil, errors.New("could not marshal union type LibrarySectionID: all fields are null")
}
type GetLibraryItemsPart struct { type GetLibraryItemsPart struct {
ID *int `json:"id,omitempty"` ID *int `json:"id,omitempty"`
Key *string `json:"key,omitempty"` Key *string `json:"key,omitempty"`
@@ -813,7 +887,7 @@ type GetLibraryItemsMediaContainer struct {
AllowSync *bool `json:"allowSync,omitempty"` AllowSync *bool `json:"allowSync,omitempty"`
Art *string `json:"art,omitempty"` Art *string `json:"art,omitempty"`
Identifier *string `json:"identifier,omitempty"` Identifier *string `json:"identifier,omitempty"`
LibrarySectionID *int `json:"librarySectionID,omitempty"` LibrarySectionID *LibrarySectionID `json:"librarySectionID,omitempty"`
LibrarySectionTitle *string `json:"librarySectionTitle,omitempty"` LibrarySectionTitle *string `json:"librarySectionTitle,omitempty"`
LibrarySectionUUID *string `json:"librarySectionUUID,omitempty"` LibrarySectionUUID *string `json:"librarySectionUUID,omitempty"`
MediaTagPrefix *string `json:"mediaTagPrefix,omitempty"` MediaTagPrefix *string `json:"mediaTagPrefix,omitempty"`
@@ -855,7 +929,7 @@ func (o *GetLibraryItemsMediaContainer) GetIdentifier() *string {
return o.Identifier return o.Identifier
} }
func (o *GetLibraryItemsMediaContainer) GetLibrarySectionID() *int { func (o *GetLibraryItemsMediaContainer) GetLibrarySectionID() *LibrarySectionID {
if o == nil { if o == nil {
return nil return nil
} }

View File

@@ -9,6 +9,9 @@ import (
type GetMetadataChildrenRequest struct { type GetMetadataChildrenRequest struct {
// the id of the library item to return the children of. // the id of the library item to return the children of.
RatingKey float64 `pathParam:"style=simple,explode=false,name=ratingKey"` RatingKey float64 `pathParam:"style=simple,explode=false,name=ratingKey"`
// Adds additional elements to the response. Supported types are (Stream)
//
IncludeElements *string `queryParam:"style=form,explode=true,name=includeElements"`
} }
func (o *GetMetadataChildrenRequest) GetRatingKey() float64 { func (o *GetMetadataChildrenRequest) GetRatingKey() float64 {
@@ -18,6 +21,13 @@ func (o *GetMetadataChildrenRequest) GetRatingKey() float64 {
return o.RatingKey return o.RatingKey
} }
func (o *GetMetadataChildrenRequest) GetIncludeElements() *string {
if o == nil {
return nil
}
return o.IncludeElements
}
type GetMetadataChildrenDirectory struct { type GetMetadataChildrenDirectory struct {
LeafCount *int `json:"leafCount,omitempty"` LeafCount *int `json:"leafCount,omitempty"`
Thumb *string `json:"thumb,omitempty"` Thumb *string `json:"thumb,omitempty"`

View File

@@ -17,12 +17,12 @@ type GetPinGlobals struct {
// This is used to track the client application and its usage // This is used to track the client application and its usage
// (UUID, serial number, or other number unique per device) // (UUID, serial number, or other number unique per device)
// //
XPlexClientIdentifier string `header:"style=simple,explode=false,name=X-Plex-Client-Identifier"` XPlexClientIdentifier *string `header:"style=simple,explode=false,name=X-Plex-Client-Identifier"`
} }
func (o *GetPinGlobals) GetXPlexClientIdentifier() string { func (o *GetPinGlobals) GetXPlexClientIdentifier() *string {
if o == nil { if o == nil {
return "" return nil
} }
return o.XPlexClientIdentifier return o.XPlexClientIdentifier
} }
@@ -38,6 +38,9 @@ type GetPinRequest struct {
// (UUID, serial number, or other number unique per device) // (UUID, serial number, or other number unique per device)
// //
XPlexClientIdentifier *string `header:"style=simple,explode=false,name=X-Plex-Client-Identifier"` XPlexClientIdentifier *string `header:"style=simple,explode=false,name=X-Plex-Client-Identifier"`
// Product name of the application shown in the list of devices
//
XPlexProduct string `header:"style=simple,explode=false,name=X-Plex-Product"`
} }
func (g GetPinRequest) MarshalJSON() ([]byte, error) { func (g GetPinRequest) MarshalJSON() ([]byte, error) {
@@ -65,17 +68,24 @@ func (o *GetPinRequest) GetXPlexClientIdentifier() *string {
return o.XPlexClientIdentifier return o.XPlexClientIdentifier
} }
func (o *GetPinRequest) GetXPlexProduct() string {
if o == nil {
return ""
}
return o.XPlexProduct
}
type Location struct { type Location struct {
Code *string `json:"code,omitempty"` Code *string `json:"code,omitempty"`
EuropeanUnionMember *bool `json:"european_union_member,omitempty"` EuropeanUnionMember *bool `json:"european_union_member,omitempty"`
ContinentCode *string `json:"continent_code,omitempty"` ContinentCode *string `json:"continent_code,omitempty"`
Country *string `json:"country,omitempty"` Country *string `json:"country,omitempty"`
City *string `json:"city,omitempty"` City *string `json:"city,omitempty"`
TimeZone *string `json:"time_zone,omitempty"` TimeZone *string `json:"time_zone,omitempty"`
PostalCode *float64 `json:"postal_code,omitempty"` PostalCode *string `json:"postal_code,omitempty"`
InPrivacyRestrictedCountry *bool `json:"in_privacy_restricted_country,omitempty"` InPrivacyRestrictedCountry *bool `json:"in_privacy_restricted_country,omitempty"`
Subdivisions *string `json:"subdivisions,omitempty"` Subdivisions *string `json:"subdivisions,omitempty"`
Coordinates *string `json:"coordinates,omitempty"` Coordinates *string `json:"coordinates,omitempty"`
} }
func (o *Location) GetCode() *string { func (o *Location) GetCode() *string {
@@ -120,7 +130,7 @@ func (o *Location) GetTimeZone() *string {
return o.TimeZone return o.TimeZone
} }
func (o *Location) GetPostalCode() *float64 { func (o *Location) GetPostalCode() *string {
if o == nil { if o == nil {
return nil return nil
} }
@@ -166,7 +176,7 @@ type GetPinResponseBody struct {
CreatedAt *time.Time `json:"createdAt,omitempty"` CreatedAt *time.Time `json:"createdAt,omitempty"`
ExpiresAt *time.Time `json:"expiresAt,omitempty"` ExpiresAt *time.Time `json:"expiresAt,omitempty"`
AuthToken *string `json:"authToken,omitempty"` AuthToken *string `json:"authToken,omitempty"`
NewRegistration *string `json:"newRegistration,omitempty"` NewRegistration *bool `json:"newRegistration,omitempty"`
} }
func (g GetPinResponseBody) MarshalJSON() ([]byte, error) { func (g GetPinResponseBody) MarshalJSON() ([]byte, error) {
@@ -257,7 +267,7 @@ func (o *GetPinResponseBody) GetAuthToken() *string {
return o.AuthToken return o.AuthToken
} }
func (o *GetPinResponseBody) GetNewRegistration() *string { func (o *GetPinResponseBody) GetNewRegistration() *bool {
if o == nil { if o == nil {
return nil return nil
} }

View File

@@ -277,7 +277,7 @@ func (o *Role) GetTag() *string {
return o.Tag return o.Tag
} }
type Metadata struct { type GetRecentlyAddedMetadata struct {
AllowSync *bool `json:"allowSync,omitempty"` AllowSync *bool `json:"allowSync,omitempty"`
LibrarySectionID *float64 `json:"librarySectionID,omitempty"` LibrarySectionID *float64 `json:"librarySectionID,omitempty"`
LibrarySectionTitle *string `json:"librarySectionTitle,omitempty"` LibrarySectionTitle *string `json:"librarySectionTitle,omitempty"`
@@ -312,235 +312,235 @@ type Metadata struct {
Role []Role `json:"Role,omitempty"` Role []Role `json:"Role,omitempty"`
} }
func (m Metadata) MarshalJSON() ([]byte, error) { func (g GetRecentlyAddedMetadata) MarshalJSON() ([]byte, error) {
return utils.MarshalJSON(m, "", false) return utils.MarshalJSON(g, "", false)
} }
func (m *Metadata) UnmarshalJSON(data []byte) error { func (g *GetRecentlyAddedMetadata) UnmarshalJSON(data []byte) error {
if err := utils.UnmarshalJSON(data, &m, "", false, false); err != nil { if err := utils.UnmarshalJSON(data, &g, "", false, false); err != nil {
return err return err
} }
return nil return nil
} }
func (o *Metadata) GetAllowSync() *bool { func (o *GetRecentlyAddedMetadata) GetAllowSync() *bool {
if o == nil { if o == nil {
return nil return nil
} }
return o.AllowSync return o.AllowSync
} }
func (o *Metadata) GetLibrarySectionID() *float64 { func (o *GetRecentlyAddedMetadata) GetLibrarySectionID() *float64 {
if o == nil { if o == nil {
return nil return nil
} }
return o.LibrarySectionID return o.LibrarySectionID
} }
func (o *Metadata) GetLibrarySectionTitle() *string { func (o *GetRecentlyAddedMetadata) GetLibrarySectionTitle() *string {
if o == nil { if o == nil {
return nil return nil
} }
return o.LibrarySectionTitle return o.LibrarySectionTitle
} }
func (o *Metadata) GetLibrarySectionUUID() *string { func (o *GetRecentlyAddedMetadata) GetLibrarySectionUUID() *string {
if o == nil { if o == nil {
return nil return nil
} }
return o.LibrarySectionUUID return o.LibrarySectionUUID
} }
func (o *Metadata) GetRatingKey() *float64 { func (o *GetRecentlyAddedMetadata) GetRatingKey() *float64 {
if o == nil { if o == nil {
return nil return nil
} }
return o.RatingKey return o.RatingKey
} }
func (o *Metadata) GetKey() *string { func (o *GetRecentlyAddedMetadata) GetKey() *string {
if o == nil { if o == nil {
return nil return nil
} }
return o.Key return o.Key
} }
func (o *Metadata) GetGUID() *string { func (o *GetRecentlyAddedMetadata) GetGUID() *string {
if o == nil { if o == nil {
return nil return nil
} }
return o.GUID return o.GUID
} }
func (o *Metadata) GetStudio() *string { func (o *GetRecentlyAddedMetadata) GetStudio() *string {
if o == nil { if o == nil {
return nil return nil
} }
return o.Studio return o.Studio
} }
func (o *Metadata) GetType() *string { func (o *GetRecentlyAddedMetadata) GetType() *string {
if o == nil { if o == nil {
return nil return nil
} }
return o.Type return o.Type
} }
func (o *Metadata) GetTitle() *string { func (o *GetRecentlyAddedMetadata) GetTitle() *string {
if o == nil { if o == nil {
return nil return nil
} }
return o.Title return o.Title
} }
func (o *Metadata) GetContentRating() *string { func (o *GetRecentlyAddedMetadata) GetContentRating() *string {
if o == nil { if o == nil {
return nil return nil
} }
return o.ContentRating return o.ContentRating
} }
func (o *Metadata) GetSummary() *string { func (o *GetRecentlyAddedMetadata) GetSummary() *string {
if o == nil { if o == nil {
return nil return nil
} }
return o.Summary return o.Summary
} }
func (o *Metadata) GetRating() *float64 { func (o *GetRecentlyAddedMetadata) GetRating() *float64 {
if o == nil { if o == nil {
return nil return nil
} }
return o.Rating return o.Rating
} }
func (o *Metadata) GetAudienceRating() *float64 { func (o *GetRecentlyAddedMetadata) GetAudienceRating() *float64 {
if o == nil { if o == nil {
return nil return nil
} }
return o.AudienceRating return o.AudienceRating
} }
func (o *Metadata) GetYear() *float64 { func (o *GetRecentlyAddedMetadata) GetYear() *float64 {
if o == nil { if o == nil {
return nil return nil
} }
return o.Year return o.Year
} }
func (o *Metadata) GetTagline() *string { func (o *GetRecentlyAddedMetadata) GetTagline() *string {
if o == nil { if o == nil {
return nil return nil
} }
return o.Tagline return o.Tagline
} }
func (o *Metadata) GetThumb() *string { func (o *GetRecentlyAddedMetadata) GetThumb() *string {
if o == nil { if o == nil {
return nil return nil
} }
return o.Thumb return o.Thumb
} }
func (o *Metadata) GetArt() *string { func (o *GetRecentlyAddedMetadata) GetArt() *string {
if o == nil { if o == nil {
return nil return nil
} }
return o.Art return o.Art
} }
func (o *Metadata) GetDuration() *float64 { func (o *GetRecentlyAddedMetadata) GetDuration() *float64 {
if o == nil { if o == nil {
return nil return nil
} }
return o.Duration return o.Duration
} }
func (o *Metadata) GetOriginallyAvailableAt() *time.Time { func (o *GetRecentlyAddedMetadata) GetOriginallyAvailableAt() *time.Time {
if o == nil { if o == nil {
return nil return nil
} }
return o.OriginallyAvailableAt return o.OriginallyAvailableAt
} }
func (o *Metadata) GetAddedAt() *float64 { func (o *GetRecentlyAddedMetadata) GetAddedAt() *float64 {
if o == nil { if o == nil {
return nil return nil
} }
return o.AddedAt return o.AddedAt
} }
func (o *Metadata) GetUpdatedAt() *float64 { func (o *GetRecentlyAddedMetadata) GetUpdatedAt() *float64 {
if o == nil { if o == nil {
return nil return nil
} }
return o.UpdatedAt return o.UpdatedAt
} }
func (o *Metadata) GetAudienceRatingImage() *string { func (o *GetRecentlyAddedMetadata) GetAudienceRatingImage() *string {
if o == nil { if o == nil {
return nil return nil
} }
return o.AudienceRatingImage return o.AudienceRatingImage
} }
func (o *Metadata) GetChapterSource() *string { func (o *GetRecentlyAddedMetadata) GetChapterSource() *string {
if o == nil { if o == nil {
return nil return nil
} }
return o.ChapterSource return o.ChapterSource
} }
func (o *Metadata) GetPrimaryExtraKey() *string { func (o *GetRecentlyAddedMetadata) GetPrimaryExtraKey() *string {
if o == nil { if o == nil {
return nil return nil
} }
return o.PrimaryExtraKey return o.PrimaryExtraKey
} }
func (o *Metadata) GetRatingImage() *string { func (o *GetRecentlyAddedMetadata) GetRatingImage() *string {
if o == nil { if o == nil {
return nil return nil
} }
return o.RatingImage return o.RatingImage
} }
func (o *Metadata) GetMedia() []Media { func (o *GetRecentlyAddedMetadata) GetMedia() []Media {
if o == nil { if o == nil {
return nil return nil
} }
return o.Media return o.Media
} }
func (o *Metadata) GetGenre() []Genre { func (o *GetRecentlyAddedMetadata) GetGenre() []Genre {
if o == nil { if o == nil {
return nil return nil
} }
return o.Genre return o.Genre
} }
func (o *Metadata) GetDirector() []Director { func (o *GetRecentlyAddedMetadata) GetDirector() []Director {
if o == nil { if o == nil {
return nil return nil
} }
return o.Director return o.Director
} }
func (o *Metadata) GetWriter() []Writer { func (o *GetRecentlyAddedMetadata) GetWriter() []Writer {
if o == nil { if o == nil {
return nil return nil
} }
return o.Writer return o.Writer
} }
func (o *Metadata) GetCountry() []Country { func (o *GetRecentlyAddedMetadata) GetCountry() []Country {
if o == nil { if o == nil {
return nil return nil
} }
return o.Country return o.Country
} }
func (o *Metadata) GetRole() []Role { func (o *GetRecentlyAddedMetadata) GetRole() []Role {
if o == nil { if o == nil {
return nil return nil
} }
@@ -548,13 +548,13 @@ func (o *Metadata) GetRole() []Role {
} }
type GetRecentlyAddedMediaContainer struct { type GetRecentlyAddedMediaContainer struct {
Size *float64 `json:"size,omitempty"` Size *float64 `json:"size,omitempty"`
AllowSync *bool `json:"allowSync,omitempty"` AllowSync *bool `json:"allowSync,omitempty"`
Identifier *string `json:"identifier,omitempty"` Identifier *string `json:"identifier,omitempty"`
MediaTagPrefix *string `json:"mediaTagPrefix,omitempty"` MediaTagPrefix *string `json:"mediaTagPrefix,omitempty"`
MediaTagVersion *float64 `json:"mediaTagVersion,omitempty"` MediaTagVersion *float64 `json:"mediaTagVersion,omitempty"`
MixedParents *bool `json:"mixedParents,omitempty"` MixedParents *bool `json:"mixedParents,omitempty"`
Metadata []Metadata `json:"Metadata,omitempty"` Metadata []GetRecentlyAddedMetadata `json:"Metadata,omitempty"`
} }
func (o *GetRecentlyAddedMediaContainer) GetSize() *float64 { func (o *GetRecentlyAddedMediaContainer) GetSize() *float64 {
@@ -599,7 +599,7 @@ func (o *GetRecentlyAddedMediaContainer) GetMixedParents() *bool {
return o.MixedParents return o.MixedParents
} }
func (o *GetRecentlyAddedMediaContainer) GetMetadata() []Metadata { func (o *GetRecentlyAddedMediaContainer) GetMetadata() []GetRecentlyAddedMetadata {
if o == nil { if o == nil {
return nil return nil
} }

View File

@@ -0,0 +1,142 @@
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
package operations
import (
"net/http"
)
type GetResourcesStatisticsRequest struct {
// The timespan to retrieve statistics for
// the exact meaning of this parameter is not known
//
Timespan *int64 `queryParam:"style=form,explode=true,name=Timespan"`
}
func (o *GetResourcesStatisticsRequest) GetTimespan() *int64 {
if o == nil {
return nil
}
return o.Timespan
}
type StatisticsResources struct {
Timespan *int64 `json:"timespan,omitempty"`
At *int64 `json:"at,omitempty"`
HostCPUUtilization *float32 `json:"hostCpuUtilization,omitempty"`
ProcessCPUUtilization *float32 `json:"processCpuUtilization,omitempty"`
HostMemoryUtilization *float32 `json:"hostMemoryUtilization,omitempty"`
ProcessMemoryUtilization *float32 `json:"processMemoryUtilization,omitempty"`
}
func (o *StatisticsResources) GetTimespan() *int64 {
if o == nil {
return nil
}
return o.Timespan
}
func (o *StatisticsResources) GetAt() *int64 {
if o == nil {
return nil
}
return o.At
}
func (o *StatisticsResources) GetHostCPUUtilization() *float32 {
if o == nil {
return nil
}
return o.HostCPUUtilization
}
func (o *StatisticsResources) GetProcessCPUUtilization() *float32 {
if o == nil {
return nil
}
return o.ProcessCPUUtilization
}
func (o *StatisticsResources) GetHostMemoryUtilization() *float32 {
if o == nil {
return nil
}
return o.HostMemoryUtilization
}
func (o *StatisticsResources) GetProcessMemoryUtilization() *float32 {
if o == nil {
return nil
}
return o.ProcessMemoryUtilization
}
type GetResourcesStatisticsMediaContainer struct {
Size *int `json:"size,omitempty"`
StatisticsResources []StatisticsResources `json:"StatisticsResources,omitempty"`
}
func (o *GetResourcesStatisticsMediaContainer) GetSize() *int {
if o == nil {
return nil
}
return o.Size
}
func (o *GetResourcesStatisticsMediaContainer) GetStatisticsResources() []StatisticsResources {
if o == nil {
return nil
}
return o.StatisticsResources
}
// GetResourcesStatisticsResponseBody - Resource Statistics
type GetResourcesStatisticsResponseBody struct {
MediaContainer *GetResourcesStatisticsMediaContainer `json:"MediaContainer,omitempty"`
}
func (o *GetResourcesStatisticsResponseBody) GetMediaContainer() *GetResourcesStatisticsMediaContainer {
if o == nil {
return nil
}
return o.MediaContainer
}
type GetResourcesStatisticsResponse struct {
// HTTP response content type for this operation
ContentType string
// HTTP response status code for this operation
StatusCode int
// Raw HTTP response; suitable for custom response parsing
RawResponse *http.Response
// Resource Statistics
Object *GetResourcesStatisticsResponseBody
}
func (o *GetResourcesStatisticsResponse) GetContentType() string {
if o == nil {
return ""
}
return o.ContentType
}
func (o *GetResourcesStatisticsResponse) GetStatusCode() int {
if o == nil {
return 0
}
return o.StatusCode
}
func (o *GetResourcesStatisticsResponse) GetRawResponse() *http.Response {
if o == nil {
return nil
}
return o.RawResponse
}
func (o *GetResourcesStatisticsResponse) GetObject() *GetResourcesStatisticsResponseBody {
if o == nil {
return nil
}
return o.Object
}

View File

@@ -8,6 +8,55 @@ import (
"net/http" "net/http"
) )
// Filter - Filters content by field and direction/equality
// (Unknown if viewedAt is the only supported column)
type Filter struct {
}
type GetSessionHistoryRequest struct {
// Sorts the results by the specified field followed by the direction (asc, desc)
//
Sort *string `queryParam:"style=form,explode=true,name=sort"`
// Filter results by those that are related to a specific users id
//
AccountID *int64 `queryParam:"style=form,explode=true,name=accountId"`
// Filters content by field and direction/equality
// (Unknown if viewedAt is the only supported column)
//
Filter *Filter `queryParam:"style=form,explode=true,name=filter"`
// Filters the results based on the id of a valid library section
//
LibrarySectionID *int64 `queryParam:"style=form,explode=true,name=librarySectionID"`
}
func (o *GetSessionHistoryRequest) GetSort() *string {
if o == nil {
return nil
}
return o.Sort
}
func (o *GetSessionHistoryRequest) GetAccountID() *int64 {
if o == nil {
return nil
}
return o.AccountID
}
func (o *GetSessionHistoryRequest) GetFilter() *Filter {
if o == nil {
return nil
}
return o.Filter
}
func (o *GetSessionHistoryRequest) GetLibrarySectionID() *int64 {
if o == nil {
return nil
}
return o.LibrarySectionID
}
type GetSessionHistoryMetadata struct { type GetSessionHistoryMetadata struct {
HistoryKey *string `json:"historyKey,omitempty"` HistoryKey *string `json:"historyKey,omitempty"`
Key *string `json:"key,omitempty"` Key *string `json:"key,omitempty"`

View File

@@ -319,27 +319,27 @@ func (o *GetSessionsMedia) GetPart() []GetSessionsPart {
return o.Part return o.Part
} }
type User struct { type GetSessionsUser struct {
ID *string `json:"id,omitempty"` ID *string `json:"id,omitempty"`
Thumb *string `json:"thumb,omitempty"` Thumb *string `json:"thumb,omitempty"`
Title *string `json:"title,omitempty"` Title *string `json:"title,omitempty"`
} }
func (o *User) GetID() *string { func (o *GetSessionsUser) GetID() *string {
if o == nil { if o == nil {
return nil return nil
} }
return o.ID return o.ID
} }
func (o *User) GetThumb() *string { func (o *GetSessionsUser) GetThumb() *string {
if o == nil { if o == nil {
return nil return nil
} }
return o.Thumb return o.Thumb
} }
func (o *User) GetTitle() *string { func (o *GetSessionsUser) GetTitle() *string {
if o == nil { if o == nil {
return nil return nil
} }
@@ -531,7 +531,7 @@ type GetSessionsMetadata struct {
UpdatedAt *int `json:"updatedAt,omitempty"` UpdatedAt *int `json:"updatedAt,omitempty"`
ViewOffset *int `json:"viewOffset,omitempty"` ViewOffset *int `json:"viewOffset,omitempty"`
Media []GetSessionsMedia `json:"Media,omitempty"` Media []GetSessionsMedia `json:"Media,omitempty"`
User *User `json:"User,omitempty"` User *GetSessionsUser `json:"User,omitempty"`
Player *Player `json:"Player,omitempty"` Player *Player `json:"Player,omitempty"`
Session *Session `json:"Session,omitempty"` Session *Session `json:"Session,omitempty"`
} }
@@ -774,7 +774,7 @@ func (o *GetSessionsMetadata) GetMedia() []GetSessionsMedia {
return o.Media return o.Media
} }
func (o *GetSessionsMetadata) GetUser() *User { func (o *GetSessionsMetadata) GetUser() *GetSessionsUser {
if o == nil { if o == nil {
return nil return nil
} }

View File

@@ -3,7 +3,9 @@
package operations package operations
import ( import (
"github.com/LukeHagar/plexgo/internal/utils"
"net/http" "net/http"
"time"
) )
var GetTokenServerList = []string{ var GetTokenServerList = []string{
@@ -15,12 +17,12 @@ type GetTokenGlobals struct {
// This is used to track the client application and its usage // This is used to track the client application and its usage
// (UUID, serial number, or other number unique per device) // (UUID, serial number, or other number unique per device)
// //
XPlexClientIdentifier string `header:"style=simple,explode=false,name=X-Plex-Client-Identifier"` XPlexClientIdentifier *string `header:"style=simple,explode=false,name=X-Plex-Client-Identifier"`
} }
func (o *GetTokenGlobals) GetXPlexClientIdentifier() string { func (o *GetTokenGlobals) GetXPlexClientIdentifier() *string {
if o == nil { if o == nil {
return "" return nil
} }
return o.XPlexClientIdentifier return o.XPlexClientIdentifier
} }
@@ -49,6 +51,205 @@ func (o *GetTokenRequest) GetXPlexClientIdentifier() *string {
return o.XPlexClientIdentifier return o.XPlexClientIdentifier
} }
type GetTokenLocation struct {
Code *string `json:"code,omitempty"`
EuropeanUnionMember *bool `json:"european_union_member,omitempty"`
ContinentCode *string `json:"continent_code,omitempty"`
Country *string `json:"country,omitempty"`
City *string `json:"city,omitempty"`
TimeZone *string `json:"time_zone,omitempty"`
PostalCode *string `json:"postal_code,omitempty"`
InPrivacyRestrictedCountry *bool `json:"in_privacy_restricted_country,omitempty"`
Subdivisions *string `json:"subdivisions,omitempty"`
Coordinates *string `json:"coordinates,omitempty"`
}
func (o *GetTokenLocation) GetCode() *string {
if o == nil {
return nil
}
return o.Code
}
func (o *GetTokenLocation) GetEuropeanUnionMember() *bool {
if o == nil {
return nil
}
return o.EuropeanUnionMember
}
func (o *GetTokenLocation) GetContinentCode() *string {
if o == nil {
return nil
}
return o.ContinentCode
}
func (o *GetTokenLocation) GetCountry() *string {
if o == nil {
return nil
}
return o.Country
}
func (o *GetTokenLocation) GetCity() *string {
if o == nil {
return nil
}
return o.City
}
func (o *GetTokenLocation) GetTimeZone() *string {
if o == nil {
return nil
}
return o.TimeZone
}
func (o *GetTokenLocation) GetPostalCode() *string {
if o == nil {
return nil
}
return o.PostalCode
}
func (o *GetTokenLocation) GetInPrivacyRestrictedCountry() *bool {
if o == nil {
return nil
}
return o.InPrivacyRestrictedCountry
}
func (o *GetTokenLocation) GetSubdivisions() *string {
if o == nil {
return nil
}
return o.Subdivisions
}
func (o *GetTokenLocation) GetCoordinates() *string {
if o == nil {
return nil
}
return o.Coordinates
}
// GetTokenResponseBody - Access Token
type GetTokenResponseBody struct {
// PinID for use with authentication
ID *float64 `json:"id,omitempty"`
Code *string `json:"code,omitempty"`
Product *string `json:"product,omitempty"`
Trusted *bool `json:"trusted,omitempty"`
// a link to a QR code hosted on plex.tv
// The QR code redirects to the relevant `plex.tv/link` authentication page
// Which then prompts the user for the 4 Digit Link Pin
//
Qr *string `json:"qr,omitempty"`
ClientIdentifier *string `json:"clientIdentifier,omitempty"`
Location *GetTokenLocation `json:"location,omitempty"`
ExpiresIn *float64 `json:"expiresIn,omitempty"`
CreatedAt *time.Time `json:"createdAt,omitempty"`
ExpiresAt *time.Time `json:"expiresAt,omitempty"`
AuthToken *string `json:"authToken,omitempty"`
NewRegistration *string `json:"newRegistration,omitempty"`
}
func (g GetTokenResponseBody) MarshalJSON() ([]byte, error) {
return utils.MarshalJSON(g, "", false)
}
func (g *GetTokenResponseBody) UnmarshalJSON(data []byte) error {
if err := utils.UnmarshalJSON(data, &g, "", false, false); err != nil {
return err
}
return nil
}
func (o *GetTokenResponseBody) GetID() *float64 {
if o == nil {
return nil
}
return o.ID
}
func (o *GetTokenResponseBody) GetCode() *string {
if o == nil {
return nil
}
return o.Code
}
func (o *GetTokenResponseBody) GetProduct() *string {
if o == nil {
return nil
}
return o.Product
}
func (o *GetTokenResponseBody) GetTrusted() *bool {
if o == nil {
return nil
}
return o.Trusted
}
func (o *GetTokenResponseBody) GetQr() *string {
if o == nil {
return nil
}
return o.Qr
}
func (o *GetTokenResponseBody) GetClientIdentifier() *string {
if o == nil {
return nil
}
return o.ClientIdentifier
}
func (o *GetTokenResponseBody) GetLocation() *GetTokenLocation {
if o == nil {
return nil
}
return o.Location
}
func (o *GetTokenResponseBody) GetExpiresIn() *float64 {
if o == nil {
return nil
}
return o.ExpiresIn
}
func (o *GetTokenResponseBody) GetCreatedAt() *time.Time {
if o == nil {
return nil
}
return o.CreatedAt
}
func (o *GetTokenResponseBody) GetExpiresAt() *time.Time {
if o == nil {
return nil
}
return o.ExpiresAt
}
func (o *GetTokenResponseBody) GetAuthToken() *string {
if o == nil {
return nil
}
return o.AuthToken
}
func (o *GetTokenResponseBody) GetNewRegistration() *string {
if o == nil {
return nil
}
return o.NewRegistration
}
type GetTokenResponse struct { type GetTokenResponse struct {
// HTTP response content type for this operation // HTTP response content type for this operation
ContentType string ContentType string
@@ -56,6 +257,8 @@ type GetTokenResponse struct {
StatusCode int StatusCode int
// Raw HTTP response; suitable for custom response parsing // Raw HTTP response; suitable for custom response parsing
RawResponse *http.Response RawResponse *http.Response
// Access Token
Object *GetTokenResponseBody
} }
func (o *GetTokenResponse) GetContentType() string { func (o *GetTokenResponse) GetContentType() string {
@@ -78,3 +281,10 @@ func (o *GetTokenResponse) GetRawResponse() *http.Response {
} }
return o.RawResponse return o.RawResponse
} }
func (o *GetTokenResponse) GetObject() *GetTokenResponseBody {
if o == nil {
return nil
}
return o.Object
}

View File

@@ -0,0 +1,530 @@
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
package operations
import (
"github.com/LukeHagar/plexgo/internal/utils"
"github.com/LukeHagar/plexgo/types"
"net/http"
)
type GetTopWatchedContentRequest struct {
// the library type (1 - movies, 2 - shows, 3 - music)
Type int64 `queryParam:"style=form,explode=true,name=type"`
// Adds the Guids object to the response
//
IncludeGuids *int64 `queryParam:"style=form,explode=true,name=includeGuids"`
}
func (o *GetTopWatchedContentRequest) GetType() int64 {
if o == nil {
return 0
}
return o.Type
}
func (o *GetTopWatchedContentRequest) GetIncludeGuids() *int64 {
if o == nil {
return nil
}
return o.IncludeGuids
}
type GetTopWatchedContentGenre struct {
ID *int `json:"id,omitempty"`
Filter *string `json:"filter,omitempty"`
Tag *string `json:"tag,omitempty"`
}
func (o *GetTopWatchedContentGenre) GetID() *int {
if o == nil {
return nil
}
return o.ID
}
func (o *GetTopWatchedContentGenre) GetFilter() *string {
if o == nil {
return nil
}
return o.Filter
}
func (o *GetTopWatchedContentGenre) GetTag() *string {
if o == nil {
return nil
}
return o.Tag
}
type GetTopWatchedContentCountry struct {
ID *int `json:"id,omitempty"`
Filter *string `json:"filter,omitempty"`
Tag *string `json:"tag,omitempty"`
}
func (o *GetTopWatchedContentCountry) GetID() *int {
if o == nil {
return nil
}
return o.ID
}
func (o *GetTopWatchedContentCountry) GetFilter() *string {
if o == nil {
return nil
}
return o.Filter
}
func (o *GetTopWatchedContentCountry) GetTag() *string {
if o == nil {
return nil
}
return o.Tag
}
type GetTopWatchedContentGuids struct {
ID *string `json:"id,omitempty"`
}
func (o *GetTopWatchedContentGuids) GetID() *string {
if o == nil {
return nil
}
return o.ID
}
type GetTopWatchedContentRole struct {
ID *int `json:"id,omitempty"`
Filter *string `json:"filter,omitempty"`
Tag *string `json:"tag,omitempty"`
TagKey *string `json:"tagKey,omitempty"`
Role *string `json:"role,omitempty"`
Thumb *string `json:"thumb,omitempty"`
}
func (o *GetTopWatchedContentRole) GetID() *int {
if o == nil {
return nil
}
return o.ID
}
func (o *GetTopWatchedContentRole) GetFilter() *string {
if o == nil {
return nil
}
return o.Filter
}
func (o *GetTopWatchedContentRole) GetTag() *string {
if o == nil {
return nil
}
return o.Tag
}
func (o *GetTopWatchedContentRole) GetTagKey() *string {
if o == nil {
return nil
}
return o.TagKey
}
func (o *GetTopWatchedContentRole) GetRole() *string {
if o == nil {
return nil
}
return o.Role
}
func (o *GetTopWatchedContentRole) GetThumb() *string {
if o == nil {
return nil
}
return o.Thumb
}
type User struct {
ID *int `json:"id,omitempty"`
}
func (o *User) GetID() *int {
if o == nil {
return nil
}
return o.ID
}
type GetTopWatchedContentMetadata struct {
RatingKey *string `json:"ratingKey,omitempty"`
Key *string `json:"key,omitempty"`
GUID *string `json:"guid,omitempty"`
Slug *string `json:"slug,omitempty"`
Studio *string `json:"studio,omitempty"`
Type *string `json:"type,omitempty"`
Title *string `json:"title,omitempty"`
LibrarySectionTitle *string `json:"librarySectionTitle,omitempty"`
LibrarySectionID *int `json:"librarySectionID,omitempty"`
LibrarySectionKey *string `json:"librarySectionKey,omitempty"`
ContentRating *string `json:"contentRating,omitempty"`
Summary *string `json:"summary,omitempty"`
Index *int64 `json:"index,omitempty"`
AudienceRating *float64 `json:"audienceRating,omitempty"`
Year *int `json:"year,omitempty"`
Tagline *string `json:"tagline,omitempty"`
Thumb *string `json:"thumb,omitempty"`
Art *string `json:"art,omitempty"`
Duration *int `json:"duration,omitempty"`
OriginallyAvailableAt *types.Date `json:"originallyAvailableAt,omitempty"`
LeafCount *int64 `json:"leafCount,omitempty"`
ViewedLeafCount *int64 `json:"viewedLeafCount,omitempty"`
ChildCount *int64 `json:"childCount,omitempty"`
AddedAt *int `json:"addedAt,omitempty"`
UpdatedAt *int `json:"updatedAt,omitempty"`
GlobalViewCount *int64 `json:"globalViewCount,omitempty"`
AudienceRatingImage *string `json:"audienceRatingImage,omitempty"`
Genre []GetTopWatchedContentGenre `json:"Genre,omitempty"`
Country []GetTopWatchedContentCountry `json:"Country,omitempty"`
Guids []GetTopWatchedContentGuids `json:"Guid,omitempty"`
Role []GetTopWatchedContentRole `json:"Role,omitempty"`
User []User `json:"User,omitempty"`
}
func (g GetTopWatchedContentMetadata) MarshalJSON() ([]byte, error) {
return utils.MarshalJSON(g, "", false)
}
func (g *GetTopWatchedContentMetadata) UnmarshalJSON(data []byte) error {
if err := utils.UnmarshalJSON(data, &g, "", false, false); err != nil {
return err
}
return nil
}
func (o *GetTopWatchedContentMetadata) GetRatingKey() *string {
if o == nil {
return nil
}
return o.RatingKey
}
func (o *GetTopWatchedContentMetadata) GetKey() *string {
if o == nil {
return nil
}
return o.Key
}
func (o *GetTopWatchedContentMetadata) GetGUID() *string {
if o == nil {
return nil
}
return o.GUID
}
func (o *GetTopWatchedContentMetadata) GetSlug() *string {
if o == nil {
return nil
}
return o.Slug
}
func (o *GetTopWatchedContentMetadata) GetStudio() *string {
if o == nil {
return nil
}
return o.Studio
}
func (o *GetTopWatchedContentMetadata) GetType() *string {
if o == nil {
return nil
}
return o.Type
}
func (o *GetTopWatchedContentMetadata) GetTitle() *string {
if o == nil {
return nil
}
return o.Title
}
func (o *GetTopWatchedContentMetadata) GetLibrarySectionTitle() *string {
if o == nil {
return nil
}
return o.LibrarySectionTitle
}
func (o *GetTopWatchedContentMetadata) GetLibrarySectionID() *int {
if o == nil {
return nil
}
return o.LibrarySectionID
}
func (o *GetTopWatchedContentMetadata) GetLibrarySectionKey() *string {
if o == nil {
return nil
}
return o.LibrarySectionKey
}
func (o *GetTopWatchedContentMetadata) GetContentRating() *string {
if o == nil {
return nil
}
return o.ContentRating
}
func (o *GetTopWatchedContentMetadata) GetSummary() *string {
if o == nil {
return nil
}
return o.Summary
}
func (o *GetTopWatchedContentMetadata) GetIndex() *int64 {
if o == nil {
return nil
}
return o.Index
}
func (o *GetTopWatchedContentMetadata) GetAudienceRating() *float64 {
if o == nil {
return nil
}
return o.AudienceRating
}
func (o *GetTopWatchedContentMetadata) GetYear() *int {
if o == nil {
return nil
}
return o.Year
}
func (o *GetTopWatchedContentMetadata) GetTagline() *string {
if o == nil {
return nil
}
return o.Tagline
}
func (o *GetTopWatchedContentMetadata) GetThumb() *string {
if o == nil {
return nil
}
return o.Thumb
}
func (o *GetTopWatchedContentMetadata) GetArt() *string {
if o == nil {
return nil
}
return o.Art
}
func (o *GetTopWatchedContentMetadata) GetDuration() *int {
if o == nil {
return nil
}
return o.Duration
}
func (o *GetTopWatchedContentMetadata) GetOriginallyAvailableAt() *types.Date {
if o == nil {
return nil
}
return o.OriginallyAvailableAt
}
func (o *GetTopWatchedContentMetadata) GetLeafCount() *int64 {
if o == nil {
return nil
}
return o.LeafCount
}
func (o *GetTopWatchedContentMetadata) GetViewedLeafCount() *int64 {
if o == nil {
return nil
}
return o.ViewedLeafCount
}
func (o *GetTopWatchedContentMetadata) GetChildCount() *int64 {
if o == nil {
return nil
}
return o.ChildCount
}
func (o *GetTopWatchedContentMetadata) GetAddedAt() *int {
if o == nil {
return nil
}
return o.AddedAt
}
func (o *GetTopWatchedContentMetadata) GetUpdatedAt() *int {
if o == nil {
return nil
}
return o.UpdatedAt
}
func (o *GetTopWatchedContentMetadata) GetGlobalViewCount() *int64 {
if o == nil {
return nil
}
return o.GlobalViewCount
}
func (o *GetTopWatchedContentMetadata) GetAudienceRatingImage() *string {
if o == nil {
return nil
}
return o.AudienceRatingImage
}
func (o *GetTopWatchedContentMetadata) GetGenre() []GetTopWatchedContentGenre {
if o == nil {
return nil
}
return o.Genre
}
func (o *GetTopWatchedContentMetadata) GetCountry() []GetTopWatchedContentCountry {
if o == nil {
return nil
}
return o.Country
}
func (o *GetTopWatchedContentMetadata) GetGuids() []GetTopWatchedContentGuids {
if o == nil {
return nil
}
return o.Guids
}
func (o *GetTopWatchedContentMetadata) GetRole() []GetTopWatchedContentRole {
if o == nil {
return nil
}
return o.Role
}
func (o *GetTopWatchedContentMetadata) GetUser() []User {
if o == nil {
return nil
}
return o.User
}
type GetTopWatchedContentMediaContainer struct {
Size *int `json:"size,omitempty"`
AllowSync *bool `json:"allowSync,omitempty"`
Identifier *string `json:"identifier,omitempty"`
MediaTagPrefix *string `json:"mediaTagPrefix,omitempty"`
MediaTagVersion *int `json:"mediaTagVersion,omitempty"`
Metadata []GetTopWatchedContentMetadata `json:"Metadata,omitempty"`
}
func (o *GetTopWatchedContentMediaContainer) GetSize() *int {
if o == nil {
return nil
}
return o.Size
}
func (o *GetTopWatchedContentMediaContainer) GetAllowSync() *bool {
if o == nil {
return nil
}
return o.AllowSync
}
func (o *GetTopWatchedContentMediaContainer) GetIdentifier() *string {
if o == nil {
return nil
}
return o.Identifier
}
func (o *GetTopWatchedContentMediaContainer) GetMediaTagPrefix() *string {
if o == nil {
return nil
}
return o.MediaTagPrefix
}
func (o *GetTopWatchedContentMediaContainer) GetMediaTagVersion() *int {
if o == nil {
return nil
}
return o.MediaTagVersion
}
func (o *GetTopWatchedContentMediaContainer) GetMetadata() []GetTopWatchedContentMetadata {
if o == nil {
return nil
}
return o.Metadata
}
// GetTopWatchedContentResponseBody - The metadata of the library item.
type GetTopWatchedContentResponseBody struct {
MediaContainer *GetTopWatchedContentMediaContainer `json:"MediaContainer,omitempty"`
}
func (o *GetTopWatchedContentResponseBody) GetMediaContainer() *GetTopWatchedContentMediaContainer {
if o == nil {
return nil
}
return o.MediaContainer
}
type GetTopWatchedContentResponse struct {
// HTTP response content type for this operation
ContentType string
// HTTP response status code for this operation
StatusCode int
// Raw HTTP response; suitable for custom response parsing
RawResponse *http.Response
// The metadata of the library item.
Object *GetTopWatchedContentResponseBody
}
func (o *GetTopWatchedContentResponse) GetContentType() string {
if o == nil {
return ""
}
return o.ContentType
}
func (o *GetTopWatchedContentResponse) GetStatusCode() int {
if o == nil {
return 0
}
return o.StatusCode
}
func (o *GetTopWatchedContentResponse) GetRawResponse() *http.Response {
if o == nil {
return nil
}
return o.RawResponse
}
func (o *GetTopWatchedContentResponse) GetObject() *GetTopWatchedContentResponseBody {
if o == nil {
return nil
}
return o.Object
}

View File

@@ -0,0 +1,642 @@
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
package operations
import (
"encoding/json"
"fmt"
"github.com/LukeHagar/plexgo/internal/utils"
"github.com/LukeHagar/plexgo/types"
"net/http"
)
var GetWatchlistServerList = []string{
"https://metadata.provider.plex.tv",
}
// PathParamFilter - Filter
type PathParamFilter string
const (
PathParamFilterAll PathParamFilter = "all"
PathParamFilterAvailable PathParamFilter = "available"
PathParamFilterReleased PathParamFilter = "released"
)
func (e PathParamFilter) ToPointer() *PathParamFilter {
return &e
}
func (e *PathParamFilter) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "all":
fallthrough
case "available":
fallthrough
case "released":
*e = PathParamFilter(v)
return nil
default:
return fmt.Errorf("invalid value for PathParamFilter: %v", v)
}
}
// Libtype - The type of library to filter. Can be "movie" or "show", or all if not present.
type Libtype string
const (
LibtypeMovie Libtype = "movie"
LibtypeShow Libtype = "show"
)
func (e Libtype) ToPointer() *Libtype {
return &e
}
func (e *Libtype) UnmarshalJSON(data []byte) error {
var v string
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case "movie":
fallthrough
case "show":
*e = Libtype(v)
return nil
default:
return fmt.Errorf("invalid value for Libtype: %v", v)
}
}
// IncludeCollections - include collections in the results
type IncludeCollections int64
const (
IncludeCollectionsOne IncludeCollections = 1
IncludeCollectionsZero IncludeCollections = 0
)
func (e IncludeCollections) ToPointer() *IncludeCollections {
return &e
}
func (e *IncludeCollections) UnmarshalJSON(data []byte) error {
var v int64
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case 1:
fallthrough
case 0:
*e = IncludeCollections(v)
return nil
default:
return fmt.Errorf("invalid value for IncludeCollections: %v", v)
}
}
// IncludeExternalMedia - include external media in the results
type IncludeExternalMedia int64
const (
IncludeExternalMediaOne IncludeExternalMedia = 1
IncludeExternalMediaZero IncludeExternalMedia = 0
)
func (e IncludeExternalMedia) ToPointer() *IncludeExternalMedia {
return &e
}
func (e *IncludeExternalMedia) UnmarshalJSON(data []byte) error {
var v int64
if err := json.Unmarshal(data, &v); err != nil {
return err
}
switch v {
case 1:
fallthrough
case 0:
*e = IncludeExternalMedia(v)
return nil
default:
return fmt.Errorf("invalid value for IncludeExternalMedia: %v", v)
}
}
type GetWatchlistRequest struct {
// Filter
Filter PathParamFilter `pathParam:"style=simple,explode=false,name=filter"`
// In the format "field:dir". Available fields are "watchlistedAt" (Added At),
// "titleSort" (Title), "originallyAvailableAt" (Release Date), or "rating" (Critic Rating).
// "dir" can be "asc" or "desc"
//
Sort *string `queryParam:"style=form,explode=true,name=sort"`
// The type of library to filter. Can be "movie" or "show", or all if not present.
//
Libtype *Libtype `queryParam:"style=form,explode=true,name=libtype"`
// The number of items to return. If not specified, all items will be returned.
// If the number of items exceeds the limit, the response will be paginated.
//
Maxresults *int `queryParam:"style=form,explode=true,name=maxresults"`
// include collections in the results
//
IncludeCollections *IncludeCollections `queryParam:"style=form,explode=true,name=includeCollections"`
// include external media in the results
//
IncludeExternalMedia *IncludeExternalMedia `queryParam:"style=form,explode=true,name=includeExternalMedia"`
// User Token
XPlexToken string `queryParam:"style=form,explode=true,name=X-Plex-Token"`
// The index of the first item to return. If not specified, the first item will be returned.
// If the number of items exceeds the limit, the response will be paginated.
//
XPlexContainerStart *int `queryParam:"style=form,explode=true,name=X-Plex-Container-Start"`
// The number of items to return. If not specified, all items will be returned.
// If the number of items exceeds the limit, the response will be paginated.
//
XPlexContainerSize *int `queryParam:"style=form,explode=true,name=X-Plex-Container-Size"`
}
func (o *GetWatchlistRequest) GetFilter() PathParamFilter {
if o == nil {
return PathParamFilter("")
}
return o.Filter
}
func (o *GetWatchlistRequest) GetSort() *string {
if o == nil {
return nil
}
return o.Sort
}
func (o *GetWatchlistRequest) GetLibtype() *Libtype {
if o == nil {
return nil
}
return o.Libtype
}
func (o *GetWatchlistRequest) GetMaxresults() *int {
if o == nil {
return nil
}
return o.Maxresults
}
func (o *GetWatchlistRequest) GetIncludeCollections() *IncludeCollections {
if o == nil {
return nil
}
return o.IncludeCollections
}
func (o *GetWatchlistRequest) GetIncludeExternalMedia() *IncludeExternalMedia {
if o == nil {
return nil
}
return o.IncludeExternalMedia
}
func (o *GetWatchlistRequest) GetXPlexToken() string {
if o == nil {
return ""
}
return o.XPlexToken
}
func (o *GetWatchlistRequest) GetXPlexContainerStart() *int {
if o == nil {
return nil
}
return o.XPlexContainerStart
}
func (o *GetWatchlistRequest) GetXPlexContainerSize() *int {
if o == nil {
return nil
}
return o.XPlexContainerSize
}
type Image struct {
Alt *string `json:"alt,omitempty"`
Type *string `json:"type,omitempty"`
URL *string `json:"url,omitempty"`
}
func (o *Image) GetAlt() *string {
if o == nil {
return nil
}
return o.Alt
}
func (o *Image) GetType() *string {
if o == nil {
return nil
}
return o.Type
}
func (o *Image) GetURL() *string {
if o == nil {
return nil
}
return o.URL
}
type Metadata struct {
Art *string `json:"art,omitempty"`
GUID *string `json:"guid,omitempty"`
Key *string `json:"key,omitempty"`
RatingKey *string `json:"ratingKey,omitempty"`
Studio *string `json:"studio,omitempty"`
Tagline *string `json:"tagline,omitempty"`
Type *string `json:"type,omitempty"`
Thumb *string `json:"thumb,omitempty"`
AddedAt *int `json:"addedAt,omitempty"`
Duration *int `json:"duration,omitempty"`
PublicPagesURL *string `json:"publicPagesURL,omitempty"`
Slug *string `json:"slug,omitempty"`
UserState *bool `json:"userState,omitempty"`
Title *string `json:"title,omitempty"`
ContentRating *string `json:"contentRating,omitempty"`
OriginallyAvailableAt *types.Date `json:"originallyAvailableAt,omitempty"`
Year *int `json:"year,omitempty"`
Image []Image `json:"Image,omitempty"`
Banner *string `json:"banner,omitempty"`
Rating *float64 `json:"rating,omitempty"`
ExpiresAt *int `json:"expiresAt,omitempty"`
OriginalTitle *string `json:"originalTitle,omitempty"`
AudienceRating *float64 `json:"audienceRating,omitempty"`
AudienceRatingImage *string `json:"audienceRatingImage,omitempty"`
RatingImage *string `json:"ratingImage,omitempty"`
ImdbRatingCount *int `json:"imdbRatingCount,omitempty"`
Subtype *string `json:"subtype,omitempty"`
Theme *string `json:"theme,omitempty"`
LeafCount *int `json:"leafCount,omitempty"`
ChildCount *int `json:"childCount,omitempty"`
IsContinuingSeries *bool `json:"isContinuingSeries,omitempty"`
SkipChildren *bool `json:"skipChildren,omitempty"`
AvailabilityID *string `json:"availabilityId,omitempty"`
StreamingMediaID *string `json:"streamingMediaId,omitempty"`
PlayableKey *string `json:"playableKey,omitempty"`
}
func (m Metadata) MarshalJSON() ([]byte, error) {
return utils.MarshalJSON(m, "", false)
}
func (m *Metadata) UnmarshalJSON(data []byte) error {
if err := utils.UnmarshalJSON(data, &m, "", false, false); err != nil {
return err
}
return nil
}
func (o *Metadata) GetArt() *string {
if o == nil {
return nil
}
return o.Art
}
func (o *Metadata) GetGUID() *string {
if o == nil {
return nil
}
return o.GUID
}
func (o *Metadata) GetKey() *string {
if o == nil {
return nil
}
return o.Key
}
func (o *Metadata) GetRatingKey() *string {
if o == nil {
return nil
}
return o.RatingKey
}
func (o *Metadata) GetStudio() *string {
if o == nil {
return nil
}
return o.Studio
}
func (o *Metadata) GetTagline() *string {
if o == nil {
return nil
}
return o.Tagline
}
func (o *Metadata) GetType() *string {
if o == nil {
return nil
}
return o.Type
}
func (o *Metadata) GetThumb() *string {
if o == nil {
return nil
}
return o.Thumb
}
func (o *Metadata) GetAddedAt() *int {
if o == nil {
return nil
}
return o.AddedAt
}
func (o *Metadata) GetDuration() *int {
if o == nil {
return nil
}
return o.Duration
}
func (o *Metadata) GetPublicPagesURL() *string {
if o == nil {
return nil
}
return o.PublicPagesURL
}
func (o *Metadata) GetSlug() *string {
if o == nil {
return nil
}
return o.Slug
}
func (o *Metadata) GetUserState() *bool {
if o == nil {
return nil
}
return o.UserState
}
func (o *Metadata) GetTitle() *string {
if o == nil {
return nil
}
return o.Title
}
func (o *Metadata) GetContentRating() *string {
if o == nil {
return nil
}
return o.ContentRating
}
func (o *Metadata) GetOriginallyAvailableAt() *types.Date {
if o == nil {
return nil
}
return o.OriginallyAvailableAt
}
func (o *Metadata) GetYear() *int {
if o == nil {
return nil
}
return o.Year
}
func (o *Metadata) GetImage() []Image {
if o == nil {
return nil
}
return o.Image
}
func (o *Metadata) GetBanner() *string {
if o == nil {
return nil
}
return o.Banner
}
func (o *Metadata) GetRating() *float64 {
if o == nil {
return nil
}
return o.Rating
}
func (o *Metadata) GetExpiresAt() *int {
if o == nil {
return nil
}
return o.ExpiresAt
}
func (o *Metadata) GetOriginalTitle() *string {
if o == nil {
return nil
}
return o.OriginalTitle
}
func (o *Metadata) GetAudienceRating() *float64 {
if o == nil {
return nil
}
return o.AudienceRating
}
func (o *Metadata) GetAudienceRatingImage() *string {
if o == nil {
return nil
}
return o.AudienceRatingImage
}
func (o *Metadata) GetRatingImage() *string {
if o == nil {
return nil
}
return o.RatingImage
}
func (o *Metadata) GetImdbRatingCount() *int {
if o == nil {
return nil
}
return o.ImdbRatingCount
}
func (o *Metadata) GetSubtype() *string {
if o == nil {
return nil
}
return o.Subtype
}
func (o *Metadata) GetTheme() *string {
if o == nil {
return nil
}
return o.Theme
}
func (o *Metadata) GetLeafCount() *int {
if o == nil {
return nil
}
return o.LeafCount
}
func (o *Metadata) GetChildCount() *int {
if o == nil {
return nil
}
return o.ChildCount
}
func (o *Metadata) GetIsContinuingSeries() *bool {
if o == nil {
return nil
}
return o.IsContinuingSeries
}
func (o *Metadata) GetSkipChildren() *bool {
if o == nil {
return nil
}
return o.SkipChildren
}
func (o *Metadata) GetAvailabilityID() *string {
if o == nil {
return nil
}
return o.AvailabilityID
}
func (o *Metadata) GetStreamingMediaID() *string {
if o == nil {
return nil
}
return o.StreamingMediaID
}
func (o *Metadata) GetPlayableKey() *string {
if o == nil {
return nil
}
return o.PlayableKey
}
// GetWatchlistResponseBody - Watchlist Data
type GetWatchlistResponseBody struct {
LibrarySectionID *string `json:"librarySectionID,omitempty"`
LibrarySectionTitle *string `json:"librarySectionTitle,omitempty"`
Offset *int `json:"offset,omitempty"`
TotalSize *int `json:"totalSize,omitempty"`
Identifier *string `json:"identifier,omitempty"`
Size *int `json:"size,omitempty"`
Metadata []Metadata `json:"Metadata,omitempty"`
}
func (o *GetWatchlistResponseBody) GetLibrarySectionID() *string {
if o == nil {
return nil
}
return o.LibrarySectionID
}
func (o *GetWatchlistResponseBody) GetLibrarySectionTitle() *string {
if o == nil {
return nil
}
return o.LibrarySectionTitle
}
func (o *GetWatchlistResponseBody) GetOffset() *int {
if o == nil {
return nil
}
return o.Offset
}
func (o *GetWatchlistResponseBody) GetTotalSize() *int {
if o == nil {
return nil
}
return o.TotalSize
}
func (o *GetWatchlistResponseBody) GetIdentifier() *string {
if o == nil {
return nil
}
return o.Identifier
}
func (o *GetWatchlistResponseBody) GetSize() *int {
if o == nil {
return nil
}
return o.Size
}
func (o *GetWatchlistResponseBody) GetMetadata() []Metadata {
if o == nil {
return nil
}
return o.Metadata
}
type GetWatchlistResponse struct {
// HTTP response content type for this operation
ContentType string
// HTTP response status code for this operation
StatusCode int
// Raw HTTP response; suitable for custom response parsing
RawResponse *http.Response
// Watchlist Data
Object *GetWatchlistResponseBody
}
func (o *GetWatchlistResponse) GetContentType() string {
if o == nil {
return ""
}
return o.ContentType
}
func (o *GetWatchlistResponse) GetStatusCode() int {
if o == nil {
return 0
}
return o.StatusCode
}
func (o *GetWatchlistResponse) GetRawResponse() *http.Response {
if o == nil {
return nil
}
return o.RawResponse
}
func (o *GetWatchlistResponse) GetObject() *GetWatchlistResponseBody {
if o == nil {
return nil
}
return o.Object
}

View File

@@ -0,0 +1,49 @@
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
package sdkerrors
import (
"encoding/json"
"net/http"
)
type GetBandwidthStatisticsErrors struct {
Code *float64 `json:"code,omitempty"`
Message *string `json:"message,omitempty"`
Status *float64 `json:"status,omitempty"`
}
func (o *GetBandwidthStatisticsErrors) GetCode() *float64 {
if o == nil {
return nil
}
return o.Code
}
func (o *GetBandwidthStatisticsErrors) GetMessage() *string {
if o == nil {
return nil
}
return o.Message
}
func (o *GetBandwidthStatisticsErrors) GetStatus() *float64 {
if o == nil {
return nil
}
return o.Status
}
// GetBandwidthStatisticsResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
type GetBandwidthStatisticsResponseBody struct {
Errors []GetBandwidthStatisticsErrors `json:"errors,omitempty"`
// Raw HTTP response; suitable for custom response parsing
RawResponse *http.Response `json:"-"`
}
var _ error = &GetBandwidthStatisticsResponseBody{}
func (e *GetBandwidthStatisticsResponseBody) Error() string {
data, _ := json.Marshal(e)
return string(data)
}

View File

@@ -0,0 +1,49 @@
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
package sdkerrors
import (
"encoding/json"
"net/http"
)
type GetHomeDataErrors struct {
Code *float64 `json:"code,omitempty"`
Message *string `json:"message,omitempty"`
Status *float64 `json:"status,omitempty"`
}
func (o *GetHomeDataErrors) GetCode() *float64 {
if o == nil {
return nil
}
return o.Code
}
func (o *GetHomeDataErrors) GetMessage() *string {
if o == nil {
return nil
}
return o.Message
}
func (o *GetHomeDataErrors) GetStatus() *float64 {
if o == nil {
return nil
}
return o.Status
}
// GetHomeDataResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
type GetHomeDataResponseBody struct {
Errors []GetHomeDataErrors `json:"errors,omitempty"`
// Raw HTTP response; suitable for custom response parsing
RawResponse *http.Response `json:"-"`
}
var _ error = &GetHomeDataResponseBody{}
func (e *GetHomeDataResponseBody) Error() string {
data, _ := json.Marshal(e)
return string(data)
}

View File

@@ -0,0 +1,49 @@
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
package sdkerrors
import (
"encoding/json"
"net/http"
)
type GetResourcesStatisticsErrors struct {
Code *float64 `json:"code,omitempty"`
Message *string `json:"message,omitempty"`
Status *float64 `json:"status,omitempty"`
}
func (o *GetResourcesStatisticsErrors) GetCode() *float64 {
if o == nil {
return nil
}
return o.Code
}
func (o *GetResourcesStatisticsErrors) GetMessage() *string {
if o == nil {
return nil
}
return o.Message
}
func (o *GetResourcesStatisticsErrors) GetStatus() *float64 {
if o == nil {
return nil
}
return o.Status
}
// GetResourcesStatisticsResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
type GetResourcesStatisticsResponseBody struct {
Errors []GetResourcesStatisticsErrors `json:"errors,omitempty"`
// Raw HTTP response; suitable for custom response parsing
RawResponse *http.Response `json:"-"`
}
var _ error = &GetResourcesStatisticsResponseBody{}
func (e *GetResourcesStatisticsResponseBody) Error() string {
data, _ := json.Marshal(e)
return string(data)
}

View File

@@ -0,0 +1,49 @@
// Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
package sdkerrors
import (
"encoding/json"
"net/http"
)
type GetWatchlistErrors struct {
Code *float64 `json:"code,omitempty"`
Message *string `json:"message,omitempty"`
Status *float64 `json:"status,omitempty"`
}
func (o *GetWatchlistErrors) GetCode() *float64 {
if o == nil {
return nil
}
return o.Code
}
func (o *GetWatchlistErrors) GetMessage() *string {
if o == nil {
return nil
}
return o.Message
}
func (o *GetWatchlistErrors) GetStatus() *float64 {
if o == nil {
return nil
}
return o.Status
}
// GetWatchlistResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
type GetWatchlistResponseBody struct {
Errors []GetWatchlistErrors `json:"errors,omitempty"`
// Raw HTTP response; suitable for custom response parsing
RawResponse *http.Response `json:"-"`
}
var _ error = &GetWatchlistResponseBody{}
func (e *GetWatchlistResponseBody) Error() string {
data, _ := json.Marshal(e)
return string(data)
}

View File

@@ -450,7 +450,7 @@ func (s *Playlists) DeletePlaylist(ctx context.Context, playlistID float64) (*op
httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
switch { switch {
case httpRes.StatusCode == 200: case httpRes.StatusCode == 204:
case httpRes.StatusCode == 400: case httpRes.StatusCode == 400:
fallthrough fallthrough
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:

126
plex.go
View File

@@ -12,6 +12,7 @@ import (
"github.com/LukeHagar/plexgo/models/sdkerrors" "github.com/LukeHagar/plexgo/models/sdkerrors"
"io" "io"
"net/http" "net/http"
"net/url"
) )
// Plex - API Calls that perform operations directly against https://Plex.tv // Plex - API Calls that perform operations directly against https://Plex.tv
@@ -25,9 +26,118 @@ func newPlex(sdkConfig sdkConfiguration) *Plex {
} }
} }
// GetHomeData - Get Plex Home Data
// Retrieves the home data for the authenticated user, including details like home ID, name, guest access information, and subscription status.
func (s *Plex) GetHomeData(ctx context.Context) (*operations.GetHomeDataResponse, error) {
hookCtx := hooks.HookContext{
Context: ctx,
OperationID: "getHomeData",
OAuth2Scopes: []string{},
SecuritySource: s.sdkConfiguration.Security,
}
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
opURL, err := url.JoinPath(baseURL, "/home")
if err != nil {
return nil, fmt.Errorf("error generating URL: %w", err)
}
req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
if err != nil {
return nil, fmt.Errorf("error creating request: %w", err)
}
req.Header.Set("Accept", "application/json")
req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
return nil, err
}
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
if err != nil {
return nil, err
}
httpRes, err := s.sdkConfiguration.Client.Do(req)
if err != nil || httpRes == nil {
if err != nil {
err = fmt.Errorf("error sending request: %w", err)
} else {
err = fmt.Errorf("error sending request: no response")
}
_, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
return nil, err
} else if utils.MatchStatusCodes([]string{"400", "401", "4XX", "5XX"}, httpRes.StatusCode) {
_httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
if err != nil {
return nil, err
} else if _httpRes != nil {
httpRes = _httpRes
}
} else {
httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
if err != nil {
return nil, err
}
}
res := &operations.GetHomeDataResponse{
StatusCode: httpRes.StatusCode,
ContentType: httpRes.Header.Get("Content-Type"),
RawResponse: httpRes,
}
rawBody, err := io.ReadAll(httpRes.Body)
if err != nil {
return nil, fmt.Errorf("error reading response body: %w", err)
}
httpRes.Body.Close()
httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
switch {
case httpRes.StatusCode == 200:
switch {
case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
var out operations.GetHomeDataResponseBody
if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
return nil, err
}
res.Object = &out
default:
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
}
case httpRes.StatusCode == 400:
fallthrough
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
fallthrough
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
case httpRes.StatusCode == 401:
switch {
case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
var out sdkerrors.GetHomeDataResponseBody
if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
return nil, err
}
out.RawResponse = httpRes
return nil, &out
default:
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
}
default:
return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes)
}
return res, nil
}
// GetPin - Get a Pin // GetPin - Get a Pin
// Retrieve a Pin from Plex.tv for authentication flows // Retrieve a Pin from Plex.tv for authentication flows
func (s *Plex) GetPin(ctx context.Context, strong *bool, xPlexClientIdentifier *string, opts ...operations.Option) (*operations.GetPinResponse, error) { func (s *Plex) GetPin(ctx context.Context, xPlexProduct string, strong *bool, xPlexClientIdentifier *string, opts ...operations.Option) (*operations.GetPinResponse, error) {
hookCtx := hooks.HookContext{ hookCtx := hooks.HookContext{
Context: ctx, Context: ctx,
OperationID: "getPin", OperationID: "getPin",
@@ -38,6 +148,7 @@ func (s *Plex) GetPin(ctx context.Context, strong *bool, xPlexClientIdentifier *
request := operations.GetPinRequest{ request := operations.GetPinRequest{
Strong: strong, Strong: strong,
XPlexClientIdentifier: xPlexClientIdentifier, XPlexClientIdentifier: xPlexClientIdentifier,
XPlexProduct: xPlexProduct,
} }
globals := operations.GetPinGlobals{ globals := operations.GetPinGlobals{
@@ -120,7 +231,7 @@ func (s *Plex) GetPin(ctx context.Context, strong *bool, xPlexClientIdentifier *
httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
switch { switch {
case httpRes.StatusCode == 200: case httpRes.StatusCode == 201:
switch { switch {
case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
var out operations.GetPinResponseBody var out operations.GetPinResponseBody
@@ -253,6 +364,17 @@ func (s *Plex) GetToken(ctx context.Context, pinID string, xPlexClientIdentifier
switch { switch {
case httpRes.StatusCode == 200: case httpRes.StatusCode == 200:
switch {
case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
var out operations.GetTokenResponseBody
if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
return nil, err
}
res.Object = &out
default:
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
}
case httpRes.StatusCode == 400: case httpRes.StatusCode == 400:
switch { switch {
case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):

View File

@@ -91,6 +91,9 @@ type PlexAPI struct {
// Butler is the task manager of the Plex Media Server Ecosystem. // Butler is the task manager of the Plex Media Server Ecosystem.
// //
Butler *Butler Butler *Butler
// API Calls that perform operations directly against https://Plex.tv
//
Plex *Plex
// Hubs are a structured two-dimensional container for media, generally represented by multiple horizontal rows. // Hubs are a structured two-dimensional container for media, generally represented by multiple horizontal rows.
// //
Hubs *Hubs Hubs *Hubs
@@ -103,9 +106,6 @@ type PlexAPI struct {
// Submit logs to the Log Handler for Plex Media Server // Submit logs to the Log Handler for Plex Media Server
// //
Log *Log Log *Log
// API Calls that perform operations directly against https://Plex.tv
//
Plex *Plex
// Playlists are ordered collections of media. They can be dumb (just a list of media) or smart (based on a media query, such as "all albums from 2017"). // Playlists are ordered collections of media. They can be dumb (just a list of media) or smart (based on a media query, such as "all albums from 2017").
// They can be organized in (optionally nesting) folders. // They can be organized in (optionally nesting) folders.
// Retrieving a playlist, or its items, will trigger a refresh of its metadata. // Retrieving a playlist, or its items, will trigger a refresh of its metadata.
@@ -125,6 +125,9 @@ type PlexAPI struct {
// Updates to the status can be observed via the Event API. // Updates to the status can be observed via the Event API.
// //
Updater *Updater Updater *Updater
// API Calls that perform operations with Plex Media Server Watchlists
//
Watchlist *Watchlist
sdkConfiguration sdkConfiguration sdkConfiguration sdkConfiguration
} }
@@ -160,7 +163,6 @@ func WithServerIndex(serverIndex int) SDKOption {
} }
} }
// ServerProtocol - The protocol to use when connecting to your plex server.
type ServerProtocol string type ServerProtocol string
const ( const (
@@ -253,7 +255,7 @@ func WithSecuritySource(security func(context.Context) (components.Security, err
// WithXPlexClientIdentifier allows setting the XPlexClientIdentifier parameter for all supported operations // WithXPlexClientIdentifier allows setting the XPlexClientIdentifier parameter for all supported operations
func WithXPlexClientIdentifier(xPlexClientIdentifier string) SDKOption { func WithXPlexClientIdentifier(xPlexClientIdentifier string) SDKOption {
return func(sdk *PlexAPI) { return func(sdk *PlexAPI) {
sdk.sdkConfiguration.Globals.XPlexClientIdentifier = xPlexClientIdentifier sdk.sdkConfiguration.Globals.XPlexClientIdentifier = &xPlexClientIdentifier
} }
} }
@@ -269,9 +271,9 @@ func New(opts ...SDKOption) *PlexAPI {
sdkConfiguration: sdkConfiguration{ sdkConfiguration: sdkConfiguration{
Language: "go", Language: "go",
OpenAPIDocVersion: "0.0.3", OpenAPIDocVersion: "0.0.3",
SDKVersion: "0.8.0", SDKVersion: "0.10.1",
GenVersion: "2.335.5", GenVersion: "2.356.0",
UserAgent: "speakeasy-sdk/go 0.8.0 2.335.5 0.0.3 github.com/LukeHagar/plexgo", UserAgent: "speakeasy-sdk/go 0.10.1 2.356.0 0.0.3 github.com/LukeHagar/plexgo",
Globals: globals.Globals{}, Globals: globals.Globals{},
ServerDefaults: []map[string]string{ ServerDefaults: []map[string]string{
{ {
@@ -309,6 +311,8 @@ func New(opts ...SDKOption) *PlexAPI {
sdk.Butler = newButler(sdk.sdkConfiguration) sdk.Butler = newButler(sdk.sdkConfiguration)
sdk.Plex = newPlex(sdk.sdkConfiguration)
sdk.Hubs = newHubs(sdk.sdkConfiguration) sdk.Hubs = newHubs(sdk.sdkConfiguration)
sdk.Search = newSearch(sdk.sdkConfiguration) sdk.Search = newSearch(sdk.sdkConfiguration)
@@ -317,8 +321,6 @@ func New(opts ...SDKOption) *PlexAPI {
sdk.Log = newLog(sdk.sdkConfiguration) sdk.Log = newLog(sdk.sdkConfiguration)
sdk.Plex = newPlex(sdk.sdkConfiguration)
sdk.Playlists = newPlaylists(sdk.sdkConfiguration) sdk.Playlists = newPlaylists(sdk.sdkConfiguration)
sdk.Authentication = newAuthentication(sdk.sdkConfiguration) sdk.Authentication = newAuthentication(sdk.sdkConfiguration)
@@ -329,5 +331,7 @@ func New(opts ...SDKOption) *PlexAPI {
sdk.Updater = newUpdater(sdk.sdkConfiguration) sdk.Updater = newUpdater(sdk.sdkConfiguration)
sdk.Watchlist = newWatchlist(sdk.sdkConfiguration)
return sdk return sdk
} }

View File

@@ -26,8 +26,8 @@ func newServer(sdkConfig sdkConfiguration) *Server {
} }
} }
// GetServerCapabilities - Server Capabilities // GetServerCapabilities - Get Server Capabilities
// Server Capabilities // Get Server Capabilities
func (s *Server) GetServerCapabilities(ctx context.Context) (*operations.GetServerCapabilitiesResponse, error) { func (s *Server) GetServerCapabilities(ctx context.Context) (*operations.GetServerCapabilitiesResponse, error) {
hookCtx := hooks.HookContext{ hookCtx := hooks.HookContext{
Context: ctx, Context: ctx,

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