Compare commits

..

2 Commits

Author SHA1 Message Date
speakeasybot
b10d5f7023 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.484.1 2025-02-06 00:22:53 +00:00
speakeasybot
c431cee288 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.484.1 2025-02-05 00:22:30 +00:00
112 changed files with 2635 additions and 106 deletions

View File

@@ -1,12 +1,12 @@
lockVersion: 2.0.0
id: 5a8dbcbc-e0ee-41f0-9d84-b8b50567d1e9
management:
docChecksum: a643a64d282d705e3e24f61ed6f068c6
docChecksum: 7dec92ab9151a1b5a35df5faa81811ba
docVersion: 0.0.3
speakeasyVersion: 1.476.1
generationVersion: 2.495.1
releaseVersion: 0.13.3
configChecksum: 8935c34c667c2424274fa8b5e578ece9
speakeasyVersion: 1.484.1
generationVersion: 2.503.2
releaseVersion: 0.13.5
configChecksum: cc3898066032221fc1785594193e0056
repoURL: https://github.com/LukeHagar/plexcsharp.git
repoSubDirectory: .
published: true
@@ -14,7 +14,7 @@ features:
csharp:
additionalDependencies: 0.1.0
constsAndDefaults: 0.0.1
core: 3.10.11
core: 3.10.13
deprecations: 2.81.2
enums: 2.82.0
errors: 0.2.0
@@ -105,6 +105,10 @@ generatedFiles:
- LukeHagar/PlexAPI/SDK/Models/Errors/GetCompanionsDataErrors.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetCompanionsDataPlexErrors.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetCompanionsDataUnauthorized.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetCountriesLibraryBadRequest.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetCountriesLibraryErrors.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetCountriesLibraryLibraryErrors.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetCountriesLibraryUnauthorized.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetDevicesBadRequest.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetDevicesErrors.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetDevicesServerErrors.cs
@@ -113,6 +117,10 @@ generatedFiles:
- LukeHagar/PlexAPI/SDK/Models/Errors/GetFileHashErrors.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetFileHashLibraryErrors.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetFileHashUnauthorized.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetGenresLibraryBadRequest.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetGenresLibraryErrors.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetGenresLibraryLibraryErrors.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetGenresLibraryUnauthorized.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetGeoDataBadRequest.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetGeoDataErrors.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetGeoDataPlexErrors.cs
@@ -271,6 +279,10 @@ generatedFiles:
- LukeHagar/PlexAPI/SDK/Models/Errors/GetUserFriendsErrors.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetUserFriendsPlexErrors.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetUserFriendsUnauthorized.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetUsersBadRequest.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetUsersErrors.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetUsersUnauthorized.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetUsersUsersErrors.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetWatchListBadRequest.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetWatchListErrors.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetWatchListUnauthorized.cs
@@ -349,6 +361,12 @@ generatedFiles:
- LukeHagar/PlexAPI/SDK/Models/Requests/AddPlaylistContentsRequest.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/AddPlaylistContentsResponse.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/AddPlaylistContentsResponseBody.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/AllLibraries.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/AllowCameraUpload.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/AllowChannels.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/AllowSubtitleAdmin.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/AllowSync.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/AllowTuners.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/ApplyUpdatesRequest.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/ApplyUpdatesResponse.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/AutoSelectSubtitle.cs
@@ -413,11 +431,21 @@ generatedFiles:
- LukeHagar/PlexAPI/SDK/Models/Requests/GetButlerTasksResponse.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetButlerTasksResponseBody.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetCompanionsDataResponse.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetCountriesLibraryDirectory.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetCountriesLibraryMediaContainer.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetCountriesLibraryRequest.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetCountriesLibraryResponse.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetCountriesLibraryResponseBody.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetDevicesMediaContainer.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetDevicesResponse.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetDevicesResponseBody.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetFileHashRequest.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetFileHashResponse.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetGenresLibraryDirectory.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetGenresLibraryMediaContainer.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetGenresLibraryRequest.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetGenresLibraryResponse.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetGenresLibraryResponseBody.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetGeoDataGeoData.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetGeoDataResponse.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetGlobalHubsMediaContainer.cs
@@ -701,6 +729,7 @@ generatedFiles:
- LukeHagar/PlexAPI/SDK/Models/Requests/GetTopWatchedContentResponse.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetTopWatchedContentResponseBody.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetTopWatchedContentRole.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetTopWatchedContentUser.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetTranscodeSessionsMediaContainer.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetTranscodeSessionsResponse.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetTranscodeSessionsResponseBody.cs
@@ -711,11 +740,17 @@ generatedFiles:
- LukeHagar/PlexAPI/SDK/Models/Requests/GetUpdateStatusResponse.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetUpdateStatusResponseBody.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetUserFriendsResponse.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetUsersMediaContainer.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetUsersRequest.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetUsersResponse.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetUsersResponseBody.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetUsersServer.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetWatchListRequest.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetWatchListResponse.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetWatchListResponseBody.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Guids.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/HasThumbnail.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Home.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Hub.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Image.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/IncludeCollections.cs
@@ -751,9 +786,11 @@ generatedFiles:
- LukeHagar/PlexAPI/SDK/Models/Requests/OnlyTransient.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Operator.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/OptimizedForStreaming.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Owned.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Part.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/PastSubscription.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/PathParamTaskName.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Pending.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/PerformSearchRequest.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/PerformSearchResponse.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/PerformVoiceSearchRequest.cs
@@ -781,6 +818,7 @@ generatedFiles:
- LukeHagar/PlexAPI/SDK/Models/Requests/PostUsersSignInDataUserProfile.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/PostUsersSignInDataWatchedIndicator.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Producer.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Protected.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Protocol.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Provider.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/QueryParamFilter.cs
@@ -794,6 +832,7 @@ generatedFiles:
- LukeHagar/PlexAPI/SDK/Models/Requests/Ratings.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Release.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/ResponseBody.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Restricted.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Role.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Scope.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/SearchResult.cs
@@ -851,6 +890,7 @@ generatedFiles:
- LukeHagar/PlexAPI/SDK/Sessions.cs
- LukeHagar/PlexAPI/SDK/Statistics.cs
- LukeHagar/PlexAPI/SDK/Updater.cs
- LukeHagar/PlexAPI/SDK/Users.cs
- LukeHagar/PlexAPI/SDK/Utils/AnyDeserializer.cs
- LukeHagar/PlexAPI/SDK/Utils/BigIntStrConverter.cs
- LukeHagar/PlexAPI/SDK/Utils/DecimalStrConverter.cs
@@ -934,6 +974,10 @@ generatedFiles:
- docs/Models/Errors/GetCompanionsDataErrors.md
- docs/Models/Errors/GetCompanionsDataPlexErrors.md
- docs/Models/Errors/GetCompanionsDataUnauthorized.md
- docs/Models/Errors/GetCountriesLibraryBadRequest.md
- docs/Models/Errors/GetCountriesLibraryErrors.md
- docs/Models/Errors/GetCountriesLibraryLibraryErrors.md
- docs/Models/Errors/GetCountriesLibraryUnauthorized.md
- docs/Models/Errors/GetDevicesBadRequest.md
- docs/Models/Errors/GetDevicesErrors.md
- docs/Models/Errors/GetDevicesServerErrors.md
@@ -942,6 +986,10 @@ generatedFiles:
- docs/Models/Errors/GetFileHashErrors.md
- docs/Models/Errors/GetFileHashLibraryErrors.md
- docs/Models/Errors/GetFileHashUnauthorized.md
- docs/Models/Errors/GetGenresLibraryBadRequest.md
- docs/Models/Errors/GetGenresLibraryErrors.md
- docs/Models/Errors/GetGenresLibraryLibraryErrors.md
- docs/Models/Errors/GetGenresLibraryUnauthorized.md
- docs/Models/Errors/GetGeoDataBadRequest.md
- docs/Models/Errors/GetGeoDataErrors.md
- docs/Models/Errors/GetGeoDataPlexErrors.md
@@ -1100,6 +1148,10 @@ generatedFiles:
- docs/Models/Errors/GetUserFriendsErrors.md
- docs/Models/Errors/GetUserFriendsPlexErrors.md
- docs/Models/Errors/GetUserFriendsUnauthorized.md
- docs/Models/Errors/GetUsersBadRequest.md
- docs/Models/Errors/GetUsersErrors.md
- docs/Models/Errors/GetUsersUnauthorized.md
- docs/Models/Errors/GetUsersUsersErrors.md
- docs/Models/Errors/GetWatchListBadRequest.md
- docs/Models/Errors/GetWatchListErrors.md
- docs/Models/Errors/GetWatchListUnauthorized.md
@@ -1177,6 +1229,12 @@ generatedFiles:
- docs/Models/Requests/AddPlaylistContentsRequest.md
- docs/Models/Requests/AddPlaylistContentsResponse.md
- docs/Models/Requests/AddPlaylistContentsResponseBody.md
- docs/Models/Requests/AllLibraries.md
- docs/Models/Requests/AllowCameraUpload.md
- docs/Models/Requests/AllowChannels.md
- docs/Models/Requests/AllowSubtitleAdmin.md
- docs/Models/Requests/AllowSync.md
- docs/Models/Requests/AllowTuners.md
- docs/Models/Requests/ApplyUpdatesRequest.md
- docs/Models/Requests/ApplyUpdatesResponse.md
- docs/Models/Requests/AutoSelectSubtitle.md
@@ -1241,11 +1299,21 @@ generatedFiles:
- docs/Models/Requests/GetButlerTasksResponse.md
- docs/Models/Requests/GetButlerTasksResponseBody.md
- docs/Models/Requests/GetCompanionsDataResponse.md
- docs/Models/Requests/GetCountriesLibraryDirectory.md
- docs/Models/Requests/GetCountriesLibraryMediaContainer.md
- docs/Models/Requests/GetCountriesLibraryRequest.md
- docs/Models/Requests/GetCountriesLibraryResponse.md
- docs/Models/Requests/GetCountriesLibraryResponseBody.md
- docs/Models/Requests/GetDevicesMediaContainer.md
- docs/Models/Requests/GetDevicesResponse.md
- docs/Models/Requests/GetDevicesResponseBody.md
- docs/Models/Requests/GetFileHashRequest.md
- docs/Models/Requests/GetFileHashResponse.md
- docs/Models/Requests/GetGenresLibraryDirectory.md
- docs/Models/Requests/GetGenresLibraryMediaContainer.md
- docs/Models/Requests/GetGenresLibraryRequest.md
- docs/Models/Requests/GetGenresLibraryResponse.md
- docs/Models/Requests/GetGenresLibraryResponseBody.md
- docs/Models/Requests/GetGeoDataGeoData.md
- docs/Models/Requests/GetGeoDataResponse.md
- docs/Models/Requests/GetGlobalHubsMediaContainer.md
@@ -1529,6 +1597,7 @@ generatedFiles:
- docs/Models/Requests/GetTopWatchedContentResponse.md
- docs/Models/Requests/GetTopWatchedContentResponseBody.md
- docs/Models/Requests/GetTopWatchedContentRole.md
- docs/Models/Requests/GetTopWatchedContentUser.md
- docs/Models/Requests/GetTranscodeSessionsMediaContainer.md
- docs/Models/Requests/GetTranscodeSessionsResponse.md
- docs/Models/Requests/GetTranscodeSessionsResponseBody.md
@@ -1539,11 +1608,17 @@ generatedFiles:
- docs/Models/Requests/GetUpdateStatusResponse.md
- docs/Models/Requests/GetUpdateStatusResponseBody.md
- docs/Models/Requests/GetUserFriendsResponse.md
- docs/Models/Requests/GetUsersMediaContainer.md
- docs/Models/Requests/GetUsersRequest.md
- docs/Models/Requests/GetUsersResponse.md
- docs/Models/Requests/GetUsersResponseBody.md
- docs/Models/Requests/GetUsersServer.md
- docs/Models/Requests/GetWatchListRequest.md
- docs/Models/Requests/GetWatchListResponse.md
- docs/Models/Requests/GetWatchListResponseBody.md
- docs/Models/Requests/Guids.md
- docs/Models/Requests/HasThumbnail.md
- docs/Models/Requests/Home.md
- docs/Models/Requests/Hub.md
- docs/Models/Requests/Image.md
- docs/Models/Requests/IncludeCollections.md
@@ -1579,9 +1654,11 @@ generatedFiles:
- docs/Models/Requests/OnlyTransient.md
- docs/Models/Requests/Operator.md
- docs/Models/Requests/OptimizedForStreaming.md
- docs/Models/Requests/Owned.md
- docs/Models/Requests/Part.md
- docs/Models/Requests/PastSubscription.md
- docs/Models/Requests/PathParamTaskName.md
- docs/Models/Requests/Pending.md
- docs/Models/Requests/PerformSearchRequest.md
- docs/Models/Requests/PerformSearchResponse.md
- docs/Models/Requests/PerformVoiceSearchRequest.md
@@ -1609,6 +1686,7 @@ generatedFiles:
- docs/Models/Requests/PostUsersSignInDataUserProfile.md
- docs/Models/Requests/PostUsersSignInDataWatchedIndicator.md
- docs/Models/Requests/Producer.md
- docs/Models/Requests/Protected.md
- docs/Models/Requests/Protocol.md
- docs/Models/Requests/Provider.md
- docs/Models/Requests/QueryParamFilter.md
@@ -1622,6 +1700,7 @@ generatedFiles:
- docs/Models/Requests/Ratings.md
- docs/Models/Requests/Release.md
- docs/Models/Requests/ResponseBody.md
- docs/Models/Requests/Restricted.md
- docs/Models/Requests/Role.md
- docs/Models/Requests/Scope.md
- docs/Models/Requests/SearchResult.md
@@ -1686,6 +1765,7 @@ generatedFiles:
- docs/sdks/sessions/README.md
- docs/sdks/statistics/README.md
- docs/sdks/updater/README.md
- docs/sdks/users/README.md
- docs/sdks/video/README.md
- docs/sdks/watchlist/README.md
- global.json
@@ -2675,5 +2755,53 @@ examples:
application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]}
"401":
application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]}
get-genres-library:
speakeasy-default-get-genres-library:
parameters:
path:
sectionKey: 9518
responses:
"200":
application/json: {"MediaContainer": {"size": 50, "identifier": "com.plexapp.plugins.library", "allowSync": false, "art": "/:/resources/show-fanart.jpg", "content": "secondary", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1734362201, "nocache": true, "thumb": "/:/resources/show.png", "title1": "TV Shows (Reality)", "title2": "By Genre", "viewGroup": "secondary", "Directory": [{"fastKey": "/library/sections/10/all?genre=89", "key": "89", "title": "Action", "type": "genre"}]}}
"400":
application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]}
"401":
application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]}
get-countries-library:
speakeasy-default-get-countries-library:
parameters:
path:
sectionKey: 9518
responses:
"200":
application/json: {"MediaContainer": {"size": 50, "identifier": "com.plexapp.plugins.library", "allowSync": false, "art": "/:/resources/show-fanart.jpg", "content": "secondary", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1734362201, "nocache": true, "thumb": "/:/resources/show.png", "title1": "TV Series", "title2": "By Country", "viewGroup": "secondary", "Directory": [{"fastKey": "/library/sections/2/all?country=15491", "key": "15491", "title": "Japan"}]}}
"400":
application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]}
"401":
application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]}
get-users:
"":
parameters:
header:
X-Plex-Client-Identifier: "3381b62b-9ab7-4e37-827b-203e9809eb58"
X-Plex-Product: "Plex for Roku"
X-Plex-Device: "Roku 3"
X-Plex-Device-Name: "Chrome"
X-Plex-Device-Screen-Resolution: "1487x1165,2560x1440"
X-Plex-Version: "2.4.1"
X-Plex-Platform: "Roku"
X-Plex-Features: "external-media,indirect-media,hub-style-list"
X-Plex-Model: "4200X"
X-Plex-Session-Id: "97e136ef-4ddd-4ff3-89a7-a5820c96c2ca"
X-Plex-Language: "en"
X-Plex-Platform-Version: "4.3 build 1057"
X-Plex-Token: "CV5xoxjTpFKUzBTShsaf"
responses:
"200":
application/xml: "0xa9CdebeF9E"
"400":
application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]}
"401":
application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]}
examplesVersion: 1.0.0
generatedTests: {}

