diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 36ef8cc..e0f5f82 100755 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,12 +1,12 @@ lockVersion: 2.0.0 id: 5a8dbcbc-e0ee-41f0-9d84-b8b50567d1e9 management: - docChecksum: 5ae5b1296191bd5cc5d4f6cd38df8bff + docChecksum: cd46763b91ada69afbe49fa20517839a docVersion: 0.0.3 - speakeasyVersion: 1.378.1 - generationVersion: 2.404.3 - releaseVersion: 0.4.1 - configChecksum: c11547fd2dc431993d988a8717e7bfe9 + speakeasyVersion: 1.383.2 + generationVersion: 2.407.0 + releaseVersion: 0.4.2 + configChecksum: 74b77ec64d814262085e1afc1ea50fbb 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.9.14 + core: 3.9.16 deprecations: 2.81.2 flattening: 2.81.2 globalSecurity: 2.83.6 @@ -46,7 +46,6 @@ generatedFiles: - PlexAPI/Statistics.cs - PlexAPI/Sessions.cs - PlexAPI/Updater.cs - - PlexAPI/User.cs - PlexAPI/Watchlist.cs - PlexAPI/PlexAPISDK.cs - global.json @@ -225,22 +224,22 @@ generatedFiles: - PlexAPI/Models/Requests/GetRecentlyAddedResponseBody.cs - PlexAPI/Models/Requests/GetRecentlyAddedResponse.cs - PlexAPI/Models/Requests/Location.cs - - PlexAPI/Models/Requests/GetLibrariesDirectory.cs - - PlexAPI/Models/Requests/GetLibrariesMediaContainer.cs - - PlexAPI/Models/Requests/GetLibrariesResponseBody.cs - - PlexAPI/Models/Requests/GetLibrariesResponse.cs + - PlexAPI/Models/Requests/GetAllLibrariesDirectory.cs + - PlexAPI/Models/Requests/GetAllLibrariesMediaContainer.cs + - PlexAPI/Models/Requests/GetAllLibrariesResponseBody.cs + - PlexAPI/Models/Requests/GetAllLibrariesResponse.cs - PlexAPI/Models/Requests/IncludeDetails.cs - - PlexAPI/Models/Requests/GetLibraryRequest.cs - - PlexAPI/Models/Requests/GetLibraryDirectory.cs - - PlexAPI/Models/Requests/GetLibraryFilter.cs + - PlexAPI/Models/Requests/GetLibraryDetailsRequest.cs + - PlexAPI/Models/Requests/GetLibraryDetailsDirectory.cs + - PlexAPI/Models/Requests/GetLibraryDetailsFilter.cs - PlexAPI/Models/Requests/Sort.cs - PlexAPI/Models/Requests/Field.cs - - PlexAPI/Models/Requests/GetLibraryType.cs + - PlexAPI/Models/Requests/GetLibraryDetailsType.cs - PlexAPI/Models/Requests/Operator.cs - PlexAPI/Models/Requests/FieldType.cs - - PlexAPI/Models/Requests/GetLibraryMediaContainer.cs - - PlexAPI/Models/Requests/GetLibraryResponseBody.cs - - PlexAPI/Models/Requests/GetLibraryResponse.cs + - PlexAPI/Models/Requests/GetLibraryDetailsMediaContainer.cs + - PlexAPI/Models/Requests/GetLibraryDetailsResponseBody.cs + - PlexAPI/Models/Requests/GetLibraryDetailsResponse.cs - PlexAPI/Models/Requests/DeleteLibraryRequest.cs - PlexAPI/Models/Requests/DeleteLibraryResponse.cs - PlexAPI/Models/Requests/Tag.cs @@ -257,8 +256,9 @@ generatedFiles: - PlexAPI/Models/Requests/GetLibraryItemsMediaContainer.cs - PlexAPI/Models/Requests/GetLibraryItemsResponseBody.cs - PlexAPI/Models/Requests/GetLibraryItemsResponse.cs - - PlexAPI/Models/Requests/RefreshLibraryRequest.cs - - PlexAPI/Models/Requests/RefreshLibraryResponse.cs + - PlexAPI/Models/Requests/Force.cs + - PlexAPI/Models/Requests/GetRefreshLibraryMetadataRequest.cs + - PlexAPI/Models/Requests/GetRefreshLibraryMetadataResponse.cs - PlexAPI/Models/Requests/Type.cs - PlexAPI/Models/Requests/SearchLibraryRequest.cs - PlexAPI/Models/Requests/SearchLibraryMetadata.cs @@ -352,7 +352,7 @@ generatedFiles: - PlexAPI/Models/Requests/AddPlaylistContentsMediaContainer.cs - PlexAPI/Models/Requests/AddPlaylistContentsResponseBody.cs - PlexAPI/Models/Requests/AddPlaylistContentsResponse.cs - - PlexAPI/Models/Requests/Force.cs + - PlexAPI/Models/Requests/QueryParamForce.cs - PlexAPI/Models/Requests/UploadPlaylistRequest.cs - PlexAPI/Models/Requests/UploadPlaylistResponse.cs - PlexAPI/Models/Requests/GetTransientTokenQueryParamType.cs @@ -361,6 +361,30 @@ generatedFiles: - PlexAPI/Models/Requests/GetTransientTokenResponse.cs - PlexAPI/Models/Requests/GetSourceConnectionInformationRequest.cs - PlexAPI/Models/Requests/GetSourceConnectionInformationResponse.cs + - PlexAPI/Models/Requests/PostUsersSignInDataRequestBody.cs + - PlexAPI/Models/Requests/PostUsersSignInDataRequest.cs + - PlexAPI/Models/Requests/PostUsersSignInDataMailingListStatus.cs + - PlexAPI/Models/Requests/PostUsersSignInDataAutoSelectSubtitle.cs + - PlexAPI/Models/Requests/PostUsersSignInDataDefaultSubtitleAccessibility.cs + - PlexAPI/Models/Requests/PostUsersSignInDataDefaultSubtitleForced.cs + - PlexAPI/Models/Requests/PostUsersSignInDataWatchedIndicator.cs + - PlexAPI/Models/Requests/PostUsersSignInDataMediaReviewsVisibility.cs + - PlexAPI/Models/Requests/PostUsersSignInDataUserProfile.cs + - PlexAPI/Models/Requests/PostUsersSignInDataStatus.cs + - PlexAPI/Models/Requests/PostUsersSignInDataServices.cs + - PlexAPI/Models/Requests/PostUsersSignInDataFeatures.cs + - PlexAPI/Models/Requests/PostUsersSignInDataAuthenticationStatus.cs + - PlexAPI/Models/Requests/PostUsersSignInDataSubscription.cs + - PlexAPI/Models/Requests/PostUsersSignInDataAuthenticationFeatures.cs + - PlexAPI/Models/Requests/PostUsersSignInDataAuthenticationResponseStatus.cs + - PlexAPI/Models/Requests/PostUsersSignInDataAuthenticationSubscription.cs + - PlexAPI/Models/Requests/PostUsersSignInDataState.cs + - PlexAPI/Models/Requests/InternalPaymentMethod.cs + - PlexAPI/Models/Requests/Billing.cs + - PlexAPI/Models/Requests/PastSubscription.cs + - PlexAPI/Models/Requests/Trials.cs + - PlexAPI/Models/Requests/PostUsersSignInDataUserPlexAccount.cs + - PlexAPI/Models/Requests/PostUsersSignInDataResponse.cs - PlexAPI/Models/Requests/GetStatisticsRequest.cs - PlexAPI/Models/Requests/GetStatisticsDevice.cs - PlexAPI/Models/Requests/Account.cs @@ -413,30 +437,6 @@ generatedFiles: - PlexAPI/Models/Requests/Skip.cs - PlexAPI/Models/Requests/ApplyUpdatesRequest.cs - PlexAPI/Models/Requests/ApplyUpdatesResponse.cs - - PlexAPI/Models/Requests/PostSignInRequestBody.cs - - PlexAPI/Models/Requests/PostSignInRequest.cs - - PlexAPI/Models/Requests/PostSignInMailingListStatus.cs - - PlexAPI/Models/Requests/PostSignInAutoSelectSubtitle.cs - - PlexAPI/Models/Requests/PostSignInDefaultSubtitleAccessibility.cs - - PlexAPI/Models/Requests/PostSignInDefaultSubtitleForced.cs - - PlexAPI/Models/Requests/PostSignInWatchedIndicator.cs - - PlexAPI/Models/Requests/PostSignInMediaReviewsVisibility.cs - - PlexAPI/Models/Requests/PostSignInUserProfile.cs - - PlexAPI/Models/Requests/PostSignInStatus.cs - - PlexAPI/Models/Requests/PostSignInServices.cs - - PlexAPI/Models/Requests/PostSignInFeatures.cs - - PlexAPI/Models/Requests/PostSignInUserStatus.cs - - PlexAPI/Models/Requests/PostSignInSubscription.cs - - PlexAPI/Models/Requests/PostSignInUserFeatures.cs - - PlexAPI/Models/Requests/PostSignInUserResponseStatus.cs - - PlexAPI/Models/Requests/PostSignInUserSubscription.cs - - PlexAPI/Models/Requests/PostSignInState.cs - - PlexAPI/Models/Requests/InternalPaymentMethod.cs - - PlexAPI/Models/Requests/Billing.cs - - PlexAPI/Models/Requests/PastSubscription.cs - - PlexAPI/Models/Requests/Trials.cs - - PlexAPI/Models/Requests/PostSignInUserPlexAccount.cs - - PlexAPI/Models/Requests/PostSignInResponse.cs - PlexAPI/Models/Requests/PathParamFilter.cs - PlexAPI/Models/Requests/Libtype.cs - PlexAPI/Models/Requests/IncludeCollections.cs @@ -516,16 +516,16 @@ generatedFiles: - PlexAPI/Models/Errors/GetFileHashResponseBody.cs - PlexAPI/Models/Errors/GetRecentlyAddedErrors.cs - PlexAPI/Models/Errors/GetRecentlyAddedResponseBody.cs - - PlexAPI/Models/Errors/GetLibrariesErrors.cs - - PlexAPI/Models/Errors/GetLibrariesResponseBody.cs - - PlexAPI/Models/Errors/GetLibraryErrors.cs - - PlexAPI/Models/Errors/GetLibraryResponseBody.cs + - PlexAPI/Models/Errors/GetAllLibrariesErrors.cs + - PlexAPI/Models/Errors/GetAllLibrariesResponseBody.cs + - PlexAPI/Models/Errors/GetLibraryDetailsErrors.cs + - PlexAPI/Models/Errors/GetLibraryDetailsResponseBody.cs - PlexAPI/Models/Errors/DeleteLibraryErrors.cs - PlexAPI/Models/Errors/DeleteLibraryResponseBody.cs - PlexAPI/Models/Errors/GetLibraryItemsErrors.cs - PlexAPI/Models/Errors/GetLibraryItemsResponseBody.cs - - PlexAPI/Models/Errors/RefreshLibraryErrors.cs - - PlexAPI/Models/Errors/RefreshLibraryResponseBody.cs + - PlexAPI/Models/Errors/GetRefreshLibraryMetadataErrors.cs + - PlexAPI/Models/Errors/GetRefreshLibraryMetadataResponseBody.cs - PlexAPI/Models/Errors/SearchLibraryErrors.cs - PlexAPI/Models/Errors/SearchLibraryResponseBody.cs - PlexAPI/Models/Errors/GetMetadataErrors.cs @@ -562,6 +562,8 @@ generatedFiles: - PlexAPI/Models/Errors/GetTransientTokenResponseBody.cs - PlexAPI/Models/Errors/GetSourceConnectionInformationErrors.cs - PlexAPI/Models/Errors/GetSourceConnectionInformationResponseBody.cs + - PlexAPI/Models/Errors/PostUsersSignInDataErrors.cs + - PlexAPI/Models/Errors/PostUsersSignInDataResponseBody.cs - PlexAPI/Models/Errors/GetStatisticsErrors.cs - PlexAPI/Models/Errors/GetStatisticsResponseBody.cs - PlexAPI/Models/Errors/GetResourcesStatisticsErrors.cs @@ -582,8 +584,6 @@ generatedFiles: - PlexAPI/Models/Errors/CheckForUpdatesResponseBody.cs - PlexAPI/Models/Errors/ApplyUpdatesErrors.cs - PlexAPI/Models/Errors/ApplyUpdatesResponseBody.cs - - PlexAPI/Models/Errors/PostSignInErrors.cs - - PlexAPI/Models/Errors/PostSignInResponseBody.cs - PlexAPI/Models/Errors/GetWatchlistErrors.cs - PlexAPI/Models/Errors/GetWatchlistResponseBody.cs - PlexAPI/Models/Components/Security.cs @@ -742,22 +742,22 @@ generatedFiles: - docs/Models/Requests/GetRecentlyAddedResponseBody.md - docs/Models/Requests/GetRecentlyAddedResponse.md - docs/Models/Requests/Location.md - - docs/Models/Requests/GetLibrariesDirectory.md - - docs/Models/Requests/GetLibrariesMediaContainer.md - - docs/Models/Requests/GetLibrariesResponseBody.md - - docs/Models/Requests/GetLibrariesResponse.md + - docs/Models/Requests/GetAllLibrariesDirectory.md + - docs/Models/Requests/GetAllLibrariesMediaContainer.md + - docs/Models/Requests/GetAllLibrariesResponseBody.md + - docs/Models/Requests/GetAllLibrariesResponse.md - docs/Models/Requests/IncludeDetails.md - - docs/Models/Requests/GetLibraryRequest.md - - docs/Models/Requests/GetLibraryDirectory.md - - docs/Models/Requests/GetLibraryFilter.md + - docs/Models/Requests/GetLibraryDetailsRequest.md + - docs/Models/Requests/GetLibraryDetailsDirectory.md + - docs/Models/Requests/GetLibraryDetailsFilter.md - docs/Models/Requests/Sort.md - docs/Models/Requests/Field.md - - docs/Models/Requests/GetLibraryType.md + - docs/Models/Requests/GetLibraryDetailsType.md - docs/Models/Requests/Operator.md - docs/Models/Requests/FieldType.md - - docs/Models/Requests/GetLibraryMediaContainer.md - - docs/Models/Requests/GetLibraryResponseBody.md - - docs/Models/Requests/GetLibraryResponse.md + - docs/Models/Requests/GetLibraryDetailsMediaContainer.md + - docs/Models/Requests/GetLibraryDetailsResponseBody.md + - docs/Models/Requests/GetLibraryDetailsResponse.md - docs/Models/Requests/DeleteLibraryRequest.md - docs/Models/Requests/DeleteLibraryResponse.md - docs/Models/Requests/Tag.md @@ -774,8 +774,9 @@ generatedFiles: - docs/Models/Requests/GetLibraryItemsMediaContainer.md - docs/Models/Requests/GetLibraryItemsResponseBody.md - docs/Models/Requests/GetLibraryItemsResponse.md - - docs/Models/Requests/RefreshLibraryRequest.md - - docs/Models/Requests/RefreshLibraryResponse.md + - docs/Models/Requests/Force.md + - docs/Models/Requests/GetRefreshLibraryMetadataRequest.md + - docs/Models/Requests/GetRefreshLibraryMetadataResponse.md - docs/Models/Requests/Type.md - docs/Models/Requests/SearchLibraryRequest.md - docs/Models/Requests/SearchLibraryMetadata.md @@ -869,7 +870,7 @@ generatedFiles: - docs/Models/Requests/AddPlaylistContentsMediaContainer.md - docs/Models/Requests/AddPlaylistContentsResponseBody.md - docs/Models/Requests/AddPlaylistContentsResponse.md - - docs/Models/Requests/Force.md + - docs/Models/Requests/QueryParamForce.md - docs/Models/Requests/UploadPlaylistRequest.md - docs/Models/Requests/UploadPlaylistResponse.md - docs/Models/Requests/GetTransientTokenQueryParamType.md @@ -878,6 +879,30 @@ generatedFiles: - docs/Models/Requests/GetTransientTokenResponse.md - docs/Models/Requests/GetSourceConnectionInformationRequest.md - docs/Models/Requests/GetSourceConnectionInformationResponse.md + - docs/Models/Requests/PostUsersSignInDataRequestBody.md + - docs/Models/Requests/PostUsersSignInDataRequest.md + - docs/Models/Requests/PostUsersSignInDataMailingListStatus.md + - docs/Models/Requests/PostUsersSignInDataAutoSelectSubtitle.md + - docs/Models/Requests/PostUsersSignInDataDefaultSubtitleAccessibility.md + - docs/Models/Requests/PostUsersSignInDataDefaultSubtitleForced.md + - docs/Models/Requests/PostUsersSignInDataWatchedIndicator.md + - docs/Models/Requests/PostUsersSignInDataMediaReviewsVisibility.md + - docs/Models/Requests/PostUsersSignInDataUserProfile.md + - docs/Models/Requests/PostUsersSignInDataStatus.md + - docs/Models/Requests/PostUsersSignInDataServices.md + - docs/Models/Requests/PostUsersSignInDataFeatures.md + - docs/Models/Requests/PostUsersSignInDataAuthenticationStatus.md + - docs/Models/Requests/PostUsersSignInDataSubscription.md + - docs/Models/Requests/PostUsersSignInDataAuthenticationFeatures.md + - docs/Models/Requests/PostUsersSignInDataAuthenticationResponseStatus.md + - docs/Models/Requests/PostUsersSignInDataAuthenticationSubscription.md + - docs/Models/Requests/PostUsersSignInDataState.md + - docs/Models/Requests/InternalPaymentMethod.md + - docs/Models/Requests/Billing.md + - docs/Models/Requests/PastSubscription.md + - docs/Models/Requests/Trials.md + - docs/Models/Requests/PostUsersSignInDataUserPlexAccount.md + - docs/Models/Requests/PostUsersSignInDataResponse.md - docs/Models/Requests/GetStatisticsRequest.md - docs/Models/Requests/GetStatisticsDevice.md - docs/Models/Requests/Account.md @@ -930,30 +955,6 @@ generatedFiles: - docs/Models/Requests/Skip.md - docs/Models/Requests/ApplyUpdatesRequest.md - docs/Models/Requests/ApplyUpdatesResponse.md - - docs/Models/Requests/PostSignInRequestBody.md - - docs/Models/Requests/PostSignInRequest.md - - docs/Models/Requests/PostSignInMailingListStatus.md - - docs/Models/Requests/PostSignInAutoSelectSubtitle.md - - docs/Models/Requests/PostSignInDefaultSubtitleAccessibility.md - - docs/Models/Requests/PostSignInDefaultSubtitleForced.md - - docs/Models/Requests/PostSignInWatchedIndicator.md - - docs/Models/Requests/PostSignInMediaReviewsVisibility.md - - docs/Models/Requests/PostSignInUserProfile.md - - docs/Models/Requests/PostSignInStatus.md - - docs/Models/Requests/PostSignInServices.md - - docs/Models/Requests/PostSignInFeatures.md - - docs/Models/Requests/PostSignInUserStatus.md - - docs/Models/Requests/PostSignInSubscription.md - - docs/Models/Requests/PostSignInUserFeatures.md - - docs/Models/Requests/PostSignInUserResponseStatus.md - - docs/Models/Requests/PostSignInUserSubscription.md - - docs/Models/Requests/PostSignInState.md - - docs/Models/Requests/InternalPaymentMethod.md - - docs/Models/Requests/Billing.md - - docs/Models/Requests/PastSubscription.md - - docs/Models/Requests/Trials.md - - docs/Models/Requests/PostSignInUserPlexAccount.md - - docs/Models/Requests/PostSignInResponse.md - docs/Models/Requests/PathParamFilter.md - docs/Models/Requests/Libtype.md - docs/Models/Requests/IncludeCollections.md @@ -1033,16 +1034,16 @@ generatedFiles: - docs/Models/Errors/GetFileHashResponseBody.md - docs/Models/Errors/GetRecentlyAddedErrors.md - docs/Models/Errors/GetRecentlyAddedResponseBody.md - - docs/Models/Errors/GetLibrariesErrors.md - - docs/Models/Errors/GetLibrariesResponseBody.md - - docs/Models/Errors/GetLibraryErrors.md - - docs/Models/Errors/GetLibraryResponseBody.md + - docs/Models/Errors/GetAllLibrariesErrors.md + - docs/Models/Errors/GetAllLibrariesResponseBody.md + - docs/Models/Errors/GetLibraryDetailsErrors.md + - docs/Models/Errors/GetLibraryDetailsResponseBody.md - docs/Models/Errors/DeleteLibraryErrors.md - docs/Models/Errors/DeleteLibraryResponseBody.md - docs/Models/Errors/GetLibraryItemsErrors.md - docs/Models/Errors/GetLibraryItemsResponseBody.md - - docs/Models/Errors/RefreshLibraryErrors.md - - docs/Models/Errors/RefreshLibraryResponseBody.md + - docs/Models/Errors/GetRefreshLibraryMetadataErrors.md + - docs/Models/Errors/GetRefreshLibraryMetadataResponseBody.md - docs/Models/Errors/SearchLibraryErrors.md - docs/Models/Errors/SearchLibraryResponseBody.md - docs/Models/Errors/GetMetadataErrors.md @@ -1079,6 +1080,8 @@ generatedFiles: - docs/Models/Errors/GetTransientTokenResponseBody.md - docs/Models/Errors/GetSourceConnectionInformationErrors.md - docs/Models/Errors/GetSourceConnectionInformationResponseBody.md + - docs/Models/Errors/PostUsersSignInDataErrors.md + - docs/Models/Errors/PostUsersSignInDataResponseBody.md - docs/Models/Errors/GetStatisticsErrors.md - docs/Models/Errors/GetStatisticsResponseBody.md - docs/Models/Errors/GetResourcesStatisticsErrors.md @@ -1099,8 +1102,6 @@ generatedFiles: - docs/Models/Errors/CheckForUpdatesResponseBody.md - docs/Models/Errors/ApplyUpdatesErrors.md - docs/Models/Errors/ApplyUpdatesResponseBody.md - - docs/Models/Errors/PostSignInErrors.md - - docs/Models/Errors/PostSignInResponseBody.md - docs/Models/Errors/GetWatchlistErrors.md - docs/Models/Errors/GetWatchlistResponseBody.md - docs/Models/Components/Security.md @@ -1120,7 +1121,6 @@ generatedFiles: - docs/sdks/statistics/README.md - docs/sdks/sessions/README.md - docs/sdks/updater/README.md - - docs/sdks/user/README.md - docs/sdks/watchlist/README.md - NUGET.md - USAGE.md diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 6bb7e30..1b1dcdf 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -12,7 +12,7 @@ generation: auth: oAuth2ClientCredentialsEnabled: true csharp: - version: 0.4.1 + version: 0.4.2 additionalDependencies: [] author: LukeHagar clientServerStatusCodesAsErrors: true diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 1a690b7..92d3464 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,9 +1,9 @@ -speakeasyVersion: 1.321.0 +speakeasyVersion: 1.383.2 sources: my-source: sourceNamespace: my-source - sourceRevisionDigest: sha256:f9e2111241453dcdf0c358ee4cc67c2da25786065dfce0778c51e357cca85470 - sourceBlobDigest: sha256:5ebcd8b28a73ab3b3265a5e7a7c43136d2eeccb8fd62f2db4e7aacf3e3e3d2ce + sourceRevisionDigest: sha256:c6e5a38f9c953eb820ac1b5cb6d5aade8ee11a7bdb5b568147fd677d61b3a3c5 + sourceBlobDigest: sha256:730391fe626304e22e265f9470902fc083d5e6110d20d87cdc3ac7da6b4982de tags: - latest - main @@ -11,8 +11,8 @@ targets: plexcsharp: source: my-source sourceNamespace: my-source - sourceRevisionDigest: sha256:f9e2111241453dcdf0c358ee4cc67c2da25786065dfce0778c51e357cca85470 - sourceBlobDigest: sha256:5ebcd8b28a73ab3b3265a5e7a7c43136d2eeccb8fd62f2db4e7aacf3e3e3d2ce + sourceRevisionDigest: sha256:c6e5a38f9c953eb820ac1b5cb6d5aade8ee11a7bdb5b568147fd677d61b3a3c5 + sourceBlobDigest: sha256:730391fe626304e22e265f9470902fc083d5e6110d20d87cdc3ac7da6b4982de outLocation: /github/workspace/repo workflow: workflowVersion: 1.0.0 diff --git a/NUGET.md b/NUGET.md index 7bd56ab..4a4241f 100644 --- a/NUGET.md +++ b/NUGET.md @@ -12,7 +12,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Server.GetServerCapabilitiesAsync(); @@ -40,11 +41,13 @@ using PlexAPI.Models.Errors; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); try { var res = await sdk.Server.GetServerCapabilitiesAsync(); + // handle response } catch (Exception ex) @@ -58,7 +61,6 @@ catch (Exception ex) // handle exception } } - ``` @@ -96,7 +98,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Plex.GetCompanionsDataAsync(serverUrl: "https://plex.tv/api/v2"); @@ -122,7 +125,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Server.GetServerCapabilitiesAsync(); diff --git a/PlexAPI/Activities.cs b/PlexAPI/Activities.cs index 08a15d7..c8cbc50 100644 --- a/PlexAPI/Activities.cs +++ b/PlexAPI/Activities.cs @@ -74,10 +74,10 @@ namespace PlexAPI { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.4.1"; - private const string _sdkGenVersion = "2.404.3"; + private const string _sdkVersion = "0.4.2"; + private const string _sdkGenVersion = "2.407.0"; private const string _openapiDocVersion = "0.0.3"; - private const string _userAgent = "speakeasy-sdk/csharp 0.4.1 2.404.3 0.0.3 PlexAPI"; + private const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI"; private string _serverUrl = ""; private ISpeakeasyHttpClient _client; private Func? _securitySource; diff --git a/PlexAPI/Authentication.cs b/PlexAPI/Authentication.cs index 0ea595d..773f405 100644 --- a/PlexAPI/Authentication.cs +++ b/PlexAPI/Authentication.cs @@ -52,6 +52,15 @@ namespace PlexAPI /// /// Task GetSourceConnectionInformationAsync(string source); + + /// + /// Get User SignIn Data + /// + /// + /// Sign in user with username and password and return user data with Plex authentication token + /// + /// + Task PostUsersSignInDataAsync(string? xPlexClientIdentifier = null, PostUsersSignInDataRequestBody? requestBody = null, string? serverUrl = null); } /// @@ -63,12 +72,18 @@ namespace PlexAPI /// public class Authentication: IAuthentication { + /// + /// List of server URLs available for the post-users-sign-in-data operation. + /// + public static readonly string[] PostUsersSignInDataServerList = { + "https://plex.tv/api/v2", + }; public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.4.1"; - private const string _sdkGenVersion = "2.404.3"; + private const string _sdkVersion = "0.4.2"; + private const string _sdkGenVersion = "2.407.0"; private const string _openapiDocVersion = "0.0.3"; - private const string _userAgent = "speakeasy-sdk/csharp 0.4.1 2.404.3 0.0.3 PlexAPI"; + private const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI"; private string _serverUrl = ""; private ISpeakeasyHttpClient _client; private Func? _securitySource; @@ -251,5 +266,111 @@ namespace PlexAPI throw new SDKException("Unknown status code received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse); } } + + public async Task PostUsersSignInDataAsync(string? xPlexClientIdentifier = null, PostUsersSignInDataRequestBody? requestBody = null, string? serverUrl = null) + { + var request = new PostUsersSignInDataRequest() + { + XPlexClientIdentifier = xPlexClientIdentifier, + RequestBody = requestBody, + }; + request.XPlexClientIdentifier ??= SDKConfiguration.XPlexClientIdentifier; + + string baseUrl = Utilities.TemplateUrl(PostUsersSignInDataServerList[0], new Dictionary(){ + }); + if (serverUrl != null) + { + baseUrl = serverUrl; + } + + var urlString = baseUrl + "/users/signin"; + + var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString); + httpRequest.Headers.Add("user-agent", _userAgent); + HeaderSerializer.PopulateHeaders(ref httpRequest, request); + + var serializedBody = RequestBodySerializer.Serialize(request, "RequestBody", "form", false, true); + if (serializedBody != null) + { + httpRequest.Content = serializedBody; + } + + var hookCtx = new HookContext("post-users-sign-in-data", 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 == 201) + { + if(Utilities.IsContentTypeMatch("application/json", contentType)) + { + var obj = ResponseBodyDeserializer.Deserialize(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore); + var response = new PostUsersSignInDataResponse() + { + StatusCode = responseStatusCode, + ContentType = contentType, + RawResponse = httpResponse + }; + response.UserPlexAccount = obj; + return response; + } + else + { + throw new SDKException("Unknown content type received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse); + } + } + else if(responseStatusCode == 400 || responseStatusCode >= 400 && responseStatusCode < 500 || responseStatusCode >= 500 && responseStatusCode < 600) + { + throw new SDKException("API error occurred", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse); + } + else if(responseStatusCode == 401) + { + if(Utilities.IsContentTypeMatch("application/json", contentType)) + { + var obj = ResponseBodyDeserializer.Deserialize(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore); + obj!.RawResponse = httpResponse; + throw obj!; + } + else + { + throw new SDKException("Unknown content type received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse); + } + } + else + { + throw new SDKException("Unknown status code received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse); + } + } } } \ No newline at end of file diff --git a/PlexAPI/Butler.cs b/PlexAPI/Butler.cs index 062cfd6..6c44fa7 100644 --- a/PlexAPI/Butler.cs +++ b/PlexAPI/Butler.cs @@ -101,10 +101,10 @@ namespace PlexAPI { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.4.1"; - private const string _sdkGenVersion = "2.404.3"; + private const string _sdkVersion = "0.4.2"; + private const string _sdkGenVersion = "2.407.0"; private const string _openapiDocVersion = "0.0.3"; - private const string _userAgent = "speakeasy-sdk/csharp 0.4.1 2.404.3 0.0.3 PlexAPI"; + private const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI"; private string _serverUrl = ""; private ISpeakeasyHttpClient _client; private Func? _securitySource; diff --git a/PlexAPI/Hubs.cs b/PlexAPI/Hubs.cs index 7f4a00f..1143675 100644 --- a/PlexAPI/Hubs.cs +++ b/PlexAPI/Hubs.cs @@ -63,10 +63,10 @@ namespace PlexAPI { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.4.1"; - private const string _sdkGenVersion = "2.404.3"; + private const string _sdkVersion = "0.4.2"; + private const string _sdkGenVersion = "2.407.0"; private const string _openapiDocVersion = "0.0.3"; - private const string _userAgent = "speakeasy-sdk/csharp 0.4.1 2.404.3 0.0.3 PlexAPI"; + private const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI"; private string _serverUrl = ""; private ISpeakeasyHttpClient _client; private Func? _securitySource; diff --git a/PlexAPI/Library.cs b/PlexAPI/Library.cs index c9f5fc5..2dc9d69 100644 --- a/PlexAPI/Library.cs +++ b/PlexAPI/Library.cs @@ -64,7 +64,7 @@ namespace PlexAPI /// /// /// - Task GetLibrariesAsync(); + Task GetAllLibrariesAsync(); /// /// Get Library Details @@ -112,13 +112,13 @@ namespace PlexAPI /// /// /// - Task GetLibraryAsync(double sectionId, IncludeDetails? includeDetails = null); + Task GetLibraryDetailsAsync(double sectionId, IncludeDetails? includeDetails = null); /// /// Delete Library Section /// /// - /// Delate a library using a specific section + /// Delete a library using a specific section id /// /// Task DeleteLibraryAsync(double sectionId); @@ -153,14 +153,14 @@ namespace PlexAPI Task GetLibraryItemsAsync(object sectionId, Tag tag, long? includeGuids = null); /// - /// Refresh Library + /// Refresh Metadata Of The Library /// /// - /// This endpoint Refreshes the library.
+ /// This endpoint Refreshes all the Metadata of the library.
/// ///
///
- Task RefreshLibraryAsync(double sectionId); + Task GetRefreshLibraryMetadataAsync(double sectionId, Force? force = null); /// /// Search Library @@ -187,7 +187,7 @@ namespace PlexAPI /// /// /// - Task SearchLibraryAsync(long sectionId, Type type); + Task SearchLibraryAsync(long sectionId, Models.Requests.Type type); /// /// Get Items Metadata @@ -241,10 +241,10 @@ namespace PlexAPI { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.4.1"; - private const string _sdkGenVersion = "2.404.3"; + private const string _sdkVersion = "0.4.2"; + private const string _sdkGenVersion = "2.407.0"; private const string _openapiDocVersion = "0.0.3"; - private const string _userAgent = "speakeasy-sdk/csharp 0.4.1 2.404.3 0.0.3 PlexAPI"; + private const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI"; private string _serverUrl = ""; private ISpeakeasyHttpClient _client; private Func? _securitySource; @@ -435,7 +435,7 @@ namespace PlexAPI } } - public async Task GetLibrariesAsync() + public async Task GetAllLibrariesAsync() { string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl(); @@ -449,7 +449,7 @@ namespace PlexAPI httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); } - var hookCtx = new HookContext("getLibraries", null, _securitySource); + var hookCtx = new HookContext("get-all-libraries", null, _securitySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); @@ -489,8 +489,8 @@ namespace PlexAPI { if(Utilities.IsContentTypeMatch("application/json", contentType)) { - var obj = ResponseBodyDeserializer.Deserialize(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore); - var response = new GetLibrariesResponse() + var obj = ResponseBodyDeserializer.Deserialize(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore); + var response = new GetAllLibrariesResponse() { StatusCode = responseStatusCode, ContentType = contentType, @@ -512,7 +512,7 @@ namespace PlexAPI { if(Utilities.IsContentTypeMatch("application/json", contentType)) { - var obj = ResponseBodyDeserializer.Deserialize(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore); + var obj = ResponseBodyDeserializer.Deserialize(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore); obj!.RawResponse = httpResponse; throw obj!; } @@ -527,9 +527,9 @@ namespace PlexAPI } } - public async Task GetLibraryAsync(double sectionId, IncludeDetails? includeDetails = null) + public async Task GetLibraryDetailsAsync(double sectionId, IncludeDetails? includeDetails = null) { - var request = new GetLibraryRequest() + var request = new GetLibraryDetailsRequest() { SectionId = sectionId, IncludeDetails = includeDetails, @@ -545,7 +545,7 @@ namespace PlexAPI httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); } - var hookCtx = new HookContext("getLibrary", null, _securitySource); + var hookCtx = new HookContext("get-library-details", null, _securitySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); @@ -585,8 +585,8 @@ namespace PlexAPI { if(Utilities.IsContentTypeMatch("application/json", contentType)) { - var obj = ResponseBodyDeserializer.Deserialize(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore); - var response = new GetLibraryResponse() + var obj = ResponseBodyDeserializer.Deserialize(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore); + var response = new GetLibraryDetailsResponse() { StatusCode = responseStatusCode, ContentType = contentType, @@ -608,7 +608,7 @@ namespace PlexAPI { if(Utilities.IsContentTypeMatch("application/json", contentType)) { - var obj = ResponseBodyDeserializer.Deserialize(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore); + var obj = ResponseBodyDeserializer.Deserialize(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore); obj!.RawResponse = httpResponse; throw obj!; } @@ -805,11 +805,12 @@ namespace PlexAPI } } - public async Task RefreshLibraryAsync(double sectionId) + public async Task GetRefreshLibraryMetadataAsync(double sectionId, Force? force = null) { - var request = new RefreshLibraryRequest() + var request = new GetRefreshLibraryMetadataRequest() { SectionId = sectionId, + Force = force, }; string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl(); var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/refresh", request); @@ -822,7 +823,7 @@ namespace PlexAPI httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); } - var hookCtx = new HookContext("refreshLibrary", null, _securitySource); + var hookCtx = new HookContext("get-refresh-library-metadata", null, _securitySource); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); @@ -860,7 +861,7 @@ namespace PlexAPI int responseStatusCode = (int)httpResponse.StatusCode; if(responseStatusCode == 200) { - return new RefreshLibraryResponse() + return new GetRefreshLibraryMetadataResponse() { StatusCode = responseStatusCode, ContentType = contentType, @@ -875,7 +876,7 @@ namespace PlexAPI { if(Utilities.IsContentTypeMatch("application/json", contentType)) { - var obj = ResponseBodyDeserializer.Deserialize(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore); + var obj = ResponseBodyDeserializer.Deserialize(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore); obj!.RawResponse = httpResponse; throw obj!; } @@ -890,7 +891,7 @@ namespace PlexAPI } } - public async Task SearchLibraryAsync(long sectionId, Type type) + public async Task SearchLibraryAsync(long sectionId, Models.Requests.Type type) { var request = new SearchLibraryRequest() { diff --git a/PlexAPI/Log.cs b/PlexAPI/Log.cs index 26a55ab..6701368 100644 --- a/PlexAPI/Log.cs +++ b/PlexAPI/Log.cs @@ -94,10 +94,10 @@ namespace PlexAPI { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.4.1"; - private const string _sdkGenVersion = "2.404.3"; + private const string _sdkVersion = "0.4.2"; + private const string _sdkGenVersion = "2.407.0"; private const string _openapiDocVersion = "0.0.3"; - private const string _userAgent = "speakeasy-sdk/csharp 0.4.1 2.404.3 0.0.3 PlexAPI"; + private const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI"; private string _serverUrl = ""; private ISpeakeasyHttpClient _client; private Func? _securitySource; diff --git a/PlexAPI/Media.cs b/PlexAPI/Media.cs index c1d53fd..496603c 100644 --- a/PlexAPI/Media.cs +++ b/PlexAPI/Media.cs @@ -72,10 +72,10 @@ namespace PlexAPI { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.4.1"; - private const string _sdkGenVersion = "2.404.3"; + private const string _sdkVersion = "0.4.2"; + private const string _sdkGenVersion = "2.407.0"; private const string _openapiDocVersion = "0.0.3"; - private const string _userAgent = "speakeasy-sdk/csharp 0.4.1 2.404.3 0.0.3 PlexAPI"; + private const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI"; private string _serverUrl = ""; private ISpeakeasyHttpClient _client; private Func? _securitySource; diff --git a/PlexAPI/Models/Errors/GetLibrariesErrors.cs b/PlexAPI/Models/Errors/GetAllLibrariesErrors.cs similarity index 94% rename from PlexAPI/Models/Errors/GetLibrariesErrors.cs rename to PlexAPI/Models/Errors/GetAllLibrariesErrors.cs index 177cb1f..fb3ba9b 100644 --- a/PlexAPI/Models/Errors/GetLibrariesErrors.cs +++ b/PlexAPI/Models/Errors/GetAllLibrariesErrors.cs @@ -12,7 +12,7 @@ namespace PlexAPI.Models.Errors using Newtonsoft.Json; using PlexAPI.Utils; - public class GetLibrariesErrors + public class GetAllLibrariesErrors { [JsonProperty("code")] diff --git a/PlexAPI/Models/Errors/PostSignInResponseBody.cs b/PlexAPI/Models/Errors/GetAllLibrariesResponseBody.cs similarity index 89% rename from PlexAPI/Models/Errors/PostSignInResponseBody.cs rename to PlexAPI/Models/Errors/GetAllLibrariesResponseBody.cs index a91d516..bcd9bbd 100644 --- a/PlexAPI/Models/Errors/PostSignInResponseBody.cs +++ b/PlexAPI/Models/Errors/GetAllLibrariesResponseBody.cs @@ -19,11 +19,11 @@ namespace PlexAPI.Models.Errors /// /// Unauthorized - Returned if the X-Plex-Token is missing from the header or query. /// - public class PostSignInResponseBody : Exception + public class GetAllLibrariesResponseBody : Exception { [JsonProperty("errors")] - public List? Errors { get; set; } + public List? Errors { get; set; } /// /// Raw HTTP response; suitable for custom response parsing diff --git a/PlexAPI/Models/Errors/PostSignInErrors.cs b/PlexAPI/Models/Errors/GetLibraryDetailsErrors.cs similarity index 94% rename from PlexAPI/Models/Errors/PostSignInErrors.cs rename to PlexAPI/Models/Errors/GetLibraryDetailsErrors.cs index c801935..caa41c6 100644 --- a/PlexAPI/Models/Errors/PostSignInErrors.cs +++ b/PlexAPI/Models/Errors/GetLibraryDetailsErrors.cs @@ -12,7 +12,7 @@ namespace PlexAPI.Models.Errors using Newtonsoft.Json; using PlexAPI.Utils; - public class PostSignInErrors + public class GetLibraryDetailsErrors { [JsonProperty("code")] diff --git a/PlexAPI/Models/Errors/GetLibrariesResponseBody.cs b/PlexAPI/Models/Errors/GetLibraryDetailsResponseBody.cs similarity index 88% rename from PlexAPI/Models/Errors/GetLibrariesResponseBody.cs rename to PlexAPI/Models/Errors/GetLibraryDetailsResponseBody.cs index 8aa8df6..3550460 100644 --- a/PlexAPI/Models/Errors/GetLibrariesResponseBody.cs +++ b/PlexAPI/Models/Errors/GetLibraryDetailsResponseBody.cs @@ -19,11 +19,11 @@ namespace PlexAPI.Models.Errors /// /// Unauthorized - Returned if the X-Plex-Token is missing from the header or query. /// - public class GetLibrariesResponseBody : Exception + public class GetLibraryDetailsResponseBody : Exception { [JsonProperty("errors")] - public List? Errors { get; set; } + public List? Errors { get; set; } /// /// Raw HTTP response; suitable for custom response parsing diff --git a/PlexAPI/Models/Errors/RefreshLibraryErrors.cs b/PlexAPI/Models/Errors/GetRefreshLibraryMetadataErrors.cs similarity index 93% rename from PlexAPI/Models/Errors/RefreshLibraryErrors.cs rename to PlexAPI/Models/Errors/GetRefreshLibraryMetadataErrors.cs index d459896..4cf94cc 100644 --- a/PlexAPI/Models/Errors/RefreshLibraryErrors.cs +++ b/PlexAPI/Models/Errors/GetRefreshLibraryMetadataErrors.cs @@ -12,7 +12,7 @@ namespace PlexAPI.Models.Errors using Newtonsoft.Json; using PlexAPI.Utils; - public class RefreshLibraryErrors + public class GetRefreshLibraryMetadataErrors { [JsonProperty("code")] diff --git a/PlexAPI/Models/Errors/GetLibraryResponseBody.cs b/PlexAPI/Models/Errors/GetRefreshLibraryMetadataResponseBody.cs similarity index 87% rename from PlexAPI/Models/Errors/GetLibraryResponseBody.cs rename to PlexAPI/Models/Errors/GetRefreshLibraryMetadataResponseBody.cs index f0d2823..148c0d6 100644 --- a/PlexAPI/Models/Errors/GetLibraryResponseBody.cs +++ b/PlexAPI/Models/Errors/GetRefreshLibraryMetadataResponseBody.cs @@ -19,11 +19,11 @@ namespace PlexAPI.Models.Errors /// /// Unauthorized - Returned if the X-Plex-Token is missing from the header or query. /// - public class GetLibraryResponseBody : Exception + public class GetRefreshLibraryMetadataResponseBody : Exception { [JsonProperty("errors")] - public List? Errors { get; set; } + public List? Errors { get; set; } /// /// Raw HTTP response; suitable for custom response parsing diff --git a/PlexAPI/Models/Errors/GetLibraryErrors.cs b/PlexAPI/Models/Errors/PostUsersSignInDataErrors.cs similarity index 94% rename from PlexAPI/Models/Errors/GetLibraryErrors.cs rename to PlexAPI/Models/Errors/PostUsersSignInDataErrors.cs index a14484a..02fd593 100644 --- a/PlexAPI/Models/Errors/GetLibraryErrors.cs +++ b/PlexAPI/Models/Errors/PostUsersSignInDataErrors.cs @@ -12,7 +12,7 @@ namespace PlexAPI.Models.Errors using Newtonsoft.Json; using PlexAPI.Utils; - public class GetLibraryErrors + public class PostUsersSignInDataErrors { [JsonProperty("code")] diff --git a/PlexAPI/Models/Errors/RefreshLibraryResponseBody.cs b/PlexAPI/Models/Errors/PostUsersSignInDataResponseBody.cs similarity index 88% rename from PlexAPI/Models/Errors/RefreshLibraryResponseBody.cs rename to PlexAPI/Models/Errors/PostUsersSignInDataResponseBody.cs index 3e5f20e..e9e54db 100644 --- a/PlexAPI/Models/Errors/RefreshLibraryResponseBody.cs +++ b/PlexAPI/Models/Errors/PostUsersSignInDataResponseBody.cs @@ -19,11 +19,11 @@ namespace PlexAPI.Models.Errors /// /// Unauthorized - Returned if the X-Plex-Token is missing from the header or query. /// - public class RefreshLibraryResponseBody : Exception + public class PostUsersSignInDataResponseBody : Exception { [JsonProperty("errors")] - public List? Errors { get; set; } + public List? Errors { get; set; } /// /// Raw HTTP response; suitable for custom response parsing diff --git a/PlexAPI/Models/Requests/DeleteLibraryRequest.cs b/PlexAPI/Models/Requests/DeleteLibraryRequest.cs index ae30429..fe01aca 100644 --- a/PlexAPI/Models/Requests/DeleteLibraryRequest.cs +++ b/PlexAPI/Models/Requests/DeleteLibraryRequest.cs @@ -15,7 +15,7 @@ namespace PlexAPI.Models.Requests { /// - /// the Id of the library to query + /// The id of the library /// [SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sectionId")] public double SectionId { get; set; } = default!; diff --git a/PlexAPI/Models/Requests/Force.cs b/PlexAPI/Models/Requests/Force.cs index 50c4bd2..c20b2f3 100644 --- a/PlexAPI/Models/Requests/Force.cs +++ b/PlexAPI/Models/Requests/Force.cs @@ -12,14 +12,7 @@ namespace PlexAPI.Models.Requests using PlexAPI.Utils; /// - /// Force overwriting of duplicate playlists.
- /// - /// - /// By default, a playlist file uploaded with the same path will overwrite the existing playlist.
- /// The `force` argument is used to disable overwriting.
- /// If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.
- /// - ///
+ /// Force the refresh even if the library is already being refreshed. ///
public enum Force { diff --git a/PlexAPI/Models/Requests/GetLibrariesDirectory.cs b/PlexAPI/Models/Requests/GetAllLibrariesDirectory.cs similarity index 89% rename from PlexAPI/Models/Requests/GetLibrariesDirectory.cs rename to PlexAPI/Models/Requests/GetAllLibrariesDirectory.cs index d6c956c..2b870b2 100644 --- a/PlexAPI/Models/Requests/GetLibrariesDirectory.cs +++ b/PlexAPI/Models/Requests/GetAllLibrariesDirectory.cs @@ -14,7 +14,7 @@ namespace PlexAPI.Models.Requests using PlexAPI.Utils; using System.Collections.Generic; - public class GetLibrariesDirectory + public class GetAllLibrariesDirectory { [JsonProperty("allowSync")] @@ -56,12 +56,21 @@ namespace PlexAPI.Models.Requests [JsonProperty("uuid")] public string? Uuid { get; set; } + /// + /// Unix epoch datetime + /// [JsonProperty("updatedAt")] public int? UpdatedAt { get; set; } + /// + /// Unix epoch datetime + /// [JsonProperty("createdAt")] public int? CreatedAt { get; set; } + /// + /// Unix epoch datetime + /// [JsonProperty("scannedAt")] public int? ScannedAt { get; set; } diff --git a/PlexAPI/Models/Requests/GetLibrariesMediaContainer.cs b/PlexAPI/Models/Requests/GetAllLibrariesMediaContainer.cs similarity index 72% rename from PlexAPI/Models/Requests/GetLibrariesMediaContainer.cs rename to PlexAPI/Models/Requests/GetAllLibrariesMediaContainer.cs index 090806c..114e024 100644 --- a/PlexAPI/Models/Requests/GetLibrariesMediaContainer.cs +++ b/PlexAPI/Models/Requests/GetAllLibrariesMediaContainer.cs @@ -14,19 +14,19 @@ namespace PlexAPI.Models.Requests using PlexAPI.Utils; using System.Collections.Generic; - public class GetLibrariesMediaContainer + public class GetAllLibrariesMediaContainer { [JsonProperty("size")] - public int? Size { get; set; } + public int Size { get; set; } = default!; [JsonProperty("allowSync")] - public bool? AllowSync { get; set; } + public bool AllowSync { get; set; } = default!; [JsonProperty("title1")] - public string? Title1 { get; set; } + public string Title1 { get; set; } = default!; [JsonProperty("Directory")] - public List? Directory { get; set; } + public List? Directory { get; set; } } } \ No newline at end of file diff --git a/PlexAPI/Models/Requests/GetLibrariesResponse.cs b/PlexAPI/Models/Requests/GetAllLibrariesResponse.cs similarity index 90% rename from PlexAPI/Models/Requests/GetLibrariesResponse.cs rename to PlexAPI/Models/Requests/GetAllLibrariesResponse.cs index bd8b984..5a91138 100644 --- a/PlexAPI/Models/Requests/GetLibrariesResponse.cs +++ b/PlexAPI/Models/Requests/GetAllLibrariesResponse.cs @@ -14,7 +14,7 @@ namespace PlexAPI.Models.Requests using System.Net.Http; using System; - public class GetLibrariesResponse + public class GetAllLibrariesResponse { /// @@ -35,6 +35,6 @@ namespace PlexAPI.Models.Requests /// /// The libraries available on the Server /// - public Models.Requests.GetLibrariesResponseBody? Object { get; set; } + public Models.Requests.GetAllLibrariesResponseBody? Object { get; set; } } } \ No newline at end of file diff --git a/PlexAPI/Models/Requests/GetLibrariesResponseBody.cs b/PlexAPI/Models/Requests/GetAllLibrariesResponseBody.cs similarity index 84% rename from PlexAPI/Models/Requests/GetLibrariesResponseBody.cs rename to PlexAPI/Models/Requests/GetAllLibrariesResponseBody.cs index 3448220..b72ad49 100644 --- a/PlexAPI/Models/Requests/GetLibrariesResponseBody.cs +++ b/PlexAPI/Models/Requests/GetAllLibrariesResponseBody.cs @@ -16,10 +16,10 @@ namespace PlexAPI.Models.Requests /// /// The libraries available on the Server /// - public class GetLibrariesResponseBody + public class GetAllLibrariesResponseBody { [JsonProperty("MediaContainer")] - public GetLibrariesMediaContainer? MediaContainer { get; set; } + public GetAllLibrariesMediaContainer? MediaContainer { get; set; } } } \ No newline at end of file diff --git a/PlexAPI/Models/Requests/GetLibraryDirectory.cs b/PlexAPI/Models/Requests/GetLibraryDetailsDirectory.cs similarity index 95% rename from PlexAPI/Models/Requests/GetLibraryDirectory.cs rename to PlexAPI/Models/Requests/GetLibraryDetailsDirectory.cs index 64ad4ac..63d2e83 100644 --- a/PlexAPI/Models/Requests/GetLibraryDirectory.cs +++ b/PlexAPI/Models/Requests/GetLibraryDetailsDirectory.cs @@ -12,7 +12,7 @@ namespace PlexAPI.Models.Requests using Newtonsoft.Json; using PlexAPI.Utils; - public class GetLibraryDirectory + public class GetLibraryDetailsDirectory { [JsonProperty("key")] diff --git a/PlexAPI/Models/Requests/GetLibraryFilter.cs b/PlexAPI/Models/Requests/GetLibraryDetailsFilter.cs similarity index 95% rename from PlexAPI/Models/Requests/GetLibraryFilter.cs rename to PlexAPI/Models/Requests/GetLibraryDetailsFilter.cs index b8a3e54..39c53f4 100644 --- a/PlexAPI/Models/Requests/GetLibraryFilter.cs +++ b/PlexAPI/Models/Requests/GetLibraryDetailsFilter.cs @@ -12,7 +12,7 @@ namespace PlexAPI.Models.Requests using Newtonsoft.Json; using PlexAPI.Utils; - public class GetLibraryFilter + public class GetLibraryDetailsFilter { [JsonProperty("filter")] diff --git a/PlexAPI/Models/Requests/GetLibraryMediaContainer.cs b/PlexAPI/Models/Requests/GetLibraryDetailsMediaContainer.cs similarity index 90% rename from PlexAPI/Models/Requests/GetLibraryMediaContainer.cs rename to PlexAPI/Models/Requests/GetLibraryDetailsMediaContainer.cs index e9c3db0..2aeda66 100644 --- a/PlexAPI/Models/Requests/GetLibraryMediaContainer.cs +++ b/PlexAPI/Models/Requests/GetLibraryDetailsMediaContainer.cs @@ -14,7 +14,7 @@ namespace PlexAPI.Models.Requests using PlexAPI.Utils; using System.Collections.Generic; - public class GetLibraryMediaContainer + public class GetLibraryDetailsMediaContainer { [JsonProperty("size")] @@ -54,10 +54,10 @@ namespace PlexAPI.Models.Requests public int? ViewMode { get; set; } [JsonProperty("Directory")] - public List? Directory { get; set; } + public List? Directory { get; set; } [JsonProperty("Type")] - public List? Type { get; set; } + public List? Type { get; set; } [JsonProperty("FieldType")] public List? FieldType { get; set; } diff --git a/PlexAPI/Models/Requests/GetLibraryRequest.cs b/PlexAPI/Models/Requests/GetLibraryDetailsRequest.cs similarity index 94% rename from PlexAPI/Models/Requests/GetLibraryRequest.cs rename to PlexAPI/Models/Requests/GetLibraryDetailsRequest.cs index 6066924..cfe26e0 100644 --- a/PlexAPI/Models/Requests/GetLibraryRequest.cs +++ b/PlexAPI/Models/Requests/GetLibraryDetailsRequest.cs @@ -12,11 +12,11 @@ namespace PlexAPI.Models.Requests using PlexAPI.Models.Requests; using PlexAPI.Utils; - public class GetLibraryRequest + public class GetLibraryDetailsRequest { /// - /// the Id of the library to query + /// The id of the library /// [SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sectionId")] public double SectionId { get; set; } = default!; diff --git a/PlexAPI/Models/Requests/GetLibraryResponse.cs b/PlexAPI/Models/Requests/GetLibraryDetailsResponse.cs similarity index 90% rename from PlexAPI/Models/Requests/GetLibraryResponse.cs rename to PlexAPI/Models/Requests/GetLibraryDetailsResponse.cs index d40b06f..2e1d77f 100644 --- a/PlexAPI/Models/Requests/GetLibraryResponse.cs +++ b/PlexAPI/Models/Requests/GetLibraryDetailsResponse.cs @@ -14,7 +14,7 @@ namespace PlexAPI.Models.Requests using System.Net.Http; using System; - public class GetLibraryResponse + public class GetLibraryDetailsResponse { /// @@ -35,6 +35,6 @@ namespace PlexAPI.Models.Requests /// /// The details of the library /// - public Models.Requests.GetLibraryResponseBody? Object { get; set; } + public Models.Requests.GetLibraryDetailsResponseBody? Object { get; set; } } } \ No newline at end of file diff --git a/PlexAPI/Models/Requests/GetLibraryResponseBody.cs b/PlexAPI/Models/Requests/GetLibraryDetailsResponseBody.cs similarity index 84% rename from PlexAPI/Models/Requests/GetLibraryResponseBody.cs rename to PlexAPI/Models/Requests/GetLibraryDetailsResponseBody.cs index 980b434..9945d2a 100644 --- a/PlexAPI/Models/Requests/GetLibraryResponseBody.cs +++ b/PlexAPI/Models/Requests/GetLibraryDetailsResponseBody.cs @@ -16,10 +16,10 @@ namespace PlexAPI.Models.Requests /// /// The details of the library /// - public class GetLibraryResponseBody + public class GetLibraryDetailsResponseBody { [JsonProperty("MediaContainer")] - public GetLibraryMediaContainer? MediaContainer { get; set; } + public GetLibraryDetailsMediaContainer? MediaContainer { get; set; } } } \ No newline at end of file diff --git a/PlexAPI/Models/Requests/GetLibraryType.cs b/PlexAPI/Models/Requests/GetLibraryDetailsType.cs similarity index 91% rename from PlexAPI/Models/Requests/GetLibraryType.cs rename to PlexAPI/Models/Requests/GetLibraryDetailsType.cs index e546ad7..b3645a7 100644 --- a/PlexAPI/Models/Requests/GetLibraryType.cs +++ b/PlexAPI/Models/Requests/GetLibraryDetailsType.cs @@ -14,7 +14,7 @@ namespace PlexAPI.Models.Requests using PlexAPI.Utils; using System.Collections.Generic; - public class GetLibraryType + public class GetLibraryDetailsType { [JsonProperty("key")] @@ -30,7 +30,7 @@ namespace PlexAPI.Models.Requests public bool? Active { get; set; } [JsonProperty("Filter")] - public List? Filter { get; set; } + public List? Filter { get; set; } [JsonProperty("Sort")] public List? Sort { get; set; } diff --git a/PlexAPI/Models/Requests/RefreshLibraryRequest.cs b/PlexAPI/Models/Requests/GetRefreshLibraryMetadataRequest.cs similarity index 64% rename from PlexAPI/Models/Requests/RefreshLibraryRequest.cs rename to PlexAPI/Models/Requests/GetRefreshLibraryMetadataRequest.cs index 4ccc13a..2d115ac 100644 --- a/PlexAPI/Models/Requests/RefreshLibraryRequest.cs +++ b/PlexAPI/Models/Requests/GetRefreshLibraryMetadataRequest.cs @@ -9,15 +9,22 @@ #nullable enable namespace PlexAPI.Models.Requests { + using PlexAPI.Models.Requests; using PlexAPI.Utils; - public class RefreshLibraryRequest + public class GetRefreshLibraryMetadataRequest { /// - /// the Id of the library to refresh + /// The id of the library /// [SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sectionId")] public double SectionId { get; set; } = default!; + + /// + /// Force the refresh even if the library is already being refreshed. + /// + [SpeakeasyMetadata("queryParam:style=form,explode=true,name=force")] + public Force? Force { get; set; } } } \ No newline at end of file diff --git a/PlexAPI/Models/Requests/RefreshLibraryResponse.cs b/PlexAPI/Models/Requests/GetRefreshLibraryMetadataResponse.cs similarity index 95% rename from PlexAPI/Models/Requests/RefreshLibraryResponse.cs rename to PlexAPI/Models/Requests/GetRefreshLibraryMetadataResponse.cs index dd9e450..e017e35 100644 --- a/PlexAPI/Models/Requests/RefreshLibraryResponse.cs +++ b/PlexAPI/Models/Requests/GetRefreshLibraryMetadataResponse.cs @@ -13,7 +13,7 @@ namespace PlexAPI.Models.Requests using System.Net.Http; using System; - public class RefreshLibraryResponse + public class GetRefreshLibraryMetadataResponse { /// diff --git a/PlexAPI/Models/Requests/GetTopWatchedContentMetadata.cs b/PlexAPI/Models/Requests/GetTopWatchedContentMetadata.cs index 612bb9b..34785d2 100644 --- a/PlexAPI/Models/Requests/GetTopWatchedContentMetadata.cs +++ b/PlexAPI/Models/Requests/GetTopWatchedContentMetadata.cs @@ -112,6 +112,6 @@ namespace PlexAPI.Models.Requests public List? Role { get; set; } [JsonProperty("User")] - public List? User { get; set; } + public List? User { get; set; } } } \ No newline at end of file diff --git a/PlexAPI/Models/Requests/PastSubscription.cs b/PlexAPI/Models/Requests/PastSubscription.cs index 01fe6c4..7821876 100644 --- a/PlexAPI/Models/Requests/PastSubscription.cs +++ b/PlexAPI/Models/Requests/PastSubscription.cs @@ -22,15 +22,9 @@ namespace PlexAPI.Models.Requests [JsonProperty("mode", NullValueHandling = NullValueHandling.Include)] public string? Mode { get; set; } - /// - /// Unix epoch datetime - /// [JsonProperty("renewsAt", NullValueHandling = NullValueHandling.Include)] public int? RenewsAt { get; set; } - /// - /// Unix epoch datetime - /// [JsonProperty("endsAt", NullValueHandling = NullValueHandling.Include)] public int? EndsAt { get; set; } @@ -62,7 +56,7 @@ namespace PlexAPI.Models.Requests public string? Transfer { get; set; } [JsonProperty("state")] - public PostSignInState State { get; set; } = default!; + public PostUsersSignInDataState State { get; set; } = default!; [JsonProperty("billing")] public Billing Billing { get; set; } = default!; diff --git a/PlexAPI/Models/Requests/PostSignInUserFeatures.cs b/PlexAPI/Models/Requests/PostUsersSignInDataAuthenticationFeatures.cs similarity index 90% rename from PlexAPI/Models/Requests/PostSignInUserFeatures.cs rename to PlexAPI/Models/Requests/PostUsersSignInDataAuthenticationFeatures.cs index ec5b490..b8bb6a7 100644 --- a/PlexAPI/Models/Requests/PostSignInUserFeatures.cs +++ b/PlexAPI/Models/Requests/PostUsersSignInDataAuthenticationFeatures.cs @@ -13,7 +13,7 @@ namespace PlexAPI.Models.Requests using PlexAPI.Utils; using System; - public enum PostSignInUserFeatures + public enum PostUsersSignInDataAuthenticationFeatures { [JsonProperty("Android - Dolby Vision")] AndroidDolbyVision, @@ -135,16 +135,16 @@ namespace PlexAPI.Models.Requests WebServerDashboard, } - public static class PostSignInUserFeaturesExtension + public static class PostUsersSignInDataAuthenticationFeaturesExtension { - public static string Value(this PostSignInUserFeatures value) + public static string Value(this PostUsersSignInDataAuthenticationFeatures value) { return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); } - public static PostSignInUserFeatures ToEnum(this string value) + public static PostUsersSignInDataAuthenticationFeatures ToEnum(this string value) { - foreach(var field in typeof(PostSignInUserFeatures).GetFields()) + foreach(var field in typeof(PostUsersSignInDataAuthenticationFeatures).GetFields()) { var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); if (attributes.Length == 0) @@ -157,14 +157,14 @@ namespace PlexAPI.Models.Requests { var enumVal = field.GetValue(null); - if (enumVal is PostSignInUserFeatures) + if (enumVal is PostUsersSignInDataAuthenticationFeatures) { - return (PostSignInUserFeatures)enumVal; + return (PostUsersSignInDataAuthenticationFeatures)enumVal; } } } - throw new Exception($"Unknown value {value} for enum PostSignInUserFeatures"); + throw new Exception($"Unknown value {value} for enum PostUsersSignInDataAuthenticationFeatures"); } } diff --git a/PlexAPI/Models/Requests/PostSignInUserStatus.cs b/PlexAPI/Models/Requests/PostUsersSignInDataAuthenticationResponseStatus.cs similarity index 69% rename from PlexAPI/Models/Requests/PostSignInUserStatus.cs rename to PlexAPI/Models/Requests/PostUsersSignInDataAuthenticationResponseStatus.cs index a7a00b8..e4838ad 100644 --- a/PlexAPI/Models/Requests/PostSignInUserStatus.cs +++ b/PlexAPI/Models/Requests/PostUsersSignInDataAuthenticationResponseStatus.cs @@ -16,7 +16,7 @@ namespace PlexAPI.Models.Requests /// /// String representation of subscriptionActive /// - public enum PostSignInUserStatus + public enum PostUsersSignInDataAuthenticationResponseStatus { [JsonProperty("Inactive")] Inactive, @@ -24,16 +24,16 @@ namespace PlexAPI.Models.Requests Active, } - public static class PostSignInUserStatusExtension + public static class PostUsersSignInDataAuthenticationResponseStatusExtension { - public static string Value(this PostSignInUserStatus value) + public static string Value(this PostUsersSignInDataAuthenticationResponseStatus value) { return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); } - public static PostSignInUserStatus ToEnum(this string value) + public static PostUsersSignInDataAuthenticationResponseStatus ToEnum(this string value) { - foreach(var field in typeof(PostSignInUserStatus).GetFields()) + foreach(var field in typeof(PostUsersSignInDataAuthenticationResponseStatus).GetFields()) { var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); if (attributes.Length == 0) @@ -46,14 +46,14 @@ namespace PlexAPI.Models.Requests { var enumVal = field.GetValue(null); - if (enumVal is PostSignInUserStatus) + if (enumVal is PostUsersSignInDataAuthenticationResponseStatus) { - return (PostSignInUserStatus)enumVal; + return (PostUsersSignInDataAuthenticationResponseStatus)enumVal; } } } - throw new Exception($"Unknown value {value} for enum PostSignInUserStatus"); + throw new Exception($"Unknown value {value} for enum PostUsersSignInDataAuthenticationResponseStatus"); } } diff --git a/PlexAPI/Models/Requests/PostSignInUserResponseStatus.cs b/PlexAPI/Models/Requests/PostUsersSignInDataAuthenticationStatus.cs similarity index 72% rename from PlexAPI/Models/Requests/PostSignInUserResponseStatus.cs rename to PlexAPI/Models/Requests/PostUsersSignInDataAuthenticationStatus.cs index 6b6a0a7..b44f790 100644 --- a/PlexAPI/Models/Requests/PostSignInUserResponseStatus.cs +++ b/PlexAPI/Models/Requests/PostUsersSignInDataAuthenticationStatus.cs @@ -16,7 +16,7 @@ namespace PlexAPI.Models.Requests /// /// String representation of subscriptionActive /// - public enum PostSignInUserResponseStatus + public enum PostUsersSignInDataAuthenticationStatus { [JsonProperty("Inactive")] Inactive, @@ -24,16 +24,16 @@ namespace PlexAPI.Models.Requests Active, } - public static class PostSignInUserResponseStatusExtension + public static class PostUsersSignInDataAuthenticationStatusExtension { - public static string Value(this PostSignInUserResponseStatus value) + public static string Value(this PostUsersSignInDataAuthenticationStatus value) { return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); } - public static PostSignInUserResponseStatus ToEnum(this string value) + public static PostUsersSignInDataAuthenticationStatus ToEnum(this string value) { - foreach(var field in typeof(PostSignInUserResponseStatus).GetFields()) + foreach(var field in typeof(PostUsersSignInDataAuthenticationStatus).GetFields()) { var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); if (attributes.Length == 0) @@ -46,14 +46,14 @@ namespace PlexAPI.Models.Requests { var enumVal = field.GetValue(null); - if (enumVal is PostSignInUserResponseStatus) + if (enumVal is PostUsersSignInDataAuthenticationStatus) { - return (PostSignInUserResponseStatus)enumVal; + return (PostUsersSignInDataAuthenticationStatus)enumVal; } } } - throw new Exception($"Unknown value {value} for enum PostSignInUserResponseStatus"); + throw new Exception($"Unknown value {value} for enum PostUsersSignInDataAuthenticationStatus"); } } diff --git a/PlexAPI/Models/Requests/PostSignInUserSubscription.cs b/PlexAPI/Models/Requests/PostUsersSignInDataAuthenticationSubscription.cs similarity index 87% rename from PlexAPI/Models/Requests/PostSignInUserSubscription.cs rename to PlexAPI/Models/Requests/PostUsersSignInDataAuthenticationSubscription.cs index 33e5873..fa7bb4a 100644 --- a/PlexAPI/Models/Requests/PostSignInUserSubscription.cs +++ b/PlexAPI/Models/Requests/PostUsersSignInDataAuthenticationSubscription.cs @@ -14,14 +14,14 @@ namespace PlexAPI.Models.Requests using PlexAPI.Utils; using System.Collections.Generic; - public class PostSignInUserSubscription + public class PostUsersSignInDataAuthenticationSubscription { /// /// List of features allowed on your Plex Pass subscription /// [JsonProperty("features")] - public List? Features { get; set; } + public List? Features { get; set; } /// /// If the account's Plex Pass subscription is active @@ -39,7 +39,7 @@ namespace PlexAPI.Models.Requests /// String representation of subscriptionActive /// [JsonProperty("status")] - public PostSignInUserResponseStatus? Status { get; set; } + public PostUsersSignInDataAuthenticationResponseStatus? Status { get; set; } /// /// Payment service used for your Plex Pass subscription diff --git a/PlexAPI/Models/Requests/PostSignInAutoSelectSubtitle.cs b/PlexAPI/Models/Requests/PostUsersSignInDataAutoSelectSubtitle.cs similarity index 73% rename from PlexAPI/Models/Requests/PostSignInAutoSelectSubtitle.cs rename to PlexAPI/Models/Requests/PostUsersSignInDataAutoSelectSubtitle.cs index 220b7a8..e87d33f 100644 --- a/PlexAPI/Models/Requests/PostSignInAutoSelectSubtitle.cs +++ b/PlexAPI/Models/Requests/PostUsersSignInDataAutoSelectSubtitle.cs @@ -16,7 +16,7 @@ namespace PlexAPI.Models.Requests /// /// The auto-select subtitle mode (0 = Manually selected, 1 = Shown with foreign audio, 2 = Always enabled) /// - public enum PostSignInAutoSelectSubtitle + public enum PostUsersSignInDataAutoSelectSubtitle { [JsonProperty("0")] Zero, @@ -24,16 +24,16 @@ namespace PlexAPI.Models.Requests One, } - public static class PostSignInAutoSelectSubtitleExtension + public static class PostUsersSignInDataAutoSelectSubtitleExtension { - public static string Value(this PostSignInAutoSelectSubtitle value) + public static string Value(this PostUsersSignInDataAutoSelectSubtitle value) { return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); } - public static PostSignInAutoSelectSubtitle ToEnum(this string value) + public static PostUsersSignInDataAutoSelectSubtitle ToEnum(this string value) { - foreach(var field in typeof(PostSignInAutoSelectSubtitle).GetFields()) + foreach(var field in typeof(PostUsersSignInDataAutoSelectSubtitle).GetFields()) { var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); if (attributes.Length == 0) @@ -46,14 +46,14 @@ namespace PlexAPI.Models.Requests { var enumVal = field.GetValue(null); - if (enumVal is PostSignInAutoSelectSubtitle) + if (enumVal is PostUsersSignInDataAutoSelectSubtitle) { - return (PostSignInAutoSelectSubtitle)enumVal; + return (PostUsersSignInDataAutoSelectSubtitle)enumVal; } } } - throw new Exception($"Unknown value {value} for enum PostSignInAutoSelectSubtitle"); + throw new Exception($"Unknown value {value} for enum PostUsersSignInDataAutoSelectSubtitle"); } } diff --git a/PlexAPI/Models/Requests/PostSignInDefaultSubtitleAccessibility.cs b/PlexAPI/Models/Requests/PostUsersSignInDataDefaultSubtitleAccessibility.cs similarity index 71% rename from PlexAPI/Models/Requests/PostSignInDefaultSubtitleAccessibility.cs rename to PlexAPI/Models/Requests/PostUsersSignInDataDefaultSubtitleAccessibility.cs index 4180a89..31a1b03 100644 --- a/PlexAPI/Models/Requests/PostSignInDefaultSubtitleAccessibility.cs +++ b/PlexAPI/Models/Requests/PostUsersSignInDataDefaultSubtitleAccessibility.cs @@ -16,7 +16,7 @@ namespace PlexAPI.Models.Requests /// /// The subtitles for the deaf or hard-of-hearing (SDH) searches mode (0 = Prefer non-SDH subtitles, 1 = Prefer SDH subtitles, 2 = Only show SDH subtitles, 3 = Only shown non-SDH subtitles) /// - public enum PostSignInDefaultSubtitleAccessibility + public enum PostUsersSignInDataDefaultSubtitleAccessibility { [JsonProperty("0")] Zero, @@ -24,16 +24,16 @@ namespace PlexAPI.Models.Requests One, } - public static class PostSignInDefaultSubtitleAccessibilityExtension + public static class PostUsersSignInDataDefaultSubtitleAccessibilityExtension { - public static string Value(this PostSignInDefaultSubtitleAccessibility value) + public static string Value(this PostUsersSignInDataDefaultSubtitleAccessibility value) { return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); } - public static PostSignInDefaultSubtitleAccessibility ToEnum(this string value) + public static PostUsersSignInDataDefaultSubtitleAccessibility ToEnum(this string value) { - foreach(var field in typeof(PostSignInDefaultSubtitleAccessibility).GetFields()) + foreach(var field in typeof(PostUsersSignInDataDefaultSubtitleAccessibility).GetFields()) { var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); if (attributes.Length == 0) @@ -46,14 +46,14 @@ namespace PlexAPI.Models.Requests { var enumVal = field.GetValue(null); - if (enumVal is PostSignInDefaultSubtitleAccessibility) + if (enumVal is PostUsersSignInDataDefaultSubtitleAccessibility) { - return (PostSignInDefaultSubtitleAccessibility)enumVal; + return (PostUsersSignInDataDefaultSubtitleAccessibility)enumVal; } } } - throw new Exception($"Unknown value {value} for enum PostSignInDefaultSubtitleAccessibility"); + throw new Exception($"Unknown value {value} for enum PostUsersSignInDataDefaultSubtitleAccessibility"); } } diff --git a/PlexAPI/Models/Requests/PostSignInDefaultSubtitleForced.cs b/PlexAPI/Models/Requests/PostUsersSignInDataDefaultSubtitleForced.cs similarity index 73% rename from PlexAPI/Models/Requests/PostSignInDefaultSubtitleForced.cs rename to PlexAPI/Models/Requests/PostUsersSignInDataDefaultSubtitleForced.cs index ef8b1a8..aa30f94 100644 --- a/PlexAPI/Models/Requests/PostSignInDefaultSubtitleForced.cs +++ b/PlexAPI/Models/Requests/PostUsersSignInDataDefaultSubtitleForced.cs @@ -16,7 +16,7 @@ namespace PlexAPI.Models.Requests /// /// The forced subtitles searches mode (0 = Prefer non-forced subtitles, 1 = Prefer forced subtitles, 2 = Only show forced subtitles, 3 = Only show non-forced subtitles) /// - public enum PostSignInDefaultSubtitleForced + public enum PostUsersSignInDataDefaultSubtitleForced { [JsonProperty("0")] Zero, @@ -24,16 +24,16 @@ namespace PlexAPI.Models.Requests One, } - public static class PostSignInDefaultSubtitleForcedExtension + public static class PostUsersSignInDataDefaultSubtitleForcedExtension { - public static string Value(this PostSignInDefaultSubtitleForced value) + public static string Value(this PostUsersSignInDataDefaultSubtitleForced value) { return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); } - public static PostSignInDefaultSubtitleForced ToEnum(this string value) + public static PostUsersSignInDataDefaultSubtitleForced ToEnum(this string value) { - foreach(var field in typeof(PostSignInDefaultSubtitleForced).GetFields()) + foreach(var field in typeof(PostUsersSignInDataDefaultSubtitleForced).GetFields()) { var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); if (attributes.Length == 0) @@ -46,14 +46,14 @@ namespace PlexAPI.Models.Requests { var enumVal = field.GetValue(null); - if (enumVal is PostSignInDefaultSubtitleForced) + if (enumVal is PostUsersSignInDataDefaultSubtitleForced) { - return (PostSignInDefaultSubtitleForced)enumVal; + return (PostUsersSignInDataDefaultSubtitleForced)enumVal; } } } - throw new Exception($"Unknown value {value} for enum PostSignInDefaultSubtitleForced"); + throw new Exception($"Unknown value {value} for enum PostUsersSignInDataDefaultSubtitleForced"); } } diff --git a/PlexAPI/Models/Requests/PostSignInFeatures.cs b/PlexAPI/Models/Requests/PostUsersSignInDataFeatures.cs similarity index 91% rename from PlexAPI/Models/Requests/PostSignInFeatures.cs rename to PlexAPI/Models/Requests/PostUsersSignInDataFeatures.cs index a327d38..56c7eeb 100644 --- a/PlexAPI/Models/Requests/PostSignInFeatures.cs +++ b/PlexAPI/Models/Requests/PostUsersSignInDataFeatures.cs @@ -13,7 +13,7 @@ namespace PlexAPI.Models.Requests using PlexAPI.Utils; using System; - public enum PostSignInFeatures + public enum PostUsersSignInDataFeatures { [JsonProperty("Android - Dolby Vision")] AndroidDolbyVision, @@ -135,16 +135,16 @@ namespace PlexAPI.Models.Requests WebServerDashboard, } - public static class PostSignInFeaturesExtension + public static class PostUsersSignInDataFeaturesExtension { - public static string Value(this PostSignInFeatures value) + public static string Value(this PostUsersSignInDataFeatures value) { return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); } - public static PostSignInFeatures ToEnum(this string value) + public static PostUsersSignInDataFeatures ToEnum(this string value) { - foreach(var field in typeof(PostSignInFeatures).GetFields()) + foreach(var field in typeof(PostUsersSignInDataFeatures).GetFields()) { var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); if (attributes.Length == 0) @@ -157,14 +157,14 @@ namespace PlexAPI.Models.Requests { var enumVal = field.GetValue(null); - if (enumVal is PostSignInFeatures) + if (enumVal is PostUsersSignInDataFeatures) { - return (PostSignInFeatures)enumVal; + return (PostUsersSignInDataFeatures)enumVal; } } } - throw new Exception($"Unknown value {value} for enum PostSignInFeatures"); + throw new Exception($"Unknown value {value} for enum PostUsersSignInDataFeatures"); } } diff --git a/PlexAPI/Models/Requests/PostSignInMailingListStatus.cs b/PlexAPI/Models/Requests/PostUsersSignInDataMailingListStatus.cs similarity index 72% rename from PlexAPI/Models/Requests/PostSignInMailingListStatus.cs rename to PlexAPI/Models/Requests/PostUsersSignInDataMailingListStatus.cs index 3ed8c08..13c15d3 100644 --- a/PlexAPI/Models/Requests/PostSignInMailingListStatus.cs +++ b/PlexAPI/Models/Requests/PostUsersSignInDataMailingListStatus.cs @@ -16,7 +16,7 @@ namespace PlexAPI.Models.Requests /// /// Your current mailing list status /// - public enum PostSignInMailingListStatus + public enum PostUsersSignInDataMailingListStatus { [JsonProperty("active")] Active, @@ -24,16 +24,16 @@ namespace PlexAPI.Models.Requests Unsubscribed, } - public static class PostSignInMailingListStatusExtension + public static class PostUsersSignInDataMailingListStatusExtension { - public static string Value(this PostSignInMailingListStatus value) + public static string Value(this PostUsersSignInDataMailingListStatus value) { return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); } - public static PostSignInMailingListStatus ToEnum(this string value) + public static PostUsersSignInDataMailingListStatus ToEnum(this string value) { - foreach(var field in typeof(PostSignInMailingListStatus).GetFields()) + foreach(var field in typeof(PostUsersSignInDataMailingListStatus).GetFields()) { var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); if (attributes.Length == 0) @@ -46,14 +46,14 @@ namespace PlexAPI.Models.Requests { var enumVal = field.GetValue(null); - if (enumVal is PostSignInMailingListStatus) + if (enumVal is PostUsersSignInDataMailingListStatus) { - return (PostSignInMailingListStatus)enumVal; + return (PostUsersSignInDataMailingListStatus)enumVal; } } } - throw new Exception($"Unknown value {value} for enum PostSignInMailingListStatus"); + throw new Exception($"Unknown value {value} for enum PostUsersSignInDataMailingListStatus"); } } diff --git a/PlexAPI/Models/Requests/PostSignInMediaReviewsVisibility.cs b/PlexAPI/Models/Requests/PostUsersSignInDataMediaReviewsVisibility.cs similarity index 89% rename from PlexAPI/Models/Requests/PostSignInMediaReviewsVisibility.cs rename to PlexAPI/Models/Requests/PostUsersSignInDataMediaReviewsVisibility.cs index ad6f8f5..20ab3c2 100644 --- a/PlexAPI/Models/Requests/PostSignInMediaReviewsVisibility.cs +++ b/PlexAPI/Models/Requests/PostUsersSignInDataMediaReviewsVisibility.cs @@ -11,7 +11,7 @@ namespace PlexAPI.Models.Requests { using PlexAPI.Utils; - public enum PostSignInMediaReviewsVisibility + public enum PostUsersSignInDataMediaReviewsVisibility { Zero = 0, One = 1, diff --git a/PlexAPI/Models/Requests/PostSignInRequest.cs b/PlexAPI/Models/Requests/PostUsersSignInDataRequest.cs similarity index 90% rename from PlexAPI/Models/Requests/PostSignInRequest.cs rename to PlexAPI/Models/Requests/PostUsersSignInDataRequest.cs index 6e60ac9..2f9a14b 100644 --- a/PlexAPI/Models/Requests/PostSignInRequest.cs +++ b/PlexAPI/Models/Requests/PostUsersSignInDataRequest.cs @@ -12,7 +12,7 @@ namespace PlexAPI.Models.Requests using PlexAPI.Models.Requests; using PlexAPI.Utils; - public class PostSignInRequest + public class PostUsersSignInDataRequest { /// @@ -31,6 +31,6 @@ namespace PlexAPI.Models.Requests /// Login credentials /// [SpeakeasyMetadata("request:mediaType=application/x-www-form-urlencoded")] - public PostSignInRequestBody? RequestBody { get; set; } + public PostUsersSignInDataRequestBody? RequestBody { get; set; } } } \ No newline at end of file diff --git a/PlexAPI/Models/Requests/PostSignInRequestBody.cs b/PlexAPI/Models/Requests/PostUsersSignInDataRequestBody.cs similarity index 94% rename from PlexAPI/Models/Requests/PostSignInRequestBody.cs rename to PlexAPI/Models/Requests/PostUsersSignInDataRequestBody.cs index dc7d200..bcb46c3 100644 --- a/PlexAPI/Models/Requests/PostSignInRequestBody.cs +++ b/PlexAPI/Models/Requests/PostUsersSignInDataRequestBody.cs @@ -14,7 +14,7 @@ namespace PlexAPI.Models.Requests /// /// Login credentials /// - public class PostSignInRequestBody + public class PostUsersSignInDataRequestBody { [SpeakeasyMetadata("form:name=login")] diff --git a/PlexAPI/Models/Requests/PostSignInResponse.cs b/PlexAPI/Models/Requests/PostUsersSignInDataResponse.cs similarity index 90% rename from PlexAPI/Models/Requests/PostSignInResponse.cs rename to PlexAPI/Models/Requests/PostUsersSignInDataResponse.cs index a4f161a..aafa396 100644 --- a/PlexAPI/Models/Requests/PostSignInResponse.cs +++ b/PlexAPI/Models/Requests/PostUsersSignInDataResponse.cs @@ -14,7 +14,7 @@ namespace PlexAPI.Models.Requests using System.Net.Http; using System; - public class PostSignInResponse + public class PostUsersSignInDataResponse { /// @@ -35,6 +35,6 @@ namespace PlexAPI.Models.Requests /// /// Returns the user account data with a valid auth token /// - public PostSignInUserPlexAccount? UserPlexAccount { get; set; } + public PostUsersSignInDataUserPlexAccount? UserPlexAccount { get; set; } } } \ No newline at end of file diff --git a/PlexAPI/Models/Requests/PostSignInServices.cs b/PlexAPI/Models/Requests/PostUsersSignInDataServices.cs similarity index 89% rename from PlexAPI/Models/Requests/PostSignInServices.cs rename to PlexAPI/Models/Requests/PostUsersSignInDataServices.cs index 3744584..8c15dbf 100644 --- a/PlexAPI/Models/Requests/PostSignInServices.cs +++ b/PlexAPI/Models/Requests/PostUsersSignInDataServices.cs @@ -13,7 +13,7 @@ namespace PlexAPI.Models.Requests using PlexAPI.Models.Requests; using PlexAPI.Utils; - public class PostSignInServices + public class PostUsersSignInDataServices { [JsonProperty("identifier")] @@ -29,6 +29,6 @@ namespace PlexAPI.Models.Requests public string? Secret { get; set; } [JsonProperty("status")] - public PostSignInStatus Status { get; set; } = default!; + public PostUsersSignInDataStatus Status { get; set; } = default!; } } \ No newline at end of file diff --git a/PlexAPI/Models/Requests/PostSignInState.cs b/PlexAPI/Models/Requests/PostUsersSignInDataState.cs similarity index 74% rename from PlexAPI/Models/Requests/PostSignInState.cs rename to PlexAPI/Models/Requests/PostUsersSignInDataState.cs index 954bea1..0f733a9 100644 --- a/PlexAPI/Models/Requests/PostSignInState.cs +++ b/PlexAPI/Models/Requests/PostUsersSignInDataState.cs @@ -13,22 +13,22 @@ namespace PlexAPI.Models.Requests using PlexAPI.Utils; using System; - public enum PostSignInState + public enum PostUsersSignInDataState { [JsonProperty("ended")] Ended, } - public static class PostSignInStateExtension + public static class PostUsersSignInDataStateExtension { - public static string Value(this PostSignInState value) + public static string Value(this PostUsersSignInDataState value) { return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); } - public static PostSignInState ToEnum(this string value) + public static PostUsersSignInDataState ToEnum(this string value) { - foreach(var field in typeof(PostSignInState).GetFields()) + foreach(var field in typeof(PostUsersSignInDataState).GetFields()) { var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); if (attributes.Length == 0) @@ -41,14 +41,14 @@ namespace PlexAPI.Models.Requests { var enumVal = field.GetValue(null); - if (enumVal is PostSignInState) + if (enumVal is PostUsersSignInDataState) { - return (PostSignInState)enumVal; + return (PostUsersSignInDataState)enumVal; } } } - throw new Exception($"Unknown value {value} for enum PostSignInState"); + throw new Exception($"Unknown value {value} for enum PostUsersSignInDataState"); } } diff --git a/PlexAPI/Models/Requests/PostSignInStatus.cs b/PlexAPI/Models/Requests/PostUsersSignInDataStatus.cs similarity index 74% rename from PlexAPI/Models/Requests/PostSignInStatus.cs rename to PlexAPI/Models/Requests/PostUsersSignInDataStatus.cs index 35fe670..82c8d4f 100644 --- a/PlexAPI/Models/Requests/PostSignInStatus.cs +++ b/PlexAPI/Models/Requests/PostUsersSignInDataStatus.cs @@ -13,7 +13,7 @@ namespace PlexAPI.Models.Requests using PlexAPI.Utils; using System; - public enum PostSignInStatus + public enum PostUsersSignInDataStatus { [JsonProperty("online")] Online, @@ -21,16 +21,16 @@ namespace PlexAPI.Models.Requests Offline, } - public static class PostSignInStatusExtension + public static class PostUsersSignInDataStatusExtension { - public static string Value(this PostSignInStatus value) + public static string Value(this PostUsersSignInDataStatus value) { return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); } - public static PostSignInStatus ToEnum(this string value) + public static PostUsersSignInDataStatus ToEnum(this string value) { - foreach(var field in typeof(PostSignInStatus).GetFields()) + foreach(var field in typeof(PostUsersSignInDataStatus).GetFields()) { var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); if (attributes.Length == 0) @@ -43,14 +43,14 @@ namespace PlexAPI.Models.Requests { var enumVal = field.GetValue(null); - if (enumVal is PostSignInStatus) + if (enumVal is PostUsersSignInDataStatus) { - return (PostSignInStatus)enumVal; + return (PostUsersSignInDataStatus)enumVal; } } } - throw new Exception($"Unknown value {value} for enum PostSignInStatus"); + throw new Exception($"Unknown value {value} for enum PostUsersSignInDataStatus"); } } diff --git a/PlexAPI/Models/Requests/PostSignInSubscription.cs b/PlexAPI/Models/Requests/PostUsersSignInDataSubscription.cs similarity index 89% rename from PlexAPI/Models/Requests/PostSignInSubscription.cs rename to PlexAPI/Models/Requests/PostUsersSignInDataSubscription.cs index 8f329cb..c704e6f 100644 --- a/PlexAPI/Models/Requests/PostSignInSubscription.cs +++ b/PlexAPI/Models/Requests/PostUsersSignInDataSubscription.cs @@ -17,14 +17,14 @@ namespace PlexAPI.Models.Requests /// /// If the account’s Plex Pass subscription is active /// - public class PostSignInSubscription + public class PostUsersSignInDataSubscription { /// /// List of features allowed on your Plex Pass subscription /// [JsonProperty("features")] - public List? Features { get; set; } + public List? Features { get; set; } /// /// If the account's Plex Pass subscription is active @@ -42,7 +42,7 @@ namespace PlexAPI.Models.Requests /// String representation of subscriptionActive /// [JsonProperty("status")] - public PostSignInUserStatus? Status { get; set; } + public PostUsersSignInDataAuthenticationStatus? Status { get; set; } /// /// Payment service used for your Plex Pass subscription diff --git a/PlexAPI/Models/Requests/PostSignInUserPlexAccount.cs b/PlexAPI/Models/Requests/PostUsersSignInDataUserPlexAccount.cs similarity index 94% rename from PlexAPI/Models/Requests/PostSignInUserPlexAccount.cs rename to PlexAPI/Models/Requests/PostUsersSignInDataUserPlexAccount.cs index 4df880b..2dca3ed 100644 --- a/PlexAPI/Models/Requests/PostSignInUserPlexAccount.cs +++ b/PlexAPI/Models/Requests/PostUsersSignInDataUserPlexAccount.cs @@ -18,7 +18,7 @@ namespace PlexAPI.Models.Requests /// /// Returns the user account data with a valid auth token /// - public class PostSignInUserPlexAccount + public class PostUsersSignInDataUserPlexAccount { /// @@ -157,7 +157,7 @@ namespace PlexAPI.Models.Requests /// Your current mailing list status /// [JsonProperty("mailingListStatus")] - public PostSignInMailingListStatus MailingListStatus { get; set; } = default!; + public PostUsersSignInDataMailingListStatus MailingListStatus { get; set; } = default!; /// /// The maximum number of accounts allowed in the Plex Home @@ -173,7 +173,7 @@ namespace PlexAPI.Models.Requests public string? Pin { get; set; } [JsonProperty("profile")] - public PostSignInUserProfile Profile { get; set; } = default!; + public PostUsersSignInDataUserProfile Profile { get; set; } = default!; /// /// If the account has a Plex Home PIN enabled @@ -206,13 +206,13 @@ namespace PlexAPI.Models.Requests public string ScrobbleTypes { get; set; } = default!; [JsonProperty("services")] - public List Services { get; set; } = default!; + public List Services { get; set; } = default!; /// /// If the account’s Plex Pass subscription is active /// [JsonProperty("subscription")] - public PostSignInSubscription Subscription { get; set; } = default!; + public PostUsersSignInDataSubscription Subscription { get; set; } = default!; /// /// Description of the Plex Pass subscription @@ -221,7 +221,7 @@ namespace PlexAPI.Models.Requests public string? SubscriptionDescription { get; set; } [JsonProperty("subscriptions")] - public List Subscriptions { get; set; } = default!; + public List Subscriptions { get; set; } = default!; /// /// URL of the account thumbnail diff --git a/PlexAPI/Models/Requests/PostSignInUserProfile.cs b/PlexAPI/Models/Requests/PostUsersSignInDataUserProfile.cs similarity index 80% rename from PlexAPI/Models/Requests/PostSignInUserProfile.cs rename to PlexAPI/Models/Requests/PostUsersSignInDataUserProfile.cs index ea358f6..eb171dc 100644 --- a/PlexAPI/Models/Requests/PostSignInUserProfile.cs +++ b/PlexAPI/Models/Requests/PostUsersSignInDataUserProfile.cs @@ -13,7 +13,7 @@ namespace PlexAPI.Models.Requests using PlexAPI.Models.Requests; using PlexAPI.Utils; - public class PostSignInUserProfile + public class PostUsersSignInDataUserProfile { /// @@ -38,24 +38,24 @@ namespace PlexAPI.Models.Requests /// The auto-select subtitle mode (0 = Manually selected, 1 = Shown with foreign audio, 2 = Always enabled) /// [JsonProperty("autoSelectSubtitle")] - public PostSignInAutoSelectSubtitle? AutoSelectSubtitle { get; set; } + public PostUsersSignInDataAutoSelectSubtitle? AutoSelectSubtitle { get; set; } /// /// The subtitles for the deaf or hard-of-hearing (SDH) searches mode (0 = Prefer non-SDH subtitles, 1 = Prefer SDH subtitles, 2 = Only show SDH subtitles, 3 = Only shown non-SDH subtitles) /// [JsonProperty("defaultSubtitleAccessibility")] - public PostSignInDefaultSubtitleAccessibility? DefaultSubtitleAccessibility { get; set; } + public PostUsersSignInDataDefaultSubtitleAccessibility? DefaultSubtitleAccessibility { get; set; } /// /// The forced subtitles searches mode (0 = Prefer non-forced subtitles, 1 = Prefer forced subtitles, 2 = Only show forced subtitles, 3 = Only show non-forced subtitles) /// [JsonProperty("defaultSubtitleForced")] - public PostSignInDefaultSubtitleForced? DefaultSubtitleForced { get; set; } + public PostUsersSignInDataDefaultSubtitleForced? DefaultSubtitleForced { get; set; } [JsonProperty("watchedIndicator")] - public PostSignInWatchedIndicator? WatchedIndicator { get; set; } + public PostUsersSignInDataWatchedIndicator? WatchedIndicator { get; set; } [JsonProperty("mediaReviewsVisibility")] - public PostSignInMediaReviewsVisibility? MediaReviewsVisibility { get; set; } + public PostUsersSignInDataMediaReviewsVisibility? MediaReviewsVisibility { get; set; } } } \ No newline at end of file diff --git a/PlexAPI/Models/Requests/PostSignInWatchedIndicator.cs b/PlexAPI/Models/Requests/PostUsersSignInDataWatchedIndicator.cs similarity index 71% rename from PlexAPI/Models/Requests/PostSignInWatchedIndicator.cs rename to PlexAPI/Models/Requests/PostUsersSignInDataWatchedIndicator.cs index b872f77..44de671 100644 --- a/PlexAPI/Models/Requests/PostSignInWatchedIndicator.cs +++ b/PlexAPI/Models/Requests/PostUsersSignInDataWatchedIndicator.cs @@ -13,7 +13,7 @@ namespace PlexAPI.Models.Requests using PlexAPI.Utils; using System; - public enum PostSignInWatchedIndicator + public enum PostUsersSignInDataWatchedIndicator { [JsonProperty("0")] Zero, @@ -21,16 +21,16 @@ namespace PlexAPI.Models.Requests One, } - public static class PostSignInWatchedIndicatorExtension + public static class PostUsersSignInDataWatchedIndicatorExtension { - public static string Value(this PostSignInWatchedIndicator value) + public static string Value(this PostUsersSignInDataWatchedIndicator value) { return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); } - public static PostSignInWatchedIndicator ToEnum(this string value) + public static PostUsersSignInDataWatchedIndicator ToEnum(this string value) { - foreach(var field in typeof(PostSignInWatchedIndicator).GetFields()) + foreach(var field in typeof(PostUsersSignInDataWatchedIndicator).GetFields()) { var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); if (attributes.Length == 0) @@ -43,14 +43,14 @@ namespace PlexAPI.Models.Requests { var enumVal = field.GetValue(null); - if (enumVal is PostSignInWatchedIndicator) + if (enumVal is PostUsersSignInDataWatchedIndicator) { - return (PostSignInWatchedIndicator)enumVal; + return (PostUsersSignInDataWatchedIndicator)enumVal; } } } - throw new Exception($"Unknown value {value} for enum PostSignInWatchedIndicator"); + throw new Exception($"Unknown value {value} for enum PostUsersSignInDataWatchedIndicator"); } } diff --git a/PlexAPI/Models/Requests/QueryParamForce.cs b/PlexAPI/Models/Requests/QueryParamForce.cs new file mode 100644 index 0000000..dcd501d --- /dev/null +++ b/PlexAPI/Models/Requests/QueryParamForce.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// 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. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace PlexAPI.Models.Requests +{ + using PlexAPI.Utils; + + /// + /// Force overwriting of duplicate playlists.
+ /// + /// + /// By default, a playlist file uploaded with the same path will overwrite the existing playlist.
+ /// The `force` argument is used to disable overwriting.
+ /// If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.
+ /// + ///
+ ///
+ public enum QueryParamForce + { + Zero = 0, + One = 1, + } + +} \ No newline at end of file diff --git a/PlexAPI/Models/Requests/SearchLibraryRequest.cs b/PlexAPI/Models/Requests/SearchLibraryRequest.cs index 610ead1..975db48 100644 --- a/PlexAPI/Models/Requests/SearchLibraryRequest.cs +++ b/PlexAPI/Models/Requests/SearchLibraryRequest.cs @@ -25,6 +25,6 @@ namespace PlexAPI.Models.Requests /// Plex content type to search for ///
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=type")] - public Type Type { get; set; } = default!; + public Models.Requests.Type Type { get; set; } = default!; } } \ No newline at end of file diff --git a/PlexAPI/Models/Requests/UploadPlaylistRequest.cs b/PlexAPI/Models/Requests/UploadPlaylistRequest.cs index 2468f5e..4a312b5 100644 --- a/PlexAPI/Models/Requests/UploadPlaylistRequest.cs +++ b/PlexAPI/Models/Requests/UploadPlaylistRequest.cs @@ -41,6 +41,6 @@ namespace PlexAPI.Models.Requests /// ///
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=force")] - public Force Force { get; set; } = default!; + public QueryParamForce Force { get; set; } = default!; } } \ No newline at end of file diff --git a/PlexAPI/Playlists.cs b/PlexAPI/Playlists.cs index 0ac89c7..fa91c3e 100644 --- a/PlexAPI/Playlists.cs +++ b/PlexAPI/Playlists.cs @@ -129,7 +129,7 @@ namespace PlexAPI /// /// ///
- Task UploadPlaylistAsync(string path, Force force); + Task UploadPlaylistAsync(string path, QueryParamForce force); } /// @@ -146,10 +146,10 @@ namespace PlexAPI { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.4.1"; - private const string _sdkGenVersion = "2.404.3"; + private const string _sdkVersion = "0.4.2"; + private const string _sdkGenVersion = "2.407.0"; private const string _openapiDocVersion = "0.0.3"; - private const string _userAgent = "speakeasy-sdk/csharp 0.4.1 2.404.3 0.0.3 PlexAPI"; + private const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI"; private string _serverUrl = ""; private ISpeakeasyHttpClient _client; private Func? _securitySource; @@ -894,7 +894,7 @@ namespace PlexAPI } } - public async Task UploadPlaylistAsync(string path, Force force) + public async Task UploadPlaylistAsync(string path, QueryParamForce force) { var request = new UploadPlaylistRequest() { diff --git a/PlexAPI/Plex.cs b/PlexAPI/Plex.cs index 492c5a7..a953778 100644 --- a/PlexAPI/Plex.cs +++ b/PlexAPI/Plex.cs @@ -158,10 +158,10 @@ namespace PlexAPI }; public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.4.1"; - private const string _sdkGenVersion = "2.404.3"; + private const string _sdkVersion = "0.4.2"; + private const string _sdkGenVersion = "2.407.0"; private const string _openapiDocVersion = "0.0.3"; - private const string _userAgent = "speakeasy-sdk/csharp 0.4.1 2.404.3 0.0.3 PlexAPI"; + private const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI"; private string _serverUrl = ""; private ISpeakeasyHttpClient _client; private Func? _securitySource; diff --git a/PlexAPI/PlexAPI.csproj b/PlexAPI/PlexAPI.csproj index 395ce61..b3c204d 100644 --- a/PlexAPI/PlexAPI.csproj +++ b/PlexAPI/PlexAPI.csproj @@ -3,7 +3,7 @@ true PlexAPI - 0.4.1 + 0.4.2 net5.0 LukeHagar Copyright (c) LukeHagar 2024 diff --git a/PlexAPI/PlexAPISDK.cs b/PlexAPI/PlexAPISDK.cs index 755bf78..0b50548 100644 --- a/PlexAPI/PlexAPISDK.cs +++ b/PlexAPI/PlexAPISDK.cs @@ -213,15 +213,6 @@ namespace PlexAPI /// public IUpdater Updater { get; } - /// - /// API Calls that perform operations with Plex Media Server Users
- /// - /// - /// - /// - ///
- public IUser User { get; } - /// /// API Calls that perform operations with Plex Media Server Watchlists
/// @@ -277,10 +268,10 @@ namespace PlexAPI public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.4.1"; - private const string _sdkGenVersion = "2.404.3"; + private const string _sdkVersion = "0.4.2"; + private const string _sdkGenVersion = "2.407.0"; private const string _openapiDocVersion = "0.0.3"; - private const string _userAgent = "speakeasy-sdk/csharp 0.4.1 2.404.3 0.0.3 PlexAPI"; + private const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI"; private string _serverUrl = ""; private int _serverIndex = 0; private ISpeakeasyHttpClient _client; @@ -300,7 +291,6 @@ namespace PlexAPI public IStatistics Statistics { get; private set; } public ISessions Sessions { get; private set; } public IUpdater Updater { get; private set; } - public IUser User { get; private set; } public IWatchlist Watchlist { get; private set; } public PlexAPISDK(string? accessToken = null, Func? accessTokenSource = null, string? xPlexClientIdentifier = null, int? serverIndex = null, ServerProtocol? protocol = null, string? ip = null, string? port = null, string? serverUrl = null, Dictionary? urlParams = null, ISpeakeasyHttpClient? client = null, RetryConfig? retryConfig = null) @@ -400,9 +390,6 @@ namespace PlexAPI Updater = new Updater(_client, _securitySource, _serverUrl, SDKConfiguration); - User = new User(_client, _securitySource, _serverUrl, SDKConfiguration); - - Watchlist = new Watchlist(_client, _securitySource, _serverUrl, SDKConfiguration); } } diff --git a/PlexAPI/Search.cs b/PlexAPI/Search.cs index 2dfceb7..53399a0 100644 --- a/PlexAPI/Search.cs +++ b/PlexAPI/Search.cs @@ -87,10 +87,10 @@ namespace PlexAPI { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.4.1"; - private const string _sdkGenVersion = "2.404.3"; + private const string _sdkVersion = "0.4.2"; + private const string _sdkGenVersion = "2.407.0"; private const string _openapiDocVersion = "0.0.3"; - private const string _userAgent = "speakeasy-sdk/csharp 0.4.1 2.404.3 0.0.3 PlexAPI"; + private const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI"; private string _serverUrl = ""; private ISpeakeasyHttpClient _client; private Func? _securitySource; diff --git a/PlexAPI/Server.cs b/PlexAPI/Server.cs index a72a478..1633dde 100644 --- a/PlexAPI/Server.cs +++ b/PlexAPI/Server.cs @@ -117,10 +117,10 @@ namespace PlexAPI { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.4.1"; - private const string _sdkGenVersion = "2.404.3"; + private const string _sdkVersion = "0.4.2"; + private const string _sdkGenVersion = "2.407.0"; private const string _openapiDocVersion = "0.0.3"; - private const string _userAgent = "speakeasy-sdk/csharp 0.4.1 2.404.3 0.0.3 PlexAPI"; + private const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI"; private string _serverUrl = ""; private ISpeakeasyHttpClient _client; private Func? _securitySource; diff --git a/PlexAPI/Sessions.cs b/PlexAPI/Sessions.cs index 3b480a0..153da49 100644 --- a/PlexAPI/Sessions.cs +++ b/PlexAPI/Sessions.cs @@ -80,10 +80,10 @@ namespace PlexAPI { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.4.1"; - private const string _sdkGenVersion = "2.404.3"; + private const string _sdkVersion = "0.4.2"; + private const string _sdkGenVersion = "2.407.0"; private const string _openapiDocVersion = "0.0.3"; - private const string _userAgent = "speakeasy-sdk/csharp 0.4.1 2.404.3 0.0.3 PlexAPI"; + private const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI"; private string _serverUrl = ""; private ISpeakeasyHttpClient _client; private Func? _securitySource; diff --git a/PlexAPI/Statistics.cs b/PlexAPI/Statistics.cs index 9e1c59e..ae75b2c 100644 --- a/PlexAPI/Statistics.cs +++ b/PlexAPI/Statistics.cs @@ -71,10 +71,10 @@ namespace PlexAPI { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.4.1"; - private const string _sdkGenVersion = "2.404.3"; + private const string _sdkVersion = "0.4.2"; + private const string _sdkGenVersion = "2.407.0"; private const string _openapiDocVersion = "0.0.3"; - private const string _userAgent = "speakeasy-sdk/csharp 0.4.1 2.404.3 0.0.3 PlexAPI"; + private const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI"; private string _serverUrl = ""; private ISpeakeasyHttpClient _client; private Func? _securitySource; diff --git a/PlexAPI/Updater.cs b/PlexAPI/Updater.cs index 3d20f00..d730ff9 100644 --- a/PlexAPI/Updater.cs +++ b/PlexAPI/Updater.cs @@ -74,10 +74,10 @@ namespace PlexAPI { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.4.1"; - private const string _sdkGenVersion = "2.404.3"; + private const string _sdkVersion = "0.4.2"; + private const string _sdkGenVersion = "2.407.0"; private const string _openapiDocVersion = "0.0.3"; - private const string _userAgent = "speakeasy-sdk/csharp 0.4.1 2.404.3 0.0.3 PlexAPI"; + private const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI"; private string _serverUrl = ""; private ISpeakeasyHttpClient _client; private Func? _securitySource; diff --git a/PlexAPI/User.cs b/PlexAPI/User.cs deleted file mode 100644 index b3aa005..0000000 --- a/PlexAPI/User.cs +++ /dev/null @@ -1,184 +0,0 @@ -//------------------------------------------------------------------------------ -// -// 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. -// -//------------------------------------------------------------------------------ -#nullable enable -namespace PlexAPI -{ - using Newtonsoft.Json; - using PlexAPI.Hooks; - using PlexAPI.Models.Components; - using PlexAPI.Models.Errors; - using PlexAPI.Models.Requests; - using PlexAPI.Utils.Retries; - using PlexAPI.Utils; - using System.Collections.Generic; - using System.Net.Http.Headers; - using System.Net.Http; - using System.Threading.Tasks; - using System; - - /// - /// API Calls that perform operations with Plex Media Server Users
- /// - /// - /// - /// - ///
- public interface IUser - { - - /// - /// Get User SignIn Data - /// - /// - /// Sign in user with username and password and return user data with Plex authentication token - /// - /// - Task PostSignInAsync(string? xPlexClientIdentifier = null, PostSignInRequestBody? requestBody = null, string? serverUrl = null); - } - - /// - /// API Calls that perform operations with Plex Media Server Users
- /// - /// - /// - /// - ///
- public class User: IUser - { - /// - /// List of server URLs available for the post-sign-in operation. - /// - public static readonly string[] PostSignInServerList = { - "https://plex.tv/api/v2", - }; - public SDKConfig SDKConfiguration { get; private set; } - private const string _language = "csharp"; - private const string _sdkVersion = "0.4.1"; - private const string _sdkGenVersion = "2.404.3"; - private const string _openapiDocVersion = "0.0.3"; - private const string _userAgent = "speakeasy-sdk/csharp 0.4.1 2.404.3 0.0.3 PlexAPI"; - private string _serverUrl = ""; - private ISpeakeasyHttpClient _client; - private Func? _securitySource; - - public User(ISpeakeasyHttpClient client, Func? securitySource, string serverUrl, SDKConfig config) - { - _client = client; - _securitySource = securitySource; - _serverUrl = serverUrl; - SDKConfiguration = config; - } - - public async Task PostSignInAsync(string? xPlexClientIdentifier = null, PostSignInRequestBody? requestBody = null, string? serverUrl = null) - { - var request = new PostSignInRequest() - { - XPlexClientIdentifier = xPlexClientIdentifier, - RequestBody = requestBody, - }; - request.XPlexClientIdentifier ??= SDKConfiguration.XPlexClientIdentifier; - - string baseUrl = Utilities.TemplateUrl(PostSignInServerList[0], new Dictionary(){ - }); - if (serverUrl != null) - { - baseUrl = serverUrl; - } - - var urlString = baseUrl + "/users/signin"; - - var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString); - httpRequest.Headers.Add("user-agent", _userAgent); - HeaderSerializer.PopulateHeaders(ref httpRequest, request); - - var serializedBody = RequestBodySerializer.Serialize(request, "RequestBody", "form", false, true); - if (serializedBody != null) - { - httpRequest.Content = serializedBody; - } - - var hookCtx = new HookContext("post-sign-in", 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 == 201) - { - if(Utilities.IsContentTypeMatch("application/json", contentType)) - { - var obj = ResponseBodyDeserializer.Deserialize(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore); - var response = new PostSignInResponse() - { - StatusCode = responseStatusCode, - ContentType = contentType, - RawResponse = httpResponse - }; - response.UserPlexAccount = obj; - return response; - } - else - { - throw new SDKException("Unknown content type received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse); - } - } - else if(responseStatusCode == 400 || responseStatusCode >= 400 && responseStatusCode < 500 || responseStatusCode >= 500 && responseStatusCode < 600) - { - throw new SDKException("API error occurred", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse); - } - else if(responseStatusCode == 401) - { - if(Utilities.IsContentTypeMatch("application/json", contentType)) - { - var obj = ResponseBodyDeserializer.Deserialize(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore); - obj!.RawResponse = httpResponse; - throw obj!; - } - else - { - throw new SDKException("Unknown content type received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse); - } - } - else - { - throw new SDKException("Unknown status code received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse); - } - } - } -} \ No newline at end of file diff --git a/PlexAPI/Video.cs b/PlexAPI/Video.cs index d0f490a..3faf314 100644 --- a/PlexAPI/Video.cs +++ b/PlexAPI/Video.cs @@ -62,10 +62,10 @@ namespace PlexAPI { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.4.1"; - private const string _sdkGenVersion = "2.404.3"; + private const string _sdkVersion = "0.4.2"; + private const string _sdkGenVersion = "2.407.0"; private const string _openapiDocVersion = "0.0.3"; - private const string _userAgent = "speakeasy-sdk/csharp 0.4.1 2.404.3 0.0.3 PlexAPI"; + private const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI"; private string _serverUrl = ""; private ISpeakeasyHttpClient _client; private Func? _securitySource; diff --git a/PlexAPI/Watchlist.cs b/PlexAPI/Watchlist.cs index affda06..8e384cf 100644 --- a/PlexAPI/Watchlist.cs +++ b/PlexAPI/Watchlist.cs @@ -59,10 +59,10 @@ namespace PlexAPI }; public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.4.1"; - private const string _sdkGenVersion = "2.404.3"; + private const string _sdkVersion = "0.4.2"; + private const string _sdkGenVersion = "2.407.0"; private const string _openapiDocVersion = "0.0.3"; - private const string _userAgent = "speakeasy-sdk/csharp 0.4.1 2.404.3 0.0.3 PlexAPI"; + private const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI"; private string _serverUrl = ""; private ISpeakeasyHttpClient _client; private Func? _securitySource; diff --git a/README.md b/README.md index 881ec85..ad267ed 100644 --- a/README.md +++ b/README.md @@ -12,14 +12,16 @@ ### NuGet +To add the [NuGet](https://www.nuget.org/) package to a .NET project: ```bash dotnet add package PlexAPI ``` ### Locally +To add a reference to a local instance of the SDK in a .NET project: ```bash -dotnet add reference path/to/PlexAPI.csproj +dotnet add reference PlexAPI/PlexAPI.csproj ``` @@ -34,7 +36,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Server.GetServerCapabilitiesAsync(); @@ -106,11 +109,11 @@ var res = await sdk.Server.GetServerCapabilitiesAsync(); * [GetFileHash](docs/sdks/library/README.md#getfilehash) - Get Hash Value * [GetRecentlyAdded](docs/sdks/library/README.md#getrecentlyadded) - Get Recently Added -* [GetLibraries](docs/sdks/library/README.md#getlibraries) - Get All Libraries -* [GetLibrary](docs/sdks/library/README.md#getlibrary) - Get Library Details +* [GetAllLibraries](docs/sdks/library/README.md#getalllibraries) - Get All Libraries +* [GetLibraryDetails](docs/sdks/library/README.md#getlibrarydetails) - Get Library Details * [DeleteLibrary](docs/sdks/library/README.md#deletelibrary) - Delete Library Section * [GetLibraryItems](docs/sdks/library/README.md#getlibraryitems) - Get Library Items -* [RefreshLibrary](docs/sdks/library/README.md#refreshlibrary) - Refresh Library +* [GetRefreshLibraryMetadata](docs/sdks/library/README.md#getrefreshlibrarymetadata) - Refresh Metadata Of The Library * [SearchLibrary](docs/sdks/library/README.md#searchlibrary) - Search Library * [GetMetadata](docs/sdks/library/README.md#getmetadata) - Get Items Metadata * [GetMetadataChildren](docs/sdks/library/README.md#getmetadatachildren) - Get Items Children @@ -139,6 +142,7 @@ var res = await sdk.Server.GetServerCapabilitiesAsync(); * [GetTransientToken](docs/sdks/authentication/README.md#gettransienttoken) - Get a Transient Token. * [GetSourceConnectionInformation](docs/sdks/authentication/README.md#getsourceconnectioninformation) - Get Source Connection Information +* [PostUsersSignInData](docs/sdks/authentication/README.md#postuserssignindata) - Get User SignIn Data ### [Statistics](docs/sdks/statistics/README.md) @@ -159,10 +163,6 @@ 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 -### [User](docs/sdks/user/README.md) - -* [PostSignIn](docs/sdks/user/README.md#postsignin) - Get User SignIn Data - ### [Watchlist](docs/sdks/watchlist/README.md) * [GetWatchlist](docs/sdks/watchlist/README.md#getwatchlist) - Get User Watchlist @@ -202,7 +202,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Plex.GetCompanionsDataAsync(serverUrl: "https://plex.tv/api/v2"); @@ -228,7 +229,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Server.GetServerCapabilitiesAsync(); @@ -256,11 +258,13 @@ using PlexAPI.Models.Errors; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); try { var res = await sdk.Server.GetServerCapabilitiesAsync(); + // handle response } catch (Exception ex) @@ -274,10 +278,26 @@ catch (Exception ex) // handle exception } } - ``` + +## Summary + +Plex-API: An Open API Spec for interacting with Plex.tv + + + +## Table of Contents + +* [SDK Installation](#sdk-installation) +* [SDK Example Usage](#sdk-example-usage) +* [Available Resources and Operations](#available-resources-and-operations) +* [Error Handling](#error-handling) +* [Server Selection](#server-selection) +* [Authentication](#authentication) + + # Development diff --git a/RELEASES.md b/RELEASES.md index 95558f5..0610d6f 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -74,4 +74,14 @@ Based on: ### Generated - [csharp v0.4.1] . ### Releases -- [NuGet v0.4.1] https://www.nuget.org/packages/PlexAPI/0.4.1 - . \ No newline at end of file +- [NuGet v0.4.1] https://www.nuget.org/packages/PlexAPI/0.4.1 - . + +## 2024-08-30 00:09:28 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.383.2 (2.407.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [csharp v0.4.2] . +### Releases +- [NuGet v0.4.2] https://www.nuget.org/packages/PlexAPI/0.4.2 - . \ No newline at end of file diff --git a/USAGE.md b/USAGE.md index df00fc9..eed3d0d 100644 --- a/USAGE.md +++ b/USAGE.md @@ -5,7 +5,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Server.GetServerCapabilitiesAsync(); diff --git a/docs/Models/Errors/GetLibrariesErrors.md b/docs/Models/Errors/GetAllLibrariesErrors.md similarity index 97% rename from docs/Models/Errors/GetLibrariesErrors.md rename to docs/Models/Errors/GetAllLibrariesErrors.md index 11c10d1..32ab13d 100644 --- a/docs/Models/Errors/GetLibrariesErrors.md +++ b/docs/Models/Errors/GetAllLibrariesErrors.md @@ -1,4 +1,4 @@ -# GetLibrariesErrors +# GetAllLibrariesErrors ## Fields diff --git a/docs/Models/Errors/GetLibrariesResponseBody.md b/docs/Models/Errors/GetAllLibrariesResponseBody.md similarity index 92% rename from docs/Models/Errors/GetLibrariesResponseBody.md rename to docs/Models/Errors/GetAllLibrariesResponseBody.md index 78d2916..1abf4ee 100644 --- a/docs/Models/Errors/GetLibrariesResponseBody.md +++ b/docs/Models/Errors/GetAllLibrariesResponseBody.md @@ -1,4 +1,4 @@ -# GetLibrariesResponseBody +# GetAllLibrariesResponseBody Unauthorized - Returned if the X-Plex-Token is missing from the header or query. @@ -7,5 +7,5 @@ Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | Field | Type | Required | Description | | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| `Errors` | List<[GetLibrariesErrors](../../Models/Errors/GetLibrariesErrors.md)> | :heavy_minus_sign: | N/A | +| `Errors` | List<[GetAllLibrariesErrors](../../Models/Errors/GetAllLibrariesErrors.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 | \ No newline at end of file diff --git a/docs/Models/Errors/GetLibraryErrors.md b/docs/Models/Errors/GetLibraryDetailsErrors.md similarity index 97% rename from docs/Models/Errors/GetLibraryErrors.md rename to docs/Models/Errors/GetLibraryDetailsErrors.md index 97a7aac..93fc014 100644 --- a/docs/Models/Errors/GetLibraryErrors.md +++ b/docs/Models/Errors/GetLibraryDetailsErrors.md @@ -1,4 +1,4 @@ -# GetLibraryErrors +# GetLibraryDetailsErrors ## Fields diff --git a/docs/Models/Errors/GetLibraryResponseBody.md b/docs/Models/Errors/GetLibraryDetailsResponseBody.md similarity index 92% rename from docs/Models/Errors/GetLibraryResponseBody.md rename to docs/Models/Errors/GetLibraryDetailsResponseBody.md index 7092449..3429023 100644 --- a/docs/Models/Errors/GetLibraryResponseBody.md +++ b/docs/Models/Errors/GetLibraryDetailsResponseBody.md @@ -1,4 +1,4 @@ -# GetLibraryResponseBody +# GetLibraryDetailsResponseBody Unauthorized - Returned if the X-Plex-Token is missing from the header or query. @@ -7,5 +7,5 @@ Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | Field | Type | Required | Description | | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| `Errors` | List<[GetLibraryErrors](../../Models/Errors/GetLibraryErrors.md)> | :heavy_minus_sign: | N/A | +| `Errors` | List<[GetLibraryDetailsErrors](../../Models/Errors/GetLibraryDetailsErrors.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 | \ No newline at end of file diff --git a/docs/Models/Errors/RefreshLibraryErrors.md b/docs/Models/Errors/GetRefreshLibraryMetadataErrors.md similarity index 96% rename from docs/Models/Errors/RefreshLibraryErrors.md rename to docs/Models/Errors/GetRefreshLibraryMetadataErrors.md index 8c98c2b..f3038fa 100644 --- a/docs/Models/Errors/RefreshLibraryErrors.md +++ b/docs/Models/Errors/GetRefreshLibraryMetadataErrors.md @@ -1,4 +1,4 @@ -# RefreshLibraryErrors +# GetRefreshLibraryMetadataErrors ## Fields diff --git a/docs/Models/Errors/RefreshLibraryResponseBody.md b/docs/Models/Errors/GetRefreshLibraryMetadataResponseBody.md similarity index 88% rename from docs/Models/Errors/RefreshLibraryResponseBody.md rename to docs/Models/Errors/GetRefreshLibraryMetadataResponseBody.md index 491217e..f1a3dc4 100644 --- a/docs/Models/Errors/RefreshLibraryResponseBody.md +++ b/docs/Models/Errors/GetRefreshLibraryMetadataResponseBody.md @@ -1,4 +1,4 @@ -# RefreshLibraryResponseBody +# GetRefreshLibraryMetadataResponseBody Unauthorized - Returned if the X-Plex-Token is missing from the header or query. @@ -7,5 +7,5 @@ Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | Field | Type | Required | Description | | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| `Errors` | List<[RefreshLibraryErrors](../../Models/Errors/RefreshLibraryErrors.md)> | :heavy_minus_sign: | N/A | +| `Errors` | List<[GetRefreshLibraryMetadataErrors](../../Models/Errors/GetRefreshLibraryMetadataErrors.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 | \ No newline at end of file diff --git a/docs/Models/Errors/PostSignInErrors.md b/docs/Models/Errors/PostUsersSignInDataErrors.md similarity index 96% rename from docs/Models/Errors/PostSignInErrors.md rename to docs/Models/Errors/PostUsersSignInDataErrors.md index 670409f..4b58b44 100644 --- a/docs/Models/Errors/PostSignInErrors.md +++ b/docs/Models/Errors/PostUsersSignInDataErrors.md @@ -1,4 +1,4 @@ -# PostSignInErrors +# PostUsersSignInDataErrors ## Fields diff --git a/docs/Models/Errors/PostSignInResponseBody.md b/docs/Models/Errors/PostUsersSignInDataResponseBody.md similarity index 92% rename from docs/Models/Errors/PostSignInResponseBody.md rename to docs/Models/Errors/PostUsersSignInDataResponseBody.md index ee04a7d..a8942e7 100644 --- a/docs/Models/Errors/PostSignInResponseBody.md +++ b/docs/Models/Errors/PostUsersSignInDataResponseBody.md @@ -1,4 +1,4 @@ -# PostSignInResponseBody +# PostUsersSignInDataResponseBody Unauthorized - Returned if the X-Plex-Token is missing from the header or query. @@ -7,5 +7,5 @@ Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | Field | Type | Required | Description | | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| `Errors` | List<[PostSignInErrors](../../Models/Errors/PostSignInErrors.md)> | :heavy_minus_sign: | N/A | +| `Errors` | List<[PostUsersSignInDataErrors](../../Models/Errors/PostUsersSignInDataErrors.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 | \ No newline at end of file diff --git a/docs/Models/Requests/DeleteLibraryRequest.md b/docs/Models/Requests/DeleteLibraryRequest.md index 2bbb140..d88da70 100644 --- a/docs/Models/Requests/DeleteLibraryRequest.md +++ b/docs/Models/Requests/DeleteLibraryRequest.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | -| `SectionId` | *double* | :heavy_check_mark: | the Id of the library to query | 1000 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------- | --------------------- | --------------------- | --------------------- | --------------------- | +| `SectionId` | *double* | :heavy_check_mark: | The id of the library | 15 | \ No newline at end of file diff --git a/docs/Models/Requests/Force.md b/docs/Models/Requests/Force.md index f640748..4ebae3b 100644 --- a/docs/Models/Requests/Force.md +++ b/docs/Models/Requests/Force.md @@ -1,10 +1,6 @@ # Force -Force overwriting of duplicate playlists. -By default, a playlist file uploaded with the same path will overwrite the existing playlist. -The `force` argument is used to disable overwriting. -If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded. - +Force the refresh even if the library is already being refreshed. ## Values diff --git a/docs/Models/Requests/GetLibrariesDirectory.md b/docs/Models/Requests/GetAllLibrariesDirectory.md similarity index 93% rename from docs/Models/Requests/GetLibrariesDirectory.md rename to docs/Models/Requests/GetAllLibrariesDirectory.md index 26db394..8699177 100644 --- a/docs/Models/Requests/GetLibrariesDirectory.md +++ b/docs/Models/Requests/GetAllLibrariesDirectory.md @@ -1,4 +1,4 @@ -# GetLibrariesDirectory +# GetAllLibrariesDirectory ## Fields @@ -18,9 +18,9 @@ | `Scanner` | *string* | :heavy_minus_sign: | N/A | Plex Movie | | `Language` | *string* | :heavy_minus_sign: | N/A | en-US | | `Uuid` | *string* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 | -| `UpdatedAt` | *int* | :heavy_minus_sign: | N/A | 1705615634 | -| `CreatedAt` | *int* | :heavy_minus_sign: | N/A | 1654131312 | -| `ScannedAt` | *int* | :heavy_minus_sign: | N/A | 1705615584 | +| `UpdatedAt` | *int* | :heavy_minus_sign: | Unix epoch datetime | 1556281940 | +| `CreatedAt` | *int* | :heavy_minus_sign: | Unix epoch datetime | 1556281940 | +| `ScannedAt` | *int* | :heavy_minus_sign: | Unix epoch datetime | 1556281940 | | `Content` | *bool* | :heavy_minus_sign: | N/A | true | | `Directory` | *bool* | :heavy_minus_sign: | N/A | true | | `ContentChangedAt` | *int* | :heavy_minus_sign: | N/A | 3192854 | diff --git a/docs/Models/Requests/GetAllLibrariesMediaContainer.md b/docs/Models/Requests/GetAllLibrariesMediaContainer.md new file mode 100644 index 0000000..d353447 --- /dev/null +++ b/docs/Models/Requests/GetAllLibrariesMediaContainer.md @@ -0,0 +1,11 @@ +# GetAllLibrariesMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | +| `Size` | *int* | :heavy_check_mark: | N/A | 5 | +| `AllowSync` | *bool* | :heavy_check_mark: | N/A | false | +| `Title1` | *string* | :heavy_check_mark: | N/A | Plex Library | +| `Directory` | List<[GetAllLibrariesDirectory](../../Models/Requests/GetAllLibrariesDirectory.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibrariesResponse.md b/docs/Models/Requests/GetAllLibrariesResponse.md similarity index 94% rename from docs/Models/Requests/GetLibrariesResponse.md rename to docs/Models/Requests/GetAllLibrariesResponse.md index 70c040a..5949bb2 100644 --- a/docs/Models/Requests/GetLibrariesResponse.md +++ b/docs/Models/Requests/GetAllLibrariesResponse.md @@ -1,4 +1,4 @@ -# GetLibrariesResponse +# GetAllLibrariesResponse ## Fields @@ -8,4 +8,4 @@ | `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` | [Models.Requests.GetLibrariesResponseBody](../../Models/Requests/GetLibrariesResponseBody.md) | :heavy_minus_sign: | The libraries available on the Server | \ No newline at end of file +| `Object` | [Models.Requests.GetAllLibrariesResponseBody](../../Models/Requests/GetAllLibrariesResponseBody.md) | :heavy_minus_sign: | The libraries available on the Server | \ No newline at end of file diff --git a/docs/Models/Requests/GetAllLibrariesResponseBody.md b/docs/Models/Requests/GetAllLibrariesResponseBody.md new file mode 100644 index 0000000..8066514 --- /dev/null +++ b/docs/Models/Requests/GetAllLibrariesResponseBody.md @@ -0,0 +1,10 @@ +# GetAllLibrariesResponseBody + +The libraries available on the Server + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| `MediaContainer` | [GetAllLibrariesMediaContainer](../../Models/Requests/GetAllLibrariesMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibrariesMediaContainer.md b/docs/Models/Requests/GetLibrariesMediaContainer.md deleted file mode 100644 index 7b9117a..0000000 --- a/docs/Models/Requests/GetLibrariesMediaContainer.md +++ /dev/null @@ -1,11 +0,0 @@ -# GetLibrariesMediaContainer - - -## Fields - -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | -| `Size` | *int* | :heavy_minus_sign: | N/A | 5 | -| `AllowSync` | *bool* | :heavy_minus_sign: | N/A | false | -| `Title1` | *string* | :heavy_minus_sign: | N/A | Plex Library | -| `Directory` | List<[GetLibrariesDirectory](../../Models/Requests/GetLibrariesDirectory.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibrariesResponseBody.md b/docs/Models/Requests/GetLibrariesResponseBody.md deleted file mode 100644 index 21d54c5..0000000 --- a/docs/Models/Requests/GetLibrariesResponseBody.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetLibrariesResponseBody - -The libraries available on the Server - - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | -| `MediaContainer` | [GetLibrariesMediaContainer](../../Models/Requests/GetLibrariesMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryDirectory.md b/docs/Models/Requests/GetLibraryDetailsDirectory.md similarity index 96% rename from docs/Models/Requests/GetLibraryDirectory.md rename to docs/Models/Requests/GetLibraryDetailsDirectory.md index dee5d63..f2c210a 100644 --- a/docs/Models/Requests/GetLibraryDirectory.md +++ b/docs/Models/Requests/GetLibraryDetailsDirectory.md @@ -1,4 +1,4 @@ -# GetLibraryDirectory +# GetLibraryDetailsDirectory ## Fields diff --git a/docs/Models/Requests/GetLibraryFilter.md b/docs/Models/Requests/GetLibraryDetailsFilter.md similarity index 97% rename from docs/Models/Requests/GetLibraryFilter.md rename to docs/Models/Requests/GetLibraryDetailsFilter.md index 4987a78..5bd6c5f 100644 --- a/docs/Models/Requests/GetLibraryFilter.md +++ b/docs/Models/Requests/GetLibraryDetailsFilter.md @@ -1,4 +1,4 @@ -# GetLibraryFilter +# GetLibraryDetailsFilter ## Fields diff --git a/docs/Models/Requests/GetLibraryDetailsMediaContainer.md b/docs/Models/Requests/GetLibraryDetailsMediaContainer.md new file mode 100644 index 0000000..a7eff77 --- /dev/null +++ b/docs/Models/Requests/GetLibraryDetailsMediaContainer.md @@ -0,0 +1,22 @@ +# GetLibraryDetailsMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| `Size` | *int* | :heavy_minus_sign: | N/A | 29 | +| `AllowSync` | *bool* | :heavy_minus_sign: | N/A | false | +| `Art` | *string* | :heavy_minus_sign: | N/A | /:/resources/movie-fanart.jpg | +| `Content` | *string* | :heavy_minus_sign: | N/A | secondary | +| `Identifier` | *string* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library | +| `LibrarySectionID` | *int* | :heavy_minus_sign: | N/A | 1 | +| `MediaTagPrefix` | *string* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ | +| `MediaTagVersion` | *int* | :heavy_minus_sign: | N/A | 1701731894 | +| `Thumb` | *string* | :heavy_minus_sign: | N/A | /:/resources/movie.png | +| `Title1` | *string* | :heavy_minus_sign: | N/A | Movies | +| `ViewGroup` | *string* | :heavy_minus_sign: | N/A | secondary | +| `ViewMode` | *int* | :heavy_minus_sign: | N/A | 65592 | +| `Directory` | List<[GetLibraryDetailsDirectory](../../Models/Requests/GetLibraryDetailsDirectory.md)> | :heavy_minus_sign: | N/A | | +| `Type` | List<[GetLibraryDetailsType](../../Models/Requests/GetLibraryDetailsType.md)> | :heavy_minus_sign: | N/A | | +| `FieldType` | List<[FieldType](../../Models/Requests/FieldType.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryRequest.md b/docs/Models/Requests/GetLibraryDetailsRequest.md similarity index 94% rename from docs/Models/Requests/GetLibraryRequest.md rename to docs/Models/Requests/GetLibraryDetailsRequest.md index 5c004f6..9fd1651 100644 --- a/docs/Models/Requests/GetLibraryRequest.md +++ b/docs/Models/Requests/GetLibraryDetailsRequest.md @@ -1,9 +1,9 @@ -# GetLibraryRequest +# GetLibraryDetailsRequest ## Fields | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `SectionId` | *double* | :heavy_check_mark: | the Id of the library to query | 1000 | +| `SectionId` | *double* | :heavy_check_mark: | The id of the library | 15 | | `IncludeDetails` | [IncludeDetails](../../Models/Requests/IncludeDetails.md) | :heavy_minus_sign: | Whether or not to include details for a section (types, filters, and sorts).
Only exists for backwards compatibility, media providers other than the server libraries have it on always.
| | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryResponse.md b/docs/Models/Requests/GetLibraryDetailsResponse.md similarity index 94% rename from docs/Models/Requests/GetLibraryResponse.md rename to docs/Models/Requests/GetLibraryDetailsResponse.md index 166f4a8..d7d0908 100644 --- a/docs/Models/Requests/GetLibraryResponse.md +++ b/docs/Models/Requests/GetLibraryDetailsResponse.md @@ -1,4 +1,4 @@ -# GetLibraryResponse +# GetLibraryDetailsResponse ## Fields @@ -8,4 +8,4 @@ | `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` | [Models.Requests.GetLibraryResponseBody](../../Models/Requests/GetLibraryResponseBody.md) | :heavy_minus_sign: | The details of the library | \ No newline at end of file +| `Object` | [Models.Requests.GetLibraryDetailsResponseBody](../../Models/Requests/GetLibraryDetailsResponseBody.md) | :heavy_minus_sign: | The details of the library | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryDetailsResponseBody.md b/docs/Models/Requests/GetLibraryDetailsResponseBody.md new file mode 100644 index 0000000..12e2979 --- /dev/null +++ b/docs/Models/Requests/GetLibraryDetailsResponseBody.md @@ -0,0 +1,10 @@ +# GetLibraryDetailsResponseBody + +The details of the library + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | +| `MediaContainer` | [GetLibraryDetailsMediaContainer](../../Models/Requests/GetLibraryDetailsMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryDetailsType.md b/docs/Models/Requests/GetLibraryDetailsType.md new file mode 100644 index 0000000..39f8648 --- /dev/null +++ b/docs/Models/Requests/GetLibraryDetailsType.md @@ -0,0 +1,14 @@ +# GetLibraryDetailsType + + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| `Key` | *string* | :heavy_minus_sign: | N/A | /library/sections/1/all?type=1 | +| `Type` | *string* | :heavy_minus_sign: | N/A | movie | +| `Title` | *string* | :heavy_minus_sign: | N/A | Movies | +| `Active` | *bool* | :heavy_minus_sign: | N/A | false | +| `Filter` | List<[GetLibraryDetailsFilter](../../Models/Requests/GetLibraryDetailsFilter.md)> | :heavy_minus_sign: | N/A | | +| `Sort` | List<[Sort](../../Models/Requests/Sort.md)> | :heavy_minus_sign: | N/A | | +| `Field` | List<[Field](../../Models/Requests/Field.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryMediaContainer.md b/docs/Models/Requests/GetLibraryMediaContainer.md deleted file mode 100644 index 94ac5a8..0000000 --- a/docs/Models/Requests/GetLibraryMediaContainer.md +++ /dev/null @@ -1,22 +0,0 @@ -# GetLibraryMediaContainer - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `Size` | *int* | :heavy_minus_sign: | N/A | 29 | -| `AllowSync` | *bool* | :heavy_minus_sign: | N/A | false | -| `Art` | *string* | :heavy_minus_sign: | N/A | /:/resources/movie-fanart.jpg | -| `Content` | *string* | :heavy_minus_sign: | N/A | secondary | -| `Identifier` | *string* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library | -| `LibrarySectionID` | *int* | :heavy_minus_sign: | N/A | 1 | -| `MediaTagPrefix` | *string* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ | -| `MediaTagVersion` | *int* | :heavy_minus_sign: | N/A | 1701731894 | -| `Thumb` | *string* | :heavy_minus_sign: | N/A | /:/resources/movie.png | -| `Title1` | *string* | :heavy_minus_sign: | N/A | Movies | -| `ViewGroup` | *string* | :heavy_minus_sign: | N/A | secondary | -| `ViewMode` | *int* | :heavy_minus_sign: | N/A | 65592 | -| `Directory` | List<[GetLibraryDirectory](../../Models/Requests/GetLibraryDirectory.md)> | :heavy_minus_sign: | N/A | | -| `Type` | List<[GetLibraryType](../../Models/Requests/GetLibraryType.md)> | :heavy_minus_sign: | N/A | | -| `FieldType` | List<[FieldType](../../Models/Requests/FieldType.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryResponseBody.md b/docs/Models/Requests/GetLibraryResponseBody.md deleted file mode 100644 index f1e26c7..0000000 --- a/docs/Models/Requests/GetLibraryResponseBody.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetLibraryResponseBody - -The details of the library - - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | -| `MediaContainer` | [GetLibraryMediaContainer](../../Models/Requests/GetLibraryMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryType.md b/docs/Models/Requests/GetLibraryType.md deleted file mode 100644 index eebeff4..0000000 --- a/docs/Models/Requests/GetLibraryType.md +++ /dev/null @@ -1,14 +0,0 @@ -# GetLibraryType - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | -| `Key` | *string* | :heavy_minus_sign: | N/A | /library/sections/1/all?type=1 | -| `Type` | *string* | :heavy_minus_sign: | N/A | movie | -| `Title` | *string* | :heavy_minus_sign: | N/A | Movies | -| `Active` | *bool* | :heavy_minus_sign: | N/A | false | -| `Filter` | List<[GetLibraryFilter](../../Models/Requests/GetLibraryFilter.md)> | :heavy_minus_sign: | N/A | | -| `Sort` | List<[Sort](../../Models/Requests/Sort.md)> | :heavy_minus_sign: | N/A | | -| `Field` | List<[Field](../../Models/Requests/Field.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Requests/GetRefreshLibraryMetadataRequest.md b/docs/Models/Requests/GetRefreshLibraryMetadataRequest.md new file mode 100644 index 0000000..5fb0dbf --- /dev/null +++ b/docs/Models/Requests/GetRefreshLibraryMetadataRequest.md @@ -0,0 +1,9 @@ +# GetRefreshLibraryMetadataRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | +| `SectionId` | *double* | :heavy_check_mark: | The id of the library | 15 | +| `Force` | [Force](../../Models/Requests/Force.md) | :heavy_minus_sign: | Force the refresh even if the library is already being refreshed. | 0 | \ No newline at end of file diff --git a/docs/Models/Requests/RefreshLibraryResponse.md b/docs/Models/Requests/GetRefreshLibraryMetadataResponse.md similarity index 98% rename from docs/Models/Requests/RefreshLibraryResponse.md rename to docs/Models/Requests/GetRefreshLibraryMetadataResponse.md index 06b8852..4bb12dd 100644 --- a/docs/Models/Requests/RefreshLibraryResponse.md +++ b/docs/Models/Requests/GetRefreshLibraryMetadataResponse.md @@ -1,4 +1,4 @@ -# RefreshLibraryResponse +# GetRefreshLibraryMetadataResponse ## Fields diff --git a/docs/Models/Requests/GetTopWatchedContentMetadata.md b/docs/Models/Requests/GetTopWatchedContentMetadata.md index da04f3e..a947548 100644 --- a/docs/Models/Requests/GetTopWatchedContentMetadata.md +++ b/docs/Models/Requests/GetTopWatchedContentMetadata.md @@ -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<[Models.Requests.User](../../Models/Requests/User.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file +| `User` | List<[User](../../Models/Requests/User.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Requests/PastSubscription.md b/docs/Models/Requests/PastSubscription.md index a1f0968..b45a26e 100644 --- a/docs/Models/Requests/PastSubscription.md +++ b/docs/Models/Requests/PastSubscription.md @@ -3,20 +3,20 @@ ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | -| `Id` | *string* | :heavy_check_mark: | N/A | | -| `Mode` | *string* | :heavy_check_mark: | N/A | | -| `RenewsAt` | *int* | :heavy_check_mark: | Unix epoch datetime | | -| `EndsAt` | *int* | :heavy_check_mark: | Unix epoch datetime | 1556281940 | -| `Canceled` | *bool* | :heavy_minus_sign: | N/A | false | -| `GracePeriod` | *bool* | :heavy_minus_sign: | N/A | false | -| `OnHold` | *bool* | :heavy_minus_sign: | N/A | false | -| `CanReactivate` | *bool* | :heavy_minus_sign: | N/A | false | -| `CanUpgrade` | *bool* | :heavy_minus_sign: | N/A | false | -| `CanDowngrade` | *bool* | :heavy_minus_sign: | N/A | false | -| `CanConvert` | *bool* | :heavy_minus_sign: | N/A | false | -| `Type` | *string* | :heavy_check_mark: | N/A | plexpass | -| `Transfer` | *string* | :heavy_check_mark: | N/A | | -| `State` | [PostSignInState](../../Models/Requests/PostSignInState.md) | :heavy_check_mark: | N/A | ended | -| `Billing` | [Billing](../../Models/Requests/Billing.md) | :heavy_check_mark: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `Id` | *string* | :heavy_check_mark: | N/A | | +| `Mode` | *string* | :heavy_check_mark: | N/A | | +| `RenewsAt` | *int* | :heavy_check_mark: | N/A | 1556281940 | +| `EndsAt` | *int* | :heavy_check_mark: | N/A | 1556281940 | +| `Canceled` | *bool* | :heavy_minus_sign: | N/A | false | +| `GracePeriod` | *bool* | :heavy_minus_sign: | N/A | false | +| `OnHold` | *bool* | :heavy_minus_sign: | N/A | false | +| `CanReactivate` | *bool* | :heavy_minus_sign: | N/A | false | +| `CanUpgrade` | *bool* | :heavy_minus_sign: | N/A | false | +| `CanDowngrade` | *bool* | :heavy_minus_sign: | N/A | false | +| `CanConvert` | *bool* | :heavy_minus_sign: | N/A | false | +| `Type` | *string* | :heavy_check_mark: | N/A | plexpass | +| `Transfer` | *string* | :heavy_check_mark: | N/A | | +| `State` | [PostUsersSignInDataState](../../Models/Requests/PostUsersSignInDataState.md) | :heavy_check_mark: | N/A | ended | +| `Billing` | [Billing](../../Models/Requests/Billing.md) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/Models/Requests/PostSignInServices.md b/docs/Models/Requests/PostSignInServices.md deleted file mode 100644 index ec11a35..0000000 --- a/docs/Models/Requests/PostSignInServices.md +++ /dev/null @@ -1,12 +0,0 @@ -# PostSignInServices - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | -| `Identifier` | *string* | :heavy_check_mark: | N/A | metadata-dev | -| `Endpoint` | *string* | :heavy_check_mark: | N/A | https://epg.provider.plex.tv | -| `Token` | *string* | :heavy_check_mark: | N/A | DjoMtqFAGRL1uVtCyF1dKIorTbShJeqv | -| `Secret` | *string* | :heavy_check_mark: | N/A | | -| `Status` | [PostSignInStatus](../../Models/Requests/PostSignInStatus.md) | :heavy_check_mark: | N/A | online | \ No newline at end of file diff --git a/docs/Models/Requests/PostSignInSubscription.md b/docs/Models/Requests/PostSignInSubscription.md deleted file mode 100644 index 248dac0..0000000 --- a/docs/Models/Requests/PostSignInSubscription.md +++ /dev/null @@ -1,15 +0,0 @@ -# PostSignInSubscription - -If the account’s Plex Pass subscription is active - - -## Fields - -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | -| `Features` | List<[PostSignInFeatures](../../Models/Requests/PostSignInFeatures.md)> | :heavy_minus_sign: | List of features allowed on your Plex Pass subscription | | -| `Active` | *bool* | :heavy_minus_sign: | If the account's Plex Pass subscription is active | true | -| `SubscribedAt` | *string* | :heavy_minus_sign: | Date the account subscribed to Plex Pass | 2021-04-12T18:21:12Z | -| `Status` | [PostSignInUserStatus](../../Models/Requests/PostSignInUserStatus.md) | :heavy_minus_sign: | String representation of subscriptionActive | Inactive | -| `PaymentService` | *string* | :heavy_minus_sign: | Payment service used for your Plex Pass subscription | | -| `Plan` | *string* | :heavy_minus_sign: | Name of Plex Pass subscription plan | | \ No newline at end of file diff --git a/docs/Models/Requests/PostSignInUserSubscription.md b/docs/Models/Requests/PostSignInUserSubscription.md deleted file mode 100644 index b3f2f3f..0000000 --- a/docs/Models/Requests/PostSignInUserSubscription.md +++ /dev/null @@ -1,13 +0,0 @@ -# PostSignInUserSubscription - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | -| `Features` | List<[PostSignInUserFeatures](../../Models/Requests/PostSignInUserFeatures.md)> | :heavy_minus_sign: | List of features allowed on your Plex Pass subscription | | -| `Active` | *bool* | :heavy_minus_sign: | If the account's Plex Pass subscription is active | true | -| `SubscribedAt` | *string* | :heavy_minus_sign: | Date the account subscribed to Plex Pass | 2021-04-12T18:21:12Z | -| `Status` | [PostSignInUserResponseStatus](../../Models/Requests/PostSignInUserResponseStatus.md) | :heavy_minus_sign: | String representation of subscriptionActive | Inactive | -| `PaymentService` | *string* | :heavy_minus_sign: | Payment service used for your Plex Pass subscription | | -| `Plan` | *string* | :heavy_minus_sign: | Name of Plex Pass subscription plan | | \ No newline at end of file diff --git a/docs/Models/Requests/PostSignInUserFeatures.md b/docs/Models/Requests/PostUsersSignInDataAuthenticationFeatures.md similarity index 99% rename from docs/Models/Requests/PostSignInUserFeatures.md rename to docs/Models/Requests/PostUsersSignInDataAuthenticationFeatures.md index 8748c81..5485fdb 100644 --- a/docs/Models/Requests/PostSignInUserFeatures.md +++ b/docs/Models/Requests/PostUsersSignInDataAuthenticationFeatures.md @@ -1,4 +1,4 @@ -# PostSignInUserFeatures +# PostUsersSignInDataAuthenticationFeatures ## Values diff --git a/docs/Models/Requests/PostSignInUserStatus.md b/docs/Models/Requests/PostUsersSignInDataAuthenticationResponseStatus.md similarity index 77% rename from docs/Models/Requests/PostSignInUserStatus.md rename to docs/Models/Requests/PostUsersSignInDataAuthenticationResponseStatus.md index ec2ff41..cad1ab8 100644 --- a/docs/Models/Requests/PostSignInUserStatus.md +++ b/docs/Models/Requests/PostUsersSignInDataAuthenticationResponseStatus.md @@ -1,4 +1,4 @@ -# PostSignInUserStatus +# PostUsersSignInDataAuthenticationResponseStatus String representation of subscriptionActive diff --git a/docs/Models/Requests/PostSignInUserResponseStatus.md b/docs/Models/Requests/PostUsersSignInDataAuthenticationStatus.md similarity index 80% rename from docs/Models/Requests/PostSignInUserResponseStatus.md rename to docs/Models/Requests/PostUsersSignInDataAuthenticationStatus.md index fcbb3b2..67f6e0c 100644 --- a/docs/Models/Requests/PostSignInUserResponseStatus.md +++ b/docs/Models/Requests/PostUsersSignInDataAuthenticationStatus.md @@ -1,4 +1,4 @@ -# PostSignInUserResponseStatus +# PostUsersSignInDataAuthenticationStatus String representation of subscriptionActive diff --git a/docs/Models/Requests/PostUsersSignInDataAuthenticationSubscription.md b/docs/Models/Requests/PostUsersSignInDataAuthenticationSubscription.md new file mode 100644 index 0000000..c100c1a --- /dev/null +++ b/docs/Models/Requests/PostUsersSignInDataAuthenticationSubscription.md @@ -0,0 +1,13 @@ +# PostUsersSignInDataAuthenticationSubscription + + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| `Features` | List<[PostUsersSignInDataAuthenticationFeatures](../../Models/Requests/PostUsersSignInDataAuthenticationFeatures.md)> | :heavy_minus_sign: | List of features allowed on your Plex Pass subscription | | +| `Active` | *bool* | :heavy_minus_sign: | If the account's Plex Pass subscription is active | true | +| `SubscribedAt` | *string* | :heavy_minus_sign: | Date the account subscribed to Plex Pass | 2021-04-12T18:21:12Z | +| `Status` | [PostUsersSignInDataAuthenticationResponseStatus](../../Models/Requests/PostUsersSignInDataAuthenticationResponseStatus.md) | :heavy_minus_sign: | String representation of subscriptionActive | Inactive | +| `PaymentService` | *string* | :heavy_minus_sign: | Payment service used for your Plex Pass subscription | | +| `Plan` | *string* | :heavy_minus_sign: | Name of Plex Pass subscription plan | | \ No newline at end of file diff --git a/docs/Models/Requests/PostSignInAutoSelectSubtitle.md b/docs/Models/Requests/PostUsersSignInDataAutoSelectSubtitle.md similarity index 83% rename from docs/Models/Requests/PostSignInAutoSelectSubtitle.md rename to docs/Models/Requests/PostUsersSignInDataAutoSelectSubtitle.md index b9d04dd..4e22309 100644 --- a/docs/Models/Requests/PostSignInAutoSelectSubtitle.md +++ b/docs/Models/Requests/PostUsersSignInDataAutoSelectSubtitle.md @@ -1,4 +1,4 @@ -# PostSignInAutoSelectSubtitle +# PostUsersSignInDataAutoSelectSubtitle The auto-select subtitle mode (0 = Manually selected, 1 = Shown with foreign audio, 2 = Always enabled) diff --git a/docs/Models/Requests/PostSignInDefaultSubtitleAccessibility.md b/docs/Models/Requests/PostUsersSignInDataDefaultSubtitleAccessibility.md similarity index 84% rename from docs/Models/Requests/PostSignInDefaultSubtitleAccessibility.md rename to docs/Models/Requests/PostUsersSignInDataDefaultSubtitleAccessibility.md index 4da92ae..3986a78 100644 --- a/docs/Models/Requests/PostSignInDefaultSubtitleAccessibility.md +++ b/docs/Models/Requests/PostUsersSignInDataDefaultSubtitleAccessibility.md @@ -1,4 +1,4 @@ -# PostSignInDefaultSubtitleAccessibility +# PostUsersSignInDataDefaultSubtitleAccessibility The subtitles for the deaf or hard-of-hearing (SDH) searches mode (0 = Prefer non-SDH subtitles, 1 = Prefer SDH subtitles, 2 = Only show SDH subtitles, 3 = Only shown non-SDH subtitles) diff --git a/docs/Models/Requests/PostSignInDefaultSubtitleForced.md b/docs/Models/Requests/PostUsersSignInDataDefaultSubtitleForced.md similarity index 85% rename from docs/Models/Requests/PostSignInDefaultSubtitleForced.md rename to docs/Models/Requests/PostUsersSignInDataDefaultSubtitleForced.md index 907b53f..4106d94 100644 --- a/docs/Models/Requests/PostSignInDefaultSubtitleForced.md +++ b/docs/Models/Requests/PostUsersSignInDataDefaultSubtitleForced.md @@ -1,4 +1,4 @@ -# PostSignInDefaultSubtitleForced +# PostUsersSignInDataDefaultSubtitleForced The forced subtitles searches mode (0 = Prefer non-forced subtitles, 1 = Prefer forced subtitles, 2 = Only show forced subtitles, 3 = Only show non-forced subtitles) diff --git a/docs/Models/Requests/PostSignInFeatures.md b/docs/Models/Requests/PostUsersSignInDataFeatures.md similarity index 99% rename from docs/Models/Requests/PostSignInFeatures.md rename to docs/Models/Requests/PostUsersSignInDataFeatures.md index 211003d..18cab23 100644 --- a/docs/Models/Requests/PostSignInFeatures.md +++ b/docs/Models/Requests/PostUsersSignInDataFeatures.md @@ -1,4 +1,4 @@ -# PostSignInFeatures +# PostUsersSignInDataFeatures ## Values diff --git a/docs/Models/Requests/PostSignInMailingListStatus.md b/docs/Models/Requests/PostUsersSignInDataMailingListStatus.md similarity index 82% rename from docs/Models/Requests/PostSignInMailingListStatus.md rename to docs/Models/Requests/PostUsersSignInDataMailingListStatus.md index 8892293..a0a2def 100644 --- a/docs/Models/Requests/PostSignInMailingListStatus.md +++ b/docs/Models/Requests/PostUsersSignInDataMailingListStatus.md @@ -1,4 +1,4 @@ -# PostSignInMailingListStatus +# PostUsersSignInDataMailingListStatus Your current mailing list status diff --git a/docs/Models/Requests/PostSignInMediaReviewsVisibility.md b/docs/Models/Requests/PostUsersSignInDataMediaReviewsVisibility.md similarity index 67% rename from docs/Models/Requests/PostSignInMediaReviewsVisibility.md rename to docs/Models/Requests/PostUsersSignInDataMediaReviewsVisibility.md index eca590f..01aff0f 100644 --- a/docs/Models/Requests/PostSignInMediaReviewsVisibility.md +++ b/docs/Models/Requests/PostUsersSignInDataMediaReviewsVisibility.md @@ -1,4 +1,4 @@ -# PostSignInMediaReviewsVisibility +# PostUsersSignInDataMediaReviewsVisibility ## Values diff --git a/docs/Models/Requests/PostSignInRequest.md b/docs/Models/Requests/PostUsersSignInDataRequest.md similarity index 93% rename from docs/Models/Requests/PostSignInRequest.md rename to docs/Models/Requests/PostUsersSignInDataRequest.md index cae742d..48b4c03 100644 --- a/docs/Models/Requests/PostSignInRequest.md +++ b/docs/Models/Requests/PostUsersSignInDataRequest.md @@ -1,4 +1,4 @@ -# PostSignInRequest +# PostUsersSignInDataRequest ## Fields @@ -6,4 +6,4 @@ | Field | Type | Required | Description | Example | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `XPlexClientIdentifier` | *string* | :heavy_minus_sign: | The unique identifier for the client application
This is used to track the client application and its usage
(UUID, serial number, or other number unique per device)
| Postman | -| `RequestBody` | [PostSignInRequestBody](../../Models/Requests/PostSignInRequestBody.md) | :heavy_minus_sign: | Login credentials | | \ No newline at end of file +| `RequestBody` | [PostUsersSignInDataRequestBody](../../Models/Requests/PostUsersSignInDataRequestBody.md) | :heavy_minus_sign: | Login credentials | | \ No newline at end of file diff --git a/docs/Models/Requests/PostSignInRequestBody.md b/docs/Models/Requests/PostUsersSignInDataRequestBody.md similarity index 94% rename from docs/Models/Requests/PostSignInRequestBody.md rename to docs/Models/Requests/PostUsersSignInDataRequestBody.md index 2e7dd03..49fad9f 100644 --- a/docs/Models/Requests/PostSignInRequestBody.md +++ b/docs/Models/Requests/PostUsersSignInDataRequestBody.md @@ -1,4 +1,4 @@ -# PostSignInRequestBody +# PostUsersSignInDataRequestBody Login credentials diff --git a/docs/Models/Requests/PostSignInResponse.md b/docs/Models/Requests/PostUsersSignInDataResponse.md similarity index 99% rename from docs/Models/Requests/PostSignInResponse.md rename to docs/Models/Requests/PostUsersSignInDataResponse.md index 6eed173..4693106 100644 --- a/docs/Models/Requests/PostSignInResponse.md +++ b/docs/Models/Requests/PostUsersSignInDataResponse.md @@ -1,4 +1,4 @@ -# PostSignInResponse +# PostUsersSignInDataResponse ## Fields @@ -8,4 +8,4 @@ | `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 | | -| `UserPlexAccount` | [PostSignInUserPlexAccount](../../Models/Requests/PostSignInUserPlexAccount.md) | :heavy_minus_sign: | Returns the user account data with a valid auth token | {
"adsConsent": true,
"adsConsentReminderAt": "2019-08-24T14:15:22Z",
"adsConsentSetAt": "2019-08-24T14:15:22Z",
"anonymous": false,
"authToken": "CxoUzBTSV5hsxjTpFKaf",
"backupCodesCreated": false,
"confirmed": false,
"country": "US",
"email": "username@email.com",
"emailOnlyAuth": false,
"experimentalFeatures": false,
"friendlyName": "friendlyUsername",
"entitlements": [],
"guest": false,
"hasPassword": true,
"home": false,
"homeAdmin": false,
"homeSize": 1,
"id": 13692262,
"joinedAt": 1721154902,
"locale": null,
"mailingListActive": false,
"mailingListStatus": "subscribed",
"maxHomeSize": 15,
"pastSubscriptions": [
{
"id": "string",
"mode": "string",
"renewsAt": "string",
"endsAt": "1556281940",
"canceled": "0",
"gracePeriod": "0",
"onHold": "0",
"canReactivate": "0",
"canUpgrade": "0",
"canDowngrade": "0",
"canConvert": "0",
"type": "plexpass",
"transfer": "string",
"state": "ended",
"billing": [
{
"internalPaymentMethod": "string",
"paymentMethodId": "string"
}
]
}
],
"pin": "string",
"profile": [
{
"autoSelectAudio": true,
"defaultAudioLanguage": "ja",
"defaultSubtitleLanguage": "en",
"autoSelectSubtitle": 1,
"defaultSubtitleAccessibility": 1,
"defaultSubtitleForced": 0,
"watchedIndicator": 1,
"mediaReviewsVisibility": 0
}
],
"protected": false,
"rememberExpiresAt": 1722364046,
"restricted": false,
"roles": [
"string"
],
"scrobbleTypes": "",
"services": [
{
"identifier": "metadata-dev",
"endpoint": "https://epg.provider.plex.tv",
"token": "DjoMtqFAGRL1uVtCyF1dKIorTbShJeqv",
"secret": "string",
"status": "online"
}
],
"subscription": {
"features": [
"Android - Dolby Vision"
],
"active": true,
"subscribedAt": "2021-04-12T18:21:12Z",
"status": "Inactive",
"paymentService": "string",
"plan": "string"
},
"subscriptionDescription": "string",
"subscriptions": [
{
"features": [
"Android - Dolby Vision"
],
"active": true,
"subscribedAt": "2021-04-12T18:21:12Z",
"status": "Inactive",
"paymentService": "string",
"plan": "string"
}
],
"thumb": "https://plex.tv/users/a4f43c1ebfde43a5/avatar?c=8372075101",
"title": "UsernameTitle",
"trials": [
{}
],
"twoFactorEnabled": false,
"username": "Username",
"uuid": "dae343c1f45beb4f"
} | \ No newline at end of file +| `UserPlexAccount` | [PostUsersSignInDataUserPlexAccount](../../Models/Requests/PostUsersSignInDataUserPlexAccount.md) | :heavy_minus_sign: | Returns the user account data with a valid auth token | {
"adsConsent": true,
"adsConsentReminderAt": "2019-08-24T14:15:22Z",
"adsConsentSetAt": "2019-08-24T14:15:22Z",
"anonymous": false,
"authToken": "CxoUzBTSV5hsxjTpFKaf",
"backupCodesCreated": false,
"confirmed": false,
"country": "US",
"email": "username@email.com",
"emailOnlyAuth": false,
"experimentalFeatures": false,
"friendlyName": "friendlyUsername",
"entitlements": [],
"guest": false,
"hasPassword": true,
"home": false,
"homeAdmin": false,
"homeSize": 1,
"id": 13692262,
"joinedAt": 1721154902,
"locale": null,
"mailingListActive": false,
"mailingListStatus": "subscribed",
"maxHomeSize": 15,
"pastSubscriptions": [
{
"id": "string",
"mode": "string",
"renewsAt": "string",
"endsAt": "1556281940",
"canceled": "0",
"gracePeriod": "0",
"onHold": "0",
"canReactivate": "0",
"canUpgrade": "0",
"canDowngrade": "0",
"canConvert": "0",
"type": "plexpass",
"transfer": "string",
"state": "ended",
"billing": [
{
"internalPaymentMethod": "string",
"paymentMethodId": "string"
}
]
}
],
"pin": "string",
"profile": [
{
"autoSelectAudio": true,
"defaultAudioLanguage": "ja",
"defaultSubtitleLanguage": "en",
"autoSelectSubtitle": 1,
"defaultSubtitleAccessibility": 1,
"defaultSubtitleForced": 0,
"watchedIndicator": 1,
"mediaReviewsVisibility": 0
}
],
"protected": false,
"rememberExpiresAt": 1722364046,
"restricted": false,
"roles": [
"string"
],
"scrobbleTypes": "",
"services": [
{
"identifier": "metadata-dev",
"endpoint": "https://epg.provider.plex.tv",
"token": "DjoMtqFAGRL1uVtCyF1dKIorTbShJeqv",
"secret": "string",
"status": "online"
}
],
"subscription": {
"features": [
"Android - Dolby Vision"
],
"active": true,
"subscribedAt": "2021-04-12T18:21:12Z",
"status": "Inactive",
"paymentService": "string",
"plan": "string"
},
"subscriptionDescription": "string",
"subscriptions": [
{
"features": [
"Android - Dolby Vision"
],
"active": true,
"subscribedAt": "2021-04-12T18:21:12Z",
"status": "Inactive",
"paymentService": "string",
"plan": "string"
}
],
"thumb": "https://plex.tv/users/a4f43c1ebfde43a5/avatar?c=8372075101",
"title": "UsernameTitle",
"trials": [
{}
],
"twoFactorEnabled": false,
"username": "Username",
"uuid": "dae343c1f45beb4f"
} | \ No newline at end of file diff --git a/docs/Models/Requests/PostUsersSignInDataServices.md b/docs/Models/Requests/PostUsersSignInDataServices.md new file mode 100644 index 0000000..dd84dbf --- /dev/null +++ b/docs/Models/Requests/PostUsersSignInDataServices.md @@ -0,0 +1,12 @@ +# PostUsersSignInDataServices + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | +| `Identifier` | *string* | :heavy_check_mark: | N/A | metadata-dev | +| `Endpoint` | *string* | :heavy_check_mark: | N/A | https://epg.provider.plex.tv | +| `Token` | *string* | :heavy_check_mark: | N/A | DjoMtqFAGRL1uVtCyF1dKIorTbShJeqv | +| `Secret` | *string* | :heavy_check_mark: | N/A | | +| `Status` | [PostUsersSignInDataStatus](../../Models/Requests/PostUsersSignInDataStatus.md) | :heavy_check_mark: | N/A | online | \ No newline at end of file diff --git a/docs/Models/Requests/PostSignInState.md b/docs/Models/Requests/PostUsersSignInDataState.md similarity index 74% rename from docs/Models/Requests/PostSignInState.md rename to docs/Models/Requests/PostUsersSignInDataState.md index aa3070c..3801e7b 100644 --- a/docs/Models/Requests/PostSignInState.md +++ b/docs/Models/Requests/PostUsersSignInDataState.md @@ -1,4 +1,4 @@ -# PostSignInState +# PostUsersSignInDataState ## Values diff --git a/docs/Models/Requests/PostSignInStatus.md b/docs/Models/Requests/PostUsersSignInDataStatus.md similarity index 80% rename from docs/Models/Requests/PostSignInStatus.md rename to docs/Models/Requests/PostUsersSignInDataStatus.md index ddbe216..d7c49a1 100644 --- a/docs/Models/Requests/PostSignInStatus.md +++ b/docs/Models/Requests/PostUsersSignInDataStatus.md @@ -1,4 +1,4 @@ -# PostSignInStatus +# PostUsersSignInDataStatus ## Values diff --git a/docs/Models/Requests/PostUsersSignInDataSubscription.md b/docs/Models/Requests/PostUsersSignInDataSubscription.md new file mode 100644 index 0000000..d7563dd --- /dev/null +++ b/docs/Models/Requests/PostUsersSignInDataSubscription.md @@ -0,0 +1,15 @@ +# PostUsersSignInDataSubscription + +If the account’s Plex Pass subscription is active + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | +| `Features` | List<[PostUsersSignInDataFeatures](../../Models/Requests/PostUsersSignInDataFeatures.md)> | :heavy_minus_sign: | List of features allowed on your Plex Pass subscription | | +| `Active` | *bool* | :heavy_minus_sign: | If the account's Plex Pass subscription is active | true | +| `SubscribedAt` | *string* | :heavy_minus_sign: | Date the account subscribed to Plex Pass | 2021-04-12T18:21:12Z | +| `Status` | [PostUsersSignInDataAuthenticationStatus](../../Models/Requests/PostUsersSignInDataAuthenticationStatus.md) | :heavy_minus_sign: | String representation of subscriptionActive | Inactive | +| `PaymentService` | *string* | :heavy_minus_sign: | Payment service used for your Plex Pass subscription | | +| `Plan` | *string* | :heavy_minus_sign: | Name of Plex Pass subscription plan | | \ No newline at end of file diff --git a/docs/Models/Requests/PostSignInUserPlexAccount.md b/docs/Models/Requests/PostUsersSignInDataUserPlexAccount.md similarity index 97% rename from docs/Models/Requests/PostSignInUserPlexAccount.md rename to docs/Models/Requests/PostUsersSignInDataUserPlexAccount.md index a4b5b46..77fa5fd 100644 --- a/docs/Models/Requests/PostSignInUserPlexAccount.md +++ b/docs/Models/Requests/PostUsersSignInDataUserPlexAccount.md @@ -1,4 +1,4 @@ -# PostSignInUserPlexAccount +# PostUsersSignInDataUserPlexAccount Returns the user account data with a valid auth token @@ -29,19 +29,19 @@ Returns the user account data with a valid auth token | `JoinedAt` | *int* | :heavy_check_mark: | Unix epoch datetime the account joined Plex | 1721154902 | | `Locale` | *string* | :heavy_check_mark: | The account locale | | | `MailingListActive` | *bool* | :heavy_minus_sign: | If you are subscribed to the Plex newsletter | | -| `MailingListStatus` | [PostSignInMailingListStatus](../../Models/Requests/PostSignInMailingListStatus.md) | :heavy_check_mark: | Your current mailing list status | | +| `MailingListStatus` | [PostUsersSignInDataMailingListStatus](../../Models/Requests/PostUsersSignInDataMailingListStatus.md) | :heavy_check_mark: | Your current mailing list status | | | `MaxHomeSize` | *int* | :heavy_check_mark: | The maximum number of accounts allowed in the Plex Home | 15 | | ~~`Pin`~~ | *string* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

[Might be removed] The hashed Plex Home PIN | | -| `Profile` | [PostSignInUserProfile](../../Models/Requests/PostSignInUserProfile.md) | :heavy_check_mark: | N/A | | +| `Profile` | [PostUsersSignInDataUserProfile](../../Models/Requests/PostUsersSignInDataUserProfile.md) | :heavy_check_mark: | N/A | | | `Protected` | *bool* | :heavy_minus_sign: | If the account has a Plex Home PIN enabled | | | `RememberExpiresAt` | *int* | :heavy_check_mark: | Unix epoch datetime the authtoken expires | 1722364046 | | `Restricted` | *bool* | :heavy_minus_sign: | If the account is a Plex Home managed user | | | `Roles` | List<*string*> | :heavy_minus_sign: | [Might be removed] List of account roles. Plexpass membership listed here | | | `ScrobbleTypes` | *string* | :heavy_check_mark: | Unknown | | -| `Services` | List<[PostSignInServices](../../Models/Requests/PostSignInServices.md)> | :heavy_check_mark: | N/A | | -| `Subscription` | [PostSignInSubscription](../../Models/Requests/PostSignInSubscription.md) | :heavy_check_mark: | If the account’s Plex Pass subscription is active | | +| `Services` | List<[PostUsersSignInDataServices](../../Models/Requests/PostUsersSignInDataServices.md)> | :heavy_check_mark: | N/A | | +| `Subscription` | [PostUsersSignInDataSubscription](../../Models/Requests/PostUsersSignInDataSubscription.md) | :heavy_check_mark: | If the account’s Plex Pass subscription is active | | | `SubscriptionDescription` | *string* | :heavy_check_mark: | Description of the Plex Pass subscription | | -| `Subscriptions` | List<[PostSignInUserSubscription](../../Models/Requests/PostSignInUserSubscription.md)> | :heavy_check_mark: | N/A | | +| `Subscriptions` | List<[PostUsersSignInDataAuthenticationSubscription](../../Models/Requests/PostUsersSignInDataAuthenticationSubscription.md)> | :heavy_check_mark: | N/A | | | `Thumb` | *string* | :heavy_check_mark: | URL of the account thumbnail | https://plex.tv/users/a4f43c1ebfde43a5/avatar?c=8372075101 | | `Title` | *string* | :heavy_check_mark: | The title of the account (username or friendly name) | UsernameTitle | | `TwoFactorEnabled` | *bool* | :heavy_minus_sign: | If two-factor authentication is enabled | | diff --git a/docs/Models/Requests/PostSignInUserProfile.md b/docs/Models/Requests/PostUsersSignInDataUserProfile.md similarity index 92% rename from docs/Models/Requests/PostSignInUserProfile.md rename to docs/Models/Requests/PostUsersSignInDataUserProfile.md index 3461af7..720f1e3 100644 --- a/docs/Models/Requests/PostSignInUserProfile.md +++ b/docs/Models/Requests/PostUsersSignInDataUserProfile.md @@ -1,4 +1,4 @@ -# PostSignInUserProfile +# PostUsersSignInDataUserProfile ## Fields @@ -8,8 +8,8 @@ | `AutoSelectAudio` | *bool* | :heavy_minus_sign: | If the account has automatically select audio and subtitle tracks enabled | true | | `DefaultAudioLanguage` | *string* | :heavy_check_mark: | The preferred audio language for the account | ja | | `DefaultSubtitleLanguage` | *string* | :heavy_check_mark: | The preferred subtitle language for the account | en | -| `AutoSelectSubtitle` | [PostSignInAutoSelectSubtitle](../../Models/Requests/PostSignInAutoSelectSubtitle.md) | :heavy_minus_sign: | The auto-select subtitle mode (0 = Manually selected, 1 = Shown with foreign audio, 2 = Always enabled) | 1 | -| `DefaultSubtitleAccessibility` | [PostSignInDefaultSubtitleAccessibility](../../Models/Requests/PostSignInDefaultSubtitleAccessibility.md) | :heavy_minus_sign: | The subtitles for the deaf or hard-of-hearing (SDH) searches mode (0 = Prefer non-SDH subtitles, 1 = Prefer SDH subtitles, 2 = Only show SDH subtitles, 3 = Only shown non-SDH subtitles) | 1 | -| `DefaultSubtitleForced` | [PostSignInDefaultSubtitleForced](../../Models/Requests/PostSignInDefaultSubtitleForced.md) | :heavy_minus_sign: | The forced subtitles searches mode (0 = Prefer non-forced subtitles, 1 = Prefer forced subtitles, 2 = Only show forced subtitles, 3 = Only show non-forced subtitles) | 0 | -| `WatchedIndicator` | [PostSignInWatchedIndicator](../../Models/Requests/PostSignInWatchedIndicator.md) | :heavy_minus_sign: | N/A | 1 | -| `MediaReviewsVisibility` | [PostSignInMediaReviewsVisibility](../../Models/Requests/PostSignInMediaReviewsVisibility.md) | :heavy_minus_sign: | N/A | 0 | \ No newline at end of file +| `AutoSelectSubtitle` | [PostUsersSignInDataAutoSelectSubtitle](../../Models/Requests/PostUsersSignInDataAutoSelectSubtitle.md) | :heavy_minus_sign: | The auto-select subtitle mode (0 = Manually selected, 1 = Shown with foreign audio, 2 = Always enabled) | 1 | +| `DefaultSubtitleAccessibility` | [PostUsersSignInDataDefaultSubtitleAccessibility](../../Models/Requests/PostUsersSignInDataDefaultSubtitleAccessibility.md) | :heavy_minus_sign: | The subtitles for the deaf or hard-of-hearing (SDH) searches mode (0 = Prefer non-SDH subtitles, 1 = Prefer SDH subtitles, 2 = Only show SDH subtitles, 3 = Only shown non-SDH subtitles) | 1 | +| `DefaultSubtitleForced` | [PostUsersSignInDataDefaultSubtitleForced](../../Models/Requests/PostUsersSignInDataDefaultSubtitleForced.md) | :heavy_minus_sign: | The forced subtitles searches mode (0 = Prefer non-forced subtitles, 1 = Prefer forced subtitles, 2 = Only show forced subtitles, 3 = Only show non-forced subtitles) | 0 | +| `WatchedIndicator` | [PostUsersSignInDataWatchedIndicator](../../Models/Requests/PostUsersSignInDataWatchedIndicator.md) | :heavy_minus_sign: | N/A | 1 | +| `MediaReviewsVisibility` | [PostUsersSignInDataMediaReviewsVisibility](../../Models/Requests/PostUsersSignInDataMediaReviewsVisibility.md) | :heavy_minus_sign: | N/A | 0 | \ No newline at end of file diff --git a/docs/Models/Requests/PostSignInWatchedIndicator.md b/docs/Models/Requests/PostUsersSignInDataWatchedIndicator.md similarity index 70% rename from docs/Models/Requests/PostSignInWatchedIndicator.md rename to docs/Models/Requests/PostUsersSignInDataWatchedIndicator.md index 930d0ac..9cce93e 100644 --- a/docs/Models/Requests/PostSignInWatchedIndicator.md +++ b/docs/Models/Requests/PostUsersSignInDataWatchedIndicator.md @@ -1,4 +1,4 @@ -# PostSignInWatchedIndicator +# PostUsersSignInDataWatchedIndicator ## Values diff --git a/docs/Models/Requests/QueryParamForce.md b/docs/Models/Requests/QueryParamForce.md new file mode 100644 index 0000000..703306e --- /dev/null +++ b/docs/Models/Requests/QueryParamForce.md @@ -0,0 +1,15 @@ +# QueryParamForce + +Force overwriting of duplicate playlists. +By default, a playlist file uploaded with the same path will overwrite the existing playlist. +The `force` argument is used to disable overwriting. +If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded. + + + +## Values + +| Name | Value | +| ------ | ------ | +| `Zero` | 0 | +| `One` | 1 | \ No newline at end of file diff --git a/docs/Models/Requests/RefreshLibraryRequest.md b/docs/Models/Requests/RefreshLibraryRequest.md deleted file mode 100644 index 13cb4fe..0000000 --- a/docs/Models/Requests/RefreshLibraryRequest.md +++ /dev/null @@ -1,8 +0,0 @@ -# RefreshLibraryRequest - - -## Fields - -| Field | Type | Required | Description | -| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | -| `SectionId` | *double* | :heavy_check_mark: | the Id of the library to refresh | \ No newline at end of file diff --git a/docs/Models/Requests/SearchLibraryRequest.md b/docs/Models/Requests/SearchLibraryRequest.md index 83a6748..f27c306 100644 --- a/docs/Models/Requests/SearchLibraryRequest.md +++ b/docs/Models/Requests/SearchLibraryRequest.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | -| ------------------------------------- | ------------------------------------- | ------------------------------------- | ------------------------------------- | -| `SectionId` | *long* | :heavy_check_mark: | the Id of the library to query | -| `Type` | [Type](../../Models/Requests/Type.md) | :heavy_check_mark: | Plex content type to search for | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | +| `SectionId` | *long* | :heavy_check_mark: | the Id of the library to query | +| `Type` | [Models.Requests.Type](../../Models/Requests/Type.md) | :heavy_check_mark: | Plex content type to search for | \ No newline at end of file diff --git a/docs/Models/Requests/UploadPlaylistRequest.md b/docs/Models/Requests/UploadPlaylistRequest.md index 2bcb5c4..2d7afda 100644 --- a/docs/Models/Requests/UploadPlaylistRequest.md +++ b/docs/Models/Requests/UploadPlaylistRequest.md @@ -6,4 +6,4 @@ | Field | Type | Required | Description | Example | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `Path` | *string* | :heavy_check_mark: | absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server.
If the `path` argument is a directory, that path will be scanned for playlist files to be processed.
Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it.
The GUID of each playlist is based on the filename.
If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it.
The GUID of each playlist is based on the filename.
| /home/barkley/playlist.m3u | -| `Force` | [Force](../../Models/Requests/Force.md) | :heavy_check_mark: | Force overwriting of duplicate playlists.
By default, a playlist file uploaded with the same path will overwrite the existing playlist.
The `force` argument is used to disable overwriting.
If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.
| | \ No newline at end of file +| `Force` | [QueryParamForce](../../Models/Requests/QueryParamForce.md) | :heavy_check_mark: | Force overwriting of duplicate playlists.
By default, a playlist file uploaded with the same path will overwrite the existing playlist.
The `force` argument is used to disable overwriting.
If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.
| | \ No newline at end of file diff --git a/docs/sdks/activities/README.md b/docs/sdks/activities/README.md index fb4ab38..0156f58 100644 --- a/docs/sdks/activities/README.md +++ b/docs/sdks/activities/README.md @@ -29,7 +29,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Activities.GetServerActivitiesAsync(); @@ -61,7 +62,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Activities.CancelServerActivitiesAsync(activityUUID: "25b71ed5-0f9d-461c-baa7-d404e9e10d3e"); diff --git a/docs/sdks/authentication/README.md b/docs/sdks/authentication/README.md index 7af7a5d..282ccf7 100644 --- a/docs/sdks/authentication/README.md +++ b/docs/sdks/authentication/README.md @@ -10,6 +10,7 @@ API Calls regarding authentication for Plex Media Server * [GetTransientToken](#gettransienttoken) - Get a Transient Token. * [GetSourceConnectionInformation](#getsourceconnectioninformation) - Get Source Connection Information +* [PostUsersSignInData](#postuserssignindata) - Get User SignIn Data ## GetTransientToken @@ -25,11 +26,13 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Authentication.GetTransientTokenAsync( type: PlexAPI.Models.Requests.GetTransientTokenQueryParamType.Delegation, - scope: PlexAPI.Models.Requests.Scope.All); + scope: PlexAPI.Models.Requests.Scope.All +); // handle response ``` @@ -68,7 +71,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Authentication.GetSourceConnectionInformationAsync(source: "server://client-identifier"); @@ -91,3 +95,47 @@ var res = await sdk.Authentication.GetSourceConnectionInformationAsync(source: " | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | | PlexAPI.Models.Errors.GetSourceConnectionInformationResponseBody | 401 | application/json | | PlexAPI.Models.Errors.SDKException | 4xx-5xx | */* | + + +## PostUsersSignInData + +Sign in user with username and password and return user data with Plex authentication token + +### Example Usage + +```csharp +using PlexAPI; +using PlexAPI.Models.Requests; +using PlexAPI.Models.Components; + +var sdk = new PlexAPISDK(xPlexClientIdentifier: "Postman"); + +var res = await sdk.Authentication.PostUsersSignInDataAsync( + xPlexClientIdentifier: "Postman", + requestBody: new PostUsersSignInDataRequestBody() { + Login = "username@email.com", + Password = "password123", + } +); + +// handle response +``` + +### Parameters + +| Parameter | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `XPlexClientIdentifier` | *string* | :heavy_minus_sign: | The unique identifier for the client application
This is used to track the client application and its usage
(UUID, serial number, or other number unique per device)
| Postman | +| `RequestBody` | [PostUsersSignInDataRequestBody](../../Models/Requests/PostUsersSignInDataRequestBody.md) | :heavy_minus_sign: | Login credentials | | +| `serverURL` | *string* | :heavy_minus_sign: | An optional server URL to use. | http://localhost:8080 | + +### Response + +**[PostUsersSignInDataResponse](../../Models/Requests/PostUsersSignInDataResponse.md)** + +### Errors + +| Error Object | Status Code | Content Type | +| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | +| PlexAPI.Models.Errors.PostUsersSignInDataResponseBody | 401 | application/json | +| PlexAPI.Models.Errors.SDKException | 4xx-5xx | */* | diff --git a/docs/sdks/butler/README.md b/docs/sdks/butler/README.md index 9292ae4..2ab5491 100644 --- a/docs/sdks/butler/README.md +++ b/docs/sdks/butler/README.md @@ -26,7 +26,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Butler.GetButlerTasksAsync(); @@ -62,7 +63,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Butler.StartAllTasksAsync(); @@ -94,7 +96,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Butler.StopAllTasksAsync(); @@ -131,7 +134,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Butler.StartTaskAsync(taskName: PlexAPI.Models.Requests.TaskName.CleanOldBundles); @@ -170,7 +174,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Butler.StopTaskAsync(taskName: PlexAPI.Models.Requests.PathParamTaskName.BackupDatabase); diff --git a/docs/sdks/hubs/README.md b/docs/sdks/hubs/README.md index 8f79bcd..80a85fb 100644 --- a/docs/sdks/hubs/README.md +++ b/docs/sdks/hubs/README.md @@ -24,11 +24,13 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Hubs.GetGlobalHubsAsync( count: 1262.49D, - onlyTransient: PlexAPI.Models.Requests.OnlyTransient.One); + onlyTransient: PlexAPI.Models.Requests.OnlyTransient.One +); // handle response ``` @@ -66,12 +68,14 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Hubs.GetLibraryHubsAsync( sectionId: 6728.76D, count: 9010.22D, - onlyTransient: PlexAPI.Models.Requests.QueryParamOnlyTransient.Zero); + onlyTransient: PlexAPI.Models.Requests.QueryParamOnlyTransient.Zero +); // handle response ``` diff --git a/docs/sdks/library/README.md b/docs/sdks/library/README.md index b8f4929..dd7d7fb 100644 --- a/docs/sdks/library/README.md +++ b/docs/sdks/library/README.md @@ -10,11 +10,11 @@ API Calls interacting with Plex Media Server Libraries * [GetFileHash](#getfilehash) - Get Hash Value * [GetRecentlyAdded](#getrecentlyadded) - Get Recently Added -* [GetLibraries](#getlibraries) - Get All Libraries -* [GetLibrary](#getlibrary) - Get Library Details +* [GetAllLibraries](#getalllibraries) - Get All Libraries +* [GetLibraryDetails](#getlibrarydetails) - Get Library Details * [DeleteLibrary](#deletelibrary) - Delete Library Section * [GetLibraryItems](#getlibraryitems) - Get Library Items -* [RefreshLibrary](#refreshlibrary) - Refresh Library +* [GetRefreshLibraryMetadata](#getrefreshlibrarymetadata) - Refresh Metadata Of The Library * [SearchLibrary](#searchlibrary) - Search Library * [GetMetadata](#getmetadata) - Get Items Metadata * [GetMetadataChildren](#getmetadatachildren) - Get Items Children @@ -34,11 +34,13 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Library.GetFileHashAsync( url: "file://C:\Image.png&type=13", - type: 4462.17D); + type: 4462.17D +); // handle response ``` @@ -75,7 +77,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Library.GetRecentlyAddedAsync(); @@ -94,7 +97,7 @@ var res = await sdk.Library.GetRecentlyAddedAsync(); | PlexAPI.Models.Errors.SDKException | 4xx-5xx | */* | -## GetLibraries +## GetAllLibraries A library section (commonly referred to as just a library) is a collection of media. Libraries are typed, and depending on their type provide either a flat or a hierarchical view of the media. @@ -112,26 +115,27 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); -var res = await sdk.Library.GetLibrariesAsync(); +var res = await sdk.Library.GetAllLibrariesAsync(); // handle response ``` ### Response -**[GetLibrariesResponse](../../Models/Requests/GetLibrariesResponse.md)** +**[GetAllLibrariesResponse](../../Models/Requests/GetAllLibrariesResponse.md)** ### Errors -| Error Object | Status Code | Content Type | -| ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | -| PlexAPI.Models.Errors.GetLibrariesResponseBody | 401 | application/json | -| PlexAPI.Models.Errors.SDKException | 4xx-5xx | */* | +| Error Object | Status Code | Content Type | +| ------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------- | +| PlexAPI.Models.Errors.GetAllLibrariesResponseBody | 401 | application/json | +| PlexAPI.Models.Errors.SDKException | 4xx-5xx | */* | -## GetLibrary +## GetLibraryDetails ## Library Details Endpoint @@ -183,11 +187,13 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); -var res = await sdk.Library.GetLibraryAsync( - sectionId: 1000D, - includeDetails: PlexAPI.Models.Requests.IncludeDetails.Zero); +var res = await sdk.Library.GetLibraryDetailsAsync( + sectionId: 15D, + includeDetails: PlexAPI.Models.Requests.IncludeDetails.Zero +); // handle response ``` @@ -196,24 +202,24 @@ var res = await sdk.Library.GetLibraryAsync( | Parameter | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `SectionId` | *double* | :heavy_check_mark: | the Id of the library to query | 1000 | +| `SectionId` | *double* | :heavy_check_mark: | The id of the library | 15 | | `IncludeDetails` | [IncludeDetails](../../Models/Requests/IncludeDetails.md) | :heavy_minus_sign: | Whether or not to include details for a section (types, filters, and sorts).
Only exists for backwards compatibility, media providers other than the server libraries have it on always.
| | ### Response -**[GetLibraryResponse](../../Models/Requests/GetLibraryResponse.md)** +**[GetLibraryDetailsResponse](../../Models/Requests/GetLibraryDetailsResponse.md)** ### Errors -| Error Object | Status Code | Content Type | -| -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -| PlexAPI.Models.Errors.GetLibraryResponseBody | 401 | application/json | -| PlexAPI.Models.Errors.SDKException | 4xx-5xx | */* | +| Error Object | Status Code | Content Type | +| --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| PlexAPI.Models.Errors.GetLibraryDetailsResponseBody | 401 | application/json | +| PlexAPI.Models.Errors.SDKException | 4xx-5xx | */* | ## DeleteLibrary -Delate a library using a specific section +Delete a library using a specific section id ### Example Usage @@ -224,18 +230,19 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); -var res = await sdk.Library.DeleteLibraryAsync(sectionId: 1000D); +var res = await sdk.Library.DeleteLibraryAsync(sectionId: 15D); // handle response ``` ### Parameters -| Parameter | Type | Required | Description | Example | -| ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | -| `SectionId` | *double* | :heavy_check_mark: | the Id of the library to query | 1000 | +| Parameter | Type | Required | Description | Example | +| --------------------- | --------------------- | --------------------- | --------------------- | --------------------- | +| `SectionId` | *double* | :heavy_check_mark: | The id of the library | 15 | ### Response @@ -282,12 +289,14 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Library.GetLibraryItemsAsync( sectionId: "", tag: PlexAPI.Models.Requests.Tag.Genre, - includeGuids: 1); + includeGuids: 1 +); // handle response ``` @@ -312,9 +321,9 @@ var res = await sdk.Library.GetLibraryItemsAsync( | PlexAPI.Models.Errors.SDKException | 4xx-5xx | */* | -## RefreshLibrary +## GetRefreshLibraryMetadata -This endpoint Refreshes the library. +This endpoint Refreshes all the Metadata of the library. ### Example Usage @@ -326,29 +335,34 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); -var res = await sdk.Library.RefreshLibraryAsync(sectionId: 934.16D); +var res = await sdk.Library.GetRefreshLibraryMetadataAsync( + sectionId: 15D, + force: PlexAPI.Models.Requests.Force.One +); // handle response ``` ### Parameters -| Parameter | Type | Required | Description | -| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | -| `SectionId` | *double* | :heavy_check_mark: | the Id of the library to refresh | +| Parameter | Type | Required | Description | Example | +| ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | +| `SectionId` | *double* | :heavy_check_mark: | The id of the library | 15 | +| `Force` | [Force](../../Models/Requests/Force.md) | :heavy_minus_sign: | Force the refresh even if the library is already being refreshed. | 0 | ### Response -**[RefreshLibraryResponse](../../Models/Requests/RefreshLibraryResponse.md)** +**[GetRefreshLibraryMetadataResponse](../../Models/Requests/GetRefreshLibraryMetadataResponse.md)** ### Errors -| Error Object | Status Code | Content Type | -| ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | -| PlexAPI.Models.Errors.RefreshLibraryResponseBody | 401 | application/json | -| PlexAPI.Models.Errors.SDKException | 4xx-5xx | */* | +| Error Object | Status Code | Content Type | +| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | +| PlexAPI.Models.Errors.GetRefreshLibraryMetadataResponseBody | 401 | application/json | +| PlexAPI.Models.Errors.SDKException | 4xx-5xx | */* | ## SearchLibrary @@ -382,21 +396,23 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Library.SearchLibraryAsync( sectionId: 933505, - type: PlexAPI.Models.Requests.Type.Four); + type: PlexAPI.Models.Requests.Type.Four +); // handle response ``` ### Parameters -| Parameter | Type | Required | Description | -| ------------------------------------- | ------------------------------------- | ------------------------------------- | ------------------------------------- | -| `SectionId` | *long* | :heavy_check_mark: | the Id of the library to query | -| `Type` | [Type](../../Models/Requests/Type.md) | :heavy_check_mark: | Plex content type to search for | +| Parameter | Type | Required | Description | +| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | +| `SectionId` | *long* | :heavy_check_mark: | the Id of the library to query | +| `Type` | [Models.Requests.Type](../../Models/Requests/Type.md) | :heavy_check_mark: | Plex content type to search for | ### Response @@ -424,7 +440,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Library.GetMetadataAsync(ratingKey: 8382.31D); @@ -463,11 +480,13 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Library.GetMetadataChildrenAsync( ratingKey: 1539.14D, - includeElements: ""); + includeElements: "" +); // handle response ``` @@ -505,11 +524,13 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Library.GetTopWatchedContentAsync( type: 505531, - includeGuids: 1); + includeGuids: 1 +); // handle response ``` @@ -545,7 +566,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Library.GetOnDeckAsync(); diff --git a/docs/sdks/log/README.md b/docs/sdks/log/README.md index dc2f7ab..fc9baef 100644 --- a/docs/sdks/log/README.md +++ b/docs/sdks/log/README.md @@ -26,12 +26,14 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Log.LogLineAsync( level: PlexAPI.Models.Requests.Level.Three, message: "Test log message", - source: "Postman"); + source: "Postman" +); // handle response ``` @@ -89,7 +91,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); string req = "level=4&message=Test%20message%201&source=postman level=3&message=Test%20message%202&source=postman @@ -131,7 +134,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Log.EnablePaperTrailAsync(); diff --git a/docs/sdks/media/README.md b/docs/sdks/media/README.md index c0f8ac3..a8740ce 100644 --- a/docs/sdks/media/README.md +++ b/docs/sdks/media/README.md @@ -25,7 +25,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Media.MarkPlayedAsync(key: 59398D); @@ -63,7 +64,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Media.MarkUnplayedAsync(key: 59398D); @@ -102,12 +104,14 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Media.UpdatePlayProgressAsync( key: "", time: 90000D, - state: "played"); + state: "played" +); // handle response ``` diff --git a/docs/sdks/playlists/README.md b/docs/sdks/playlists/README.md index d5926b2..1dcd264 100644 --- a/docs/sdks/playlists/README.md +++ b/docs/sdks/playlists/README.md @@ -37,7 +37,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); CreatePlaylistRequest req = new CreatePlaylistRequest() { Title = "", @@ -82,11 +83,13 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Playlists.GetPlaylistsAsync( playlistType: PlexAPI.Models.Requests.PlaylistType.Audio, - smart: PlexAPI.Models.Requests.QueryParamSmart.Zero); + smart: PlexAPI.Models.Requests.QueryParamSmart.Zero +); // handle response ``` @@ -125,7 +128,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Playlists.GetPlaylistAsync(playlistID: 4109.48D); @@ -164,7 +168,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Playlists.DeletePlaylistAsync(playlistID: 216.22D); @@ -203,12 +208,14 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Playlists.UpdatePlaylistAsync( playlistID: 3915D, title: "", - summary: ""); + summary: "" +); // handle response ``` @@ -250,11 +257,13 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Playlists.GetPlaylistContentsAsync( playlistID: 5004.46D, - type: 9403.59D); + type: 9403.59D +); // handle response ``` @@ -292,7 +301,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Playlists.ClearPlaylistContentsAsync(playlistID: 1893.18D); @@ -332,12 +342,14 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Playlists.AddPlaylistContentsAsync( playlistID: 8502.01D, uri: "server://12345/com.plexapp.plugins.library/library/metadata/1", - playQueueID: 123D); + playQueueID: 123D +); // handle response ``` @@ -376,11 +388,13 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Playlists.UploadPlaylistAsync( path: "/home/barkley/playlist.m3u", - force: PlexAPI.Models.Requests.Force.Zero); + force: PlexAPI.Models.Requests.QueryParamForce.Zero +); // handle response ``` @@ -390,7 +404,7 @@ var res = await sdk.Playlists.UploadPlaylistAsync( | Parameter | Type | Required | Description | Example | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `Path` | *string* | :heavy_check_mark: | absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server.
If the `path` argument is a directory, that path will be scanned for playlist files to be processed.
Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it.
The GUID of each playlist is based on the filename.
If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it.
The GUID of each playlist is based on the filename.
| /home/barkley/playlist.m3u | -| `Force` | [Force](../../Models/Requests/Force.md) | :heavy_check_mark: | Force overwriting of duplicate playlists.
By default, a playlist file uploaded with the same path will overwrite the existing playlist.
The `force` argument is used to disable overwriting.
If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.
| | +| `Force` | [QueryParamForce](../../Models/Requests/QueryParamForce.md) | :heavy_check_mark: | Force overwriting of duplicate playlists.
By default, a playlist file uploaded with the same path will overwrite the existing playlist.
The `force` argument is used to disable overwriting.
If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.
| | ### Response diff --git a/docs/sdks/plex/README.md b/docs/sdks/plex/README.md index b027c8c..af5b056 100644 --- a/docs/sdks/plex/README.md +++ b/docs/sdks/plex/README.md @@ -29,7 +29,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Plex.GetCompanionsDataAsync(); @@ -66,7 +67,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Plex.GetUserFriendsAsync(); @@ -138,7 +140,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Plex.GetHomeDataAsync(); @@ -174,7 +177,8 @@ var res = await sdk.Plex.GetResourcesAsync( xPlexClientIdentifier: "Postman", includeHttps: PlexAPI.Models.Requests.IncludeHttps.Zero, includeRelay: PlexAPI.Models.Requests.IncludeRelay.Zero, - includeIPv6: PlexAPI.Models.Requests.IncludeIPv6.One); + includeIPv6: PlexAPI.Models.Requests.IncludeIPv6.One +); // handle response ``` @@ -217,7 +221,8 @@ var sdk = new PlexAPISDK(xPlexClientIdentifier: "Postman"); var res = await sdk.Plex.GetPinAsync( xPlexProduct: "Postman", strong: false, - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); // handle response ``` @@ -258,7 +263,8 @@ var sdk = new PlexAPISDK(xPlexClientIdentifier: "Postman"); var res = await sdk.Plex.GetTokenByPinIdAsync( pinID: 408895, - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); // handle response ``` @@ -295,7 +301,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Plex.GetUserDetailsAsync(); diff --git a/docs/sdks/search/README.md b/docs/sdks/search/README.md index 7dd4069..2a31b7f 100644 --- a/docs/sdks/search/README.md +++ b/docs/sdks/search/README.md @@ -37,12 +37,14 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Search.PerformSearchAsync( query: "dylan", sectionId: 1516.53D, - limit: 5D); + limit: 5D +); // handle response ``` @@ -84,12 +86,14 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Search.PerformVoiceSearchAsync( query: "dead+poop", sectionId: 4094.8D, - limit: 5D); + limit: 5D +); // handle response ``` @@ -127,7 +131,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Search.GetSearchResultsAsync(query: "110"); diff --git a/docs/sdks/server/README.md b/docs/sdks/server/README.md index 166e907..6c335c3 100644 --- a/docs/sdks/server/README.md +++ b/docs/sdks/server/README.md @@ -29,7 +29,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Server.GetServerCapabilitiesAsync(); @@ -60,7 +61,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Server.GetServerPreferencesAsync(); @@ -91,7 +93,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Server.GetAvailableClientsAsync(); @@ -122,7 +125,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Server.GetDevicesAsync(); @@ -153,7 +157,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Server.GetServerIdentityAsync(); @@ -184,7 +189,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Server.GetMyPlexAccountAsync(); @@ -217,7 +223,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); GetResizedPhotoRequest req = new GetResizedPhotoRequest() { Width = 110D, @@ -264,7 +271,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Server.GetServerListAsync(); diff --git a/docs/sdks/sessions/README.md b/docs/sdks/sessions/README.md index ff962c7..ccec3b8 100644 --- a/docs/sdks/sessions/README.md +++ b/docs/sdks/sessions/README.md @@ -25,7 +25,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Sessions.GetSessionsAsync(); @@ -57,13 +58,15 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Sessions.GetSessionHistoryAsync( sort: "", accountId: 1, filter: new Filter() {}, - librarySectionID: 12); + librarySectionID: 12 +); // handle response ``` @@ -101,7 +104,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Sessions.GetTranscodeSessionsAsync(); @@ -133,7 +137,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Sessions.StopTranscodeSessionAsync(sessionKey: "zz7llzqlx8w9vnrsbnwhbmep"); diff --git a/docs/sdks/statistics/README.md b/docs/sdks/statistics/README.md index 68b8397..b9a917e 100644 --- a/docs/sdks/statistics/README.md +++ b/docs/sdks/statistics/README.md @@ -25,7 +25,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Statistics.GetStatisticsAsync(timespan: 4); @@ -63,7 +64,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Statistics.GetResourcesStatisticsAsync(timespan: 4); @@ -101,7 +103,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Statistics.GetBandwidthStatisticsAsync(timespan: 4); diff --git a/docs/sdks/updater/README.md b/docs/sdks/updater/README.md index 10b47a5..b771694 100644 --- a/docs/sdks/updater/README.md +++ b/docs/sdks/updater/README.md @@ -25,7 +25,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Updater.GetUpdateStatusAsync(); @@ -57,7 +58,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Updater.CheckForUpdatesAsync(download: PlexAPI.Models.Requests.Download.One); @@ -96,11 +98,13 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); var res = await sdk.Updater.ApplyUpdatesAsync( tonight: PlexAPI.Models.Requests.Tonight.One, - skip: PlexAPI.Models.Requests.Skip.One); + skip: PlexAPI.Models.Requests.Skip.One +); // handle response ``` diff --git a/docs/sdks/user/README.md b/docs/sdks/user/README.md deleted file mode 100644 index 15c3228..0000000 --- a/docs/sdks/user/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# User -(*User*) - -## Overview - -API Calls that perform operations with Plex Media Server Users - - -### Available Operations - -* [PostSignIn](#postsignin) - Get User SignIn Data - -## PostSignIn - -Sign in user with username and password and return user data with Plex authentication token - -### Example Usage - -```csharp -using PlexAPI; -using PlexAPI.Models.Requests; -using PlexAPI.Models.Components; - -var sdk = new PlexAPISDK(xPlexClientIdentifier: "Postman"); - -var res = await sdk.User.PostSignInAsync( - xPlexClientIdentifier: "Postman", - requestBody: new PostSignInRequestBody() { - Login = "username@email.com", - Password = "password123", -}); - -// handle response -``` - -### Parameters - -| Parameter | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `XPlexClientIdentifier` | *string* | :heavy_minus_sign: | The unique identifier for the client application
This is used to track the client application and its usage
(UUID, serial number, or other number unique per device)
| Postman | -| `RequestBody` | [PostSignInRequestBody](../../Models/Requests/PostSignInRequestBody.md) | :heavy_minus_sign: | Login credentials | | -| `serverURL` | *string* | :heavy_minus_sign: | An optional server URL to use. | http://localhost:8080 | - -### Response - -**[PostSignInResponse](../../Models/Requests/PostSignInResponse.md)** - -### Errors - -| Error Object | Status Code | Content Type | -| -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -| PlexAPI.Models.Errors.PostSignInResponseBody | 401 | application/json | -| PlexAPI.Models.Errors.SDKException | 4xx-5xx | */* | diff --git a/docs/sdks/video/README.md b/docs/sdks/video/README.md index 5b19435..4ff591c 100644 --- a/docs/sdks/video/README.md +++ b/docs/sdks/video/README.md @@ -24,7 +24,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); GetTimelineRequest req = new GetTimelineRequest() { RatingKey = 23409D, @@ -75,7 +76,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); StartUniversalTranscodeRequest req = new StartUniversalTranscodeRequest() { HasMDE = 1D, diff --git a/docs/sdks/watchlist/README.md b/docs/sdks/watchlist/README.md index 5453e72..1f512ba 100644 --- a/docs/sdks/watchlist/README.md +++ b/docs/sdks/watchlist/README.md @@ -23,7 +23,8 @@ using PlexAPI.Models.Components; var sdk = new PlexAPISDK( accessToken: "", - xPlexClientIdentifier: "Postman"); + xPlexClientIdentifier: "Postman" +); GetWatchlistRequest req = new GetWatchlistRequest() { Filter = PlexAPI.Models.Requests.PathParamFilter.Released,