View File

@@ -13,7 +13,7 @@ generation:
oAuth2ClientCredentialsEnabled: true
oAuth2PasswordEnabled: false
csharp:
version: 0.13.3
version: 0.13.5
additionalDependencies: []
author: LukeHagar
clientServerStatusCodesAsErrors: true

View File

@@ -1,4 +1,4 @@
speakeasyVersion: 1.476.1
speakeasyVersion: 1.484.1
sources:
my-source:
sourceNamespace: my-source
@@ -16,19 +16,19 @@ sources:
- main
plexapi:
sourceNamespace: plexapi
sourceRevisionDigest: sha256:e73707dfae50d22dab2166b1661938446b9831bcee252ecd696a1172dfd6ae2c
sourceBlobDigest: sha256:e06caa091ad527fd21714fc0d43e7ea385e181fbad8c4f60296457a89a23c696
sourceRevisionDigest: sha256:e6ab335dd91a4165f4510e4a3af8a55819c6310b7e66251266d2384376f3ccae
sourceBlobDigest: sha256:89d1b1133e400c89f0d06efe5e5168f5ba25a413e1ab8380d442d6b233e2e5a9
tags:
- latest
- speakeasy-sdk-regen-1737937314
- speakeasy-sdk-regen-1738801293
targets:
plexcsharp:
source: plexapi
sourceNamespace: plexapi
sourceRevisionDigest: sha256:e73707dfae50d22dab2166b1661938446b9831bcee252ecd696a1172dfd6ae2c
sourceBlobDigest: sha256:e06caa091ad527fd21714fc0d43e7ea385e181fbad8c4f60296457a89a23c696
sourceRevisionDigest: sha256:e6ab335dd91a4165f4510e4a3af8a55819c6310b7e66251266d2384376f3ccae
sourceBlobDigest: sha256:89d1b1133e400c89f0d06efe5e5168f5ba25a413e1ab8380d442d6b233e2e5a9
codeSamplesNamespace: code-samples-csharp-plexcsharp
codeSamplesRevisionDigest: sha256:5e0af91c57fa956696c40bd25f45ae6bca5f5c20cd930411928095eb7daea754
codeSamplesRevisionDigest: sha256:1232a558efe5dbd1afae513f9cefdd61a9facee2c6072e50f7658c20b57bc303
workflow:
workflowVersion: 1.0.0
speakeasyVersion: latest

View File

@@ -74,10 +74,10 @@ namespace LukeHagar.PlexAPI.SDK
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.13.3";
private const string _sdkGenVersion = "2.495.1";
private const string _sdkVersion = "0.13.5";
private const string _sdkGenVersion = "2.503.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.3 2.495.1 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.5 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;

View File

@@ -95,10 +95,10 @@ namespace LukeHagar.PlexAPI.SDK
};
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.13.3";
private const string _sdkGenVersion = "2.495.1";
private const string _sdkVersion = "0.13.5";
private const string _sdkGenVersion = "2.503.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.3 2.495.1 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.5 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;

View File

@@ -101,10 +101,10 @@ namespace LukeHagar.PlexAPI.SDK
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.13.3";
private const string _sdkGenVersion = "2.495.1";
private const string _sdkVersion = "0.13.5";
private const string _sdkGenVersion = "2.503.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.3 2.495.1 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.5 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;

View File

@@ -73,10 +73,10 @@ namespace LukeHagar.PlexAPI.SDK
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.13.3";
private const string _sdkGenVersion = "2.495.1";
private const string _sdkVersion = "0.13.5";
private const string _sdkGenVersion = "2.503.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.3 2.495.1 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.5 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;

View File

@@ -190,6 +190,26 @@ namespace LukeHagar.PlexAPI.SDK
/// </summary>
Task<GetSearchLibraryResponse> GetSearchLibraryAsync(int sectionKey, GetSearchLibraryQueryParamType type);
/// <summary>
/// Get Genres of library media
///
/// <remarks>
/// Retrieves a list of all the genres that are found for the media in this library.<br/>
///
/// </remarks>
/// </summary>
Task<GetGenresLibraryResponse> GetGenresLibraryAsync(int sectionKey);
/// <summary>
/// Get Countries of library media
///
/// <remarks>
/// Retrieves a list of all the countries that are found for the media in this library.<br/>
///
/// </remarks>
/// </summary>
Task<GetCountriesLibraryResponse> GetCountriesLibraryAsync(int sectionKey);
/// <summary>
/// Search All Libraries
///
@@ -252,10 +272,10 @@ namespace LukeHagar.PlexAPI.SDK
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.13.3";
private const string _sdkGenVersion = "2.495.1";
private const string _sdkVersion = "0.13.5";
private const string _sdkGenVersion = "2.503.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.3 2.495.1 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.5 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;
@@ -1069,6 +1089,214 @@ namespace LukeHagar.PlexAPI.SDK
throw new Models.Errors.SDKException("Unknown status code received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
public async Task<GetGenresLibraryResponse> GetGenresLibraryAsync(int sectionKey)
{
var request = new GetGenresLibraryRequest()
{
SectionKey = sectionKey,
};
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionKey}/genre", request);
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
httpRequest.Headers.Add("user-agent", _userAgent);
if (_securitySource != null)
{
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
}
var hookCtx = new HookContext("get-genres-library", null, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
HttpResponseMessage httpResponse;
try
{
httpResponse = await _client.SendAsync(httpRequest);
int _statusCode = (int)httpResponse.StatusCode;
if (_statusCode == 400 || _statusCode == 401 || _statusCode == 404 || _statusCode >= 400 && _statusCode < 500 || _statusCode >= 500 && _statusCode < 600)
{
var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), httpResponse, null);
if (_httpResponse != null)
{
httpResponse = _httpResponse;
}
}
}
catch (Exception error)
{
var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error);
if (_httpResponse != null)
{
httpResponse = _httpResponse;
}
else
{
throw;
}
}
httpResponse = await this.SDKConfiguration.Hooks.AfterSuccessAsync(new AfterSuccessContext(hookCtx), httpResponse);
var contentType = httpResponse.Content.Headers.ContentType?.MediaType;
int responseStatusCode = (int)httpResponse.StatusCode;
if(responseStatusCode == 200)
{
if(Utilities.IsContentTypeMatch("application/json", contentType))
{
var obj = ResponseBodyDeserializer.Deserialize<GetGenresLibraryResponseBody>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore);
var response = new GetGenresLibraryResponse()
{
StatusCode = responseStatusCode,
ContentType = contentType,
RawResponse = httpResponse
};
response.Object = obj;
return response;
}
throw new Models.Errors.SDKException("Unknown content type received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
else if(responseStatusCode == 400)
{
if(Utilities.IsContentTypeMatch("application/json", contentType))
{
var obj = ResponseBodyDeserializer.Deserialize<GetGenresLibraryBadRequest>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore);
obj!.RawResponse = httpResponse;
throw obj!;
}
throw new Models.Errors.SDKException("Unknown content type received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
else if(responseStatusCode == 401)
{
if(Utilities.IsContentTypeMatch("application/json", contentType))
{
var obj = ResponseBodyDeserializer.Deserialize<GetGenresLibraryUnauthorized>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore);
obj!.RawResponse = httpResponse;
throw obj!;
}
throw new Models.Errors.SDKException("Unknown content type received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
else if(responseStatusCode == 404 || responseStatusCode >= 400 && responseStatusCode < 500)
{
throw new Models.Errors.SDKException("API error occurred", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
else if(responseStatusCode >= 500 && responseStatusCode < 600)
{
throw new Models.Errors.SDKException("API error occurred", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
throw new Models.Errors.SDKException("Unknown status code received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
public async Task<GetCountriesLibraryResponse> GetCountriesLibraryAsync(int sectionKey)
{
var request = new GetCountriesLibraryRequest()
{
SectionKey = sectionKey,
};
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionKey}/country", request);
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
httpRequest.Headers.Add("user-agent", _userAgent);
if (_securitySource != null)
{
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
}
var hookCtx = new HookContext("get-countries-library", null, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
HttpResponseMessage httpResponse;
try
{
httpResponse = await _client.SendAsync(httpRequest);
int _statusCode = (int)httpResponse.StatusCode;
if (_statusCode == 400 || _statusCode == 401 || _statusCode == 404 || _statusCode >= 400 && _statusCode < 500 || _statusCode >= 500 && _statusCode < 600)
{
var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), httpResponse, null);
if (_httpResponse != null)
{
httpResponse = _httpResponse;
}
}
}
catch (Exception error)
{
var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error);
if (_httpResponse != null)
{
httpResponse = _httpResponse;
}
else
{
throw;
}
}
httpResponse = await this.SDKConfiguration.Hooks.AfterSuccessAsync(new AfterSuccessContext(hookCtx), httpResponse);
var contentType = httpResponse.Content.Headers.ContentType?.MediaType;
int responseStatusCode = (int)httpResponse.StatusCode;
if(responseStatusCode == 200)
{
if(Utilities.IsContentTypeMatch("application/json", contentType))
{
var obj = ResponseBodyDeserializer.Deserialize<GetCountriesLibraryResponseBody>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore);
var response = new GetCountriesLibraryResponse()
{
StatusCode = responseStatusCode,
ContentType = contentType,
RawResponse = httpResponse
};
response.Object = obj;
return response;
}
throw new Models.Errors.SDKException("Unknown content type received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
else if(responseStatusCode == 400)
{
if(Utilities.IsContentTypeMatch("application/json", contentType))
{
var obj = ResponseBodyDeserializer.Deserialize<GetCountriesLibraryBadRequest>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore);
obj!.RawResponse = httpResponse;
throw obj!;
}
throw new Models.Errors.SDKException("Unknown content type received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
else if(responseStatusCode == 401)
{
if(Utilities.IsContentTypeMatch("application/json", contentType))
{
var obj = ResponseBodyDeserializer.Deserialize<GetCountriesLibraryUnauthorized>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore);
obj!.RawResponse = httpResponse;
throw obj!;
}
throw new Models.Errors.SDKException("Unknown content type received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
else if(responseStatusCode == 404 || responseStatusCode >= 400 && responseStatusCode < 500)
{
throw new Models.Errors.SDKException("API error occurred", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
else if(responseStatusCode >= 500 && responseStatusCode < 600)
{
throw new Models.Errors.SDKException("API error occurred", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
throw new Models.Errors.SDKException("Unknown status code received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
public async Task<GetSearchAllLibrariesResponse> GetSearchAllLibrariesAsync(GetSearchAllLibrariesRequest request)
{
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();

View File

@@ -94,10 +94,10 @@ namespace LukeHagar.PlexAPI.SDK
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.13.3";
private const string _sdkGenVersion = "2.495.1";
private const string _sdkVersion = "0.13.5";
private const string _sdkGenVersion = "2.503.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.3 2.495.1 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.5 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;

View File

@@ -3,7 +3,7 @@
<PropertyGroup>
<IsPackable>true</IsPackable>
<PackageId>LukeHagar.PlexAPI.SDK</PackageId>
<Version>0.13.3</Version>
<Version>0.13.5</Version>
<TargetFramework>net8.0</TargetFramework>
<Authors>LukeHagar</Authors>
<Copyright>Copyright (c) LukeHagar 2025</Copyright>

View File

@@ -90,10 +90,10 @@ namespace LukeHagar.PlexAPI.SDK
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.13.3";
private const string _sdkGenVersion = "2.495.1";
private const string _sdkVersion = "0.13.5";
private const string _sdkGenVersion = "2.503.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.3 2.495.1 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.5 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;

View File

@@ -0,0 +1,34 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Errors
{
using LukeHagar.PlexAPI.SDK.Models.Errors;
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Net.Http;
/// <summary>
/// Bad Request - A parameter was not specified, or was specified incorrectly.
/// </summary>
public class GetCountriesLibraryBadRequest : Exception
{
[JsonProperty("errors")]
public List<GetCountriesLibraryErrors>? Errors { get; set; }
/// <summary>
/// Raw HTTP response; suitable for custom response parsing
/// </summary>
[JsonProperty("-")]
public HttpResponseMessage? RawResponse { get; set; }
}
}

View File

@@ -0,0 +1,27 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Errors
{
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
public class GetCountriesLibraryErrors
{
[JsonProperty("code")]
public int? Code { get; set; }
[JsonProperty("message")]
public string? Message { get; set; }
[JsonProperty("status")]
public int? Status { get; set; }
}
}

View File

@@ -0,0 +1,27 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Errors
{
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
public class GetCountriesLibraryLibraryErrors
{
[JsonProperty("code")]
public int? Code { get; set; }
[JsonProperty("message")]
public string? Message { get; set; }
[JsonProperty("status")]
public int? Status { get; set; }
}
}

View File

@@ -0,0 +1,34 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Errors
{
using LukeHagar.PlexAPI.SDK.Models.Errors;
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Net.Http;
/// <summary>
/// Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
/// </summary>
public class GetCountriesLibraryUnauthorized : Exception
{
[JsonProperty("errors")]
public List<GetCountriesLibraryLibraryErrors>? Errors { get; set; }
/// <summary>
/// Raw HTTP response; suitable for custom response parsing
/// </summary>
[JsonProperty("-")]
public HttpResponseMessage? RawResponse { get; set; }
}
}

View File

@@ -0,0 +1,34 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Errors
{
using LukeHagar.PlexAPI.SDK.Models.Errors;
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Net.Http;
/// <summary>
/// Bad Request - A parameter was not specified, or was specified incorrectly.
/// </summary>
public class GetGenresLibraryBadRequest : Exception
{
[JsonProperty("errors")]
public List<GetGenresLibraryErrors>? Errors { get; set; }
/// <summary>
/// Raw HTTP response; suitable for custom response parsing
/// </summary>
[JsonProperty("-")]
public HttpResponseMessage? RawResponse { get; set; }
}
}

View File

@@ -0,0 +1,27 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Errors
{
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
public class GetGenresLibraryErrors
{
[JsonProperty("code")]
public int? Code { get; set; }
[JsonProperty("message")]
public string? Message { get; set; }
[JsonProperty("status")]
public int? Status { get; set; }
}
}

View File

@@ -0,0 +1,27 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Errors
{
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
public class GetGenresLibraryLibraryErrors
{
[JsonProperty("code")]
public int? Code { get; set; }
[JsonProperty("message")]
public string? Message { get; set; }
[JsonProperty("status")]
public int? Status { get; set; }
}
}

View File

@@ -0,0 +1,34 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Errors
{
using LukeHagar.PlexAPI.SDK.Models.Errors;
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Net.Http;
/// <summary>
/// Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
/// </summary>
public class GetGenresLibraryUnauthorized : Exception
{
[JsonProperty("errors")]
public List<GetGenresLibraryLibraryErrors>? Errors { get; set; }
/// <summary>
/// Raw HTTP response; suitable for custom response parsing
/// </summary>
[JsonProperty("-")]
public HttpResponseMessage? RawResponse { get; set; }
}
}

View File

@@ -0,0 +1,34 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Errors
{
using LukeHagar.PlexAPI.SDK.Models.Errors;
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Net.Http;
/// <summary>
/// Bad Request - A parameter was not specified, or was specified incorrectly.
/// </summary>
public class GetUsersBadRequest : Exception
{
[JsonProperty("errors")]
public List<GetUsersErrors>? Errors { get; set; }
/// <summary>
/// Raw HTTP response; suitable for custom response parsing
/// </summary>
[JsonProperty("-")]
public HttpResponseMessage? RawResponse { get; set; }
}
}

View File

@@ -0,0 +1,27 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Errors
{
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
public class GetUsersErrors
{
[JsonProperty("code")]
public int? Code { get; set; }
[JsonProperty("message")]
public string? Message { get; set; }
[JsonProperty("status")]
public int? Status { get; set; }
}
}

View File

@@ -0,0 +1,34 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Errors
{
using LukeHagar.PlexAPI.SDK.Models.Errors;
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Net.Http;
/// <summary>
/// Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
/// </summary>
public class GetUsersUnauthorized : Exception
{
[JsonProperty("errors")]
public List<GetUsersUsersErrors>? Errors { get; set; }
/// <summary>
/// Raw HTTP response; suitable for custom response parsing
/// </summary>
[JsonProperty("-")]
public HttpResponseMessage? RawResponse { get; set; }
}
}

View File

@@ -0,0 +1,27 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Errors
{
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
public class GetUsersUsersErrors
{
[JsonProperty("code")]
public int? Code { get; set; }
[JsonProperty("message")]
public string? Message { get; set; }
[JsonProperty("status")]
public int? Status { get; set; }
}
}

View File

@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
/// <summary>
/// Indicates if the user has access to all libraries.
/// </summary>
public enum AllLibraries
{
Disable = 0,
Enable = 1,
}
}

View File

@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
/// <summary>
/// Indicates if the user is allowed to upload from a camera.
/// </summary>
public enum AllowCameraUpload
{
Disable = 0,
Enable = 1,
}
}

View File

@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
/// <summary>
/// Indicates if the user has access to channels.
/// </summary>
public enum AllowChannels
{
Disable = 0,
Enable = 1,
}
}

View File

@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
/// <summary>
/// Indicates if the user can manage subtitles.
/// </summary>
public enum AllowSubtitleAdmin
{
Disable = 0,
Enable = 1,
}
}

View File

@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
/// <summary>
/// Indicates if the user is allowed to sync media.
/// </summary>
public enum AllowSync
{
Disable = 0,
Enable = 1,
}
}

View File

@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
/// <summary>
/// Indicates if the user is allowed to use tuners.
/// </summary>
public enum AllowTuners
{
Disable = 0,
Enable = 1,
}
}

View File

@@ -0,0 +1,27 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
public class GetCountriesLibraryDirectory
{
[JsonProperty("fastKey")]
public string FastKey { get; set; } = default!;
[JsonProperty("key")]
public string Key { get; set; } = default!;
[JsonProperty("title")]
public string Title { get; set; } = default!;
}
}

View File

@@ -0,0 +1,65 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Models.Requests;
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using System.Collections.Generic;
public class GetCountriesLibraryMediaContainer
{
[JsonProperty("size")]
public double Size { get; set; } = default!;
[JsonProperty("offset")]
public int? Offset { get; set; }
[JsonProperty("totalSize")]
public int? TotalSize { get; set; }
[JsonProperty("identifier")]
public string Identifier { get; set; } = default!;
[JsonProperty("allowSync")]
public bool AllowSync { get; set; } = default!;
[JsonProperty("art")]
public string Art { get; set; } = default!;
[JsonProperty("content")]
public string Content { get; set; } = default!;
[JsonProperty("mediaTagPrefix")]
public string MediaTagPrefix { get; set; } = default!;
[JsonProperty("mediaTagVersion")]
public long MediaTagVersion { get; set; } = default!;
[JsonProperty("nocache")]
public bool Nocache { get; set; } = default!;
[JsonProperty("thumb")]
public string Thumb { get; set; } = default!;
[JsonProperty("title1")]
public string Title1 { get; set; } = default!;
[JsonProperty("title2")]
public string Title2 { get; set; } = default!;
[JsonProperty("viewGroup")]
public string ViewGroup { get; set; } = default!;
[JsonProperty("Directory")]
public List<GetCountriesLibraryDirectory>? Directory { get; set; }
}
}

View File

@@ -0,0 +1,28 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
public class GetCountriesLibraryRequest
{
/// <summary>
/// The unique key of the Plex library. <br/>
///
/// <remarks>
/// Note: This is unique in the context of the Plex server.<br/>
///
/// </remarks>
/// </summary>
[SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sectionKey")]
public int SectionKey { get; set; } = default!;
}
}

View File

@@ -0,0 +1,40 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Models.Requests;
using LukeHagar.PlexAPI.SDK.Utils;
using System;
using System.Net.Http;
public class GetCountriesLibraryResponse
{
/// <summary>
/// HTTP response content type for this operation
/// </summary>
public string? ContentType { get; set; } = default!;
/// <summary>
/// HTTP response status code for this operation
/// </summary>
public int StatusCode { get; set; } = default!;
/// <summary>
/// Raw HTTP response; suitable for custom response parsing
/// </summary>
public HttpResponseMessage RawResponse { get; set; } = default!;
/// <summary>
/// Successful response containing media container data.
/// </summary>
public GetCountriesLibraryResponseBody? Object { get; set; }
}
}

View File

@@ -0,0 +1,25 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Models.Requests;
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
/// <summary>
/// Successful response containing media container data.
/// </summary>
public class GetCountriesLibraryResponseBody
{
[JsonProperty("MediaContainer")]
public GetCountriesLibraryMediaContainer? MediaContainer { get; set; }
}
}

View File

@@ -0,0 +1,30 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
public class GetGenresLibraryDirectory
{
[JsonProperty("fastKey")]
public string FastKey { get; set; } = default!;
[JsonProperty("key")]
public string Key { get; set; } = default!;
[JsonProperty("title")]
public string Title { get; set; } = default!;
[JsonProperty("type")]
public string Type { get; set; } = default!;
}
}

View File

@@ -0,0 +1,65 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Models.Requests;
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using System.Collections.Generic;
public class GetGenresLibraryMediaContainer
{
[JsonProperty("size")]
public double Size { get; set; } = default!;
[JsonProperty("offset")]
public int? Offset { get; set; }
[JsonProperty("totalSize")]
public int? TotalSize { get; set; }
[JsonProperty("identifier")]
public string Identifier { get; set; } = default!;
[JsonProperty("allowSync")]
public bool AllowSync { get; set; } = default!;
[JsonProperty("art")]
public string Art { get; set; } = default!;
[JsonProperty("content")]
public string Content { get; set; } = default!;
[JsonProperty("mediaTagPrefix")]
public string MediaTagPrefix { get; set; } = default!;
[JsonProperty("mediaTagVersion")]
public long MediaTagVersion { get; set; } = default!;
[JsonProperty("nocache")]
public bool Nocache { get; set; } = default!;
[JsonProperty("thumb")]
public string Thumb { get; set; } = default!;
[JsonProperty("title1")]
public string Title1 { get; set; } = default!;
[JsonProperty("title2")]
public string Title2 { get; set; } = default!;
[JsonProperty("viewGroup")]
public string ViewGroup { get; set; } = default!;
[JsonProperty("Directory")]
public List<GetGenresLibraryDirectory>? Directory { get; set; }
}
}

View File

@@ -0,0 +1,28 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
public class GetGenresLibraryRequest
{
/// <summary>
/// The unique key of the Plex library. <br/>
///
/// <remarks>
/// Note: This is unique in the context of the Plex server.<br/>
///
/// </remarks>
/// </summary>
[SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sectionKey")]
public int SectionKey { get; set; } = default!;
}
}

View File

@@ -0,0 +1,40 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Models.Requests;
using LukeHagar.PlexAPI.SDK.Utils;
using System;
using System.Net.Http;
public class GetGenresLibraryResponse
{
/// <summary>
/// HTTP response content type for this operation
/// </summary>
public string? ContentType { get; set; } = default!;
/// <summary>
/// HTTP response status code for this operation
/// </summary>
public int StatusCode { get; set; } = default!;
/// <summary>
/// Raw HTTP response; suitable for custom response parsing
/// </summary>
public HttpResponseMessage RawResponse { get; set; } = default!;
/// <summary>
/// Successful response containing media container data.
/// </summary>
public GetGenresLibraryResponseBody? Object { get; set; }
}
}

View File

@@ -0,0 +1,25 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Models.Requests;
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
/// <summary>
/// Successful response containing media container data.
/// </summary>
public class GetGenresLibraryResponseBody
{
[JsonProperty("MediaContainer")]
public GetGenresLibraryMediaContainer? MediaContainer { get; set; }
}
}

View File

@@ -112,6 +112,6 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
public List<GetTopWatchedContentRole>? Role { get; set; }
[JsonProperty("User")]
public List<User>? User { get; set; }
public List<GetTopWatchedContentUser>? User { get; set; }
}
}

View File

@@ -0,0 +1,21 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
public class GetTopWatchedContentUser
{
[JsonProperty("id")]
public int? Id { get; set; }
}
}

View File

@@ -0,0 +1,49 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Models.Requests;
using LukeHagar.PlexAPI.SDK.Utils;
using System.Collections.Generic;
/// <summary>
/// Container holding user and server details.
/// </summary>
public class GetUsersMediaContainer
{
/// <summary>
/// The friendly name of the Plex instance.
/// </summary>
public string FriendlyName { get; set; } = default!;
public string Identifier { get; set; } = default!;
/// <summary>
/// Unique Machine identifier of the Plex server.
/// </summary>
public string MachineIdentifier { get; set; } = default!;
/// <summary>
/// Total number of users.
/// </summary>
public long TotalSize { get; set; } = default!;
/// <summary>
/// Number of users in the current response.
/// </summary>
public long Size { get; set; } = default!;
/// <summary>
/// List of users with access to the Plex server.
/// </summary>
public List<User> User { get; set; } = default!;
}
}

View File

@@ -0,0 +1,95 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
public class GetUsersRequest
{
/// <summary>
/// An opaque identifier unique to the client (UUID, serial number, or other unique device ID)
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Client-Identifier")]
public string ClientID { get; set; } = default!;
/// <summary>
/// The name of the client application. (Plex Web, Plex Media Server, etc.)
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Product")]
public string? ClientName { get; set; }
/// <summary>
/// A relatively friendly name for the client device
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Device")]
public string? DeviceNickname { get; set; }
/// <summary>
/// The name of the device the client application is running on. This is used to track the client application and its usage. (Chrome, Safari, etc.)
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Device-Name")]
public string? DeviceName { get; set; }
/// <summary>
/// The resolution of the device the client application is running on. This is used to track the client application and its usage. (1487x1165,2560x1440)
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Device-Screen-Resolution")]
public string? DeviceScreenResolution { get; set; }
/// <summary>
/// The version of the client application.
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Version")]
public string? ClientVersion { get; set; }
/// <summary>
/// The platform of the client application.
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Platform")]
public string? Platform { get; set; }
/// <summary>
/// The features of the client application. This is used to track the client application and its usage. (external-media,indirect-media,hub-style-list)
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Features")]
public string? ClientFeatures { get; set; }
/// <summary>
/// A potentially less friendly identifier for the device model
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Model")]
public string? Model { get; set; }
/// <summary>
/// The session ID of the client application. This is used to track the client application and its usage. (97e136ef-4ddd-4ff3-89a7-a5820c96c2ca)
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Session-Id")]
public string? XPlexSessionId { get; set; }
/// <summary>
/// The language of the client application.
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Language")]
public string? XPlexLanguage { get; set; }
/// <summary>
/// The version of the platform
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Platform-Version")]
public string? PlatformVersion { get; set; }
/// <summary>
/// An authentication token, obtained from plex.tv
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Token")]
public string XPlexToken { get; set; } = default!;
}
}

View File

@@ -0,0 +1,36 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
using System;
using System.Net.Http;
public class GetUsersResponse
{
/// <summary>
/// HTTP response content type for this operation
/// </summary>
public string? ContentType { get; set; } = default!;
/// <summary>
/// HTTP response status code for this operation
/// </summary>
public int StatusCode { get; set; } = default!;
/// <summary>
/// Raw HTTP response; suitable for custom response parsing
/// </summary>
public HttpResponseMessage RawResponse { get; set; } = default!;
public byte[]? Body { get; set; }
}
}

View File

@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Models.Requests;
using LukeHagar.PlexAPI.SDK.Utils;
/// <summary>
/// Successful response with media container data in XML
/// </summary>
public class GetUsersResponseBody
{
/// <summary>
/// Container holding user and server details.
/// </summary>
public GetUsersMediaContainer? MediaContainer { get; set; }
}
}

View File

@@ -0,0 +1,51 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Models.Requests;
using LukeHagar.PlexAPI.SDK.Utils;
public class GetUsersServer
{
/// <summary>
/// Unique ID of the server of the connected user
/// </summary>
public long Id { get; set; } = default!;
/// <summary>
/// ID of the actual Plex server.
/// </summary>
public long ServerId { get; set; } = default!;
/// <summary>
/// Machine identifier of the Plex server.
/// </summary>
public string MachineIdentifier { get; set; } = default!;
/// <summary>
/// Name of the Plex server of the connected user.
/// </summary>
public string Name { get; set; } = default!;
public long LastSeenAt { get; set; } = default!;
/// <summary>
/// Number of libraries in the server this user has access to.
/// </summary>
public long NumLibraries { get; set; } = default!;
public AllLibraries? AllLibraries { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.AllLibraries.Disable;
public Owned? Owned { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.Owned.Disable;
public Pending? Pending { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.Pending.Disable;
}
}

View File

@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
/// <summary>
/// Indicates if the user is part of a home group.
/// </summary>
public enum Home
{
Disable = 0,
Enable = 1,
}
}

View File

@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
/// <summary>
/// Indicates if the user owns the server.
/// </summary>
public enum Owned
{
Disable = 0,
Enable = 1,
}
}

View File

@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
/// <summary>
/// Indicates if the server is pending approval.
/// </summary>
public enum Pending
{
Disable = 0,
Enable = 1,
}
}

View File

@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
/// <summary>
/// Indicates whether the account is protected.
/// </summary>
public enum Protected
{
Disable = 0,
Enable = 1,
}
}

View File

@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
/// <summary>
/// Indicates if the user has restricted access.
/// </summary>
public enum Restricted
{
Disable = 0,
Enable = 1,
}
}

View File

@@ -9,13 +9,87 @@
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Models.Requests;
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using System.Collections.Generic;
public class User
{
[JsonProperty("id")]
public int? Id { get; set; }
/// <summary>
/// User&apos;s unique ID.
/// </summary>
public long Id { get; set; } = default!;
/// <summary>
/// User&apos;s display name.
/// </summary>
public string Title { get; set; } = default!;
/// <summary>
/// User&apos;s username.
/// </summary>
public string Username { get; set; } = default!;
/// <summary>
/// User&apos;s email address.
/// </summary>
public string Email { get; set; } = default!;
/// <summary>
/// ID of the user&apos;s recommendation playlist.
/// </summary>
public string? RecommendationsPlaylistId { get; set; } = null;
/// <summary>
/// URL to the user&apos;s avatar image.
/// </summary>
public string Thumb { get; set; } = default!;
public Protected? Protected { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.Protected.Disable;
public Home? Home { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.Home.Disable;
public AllowTuners? AllowTuners { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.AllowTuners.Disable;
public AllowSync? AllowSync { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.AllowSync.Disable;
public AllowCameraUpload? AllowCameraUpload { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.AllowCameraUpload.Disable;
public AllowChannels? AllowChannels { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.AllowChannels.Disable;
public AllowSubtitleAdmin? AllowSubtitleAdmin { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.AllowSubtitleAdmin.Disable;
/// <summary>
/// Filters applied for all content.
/// </summary>
public string? FilterAll { get; set; } = null;
/// <summary>
/// Filters applied for movies.
/// </summary>
public string? FilterMovies { get; set; } = null;
/// <summary>
/// Filters applied for music.
/// </summary>
public string? FilterMusic { get; set; } = null;
/// <summary>
/// Filters applied for photos.
/// </summary>
public string? FilterPhotos { get; set; } = null;
/// <summary>
/// Filters applied for television.
/// </summary>
public string? FilterTelevision { get; set; }
public Restricted? Restricted { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.Restricted.Disable;
/// <summary>
/// List of servers owned by the user.
/// </summary>
public List<GetUsersServer> Server { get; set; } = default!;
}
}

View File

@@ -146,10 +146,10 @@ namespace LukeHagar.PlexAPI.SDK
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.13.3";
private const string _sdkGenVersion = "2.495.1";
private const string _sdkVersion = "0.13.5";
private const string _sdkGenVersion = "2.503.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.3 2.495.1 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.5 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;

View File

@@ -143,10 +143,10 @@ namespace LukeHagar.PlexAPI.SDK
};
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.13.3";
private const string _sdkGenVersion = "2.495.1";
private const string _sdkVersion = "0.13.5";
private const string _sdkGenVersion = "2.503.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.3 2.495.1 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.5 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;

View File

@@ -252,6 +252,7 @@ namespace LukeHagar.PlexAPI.SDK
/// </remarks>
/// </summary>
public IUpdater Updater { get; }
public IUsers Users { get; }
}
public class SDKConfig
@@ -326,10 +327,10 @@ namespace LukeHagar.PlexAPI.SDK
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.13.3";
private const string _sdkGenVersion = "2.495.1";
private const string _sdkVersion = "0.13.5";
private const string _sdkGenVersion = "2.503.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.3 2.495.1 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.5 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private int _serverIndex = 0;
private ISpeakeasyHttpClient _client;
@@ -350,6 +351,7 @@ namespace LukeHagar.PlexAPI.SDK
public IStatistics Statistics { get; private set; }
public ISessions Sessions { get; private set; }
public IUpdater Updater { get; private set; }
public IUsers Users { get; private set; }
public PlexAPI(string? accessToken = null, Func<string>? accessTokenSource = null, int? serverIndex = null, ServerProtocol? protocol = null, string? ip = null, string? port = null, string? serverUrl = null, Dictionary<string, string>? urlParams = null, ISpeakeasyHttpClient? client = null, RetryConfig? retryConfig = null)
{
@@ -448,6 +450,9 @@ namespace LukeHagar.PlexAPI.SDK
Updater = new Updater(_client, _securitySource, _serverUrl, SDKConfiguration);
Users = new Users(_client, _securitySource, _serverUrl, SDKConfiguration);
}
}
}

View File

@@ -87,10 +87,10 @@ namespace LukeHagar.PlexAPI.SDK
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.13.3";
private const string _sdkGenVersion = "2.495.1";
private const string _sdkVersion = "0.13.5";
private const string _sdkGenVersion = "2.503.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.3 2.495.1 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.5 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;

View File

@@ -126,10 +126,10 @@ namespace LukeHagar.PlexAPI.SDK
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.13.3";
private const string _sdkGenVersion = "2.495.1";
private const string _sdkVersion = "0.13.5";
private const string _sdkGenVersion = "2.503.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.3 2.495.1 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.5 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;

View File

@@ -80,10 +80,10 @@ namespace LukeHagar.PlexAPI.SDK
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.13.3";
private const string _sdkGenVersion = "2.495.1";
private const string _sdkVersion = "0.13.5";
private const string _sdkGenVersion = "2.503.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.3 2.495.1 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.5 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;

View File

@@ -71,10 +71,10 @@ namespace LukeHagar.PlexAPI.SDK
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.13.3";
private const string _sdkGenVersion = "2.495.1";
private const string _sdkVersion = "0.13.5";
private const string _sdkGenVersion = "2.503.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.3 2.495.1 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.5 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;

View File

@@ -74,10 +74,10 @@ namespace LukeHagar.PlexAPI.SDK
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.13.3";
private const string _sdkGenVersion = "2.495.1";
private const string _sdkVersion = "0.13.5";
private const string _sdkGenVersion = "2.503.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.3 2.495.1 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.5 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;
@@ -372,11 +372,11 @@ namespace LukeHagar.PlexAPI.SDK
throw new Models.Errors.SDKException("Unknown content type received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
else if(responseStatusCode == 500 || responseStatusCode >= 500 && responseStatusCode < 600)
else if(responseStatusCode >= 400 && responseStatusCode < 500)
{
throw new Models.Errors.SDKException("API error occurred", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
else if(responseStatusCode >= 400 && responseStatusCode < 500)
else if(responseStatusCode == 500 || responseStatusCode >= 500 && responseStatusCode < 600)
{
throw new Models.Errors.SDKException("API error occurred", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}

View File

@@ -0,0 +1,165 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK
{
using LukeHagar.PlexAPI.SDK.Hooks;
using LukeHagar.PlexAPI.SDK.Models.Components;
using LukeHagar.PlexAPI.SDK.Models.Errors;
using LukeHagar.PlexAPI.SDK.Models.Requests;
using LukeHagar.PlexAPI.SDK.Utils;
using LukeHagar.PlexAPI.SDK.Utils.Retries;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
public interface IUsers
{
/// <summary>
/// Get list of all connected users
///
/// <remarks>
/// Get list of all users that are friends and have library access with the provided Plex authentication token
/// </remarks>
/// </summary>
Task<GetUsersResponse> GetUsersAsync(GetUsersRequest request, string? serverUrl = null);
}
public class Users: IUsers
{
/// <summary>
/// List of server URLs available for the get-users operation.
/// </summary>
public static readonly string[] GetUsersServerList = {
"https://plex.tv/api",
};
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.13.5";
private const string _sdkGenVersion = "2.503.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.5 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;
public Users(ISpeakeasyHttpClient client, Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? securitySource, string serverUrl, SDKConfig config)
{
_client = client;
_securitySource = securitySource;
_serverUrl = serverUrl;
SDKConfiguration = config;
}
public async Task<GetUsersResponse> GetUsersAsync(GetUsersRequest request, string? serverUrl = null)
{
string baseUrl = Utilities.TemplateUrl(GetUsersServerList[0], new Dictionary<string, string>(){
});
if (serverUrl != null)
{
baseUrl = serverUrl;
}
var urlString = baseUrl + "/users";
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
httpRequest.Headers.Add("user-agent", _userAgent);
HeaderSerializer.PopulateHeaders(ref httpRequest, request);
var hookCtx = new HookContext("get-users", null, null);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
HttpResponseMessage httpResponse;
try
{
httpResponse = await _client.SendAsync(httpRequest);
int _statusCode = (int)httpResponse.StatusCode;
if (_statusCode == 400 || _statusCode == 401 || _statusCode >= 400 && _statusCode < 500 || _statusCode >= 500 && _statusCode < 600)
{
var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), httpResponse, null);
if (_httpResponse != null)
{
httpResponse = _httpResponse;
}
}
}
catch (Exception error)
{
var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error);
if (_httpResponse != null)
{
httpResponse = _httpResponse;
}
else
{
throw;
}
}
httpResponse = await this.SDKConfiguration.Hooks.AfterSuccessAsync(new AfterSuccessContext(hookCtx), httpResponse);
var contentType = httpResponse.Content.Headers.ContentType?.MediaType;
int responseStatusCode = (int)httpResponse.StatusCode;
if(responseStatusCode == 200)
{
if(Utilities.IsContentTypeMatch("application/xml", contentType))
{
var response = new GetUsersResponse()
{
StatusCode = responseStatusCode,
ContentType = contentType,
RawResponse = httpResponse
};
response.Body = await httpResponse.Content.ReadAsByteArrayAsync();
return response;
}
throw new Models.Errors.SDKException("Unknown content type received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
else if(responseStatusCode == 400)
{
if(Utilities.IsContentTypeMatch("application/json", contentType))
{
var obj = ResponseBodyDeserializer.Deserialize<GetUsersBadRequest>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore);
obj!.RawResponse = httpResponse;
throw obj!;
}
throw new Models.Errors.SDKException("Unknown content type received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
else if(responseStatusCode == 401)
{
if(Utilities.IsContentTypeMatch("application/json", contentType))
{
var obj = ResponseBodyDeserializer.Deserialize<GetUsersUnauthorized>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore);
obj!.RawResponse = httpResponse;
throw obj!;
}
throw new Models.Errors.SDKException("Unknown content type received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
else if(responseStatusCode >= 400 && responseStatusCode < 500)
{
throw new Models.Errors.SDKException("API error occurred", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
else if(responseStatusCode >= 500 && responseStatusCode < 600)
{
throw new Models.Errors.SDKException("API error occurred", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
throw new Models.Errors.SDKException("Unknown status code received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
}
}

View File

@@ -62,10 +62,10 @@ namespace LukeHagar.PlexAPI.SDK
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.13.3";
private const string _sdkGenVersion = "2.495.1";
private const string _sdkVersion = "0.13.5";
private const string _sdkGenVersion = "2.503.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.3 2.495.1 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.5 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;

View File

@@ -59,10 +59,10 @@ namespace LukeHagar.PlexAPI.SDK
};
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.13.3";
private const string _sdkGenVersion = "2.495.1";
private const string _sdkVersion = "0.13.5";
private const string _sdkGenVersion = "2.503.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.3 2.495.1 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.5 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;

View File

@@ -84,6 +84,8 @@ var res = await sdk.Server.GetServerCapabilitiesAsync();
* [GetLibraryItems](docs/sdks/library/README.md#getlibraryitems) - Get Library Items
* [GetRefreshLibraryMetadata](docs/sdks/library/README.md#getrefreshlibrarymetadata) - Refresh Metadata Of The Library
* [GetSearchLibrary](docs/sdks/library/README.md#getsearchlibrary) - Search Library
* [GetGenresLibrary](docs/sdks/library/README.md#getgenreslibrary) - Get Genres of library media
* [GetCountriesLibrary](docs/sdks/library/README.md#getcountrieslibrary) - Get Countries of library media
* [GetSearchAllLibraries](docs/sdks/library/README.md#getsearchalllibraries) - Search All Libraries
* [GetMetaDataByRatingKey](docs/sdks/library/README.md#getmetadatabyratingkey) - Get Metadata by RatingKey
* [GetMetadataChildren](docs/sdks/library/README.md#getmetadatachildren) - Get Items Children
@@ -164,6 +166,10 @@ var res = await sdk.Server.GetServerCapabilitiesAsync();
* [CheckForUpdates](docs/sdks/updater/README.md#checkforupdates) - Checking for updates
* [ApplyUpdates](docs/sdks/updater/README.md#applyupdates) - Apply Updates
### [Users](docs/sdks/users/README.md)
* [GetUsers](docs/sdks/users/README.md#getusers) - Get list of all connected users
### [Video](docs/sdks/video/README.md)
* [GetTimeline](docs/sdks/video/README.md#gettimeline) - Get the timeline for a media item

View File

@@ -454,4 +454,24 @@ Based on:
### Generated
- [csharp v0.13.3] .
### Releases
- [NuGet v0.13.3] https://www.nuget.org/packages/LukeHagar.PlexAPI.SDK/0.13.3 - .
- [NuGet v0.13.3] https://www.nuget.org/packages/LukeHagar.PlexAPI.SDK/0.13.3 - .
## 2025-02-05 00:21:02
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.484.1 (2.503.2) https://github.com/speakeasy-api/speakeasy
### Generated
- [csharp v0.13.4] .
### Releases
- [NuGet v0.13.4] https://www.nuget.org/packages/LukeHagar.PlexAPI.SDK/0.13.4 - .
## 2025-02-06 00:21:18
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.484.1 (2.503.2) https://github.com/speakeasy-api/speakeasy
### Generated
- [csharp v0.13.5] .
### Releases
- [NuGet v0.13.5] https://www.nuget.org/packages/LukeHagar.PlexAPI.SDK/0.13.5 - .

View File

@@ -322,9 +322,6 @@ actions:
ContentDirectoryID = 470161,
SectionID = 2,
Type = LukeHagar.PlexAPI.SDK.Models.Requests.Type.TvShow,
IncludeMeta = IncludeMeta.Enable,
XPlexContainerStart = 0,
XPlexContainerSize = 50,
};
var res = await sdk.Hubs.GetRecentlyAddedAsync(req);
@@ -557,9 +554,6 @@ actions:
},
SectionID = 2,
Type = QueryParamType.TvShow,
IncludeMeta = QueryParamIncludeMeta.Enable,
XPlexContainerStart = 0,
XPlexContainerSize = 50,
};
var res = await sdk.Library.GetRecentlyAddedLibraryAsync(req);
@@ -584,8 +578,6 @@ actions:
SearchTypes = new List<SearchTypes>() {
SearchTypes.People,
},
IncludeCollections = QueryParamIncludeCollections.Enable,
IncludeExternalMedia = QueryParamIncludeExternalMedia.Enable,
};
var res = await sdk.Library.GetSearchAllLibrariesAsync(req);
@@ -619,8 +611,6 @@ actions:
GetWatchListRequest req = new GetWatchListRequest() {
Filter = Filter.Available,
XPlexContainerStart = 0,
XPlexContainerSize = 50,
XPlexToken = "CV5xoxjTpFKUzBTShsaf",
};
@@ -658,6 +648,34 @@ actions:
includeDetails: IncludeDetails.Zero
);
// handle response
- target: $["paths"]["/library/sections/{sectionKey}/country"]["get"]
update:
x-codeSamples:
- lang: csharp
label: library
source: |-
using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components;
var sdk = new PlexAPI(accessToken: "<YOUR_API_KEY_HERE>");
var res = await sdk.Library.GetCountriesLibraryAsync(sectionKey: 9518);
// handle response
- target: $["paths"]["/library/sections/{sectionKey}/genre"]["get"]
update:
x-codeSamples:
- lang: csharp
label: library
source: |-
using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components;
var sdk = new PlexAPI(accessToken: "<YOUR_API_KEY_HERE>");
var res = await sdk.Library.GetGenresLibraryAsync(sectionKey: 9518);
// handle response
- target: $["paths"]["/library/sections/{sectionKey}/refresh"]["get"]
update:
@@ -709,12 +727,8 @@ actions:
GetLibraryItemsRequest req = new GetLibraryItemsRequest() {
Tag = Tag.Edition,
IncludeGuids = IncludeGuids.Enable,
Type = GetLibraryItemsQueryParamType.TvShow,
SectionKey = 9518,
IncludeMeta = GetLibraryItemsQueryParamIncludeMeta.Enable,
XPlexContainerStart = 0,
XPlexContainerSize = 50,
};
var res = await sdk.Library.GetLibraryItemsAsync(req);
@@ -1268,6 +1282,36 @@ actions:
var res = await sdk.Authentication.GetTokenDetailsAsync();
// handle response
- target: $["paths"]["/users"]["get"]
update:
x-codeSamples:
- lang: csharp
label: users
source: |-
using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Requests;
var sdk = new PlexAPI();
GetUsersRequest req = new GetUsersRequest() {
ClientID = "3381b62b-9ab7-4e37-827b-203e9809eb58",
ClientName = "Plex for Roku",
DeviceNickname = "Roku 3",
DeviceName = "Chrome",
DeviceScreenResolution = "1487x1165,2560x1440",
ClientVersion = "2.4.1",
Platform = "Roku",
ClientFeatures = "external-media,indirect-media,hub-style-list",
Model = "4200X",
XPlexSessionId = "97e136ef-4ddd-4ff3-89a7-a5820c96c2ca",
XPlexLanguage = "en",
PlatformVersion = "4.3 build 1057",
XPlexToken = "CV5xoxjTpFKUzBTShsaf",
};
var res = await sdk.Users.GetUsersAsync(req);
// handle response
- target: $["paths"]["/users/signin"]["post"]
update:

View File

@@ -0,0 +1,11 @@
# GetCountriesLibraryBadRequest
Bad Request - A parameter was not specified, or was specified incorrectly.
## Fields
| Field | Type | Required | Description |
| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `Errors` | List<[GetCountriesLibraryErrors](../../Models/Errors/GetCountriesLibraryErrors.md)> | :heavy_minus_sign: | N/A |
| `RawResponse` | [HttpResponseMessage](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpresponsemessage?view=net-5.0) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -0,0 +1,10 @@
# GetCountriesLibraryErrors
## Fields
| Field | Type | Required | Description | Example |
| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- |
| `Code` | *int* | :heavy_minus_sign: | N/A | 1000 |
| `Message` | *string* | :heavy_minus_sign: | N/A | X-Plex-Client-Identifier is missing |
| `Status` | *int* | :heavy_minus_sign: | N/A | 400 |

View File

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

View File

@@ -0,0 +1,11 @@
# GetCountriesLibraryUnauthorized
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
## Fields
| Field | Type | Required | Description |
| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `Errors` | List<[GetCountriesLibraryLibraryErrors](../../Models/Errors/GetCountriesLibraryLibraryErrors.md)> | :heavy_minus_sign: | N/A |
| `RawResponse` | [HttpResponseMessage](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpresponsemessage?view=net-5.0) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -0,0 +1,11 @@
# GetGenresLibraryBadRequest
Bad Request - A parameter was not specified, or was specified incorrectly.
## Fields
| Field | Type | Required | Description |
| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `Errors` | List<[GetGenresLibraryErrors](../../Models/Errors/GetGenresLibraryErrors.md)> | :heavy_minus_sign: | N/A |
| `RawResponse` | [HttpResponseMessage](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpresponsemessage?view=net-5.0) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -0,0 +1,10 @@
# GetGenresLibraryErrors
## Fields
| Field | Type | Required | Description | Example |
| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- |
| `Code` | *int* | :heavy_minus_sign: | N/A | 1000 |
| `Message` | *string* | :heavy_minus_sign: | N/A | X-Plex-Client-Identifier is missing |
| `Status` | *int* | :heavy_minus_sign: | N/A | 400 |

View File

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

View File

@@ -0,0 +1,11 @@
# GetGenresLibraryUnauthorized
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
## Fields
| Field | Type | Required | Description |
| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `Errors` | List<[GetGenresLibraryLibraryErrors](../../Models/Errors/GetGenresLibraryLibraryErrors.md)> | :heavy_minus_sign: | N/A |
| `RawResponse` | [HttpResponseMessage](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpresponsemessage?view=net-5.0) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -0,0 +1,11 @@
# GetUsersBadRequest
Bad Request - A parameter was not specified, or was specified incorrectly.
## Fields
| Field | Type | Required | Description |
| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `Errors` | List<[GetUsersErrors](../../Models/Errors/GetUsersErrors.md)> | :heavy_minus_sign: | N/A |
| `RawResponse` | [HttpResponseMessage](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpresponsemessage?view=net-5.0) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -0,0 +1,10 @@
# GetUsersErrors
## Fields
| Field | Type | Required | Description | Example |
| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- |
| `Code` | *int* | :heavy_minus_sign: | N/A | 1000 |
| `Message` | *string* | :heavy_minus_sign: | N/A | X-Plex-Client-Identifier is missing |
| `Status` | *int* | :heavy_minus_sign: | N/A | 400 |

View File

@@ -0,0 +1,11 @@
# GetUsersUnauthorized
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
## Fields
| Field | Type | Required | Description |
| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `Errors` | List<[GetUsersUsersErrors](../../Models/Errors/GetUsersUsersErrors.md)> | :heavy_minus_sign: | N/A |
| `RawResponse` | [HttpResponseMessage](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpresponsemessage?view=net-5.0) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |

View File

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

View File

@@ -0,0 +1,11 @@
# AllLibraries
Indicates if the user has access to all libraries.
## Values
| Name | Value |
| --------- | --------- |
| `Disable` | 0 |
| `Enable` | 1 |

View File

@@ -0,0 +1,11 @@
# AllowCameraUpload
Indicates if the user is allowed to upload from a camera.
## Values
| Name | Value |
| --------- | --------- |
| `Disable` | 0 |
| `Enable` | 1 |

View File

@@ -0,0 +1,11 @@
# AllowChannels
Indicates if the user has access to channels.
## Values
| Name | Value |
| --------- | --------- |
| `Disable` | 0 |
| `Enable` | 1 |

View File

@@ -0,0 +1,11 @@
# AllowSubtitleAdmin
Indicates if the user can manage subtitles.
## Values
| Name | Value |
| --------- | --------- |
| `Disable` | 0 |
| `Enable` | 1 |

View File

@@ -0,0 +1,11 @@
# AllowSync
Indicates if the user is allowed to sync media.
## Values
| Name | Value |
| --------- | --------- |
| `Disable` | 0 |
| `Enable` | 1 |

View File

@@ -0,0 +1,11 @@
# AllowTuners
Indicates if the user is allowed to use tuners.
## Values
| Name | Value |
| --------- | --------- |
| `Disable` | 0 |
| `Enable` | 1 |

View File

@@ -0,0 +1,10 @@
# GetCountriesLibraryDirectory
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------- | ------------------------------------- | ------------------------------------- | ------------------------------------- | ------------------------------------- |
| `FastKey` | *string* | :heavy_check_mark: | N/A | /library/sections/2/all?country=15491 |
| `Key` | *string* | :heavy_check_mark: | N/A | 15491 |
| `Title` | *string* | :heavy_check_mark: | N/A | Japan |

View File

@@ -0,0 +1,22 @@
# GetCountriesLibraryMediaContainer
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| `Size` | *double* | :heavy_check_mark: | N/A | 50 |
| `Offset` | *int* | :heavy_minus_sign: | N/A | |
| `TotalSize` | *int* | :heavy_minus_sign: | N/A | |
| `Identifier` | *string* | :heavy_check_mark: | N/A | com.plexapp.plugins.library |
| `AllowSync` | *bool* | :heavy_check_mark: | N/A | false |
| `Art` | *string* | :heavy_check_mark: | N/A | /:/resources/show-fanart.jpg |
| `Content` | *string* | :heavy_check_mark: | N/A | secondary |
| `MediaTagPrefix` | *string* | :heavy_check_mark: | N/A | /system/bundle/media/flags/ |
| `MediaTagVersion` | *long* | :heavy_check_mark: | N/A | 1734362201 |
| `Nocache` | *bool* | :heavy_check_mark: | N/A | true |
| `Thumb` | *string* | :heavy_check_mark: | N/A | /:/resources/show.png |
| `Title1` | *string* | :heavy_check_mark: | N/A | TV Series |
| `Title2` | *string* | :heavy_check_mark: | N/A | By Country |
| `ViewGroup` | *string* | :heavy_check_mark: | N/A | secondary |
| `Directory` | List<[GetCountriesLibraryDirectory](../../Models/Requests/GetCountriesLibraryDirectory.md)> | :heavy_minus_sign: | N/A | |

View File

@@ -0,0 +1,8 @@
# GetCountriesLibraryRequest
## Fields
| Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
| `SectionKey` | *int* | :heavy_check_mark: | The unique key of the Plex library. <br/>Note: This is unique in the context of the Plex server.<br/> | 9518 |

View File

@@ -0,0 +1,11 @@
# GetCountriesLibraryResponse
## 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` | [HttpResponseMessage](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpresponsemessage?view=net-5.0) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
| `Object` | [GetCountriesLibraryResponseBody](../../Models/Requests/GetCountriesLibraryResponseBody.md) | :heavy_minus_sign: | Successful response containing media container data. |

View File

@@ -0,0 +1,10 @@
# GetCountriesLibraryResponseBody
Successful response containing media container data.
## Fields
| Field | Type | Required | Description |
| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| `MediaContainer` | [GetCountriesLibraryMediaContainer](../../Models/Requests/GetCountriesLibraryMediaContainer.md) | :heavy_minus_sign: | N/A |

View File

@@ -0,0 +1,11 @@
# GetGenresLibraryDirectory
## Fields
| Field | Type | Required | Description | Example |
| --------------------------------- | --------------------------------- | --------------------------------- | --------------------------------- | --------------------------------- |
| `FastKey` | *string* | :heavy_check_mark: | N/A | /library/sections/10/all?genre=89 |
| `Key` | *string* | :heavy_check_mark: | N/A | 89 |
| `Title` | *string* | :heavy_check_mark: | N/A | Action |
| `Type` | *string* | :heavy_check_mark: | N/A | genre |

View File

@@ -0,0 +1,22 @@
# GetGenresLibraryMediaContainer
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| `Size` | *double* | :heavy_check_mark: | N/A | 50 |
| `Offset` | *int* | :heavy_minus_sign: | N/A | |
| `TotalSize` | *int* | :heavy_minus_sign: | N/A | |
| `Identifier` | *string* | :heavy_check_mark: | N/A | com.plexapp.plugins.library |
| `AllowSync` | *bool* | :heavy_check_mark: | N/A | false |
| `Art` | *string* | :heavy_check_mark: | N/A | /:/resources/show-fanart.jpg |
| `Content` | *string* | :heavy_check_mark: | N/A | secondary |
| `MediaTagPrefix` | *string* | :heavy_check_mark: | N/A | /system/bundle/media/flags/ |
| `MediaTagVersion` | *long* | :heavy_check_mark: | N/A | 1734362201 |
| `Nocache` | *bool* | :heavy_check_mark: | N/A | true |
| `Thumb` | *string* | :heavy_check_mark: | N/A | /:/resources/show.png |
| `Title1` | *string* | :heavy_check_mark: | N/A | TV Shows (Reality) |
| `Title2` | *string* | :heavy_check_mark: | N/A | By Genre |
| `ViewGroup` | *string* | :heavy_check_mark: | N/A | secondary |
| `Directory` | List<[GetGenresLibraryDirectory](../../Models/Requests/GetGenresLibraryDirectory.md)> | :heavy_minus_sign: | N/A | |

View File

@@ -0,0 +1,8 @@
# GetGenresLibraryRequest
## Fields
| Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
| `SectionKey` | *int* | :heavy_check_mark: | The unique key of the Plex library. <br/>Note: This is unique in the context of the Plex server.<br/> | 9518 |

View File

@@ -0,0 +1,11 @@
# GetGenresLibraryResponse
## 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` | [HttpResponseMessage](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpresponsemessage?view=net-5.0) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
| `Object` | [GetGenresLibraryResponseBody](../../Models/Requests/GetGenresLibraryResponseBody.md) | :heavy_minus_sign: | Successful response containing media container data. |

View File

@@ -0,0 +1,10 @@
# GetGenresLibraryResponseBody
Successful response containing media container data.
## Fields
| Field | Type | Required | Description |
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| `MediaContainer` | [GetGenresLibraryMediaContainer](../../Models/Requests/GetGenresLibraryMediaContainer.md) | :heavy_minus_sign: | N/A |

View File

@@ -9,6 +9,6 @@
| `Offset` | *int* | :heavy_minus_sign: | N/A | |
| `TotalSize` | *int* | :heavy_minus_sign: | N/A | |
| `Identifier` | *string* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
| `AllowSync` | *bool* | :heavy_minus_sign: | N/A | |
| `AllowSync` | *bool* | :heavy_minus_sign: | N/A | false |
| `Meta` | [Meta](../../Models/Requests/Meta.md) | :heavy_minus_sign: | The Meta object is only included in the response if the `includeMeta` parameter is set to `1`.<br/> | |
| `Metadata` | List<[GetRecentlyAddedMetadata](../../Models/Requests/GetRecentlyAddedMetadata.md)> | :heavy_minus_sign: | N/A | |

View File

@@ -36,4 +36,4 @@
| `Country` | List<[GetTopWatchedContentCountry](../../Models/Requests/GetTopWatchedContentCountry.md)> | :heavy_minus_sign: | N/A | |
| `Guids` | List<[GetTopWatchedContentGuids](../../Models/Requests/GetTopWatchedContentGuids.md)> | :heavy_minus_sign: | N/A | |
| `Role` | List<[GetTopWatchedContentRole](../../Models/Requests/GetTopWatchedContentRole.md)> | :heavy_minus_sign: | N/A | |
| `User` | List<[User](../../Models/Requests/User.md)> | :heavy_minus_sign: | N/A | |
| `User` | List<[GetTopWatchedContentUser](../../Models/Requests/GetTopWatchedContentUser.md)> | :heavy_minus_sign: | N/A | |

View File

@@ -0,0 +1,8 @@
# GetTopWatchedContentUser
## Fields
| Field | Type | Required | Description | Example |
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
| `Id` | *int* | :heavy_minus_sign: | N/A | 220 |

View File

@@ -0,0 +1,15 @@
# GetUsersMediaContainer
Container holding user and server details.
## Fields
| Field | Type | Required | Description | Example |
| --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- |
| `FriendlyName` | *string* | :heavy_check_mark: | The friendly name of the Plex instance. | myPlex |
| `Identifier` | *string* | :heavy_check_mark: | N/A | com.plexapp.plugins.myplex |
| `MachineIdentifier` | *string* | :heavy_check_mark: | Unique Machine identifier of the Plex server. | 3dff4c4da3b1229a649aa574a9e2b419a684a20e |
| `TotalSize` | *long* | :heavy_check_mark: | Total number of users. | 30 |
| `Size` | *long* | :heavy_check_mark: | Number of users in the current response. | 30 |
| `User` | List<[User](../../Models/Requests/User.md)> | :heavy_check_mark: | List of users with access to the Plex server. | |

View File

@@ -0,0 +1,20 @@
# GetUsersRequest
## Fields
| Field | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ClientID` | *string* | :heavy_check_mark: | An opaque identifier unique to the client (UUID, serial number, or other unique device ID) | 3381b62b-9ab7-4e37-827b-203e9809eb58 |
| `ClientName` | *string* | :heavy_minus_sign: | The name of the client application. (Plex Web, Plex Media Server, etc.) | Plex for Roku |
| `DeviceNickname` | *string* | :heavy_minus_sign: | A relatively friendly name for the client device | Roku 3 |
| `DeviceName` | *string* | :heavy_minus_sign: | The name of the device the client application is running on. This is used to track the client application and its usage. (Chrome, Safari, etc.) | Chrome |
| `DeviceScreenResolution` | *string* | :heavy_minus_sign: | The resolution of the device the client application is running on. This is used to track the client application and its usage. (1487x1165,2560x1440) | 1487x1165,2560x1440 |
| `ClientVersion` | *string* | :heavy_minus_sign: | The version of the client application. | 2.4.1 |
| `Platform` | *string* | :heavy_minus_sign: | The platform of the client application. | Roku |
| `ClientFeatures` | *string* | :heavy_minus_sign: | The features of the client application. This is used to track the client application and its usage. (external-media,indirect-media,hub-style-list) | external-media,indirect-media,hub-style-list |
| `Model` | *string* | :heavy_minus_sign: | A potentially less friendly identifier for the device model | 4200X |
| `XPlexSessionId` | *string* | :heavy_minus_sign: | The session ID of the client application. This is used to track the client application and its usage. (97e136ef-4ddd-4ff3-89a7-a5820c96c2ca) | 97e136ef-4ddd-4ff3-89a7-a5820c96c2ca |
| `XPlexLanguage` | *string* | :heavy_minus_sign: | The language of the client application. | en |
| `PlatformVersion` | *string* | :heavy_minus_sign: | The version of the platform | 4.3 build 1057 |
| `XPlexToken` | *string* | :heavy_check_mark: | An authentication token, obtained from plex.tv | CV5xoxjTpFKUzBTShsaf |

View File

@@ -0,0 +1,11 @@
# GetUsersResponse
## 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` | [HttpResponseMessage](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpresponsemessage?view=net-5.0) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
| `Body` | *byte[]* | :heavy_minus_sign: | N/A |

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