Compare commits

..

1 Commits

Author SHA1 Message Date
speakeasybot
ec1b25e152 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.383.2 2024-08-30 00:10:10 +00:00
148 changed files with 1044 additions and 954 deletions

View File

@@ -1,12 +1,12 @@
lockVersion: 2.0.0 lockVersion: 2.0.0
id: 5a8dbcbc-e0ee-41f0-9d84-b8b50567d1e9 id: 5a8dbcbc-e0ee-41f0-9d84-b8b50567d1e9
management: management:
docChecksum: 5ae5b1296191bd5cc5d4f6cd38df8bff docChecksum: cd46763b91ada69afbe49fa20517839a
docVersion: 0.0.3 docVersion: 0.0.3
speakeasyVersion: 1.378.1 speakeasyVersion: 1.383.2
generationVersion: 2.404.3 generationVersion: 2.407.0
releaseVersion: 0.4.1 releaseVersion: 0.4.2
configChecksum: c11547fd2dc431993d988a8717e7bfe9 configChecksum: 74b77ec64d814262085e1afc1ea50fbb
repoURL: https://github.com/LukeHagar/plexcsharp.git repoURL: https://github.com/LukeHagar/plexcsharp.git
repoSubDirectory: . repoSubDirectory: .
published: true published: true
@@ -14,7 +14,7 @@ features:
csharp: csharp:
additionalDependencies: 0.1.0 additionalDependencies: 0.1.0
constsAndDefaults: 0.0.1 constsAndDefaults: 0.0.1
core: 3.9.14 core: 3.9.16
deprecations: 2.81.2 deprecations: 2.81.2
flattening: 2.81.2 flattening: 2.81.2
globalSecurity: 2.83.6 globalSecurity: 2.83.6
@@ -46,7 +46,6 @@ generatedFiles:
- PlexAPI/Statistics.cs - PlexAPI/Statistics.cs
- PlexAPI/Sessions.cs - PlexAPI/Sessions.cs
- PlexAPI/Updater.cs - PlexAPI/Updater.cs
- PlexAPI/User.cs
- PlexAPI/Watchlist.cs - PlexAPI/Watchlist.cs
- PlexAPI/PlexAPISDK.cs - PlexAPI/PlexAPISDK.cs
- global.json - global.json
@@ -225,22 +224,22 @@ generatedFiles:
- PlexAPI/Models/Requests/GetRecentlyAddedResponseBody.cs - PlexAPI/Models/Requests/GetRecentlyAddedResponseBody.cs
- PlexAPI/Models/Requests/GetRecentlyAddedResponse.cs - PlexAPI/Models/Requests/GetRecentlyAddedResponse.cs
- PlexAPI/Models/Requests/Location.cs - PlexAPI/Models/Requests/Location.cs
- PlexAPI/Models/Requests/GetLibrariesDirectory.cs - PlexAPI/Models/Requests/GetAllLibrariesDirectory.cs
- PlexAPI/Models/Requests/GetLibrariesMediaContainer.cs - PlexAPI/Models/Requests/GetAllLibrariesMediaContainer.cs
- PlexAPI/Models/Requests/GetLibrariesResponseBody.cs - PlexAPI/Models/Requests/GetAllLibrariesResponseBody.cs
- PlexAPI/Models/Requests/GetLibrariesResponse.cs - PlexAPI/Models/Requests/GetAllLibrariesResponse.cs
- PlexAPI/Models/Requests/IncludeDetails.cs - PlexAPI/Models/Requests/IncludeDetails.cs
- PlexAPI/Models/Requests/GetLibraryRequest.cs - PlexAPI/Models/Requests/GetLibraryDetailsRequest.cs
- PlexAPI/Models/Requests/GetLibraryDirectory.cs - PlexAPI/Models/Requests/GetLibraryDetailsDirectory.cs
- PlexAPI/Models/Requests/GetLibraryFilter.cs - PlexAPI/Models/Requests/GetLibraryDetailsFilter.cs
- PlexAPI/Models/Requests/Sort.cs - PlexAPI/Models/Requests/Sort.cs
- PlexAPI/Models/Requests/Field.cs - PlexAPI/Models/Requests/Field.cs
- PlexAPI/Models/Requests/GetLibraryType.cs - PlexAPI/Models/Requests/GetLibraryDetailsType.cs
- PlexAPI/Models/Requests/Operator.cs - PlexAPI/Models/Requests/Operator.cs
- PlexAPI/Models/Requests/FieldType.cs - PlexAPI/Models/Requests/FieldType.cs
- PlexAPI/Models/Requests/GetLibraryMediaContainer.cs - PlexAPI/Models/Requests/GetLibraryDetailsMediaContainer.cs
- PlexAPI/Models/Requests/GetLibraryResponseBody.cs - PlexAPI/Models/Requests/GetLibraryDetailsResponseBody.cs
- PlexAPI/Models/Requests/GetLibraryResponse.cs - PlexAPI/Models/Requests/GetLibraryDetailsResponse.cs
- PlexAPI/Models/Requests/DeleteLibraryRequest.cs - PlexAPI/Models/Requests/DeleteLibraryRequest.cs
- PlexAPI/Models/Requests/DeleteLibraryResponse.cs - PlexAPI/Models/Requests/DeleteLibraryResponse.cs
- PlexAPI/Models/Requests/Tag.cs - PlexAPI/Models/Requests/Tag.cs
@@ -257,8 +256,9 @@ generatedFiles:
- PlexAPI/Models/Requests/GetLibraryItemsMediaContainer.cs - PlexAPI/Models/Requests/GetLibraryItemsMediaContainer.cs
- PlexAPI/Models/Requests/GetLibraryItemsResponseBody.cs - PlexAPI/Models/Requests/GetLibraryItemsResponseBody.cs
- PlexAPI/Models/Requests/GetLibraryItemsResponse.cs - PlexAPI/Models/Requests/GetLibraryItemsResponse.cs
- PlexAPI/Models/Requests/RefreshLibraryRequest.cs - PlexAPI/Models/Requests/Force.cs
- PlexAPI/Models/Requests/RefreshLibraryResponse.cs - PlexAPI/Models/Requests/GetRefreshLibraryMetadataRequest.cs
- PlexAPI/Models/Requests/GetRefreshLibraryMetadataResponse.cs
- PlexAPI/Models/Requests/Type.cs - PlexAPI/Models/Requests/Type.cs
- PlexAPI/Models/Requests/SearchLibraryRequest.cs - PlexAPI/Models/Requests/SearchLibraryRequest.cs
- PlexAPI/Models/Requests/SearchLibraryMetadata.cs - PlexAPI/Models/Requests/SearchLibraryMetadata.cs
@@ -352,7 +352,7 @@ generatedFiles:
- PlexAPI/Models/Requests/AddPlaylistContentsMediaContainer.cs - PlexAPI/Models/Requests/AddPlaylistContentsMediaContainer.cs
- PlexAPI/Models/Requests/AddPlaylistContentsResponseBody.cs - PlexAPI/Models/Requests/AddPlaylistContentsResponseBody.cs
- PlexAPI/Models/Requests/AddPlaylistContentsResponse.cs - PlexAPI/Models/Requests/AddPlaylistContentsResponse.cs
- PlexAPI/Models/Requests/Force.cs - PlexAPI/Models/Requests/QueryParamForce.cs
- PlexAPI/Models/Requests/UploadPlaylistRequest.cs - PlexAPI/Models/Requests/UploadPlaylistRequest.cs
- PlexAPI/Models/Requests/UploadPlaylistResponse.cs - PlexAPI/Models/Requests/UploadPlaylistResponse.cs
- PlexAPI/Models/Requests/GetTransientTokenQueryParamType.cs - PlexAPI/Models/Requests/GetTransientTokenQueryParamType.cs
@@ -361,6 +361,30 @@ generatedFiles:
- PlexAPI/Models/Requests/GetTransientTokenResponse.cs - PlexAPI/Models/Requests/GetTransientTokenResponse.cs
- PlexAPI/Models/Requests/GetSourceConnectionInformationRequest.cs - PlexAPI/Models/Requests/GetSourceConnectionInformationRequest.cs
- PlexAPI/Models/Requests/GetSourceConnectionInformationResponse.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/GetStatisticsRequest.cs
- PlexAPI/Models/Requests/GetStatisticsDevice.cs - PlexAPI/Models/Requests/GetStatisticsDevice.cs
- PlexAPI/Models/Requests/Account.cs - PlexAPI/Models/Requests/Account.cs
@@ -413,30 +437,6 @@ generatedFiles:
- PlexAPI/Models/Requests/Skip.cs - PlexAPI/Models/Requests/Skip.cs
- PlexAPI/Models/Requests/ApplyUpdatesRequest.cs - PlexAPI/Models/Requests/ApplyUpdatesRequest.cs
- PlexAPI/Models/Requests/ApplyUpdatesResponse.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/PathParamFilter.cs
- PlexAPI/Models/Requests/Libtype.cs - PlexAPI/Models/Requests/Libtype.cs
- PlexAPI/Models/Requests/IncludeCollections.cs - PlexAPI/Models/Requests/IncludeCollections.cs
@@ -516,16 +516,16 @@ generatedFiles:
- PlexAPI/Models/Errors/GetFileHashResponseBody.cs - PlexAPI/Models/Errors/GetFileHashResponseBody.cs
- PlexAPI/Models/Errors/GetRecentlyAddedErrors.cs - PlexAPI/Models/Errors/GetRecentlyAddedErrors.cs
- PlexAPI/Models/Errors/GetRecentlyAddedResponseBody.cs - PlexAPI/Models/Errors/GetRecentlyAddedResponseBody.cs
- PlexAPI/Models/Errors/GetLibrariesErrors.cs - PlexAPI/Models/Errors/GetAllLibrariesErrors.cs
- PlexAPI/Models/Errors/GetLibrariesResponseBody.cs - PlexAPI/Models/Errors/GetAllLibrariesResponseBody.cs
- PlexAPI/Models/Errors/GetLibraryErrors.cs - PlexAPI/Models/Errors/GetLibraryDetailsErrors.cs
- PlexAPI/Models/Errors/GetLibraryResponseBody.cs - PlexAPI/Models/Errors/GetLibraryDetailsResponseBody.cs
- PlexAPI/Models/Errors/DeleteLibraryErrors.cs - PlexAPI/Models/Errors/DeleteLibraryErrors.cs
- PlexAPI/Models/Errors/DeleteLibraryResponseBody.cs - PlexAPI/Models/Errors/DeleteLibraryResponseBody.cs
- PlexAPI/Models/Errors/GetLibraryItemsErrors.cs - PlexAPI/Models/Errors/GetLibraryItemsErrors.cs
- PlexAPI/Models/Errors/GetLibraryItemsResponseBody.cs - PlexAPI/Models/Errors/GetLibraryItemsResponseBody.cs
- PlexAPI/Models/Errors/RefreshLibraryErrors.cs - PlexAPI/Models/Errors/GetRefreshLibraryMetadataErrors.cs
- PlexAPI/Models/Errors/RefreshLibraryResponseBody.cs - PlexAPI/Models/Errors/GetRefreshLibraryMetadataResponseBody.cs
- PlexAPI/Models/Errors/SearchLibraryErrors.cs - PlexAPI/Models/Errors/SearchLibraryErrors.cs
- PlexAPI/Models/Errors/SearchLibraryResponseBody.cs - PlexAPI/Models/Errors/SearchLibraryResponseBody.cs
- PlexAPI/Models/Errors/GetMetadataErrors.cs - PlexAPI/Models/Errors/GetMetadataErrors.cs
@@ -562,6 +562,8 @@ generatedFiles:
- PlexAPI/Models/Errors/GetTransientTokenResponseBody.cs - PlexAPI/Models/Errors/GetTransientTokenResponseBody.cs
- PlexAPI/Models/Errors/GetSourceConnectionInformationErrors.cs - PlexAPI/Models/Errors/GetSourceConnectionInformationErrors.cs
- PlexAPI/Models/Errors/GetSourceConnectionInformationResponseBody.cs - PlexAPI/Models/Errors/GetSourceConnectionInformationResponseBody.cs
- PlexAPI/Models/Errors/PostUsersSignInDataErrors.cs
- PlexAPI/Models/Errors/PostUsersSignInDataResponseBody.cs
- PlexAPI/Models/Errors/GetStatisticsErrors.cs - PlexAPI/Models/Errors/GetStatisticsErrors.cs
- PlexAPI/Models/Errors/GetStatisticsResponseBody.cs - PlexAPI/Models/Errors/GetStatisticsResponseBody.cs
- PlexAPI/Models/Errors/GetResourcesStatisticsErrors.cs - PlexAPI/Models/Errors/GetResourcesStatisticsErrors.cs
@@ -582,8 +584,6 @@ generatedFiles:
- PlexAPI/Models/Errors/CheckForUpdatesResponseBody.cs - PlexAPI/Models/Errors/CheckForUpdatesResponseBody.cs
- PlexAPI/Models/Errors/ApplyUpdatesErrors.cs - PlexAPI/Models/Errors/ApplyUpdatesErrors.cs
- PlexAPI/Models/Errors/ApplyUpdatesResponseBody.cs - PlexAPI/Models/Errors/ApplyUpdatesResponseBody.cs
- PlexAPI/Models/Errors/PostSignInErrors.cs
- PlexAPI/Models/Errors/PostSignInResponseBody.cs
- PlexAPI/Models/Errors/GetWatchlistErrors.cs - PlexAPI/Models/Errors/GetWatchlistErrors.cs
- PlexAPI/Models/Errors/GetWatchlistResponseBody.cs - PlexAPI/Models/Errors/GetWatchlistResponseBody.cs
- PlexAPI/Models/Components/Security.cs - PlexAPI/Models/Components/Security.cs
@@ -742,22 +742,22 @@ generatedFiles:
- docs/Models/Requests/GetRecentlyAddedResponseBody.md - docs/Models/Requests/GetRecentlyAddedResponseBody.md
- docs/Models/Requests/GetRecentlyAddedResponse.md - docs/Models/Requests/GetRecentlyAddedResponse.md
- docs/Models/Requests/Location.md - docs/Models/Requests/Location.md
- docs/Models/Requests/GetLibrariesDirectory.md - docs/Models/Requests/GetAllLibrariesDirectory.md
- docs/Models/Requests/GetLibrariesMediaContainer.md - docs/Models/Requests/GetAllLibrariesMediaContainer.md
- docs/Models/Requests/GetLibrariesResponseBody.md - docs/Models/Requests/GetAllLibrariesResponseBody.md
- docs/Models/Requests/GetLibrariesResponse.md - docs/Models/Requests/GetAllLibrariesResponse.md
- docs/Models/Requests/IncludeDetails.md - docs/Models/Requests/IncludeDetails.md
- docs/Models/Requests/GetLibraryRequest.md - docs/Models/Requests/GetLibraryDetailsRequest.md
- docs/Models/Requests/GetLibraryDirectory.md - docs/Models/Requests/GetLibraryDetailsDirectory.md
- docs/Models/Requests/GetLibraryFilter.md - docs/Models/Requests/GetLibraryDetailsFilter.md
- docs/Models/Requests/Sort.md - docs/Models/Requests/Sort.md
- docs/Models/Requests/Field.md - docs/Models/Requests/Field.md
- docs/Models/Requests/GetLibraryType.md - docs/Models/Requests/GetLibraryDetailsType.md
- docs/Models/Requests/Operator.md - docs/Models/Requests/Operator.md
- docs/Models/Requests/FieldType.md - docs/Models/Requests/FieldType.md
- docs/Models/Requests/GetLibraryMediaContainer.md - docs/Models/Requests/GetLibraryDetailsMediaContainer.md
- docs/Models/Requests/GetLibraryResponseBody.md - docs/Models/Requests/GetLibraryDetailsResponseBody.md
- docs/Models/Requests/GetLibraryResponse.md - docs/Models/Requests/GetLibraryDetailsResponse.md
- docs/Models/Requests/DeleteLibraryRequest.md - docs/Models/Requests/DeleteLibraryRequest.md
- docs/Models/Requests/DeleteLibraryResponse.md - docs/Models/Requests/DeleteLibraryResponse.md
- docs/Models/Requests/Tag.md - docs/Models/Requests/Tag.md
@@ -774,8 +774,9 @@ generatedFiles:
- docs/Models/Requests/GetLibraryItemsMediaContainer.md - docs/Models/Requests/GetLibraryItemsMediaContainer.md
- docs/Models/Requests/GetLibraryItemsResponseBody.md - docs/Models/Requests/GetLibraryItemsResponseBody.md
- docs/Models/Requests/GetLibraryItemsResponse.md - docs/Models/Requests/GetLibraryItemsResponse.md
- docs/Models/Requests/RefreshLibraryRequest.md - docs/Models/Requests/Force.md
- docs/Models/Requests/RefreshLibraryResponse.md - docs/Models/Requests/GetRefreshLibraryMetadataRequest.md
- docs/Models/Requests/GetRefreshLibraryMetadataResponse.md
- docs/Models/Requests/Type.md - docs/Models/Requests/Type.md
- docs/Models/Requests/SearchLibraryRequest.md - docs/Models/Requests/SearchLibraryRequest.md
- docs/Models/Requests/SearchLibraryMetadata.md - docs/Models/Requests/SearchLibraryMetadata.md
@@ -869,7 +870,7 @@ generatedFiles:
- docs/Models/Requests/AddPlaylistContentsMediaContainer.md - docs/Models/Requests/AddPlaylistContentsMediaContainer.md
- docs/Models/Requests/AddPlaylistContentsResponseBody.md - docs/Models/Requests/AddPlaylistContentsResponseBody.md
- docs/Models/Requests/AddPlaylistContentsResponse.md - docs/Models/Requests/AddPlaylistContentsResponse.md
- docs/Models/Requests/Force.md - docs/Models/Requests/QueryParamForce.md
- docs/Models/Requests/UploadPlaylistRequest.md - docs/Models/Requests/UploadPlaylistRequest.md
- docs/Models/Requests/UploadPlaylistResponse.md - docs/Models/Requests/UploadPlaylistResponse.md
- docs/Models/Requests/GetTransientTokenQueryParamType.md - docs/Models/Requests/GetTransientTokenQueryParamType.md
@@ -878,6 +879,30 @@ generatedFiles:
- docs/Models/Requests/GetTransientTokenResponse.md - docs/Models/Requests/GetTransientTokenResponse.md
- docs/Models/Requests/GetSourceConnectionInformationRequest.md - docs/Models/Requests/GetSourceConnectionInformationRequest.md
- docs/Models/Requests/GetSourceConnectionInformationResponse.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/GetStatisticsRequest.md
- docs/Models/Requests/GetStatisticsDevice.md - docs/Models/Requests/GetStatisticsDevice.md
- docs/Models/Requests/Account.md - docs/Models/Requests/Account.md
@@ -930,30 +955,6 @@ generatedFiles:
- docs/Models/Requests/Skip.md - docs/Models/Requests/Skip.md
- docs/Models/Requests/ApplyUpdatesRequest.md - docs/Models/Requests/ApplyUpdatesRequest.md
- docs/Models/Requests/ApplyUpdatesResponse.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/PathParamFilter.md
- docs/Models/Requests/Libtype.md - docs/Models/Requests/Libtype.md
- docs/Models/Requests/IncludeCollections.md - docs/Models/Requests/IncludeCollections.md
@@ -1033,16 +1034,16 @@ generatedFiles:
- docs/Models/Errors/GetFileHashResponseBody.md - docs/Models/Errors/GetFileHashResponseBody.md
- docs/Models/Errors/GetRecentlyAddedErrors.md - docs/Models/Errors/GetRecentlyAddedErrors.md
- docs/Models/Errors/GetRecentlyAddedResponseBody.md - docs/Models/Errors/GetRecentlyAddedResponseBody.md
- docs/Models/Errors/GetLibrariesErrors.md - docs/Models/Errors/GetAllLibrariesErrors.md
- docs/Models/Errors/GetLibrariesResponseBody.md - docs/Models/Errors/GetAllLibrariesResponseBody.md
- docs/Models/Errors/GetLibraryErrors.md - docs/Models/Errors/GetLibraryDetailsErrors.md
- docs/Models/Errors/GetLibraryResponseBody.md - docs/Models/Errors/GetLibraryDetailsResponseBody.md
- docs/Models/Errors/DeleteLibraryErrors.md - docs/Models/Errors/DeleteLibraryErrors.md
- docs/Models/Errors/DeleteLibraryResponseBody.md - docs/Models/Errors/DeleteLibraryResponseBody.md
- docs/Models/Errors/GetLibraryItemsErrors.md - docs/Models/Errors/GetLibraryItemsErrors.md
- docs/Models/Errors/GetLibraryItemsResponseBody.md - docs/Models/Errors/GetLibraryItemsResponseBody.md
- docs/Models/Errors/RefreshLibraryErrors.md - docs/Models/Errors/GetRefreshLibraryMetadataErrors.md
- docs/Models/Errors/RefreshLibraryResponseBody.md - docs/Models/Errors/GetRefreshLibraryMetadataResponseBody.md
- docs/Models/Errors/SearchLibraryErrors.md - docs/Models/Errors/SearchLibraryErrors.md
- docs/Models/Errors/SearchLibraryResponseBody.md - docs/Models/Errors/SearchLibraryResponseBody.md
- docs/Models/Errors/GetMetadataErrors.md - docs/Models/Errors/GetMetadataErrors.md
@@ -1079,6 +1080,8 @@ generatedFiles:
- docs/Models/Errors/GetTransientTokenResponseBody.md - docs/Models/Errors/GetTransientTokenResponseBody.md
- docs/Models/Errors/GetSourceConnectionInformationErrors.md - docs/Models/Errors/GetSourceConnectionInformationErrors.md
- docs/Models/Errors/GetSourceConnectionInformationResponseBody.md - docs/Models/Errors/GetSourceConnectionInformationResponseBody.md
- docs/Models/Errors/PostUsersSignInDataErrors.md
- docs/Models/Errors/PostUsersSignInDataResponseBody.md
- docs/Models/Errors/GetStatisticsErrors.md - docs/Models/Errors/GetStatisticsErrors.md
- docs/Models/Errors/GetStatisticsResponseBody.md - docs/Models/Errors/GetStatisticsResponseBody.md
- docs/Models/Errors/GetResourcesStatisticsErrors.md - docs/Models/Errors/GetResourcesStatisticsErrors.md
@@ -1099,8 +1102,6 @@ generatedFiles:
- docs/Models/Errors/CheckForUpdatesResponseBody.md - docs/Models/Errors/CheckForUpdatesResponseBody.md
- docs/Models/Errors/ApplyUpdatesErrors.md - docs/Models/Errors/ApplyUpdatesErrors.md
- docs/Models/Errors/ApplyUpdatesResponseBody.md - docs/Models/Errors/ApplyUpdatesResponseBody.md
- docs/Models/Errors/PostSignInErrors.md
- docs/Models/Errors/PostSignInResponseBody.md
- docs/Models/Errors/GetWatchlistErrors.md - docs/Models/Errors/GetWatchlistErrors.md
- docs/Models/Errors/GetWatchlistResponseBody.md - docs/Models/Errors/GetWatchlistResponseBody.md
- docs/Models/Components/Security.md - docs/Models/Components/Security.md
@@ -1120,7 +1121,6 @@ generatedFiles:
- docs/sdks/statistics/README.md - docs/sdks/statistics/README.md
- docs/sdks/sessions/README.md - docs/sdks/sessions/README.md
- docs/sdks/updater/README.md - docs/sdks/updater/README.md
- docs/sdks/user/README.md
- docs/sdks/watchlist/README.md - docs/sdks/watchlist/README.md
- NUGET.md - NUGET.md
- USAGE.md - USAGE.md

View File

@@ -12,7 +12,7 @@ generation:
auth: auth:
oAuth2ClientCredentialsEnabled: true oAuth2ClientCredentialsEnabled: true
csharp: csharp:
version: 0.4.1 version: 0.4.2
additionalDependencies: [] additionalDependencies: []
author: LukeHagar author: LukeHagar
clientServerStatusCodesAsErrors: true clientServerStatusCodesAsErrors: true

View File

@@ -1,9 +1,9 @@
speakeasyVersion: 1.321.0 speakeasyVersion: 1.383.2
sources: sources:
my-source: my-source:
sourceNamespace: my-source sourceNamespace: my-source
sourceRevisionDigest: sha256:f9e2111241453dcdf0c358ee4cc67c2da25786065dfce0778c51e357cca85470 sourceRevisionDigest: sha256:c6e5a38f9c953eb820ac1b5cb6d5aade8ee11a7bdb5b568147fd677d61b3a3c5
sourceBlobDigest: sha256:5ebcd8b28a73ab3b3265a5e7a7c43136d2eeccb8fd62f2db4e7aacf3e3e3d2ce sourceBlobDigest: sha256:730391fe626304e22e265f9470902fc083d5e6110d20d87cdc3ac7da6b4982de
tags: tags:
- latest - latest
- main - main
@@ -11,8 +11,8 @@ targets:
plexcsharp: plexcsharp:
source: my-source source: my-source
sourceNamespace: my-source sourceNamespace: my-source
sourceRevisionDigest: sha256:f9e2111241453dcdf0c358ee4cc67c2da25786065dfce0778c51e357cca85470 sourceRevisionDigest: sha256:c6e5a38f9c953eb820ac1b5cb6d5aade8ee11a7bdb5b568147fd677d61b3a3c5
sourceBlobDigest: sha256:5ebcd8b28a73ab3b3265a5e7a7c43136d2eeccb8fd62f2db4e7aacf3e3e3d2ce sourceBlobDigest: sha256:730391fe626304e22e265f9470902fc083d5e6110d20d87cdc3ac7da6b4982de
outLocation: /github/workspace/repo outLocation: /github/workspace/repo
workflow: workflow:
workflowVersion: 1.0.0 workflowVersion: 1.0.0

View File

@@ -12,7 +12,8 @@ using PlexAPI.Models.Components;
var sdk = new PlexAPISDK( var sdk = new PlexAPISDK(
accessToken: "<YOUR_API_KEY_HERE>", accessToken: "<YOUR_API_KEY_HERE>",
xPlexClientIdentifier: "Postman"); xPlexClientIdentifier: "Postman"
);
var res = await sdk.Server.GetServerCapabilitiesAsync(); var res = await sdk.Server.GetServerCapabilitiesAsync();
@@ -40,11 +41,13 @@ using PlexAPI.Models.Errors;
var sdk = new PlexAPISDK( var sdk = new PlexAPISDK(
accessToken: "<YOUR_API_KEY_HERE>", accessToken: "<YOUR_API_KEY_HERE>",
xPlexClientIdentifier: "Postman"); xPlexClientIdentifier: "Postman"
);
try try
{ {
var res = await sdk.Server.GetServerCapabilitiesAsync(); var res = await sdk.Server.GetServerCapabilitiesAsync();
// handle response // handle response
} }
catch (Exception ex) catch (Exception ex)
@@ -58,7 +61,6 @@ catch (Exception ex)
// handle exception // handle exception
} }
} }
``` ```
<!-- End Error Handling [errors] --> <!-- End Error Handling [errors] -->
@@ -96,7 +98,8 @@ using PlexAPI.Models.Components;
var sdk = new PlexAPISDK( var sdk = new PlexAPISDK(
accessToken: "<YOUR_API_KEY_HERE>", accessToken: "<YOUR_API_KEY_HERE>",
xPlexClientIdentifier: "Postman"); xPlexClientIdentifier: "Postman"
);
var res = await sdk.Plex.GetCompanionsDataAsync(serverUrl: "https://plex.tv/api/v2"); var res = await sdk.Plex.GetCompanionsDataAsync(serverUrl: "https://plex.tv/api/v2");
@@ -122,7 +125,8 @@ using PlexAPI.Models.Components;
var sdk = new PlexAPISDK( var sdk = new PlexAPISDK(
accessToken: "<YOUR_API_KEY_HERE>", accessToken: "<YOUR_API_KEY_HERE>",
xPlexClientIdentifier: "Postman"); xPlexClientIdentifier: "Postman"
);
var res = await sdk.Server.GetServerCapabilitiesAsync(); var res = await sdk.Server.GetServerCapabilitiesAsync();

View File

@@ -74,10 +74,10 @@ namespace PlexAPI
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.4.1"; private const string _sdkVersion = "0.4.2";
private const string _sdkGenVersion = "2.404.3"; private const string _sdkGenVersion = "2.407.0";
private const string _openapiDocVersion = "0.0.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 const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<PlexAPI.Models.Components.Security>? _securitySource; private Func<PlexAPI.Models.Components.Security>? _securitySource;

View File

@@ -52,6 +52,15 @@ namespace PlexAPI
/// </remarks> /// </remarks>
/// </summary> /// </summary>
Task<GetSourceConnectionInformationResponse> GetSourceConnectionInformationAsync(string source); Task<GetSourceConnectionInformationResponse> GetSourceConnectionInformationAsync(string source);
/// <summary>
/// Get User SignIn Data
///
/// <remarks>
/// Sign in user with username and password and return user data with Plex authentication token
/// </remarks>
/// </summary>
Task<PostUsersSignInDataResponse> PostUsersSignInDataAsync(string? xPlexClientIdentifier = null, PostUsersSignInDataRequestBody? requestBody = null, string? serverUrl = null);
} }
/// <summary> /// <summary>
@@ -63,12 +72,18 @@ namespace PlexAPI
/// </summary> /// </summary>
public class Authentication: IAuthentication public class Authentication: IAuthentication
{ {
/// <summary>
/// List of server URLs available for the post-users-sign-in-data operation.
/// </summary>
public static readonly string[] PostUsersSignInDataServerList = {
"https://plex.tv/api/v2",
};
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.4.1"; private const string _sdkVersion = "0.4.2";
private const string _sdkGenVersion = "2.404.3"; private const string _sdkGenVersion = "2.407.0";
private const string _openapiDocVersion = "0.0.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 const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<PlexAPI.Models.Components.Security>? _securitySource; private Func<PlexAPI.Models.Components.Security>? _securitySource;
@@ -251,5 +266,111 @@ namespace PlexAPI
throw new SDKException("Unknown status code received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse); throw new SDKException("Unknown status code received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
} }
} }
public async Task<PostUsersSignInDataResponse> 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<string, string>(){
});
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<PostUsersSignInDataUserPlexAccount>(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<PostUsersSignInDataResponseBody>(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);
}
}
} }
} }

View File

@@ -101,10 +101,10 @@ namespace PlexAPI
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.4.1"; private const string _sdkVersion = "0.4.2";
private const string _sdkGenVersion = "2.404.3"; private const string _sdkGenVersion = "2.407.0";
private const string _openapiDocVersion = "0.0.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 const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<PlexAPI.Models.Components.Security>? _securitySource; private Func<PlexAPI.Models.Components.Security>? _securitySource;

View File

@@ -63,10 +63,10 @@ namespace PlexAPI
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.4.1"; private const string _sdkVersion = "0.4.2";
private const string _sdkGenVersion = "2.404.3"; private const string _sdkGenVersion = "2.407.0";
private const string _openapiDocVersion = "0.0.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 const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<PlexAPI.Models.Components.Security>? _securitySource; private Func<PlexAPI.Models.Components.Security>? _securitySource;

View File

@@ -64,7 +64,7 @@ namespace PlexAPI
/// ///
/// </remarks> /// </remarks>
/// </summary> /// </summary>
Task<GetLibrariesResponse> GetLibrariesAsync(); Task<GetAllLibrariesResponse> GetAllLibrariesAsync();
/// <summary> /// <summary>
/// Get Library Details /// Get Library Details
@@ -112,13 +112,13 @@ namespace PlexAPI
/// ///
/// </remarks> /// </remarks>
/// </summary> /// </summary>
Task<GetLibraryResponse> GetLibraryAsync(double sectionId, IncludeDetails? includeDetails = null); Task<GetLibraryDetailsResponse> GetLibraryDetailsAsync(double sectionId, IncludeDetails? includeDetails = null);
/// <summary> /// <summary>
/// Delete Library Section /// Delete Library Section
/// ///
/// <remarks> /// <remarks>
/// Delate a library using a specific section /// Delete a library using a specific section id
/// </remarks> /// </remarks>
/// </summary> /// </summary>
Task<DeleteLibraryResponse> DeleteLibraryAsync(double sectionId); Task<DeleteLibraryResponse> DeleteLibraryAsync(double sectionId);
@@ -153,14 +153,14 @@ namespace PlexAPI
Task<GetLibraryItemsResponse> GetLibraryItemsAsync(object sectionId, Tag tag, long? includeGuids = null); Task<GetLibraryItemsResponse> GetLibraryItemsAsync(object sectionId, Tag tag, long? includeGuids = null);
/// <summary> /// <summary>
/// Refresh Library /// Refresh Metadata Of The Library
/// ///
/// <remarks> /// <remarks>
/// This endpoint Refreshes the library.<br/> /// This endpoint Refreshes all the Metadata of the library.<br/>
/// ///
/// </remarks> /// </remarks>
/// </summary> /// </summary>
Task<RefreshLibraryResponse> RefreshLibraryAsync(double sectionId); Task<GetRefreshLibraryMetadataResponse> GetRefreshLibraryMetadataAsync(double sectionId, Force? force = null);
/// <summary> /// <summary>
/// Search Library /// Search Library
@@ -187,7 +187,7 @@ namespace PlexAPI
/// ///
/// </remarks> /// </remarks>
/// </summary> /// </summary>
Task<SearchLibraryResponse> SearchLibraryAsync(long sectionId, Type type); Task<SearchLibraryResponse> SearchLibraryAsync(long sectionId, Models.Requests.Type type);
/// <summary> /// <summary>
/// Get Items Metadata /// Get Items Metadata
@@ -241,10 +241,10 @@ namespace PlexAPI
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.4.1"; private const string _sdkVersion = "0.4.2";
private const string _sdkGenVersion = "2.404.3"; private const string _sdkGenVersion = "2.407.0";
private const string _openapiDocVersion = "0.0.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 const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<PlexAPI.Models.Components.Security>? _securitySource; private Func<PlexAPI.Models.Components.Security>? _securitySource;
@@ -435,7 +435,7 @@ namespace PlexAPI
} }
} }
public async Task<GetLibrariesResponse> GetLibrariesAsync() public async Task<GetAllLibrariesResponse> GetAllLibrariesAsync()
{ {
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl(); string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
@@ -449,7 +449,7 @@ namespace PlexAPI
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); 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); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -489,8 +489,8 @@ namespace PlexAPI
{ {
if(Utilities.IsContentTypeMatch("application/json", contentType)) if(Utilities.IsContentTypeMatch("application/json", contentType))
{ {
var obj = ResponseBodyDeserializer.Deserialize<Models.Requests.GetLibrariesResponseBody>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore); var obj = ResponseBodyDeserializer.Deserialize<Models.Requests.GetAllLibrariesResponseBody>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore);
var response = new GetLibrariesResponse() var response = new GetAllLibrariesResponse()
{ {
StatusCode = responseStatusCode, StatusCode = responseStatusCode,
ContentType = contentType, ContentType = contentType,
@@ -512,7 +512,7 @@ namespace PlexAPI
{ {
if(Utilities.IsContentTypeMatch("application/json", contentType)) if(Utilities.IsContentTypeMatch("application/json", contentType))
{ {
var obj = ResponseBodyDeserializer.Deserialize<Models.Errors.GetLibrariesResponseBody>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore); var obj = ResponseBodyDeserializer.Deserialize<Models.Errors.GetAllLibrariesResponseBody>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore);
obj!.RawResponse = httpResponse; obj!.RawResponse = httpResponse;
throw obj!; throw obj!;
} }
@@ -527,9 +527,9 @@ namespace PlexAPI
} }
} }
public async Task<GetLibraryResponse> GetLibraryAsync(double sectionId, IncludeDetails? includeDetails = null) public async Task<GetLibraryDetailsResponse> GetLibraryDetailsAsync(double sectionId, IncludeDetails? includeDetails = null)
{ {
var request = new GetLibraryRequest() var request = new GetLibraryDetailsRequest()
{ {
SectionId = sectionId, SectionId = sectionId,
IncludeDetails = includeDetails, IncludeDetails = includeDetails,
@@ -545,7 +545,7 @@ namespace PlexAPI
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); 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); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -585,8 +585,8 @@ namespace PlexAPI
{ {
if(Utilities.IsContentTypeMatch("application/json", contentType)) if(Utilities.IsContentTypeMatch("application/json", contentType))
{ {
var obj = ResponseBodyDeserializer.Deserialize<Models.Requests.GetLibraryResponseBody>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore); var obj = ResponseBodyDeserializer.Deserialize<Models.Requests.GetLibraryDetailsResponseBody>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore);
var response = new GetLibraryResponse() var response = new GetLibraryDetailsResponse()
{ {
StatusCode = responseStatusCode, StatusCode = responseStatusCode,
ContentType = contentType, ContentType = contentType,
@@ -608,7 +608,7 @@ namespace PlexAPI
{ {
if(Utilities.IsContentTypeMatch("application/json", contentType)) if(Utilities.IsContentTypeMatch("application/json", contentType))
{ {
var obj = ResponseBodyDeserializer.Deserialize<Models.Errors.GetLibraryResponseBody>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore); var obj = ResponseBodyDeserializer.Deserialize<Models.Errors.GetLibraryDetailsResponseBody>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore);
obj!.RawResponse = httpResponse; obj!.RawResponse = httpResponse;
throw obj!; throw obj!;
} }
@@ -805,11 +805,12 @@ namespace PlexAPI
} }
} }
public async Task<RefreshLibraryResponse> RefreshLibraryAsync(double sectionId) public async Task<GetRefreshLibraryMetadataResponse> GetRefreshLibraryMetadataAsync(double sectionId, Force? force = null)
{ {
var request = new RefreshLibraryRequest() var request = new GetRefreshLibraryMetadataRequest()
{ {
SectionId = sectionId, SectionId = sectionId,
Force = force,
}; };
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl(); string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/refresh", request); var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/refresh", request);
@@ -822,7 +823,7 @@ namespace PlexAPI
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); 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); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -860,7 +861,7 @@ namespace PlexAPI
int responseStatusCode = (int)httpResponse.StatusCode; int responseStatusCode = (int)httpResponse.StatusCode;
if(responseStatusCode == 200) if(responseStatusCode == 200)
{ {
return new RefreshLibraryResponse() return new GetRefreshLibraryMetadataResponse()
{ {
StatusCode = responseStatusCode, StatusCode = responseStatusCode,
ContentType = contentType, ContentType = contentType,
@@ -875,7 +876,7 @@ namespace PlexAPI
{ {
if(Utilities.IsContentTypeMatch("application/json", contentType)) if(Utilities.IsContentTypeMatch("application/json", contentType))
{ {
var obj = ResponseBodyDeserializer.Deserialize<RefreshLibraryResponseBody>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore); var obj = ResponseBodyDeserializer.Deserialize<GetRefreshLibraryMetadataResponseBody>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore);
obj!.RawResponse = httpResponse; obj!.RawResponse = httpResponse;
throw obj!; throw obj!;
} }
@@ -890,7 +891,7 @@ namespace PlexAPI
} }
} }
public async Task<SearchLibraryResponse> SearchLibraryAsync(long sectionId, Type type) public async Task<SearchLibraryResponse> SearchLibraryAsync(long sectionId, Models.Requests.Type type)
{ {
var request = new SearchLibraryRequest() var request = new SearchLibraryRequest()
{ {

View File

@@ -94,10 +94,10 @@ namespace PlexAPI
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.4.1"; private const string _sdkVersion = "0.4.2";
private const string _sdkGenVersion = "2.404.3"; private const string _sdkGenVersion = "2.407.0";
private const string _openapiDocVersion = "0.0.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 const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<PlexAPI.Models.Components.Security>? _securitySource; private Func<PlexAPI.Models.Components.Security>? _securitySource;

View File

@@ -72,10 +72,10 @@ namespace PlexAPI
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.4.1"; private const string _sdkVersion = "0.4.2";
private const string _sdkGenVersion = "2.404.3"; private const string _sdkGenVersion = "2.407.0";
private const string _openapiDocVersion = "0.0.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 const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<PlexAPI.Models.Components.Security>? _securitySource; private Func<PlexAPI.Models.Components.Security>? _securitySource;

View File

@@ -12,7 +12,7 @@ namespace PlexAPI.Models.Errors
using Newtonsoft.Json; using Newtonsoft.Json;
using PlexAPI.Utils; using PlexAPI.Utils;
public class GetLibrariesErrors public class GetAllLibrariesErrors
{ {
[JsonProperty("code")] [JsonProperty("code")]

View File

@@ -19,11 +19,11 @@ namespace PlexAPI.Models.Errors
/// <summary> /// <summary>
/// Unauthorized - Returned if the X-Plex-Token is missing from the header or query. /// Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
/// </summary> /// </summary>
public class PostSignInResponseBody : Exception public class GetAllLibrariesResponseBody : Exception
{ {
[JsonProperty("errors")] [JsonProperty("errors")]
public List<PostSignInErrors>? Errors { get; set; } public List<GetAllLibrariesErrors>? Errors { get; set; }
/// <summary> /// <summary>
/// Raw HTTP response; suitable for custom response parsing /// Raw HTTP response; suitable for custom response parsing

View File

@@ -12,7 +12,7 @@ namespace PlexAPI.Models.Errors
using Newtonsoft.Json; using Newtonsoft.Json;
using PlexAPI.Utils; using PlexAPI.Utils;
public class PostSignInErrors public class GetLibraryDetailsErrors
{ {
[JsonProperty("code")] [JsonProperty("code")]

View File

@@ -19,11 +19,11 @@ namespace PlexAPI.Models.Errors
/// <summary> /// <summary>
/// Unauthorized - Returned if the X-Plex-Token is missing from the header or query. /// Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
/// </summary> /// </summary>
public class GetLibrariesResponseBody : Exception public class GetLibraryDetailsResponseBody : Exception
{ {
[JsonProperty("errors")] [JsonProperty("errors")]
public List<GetLibrariesErrors>? Errors { get; set; } public List<GetLibraryDetailsErrors>? Errors { get; set; }
/// <summary> /// <summary>
/// Raw HTTP response; suitable for custom response parsing /// Raw HTTP response; suitable for custom response parsing

View File

@@ -12,7 +12,7 @@ namespace PlexAPI.Models.Errors
using Newtonsoft.Json; using Newtonsoft.Json;
using PlexAPI.Utils; using PlexAPI.Utils;
public class RefreshLibraryErrors public class GetRefreshLibraryMetadataErrors
{ {
[JsonProperty("code")] [JsonProperty("code")]

View File

@@ -19,11 +19,11 @@ namespace PlexAPI.Models.Errors
/// <summary> /// <summary>
/// Unauthorized - Returned if the X-Plex-Token is missing from the header or query. /// Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
/// </summary> /// </summary>
public class GetLibraryResponseBody : Exception public class GetRefreshLibraryMetadataResponseBody : Exception
{ {
[JsonProperty("errors")] [JsonProperty("errors")]
public List<GetLibraryErrors>? Errors { get; set; } public List<GetRefreshLibraryMetadataErrors>? Errors { get; set; }
/// <summary> /// <summary>
/// Raw HTTP response; suitable for custom response parsing /// Raw HTTP response; suitable for custom response parsing

View File

@@ -12,7 +12,7 @@ namespace PlexAPI.Models.Errors
using Newtonsoft.Json; using Newtonsoft.Json;
using PlexAPI.Utils; using PlexAPI.Utils;
public class GetLibraryErrors public class PostUsersSignInDataErrors
{ {
[JsonProperty("code")] [JsonProperty("code")]

View File

@@ -19,11 +19,11 @@ namespace PlexAPI.Models.Errors
/// <summary> /// <summary>
/// Unauthorized - Returned if the X-Plex-Token is missing from the header or query. /// Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
/// </summary> /// </summary>
public class RefreshLibraryResponseBody : Exception public class PostUsersSignInDataResponseBody : Exception
{ {
[JsonProperty("errors")] [JsonProperty("errors")]
public List<RefreshLibraryErrors>? Errors { get; set; } public List<PostUsersSignInDataErrors>? Errors { get; set; }
/// <summary> /// <summary>
/// Raw HTTP response; suitable for custom response parsing /// Raw HTTP response; suitable for custom response parsing

View File

@@ -15,7 +15,7 @@ namespace PlexAPI.Models.Requests
{ {
/// <summary> /// <summary>
/// the Id of the library to query /// The id of the library
/// </summary> /// </summary>
[SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sectionId")] [SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sectionId")]
public double SectionId { get; set; } = default!; public double SectionId { get; set; } = default!;

View File

@@ -12,14 +12,7 @@ namespace PlexAPI.Models.Requests
using PlexAPI.Utils; using PlexAPI.Utils;
/// <summary> /// <summary>
/// Force overwriting of duplicate playlists. <br/> /// Force the refresh even if the library is already being refreshed.
///
/// <remarks>
/// By default, a playlist file uploaded with the same path will overwrite the existing playlist. <br/>
/// The `force` argument is used to disable overwriting. <br/>
/// If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.<br/>
///
/// </remarks>
/// </summary> /// </summary>
public enum Force public enum Force
{ {

View File

@@ -14,7 +14,7 @@ namespace PlexAPI.Models.Requests
using PlexAPI.Utils; using PlexAPI.Utils;
using System.Collections.Generic; using System.Collections.Generic;
public class GetLibrariesDirectory public class GetAllLibrariesDirectory
{ {
[JsonProperty("allowSync")] [JsonProperty("allowSync")]
@@ -56,12 +56,21 @@ namespace PlexAPI.Models.Requests
[JsonProperty("uuid")] [JsonProperty("uuid")]
public string? Uuid { get; set; } public string? Uuid { get; set; }
/// <summary>
/// Unix epoch datetime
/// </summary>
[JsonProperty("updatedAt")] [JsonProperty("updatedAt")]
public int? UpdatedAt { get; set; } public int? UpdatedAt { get; set; }
/// <summary>
/// Unix epoch datetime
/// </summary>
[JsonProperty("createdAt")] [JsonProperty("createdAt")]
public int? CreatedAt { get; set; } public int? CreatedAt { get; set; }
/// <summary>
/// Unix epoch datetime
/// </summary>
[JsonProperty("scannedAt")] [JsonProperty("scannedAt")]
public int? ScannedAt { get; set; } public int? ScannedAt { get; set; }

View File

@@ -14,19 +14,19 @@ namespace PlexAPI.Models.Requests
using PlexAPI.Utils; using PlexAPI.Utils;
using System.Collections.Generic; using System.Collections.Generic;
public class GetLibrariesMediaContainer public class GetAllLibrariesMediaContainer
{ {
[JsonProperty("size")] [JsonProperty("size")]
public int? Size { get; set; } public int Size { get; set; } = default!;
[JsonProperty("allowSync")] [JsonProperty("allowSync")]
public bool? AllowSync { get; set; } public bool AllowSync { get; set; } = default!;
[JsonProperty("title1")] [JsonProperty("title1")]
public string? Title1 { get; set; } public string Title1 { get; set; } = default!;
[JsonProperty("Directory")] [JsonProperty("Directory")]
public List<GetLibrariesDirectory>? Directory { get; set; } public List<GetAllLibrariesDirectory>? Directory { get; set; }
} }
} }

View File

@@ -14,7 +14,7 @@ namespace PlexAPI.Models.Requests
using System.Net.Http; using System.Net.Http;
using System; using System;
public class GetLibrariesResponse public class GetAllLibrariesResponse
{ {
/// <summary> /// <summary>
@@ -35,6 +35,6 @@ namespace PlexAPI.Models.Requests
/// <summary> /// <summary>
/// The libraries available on the Server /// The libraries available on the Server
/// </summary> /// </summary>
public Models.Requests.GetLibrariesResponseBody? Object { get; set; } public Models.Requests.GetAllLibrariesResponseBody? Object { get; set; }
} }
} }

View File

@@ -16,10 +16,10 @@ namespace PlexAPI.Models.Requests
/// <summary> /// <summary>
/// The libraries available on the Server /// The libraries available on the Server
/// </summary> /// </summary>
public class GetLibrariesResponseBody public class GetAllLibrariesResponseBody
{ {
[JsonProperty("MediaContainer")] [JsonProperty("MediaContainer")]
public GetLibrariesMediaContainer? MediaContainer { get; set; } public GetAllLibrariesMediaContainer? MediaContainer { get; set; }
} }
} }

View File

@@ -12,7 +12,7 @@ namespace PlexAPI.Models.Requests
using Newtonsoft.Json; using Newtonsoft.Json;
using PlexAPI.Utils; using PlexAPI.Utils;
public class GetLibraryDirectory public class GetLibraryDetailsDirectory
{ {
[JsonProperty("key")] [JsonProperty("key")]

View File

@@ -12,7 +12,7 @@ namespace PlexAPI.Models.Requests
using Newtonsoft.Json; using Newtonsoft.Json;
using PlexAPI.Utils; using PlexAPI.Utils;
public class GetLibraryFilter public class GetLibraryDetailsFilter
{ {
[JsonProperty("filter")] [JsonProperty("filter")]

View File

@@ -14,7 +14,7 @@ namespace PlexAPI.Models.Requests
using PlexAPI.Utils; using PlexAPI.Utils;
using System.Collections.Generic; using System.Collections.Generic;
public class GetLibraryMediaContainer public class GetLibraryDetailsMediaContainer
{ {
[JsonProperty("size")] [JsonProperty("size")]
@@ -54,10 +54,10 @@ namespace PlexAPI.Models.Requests
public int? ViewMode { get; set; } public int? ViewMode { get; set; }
[JsonProperty("Directory")] [JsonProperty("Directory")]
public List<GetLibraryDirectory>? Directory { get; set; } public List<GetLibraryDetailsDirectory>? Directory { get; set; }
[JsonProperty("Type")] [JsonProperty("Type")]
public List<GetLibraryType>? Type { get; set; } public List<GetLibraryDetailsType>? Type { get; set; }
[JsonProperty("FieldType")] [JsonProperty("FieldType")]
public List<FieldType>? FieldType { get; set; } public List<FieldType>? FieldType { get; set; }

View File

@@ -12,11 +12,11 @@ namespace PlexAPI.Models.Requests
using PlexAPI.Models.Requests; using PlexAPI.Models.Requests;
using PlexAPI.Utils; using PlexAPI.Utils;
public class GetLibraryRequest public class GetLibraryDetailsRequest
{ {
/// <summary> /// <summary>
/// the Id of the library to query /// The id of the library
/// </summary> /// </summary>
[SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sectionId")] [SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sectionId")]
public double SectionId { get; set; } = default!; public double SectionId { get; set; } = default!;

View File

@@ -14,7 +14,7 @@ namespace PlexAPI.Models.Requests
using System.Net.Http; using System.Net.Http;
using System; using System;
public class GetLibraryResponse public class GetLibraryDetailsResponse
{ {
/// <summary> /// <summary>
@@ -35,6 +35,6 @@ namespace PlexAPI.Models.Requests
/// <summary> /// <summary>
/// The details of the library /// The details of the library
/// </summary> /// </summary>
public Models.Requests.GetLibraryResponseBody? Object { get; set; } public Models.Requests.GetLibraryDetailsResponseBody? Object { get; set; }
} }
} }

View File

@@ -16,10 +16,10 @@ namespace PlexAPI.Models.Requests
/// <summary> /// <summary>
/// The details of the library /// The details of the library
/// </summary> /// </summary>
public class GetLibraryResponseBody public class GetLibraryDetailsResponseBody
{ {
[JsonProperty("MediaContainer")] [JsonProperty("MediaContainer")]
public GetLibraryMediaContainer? MediaContainer { get; set; } public GetLibraryDetailsMediaContainer? MediaContainer { get; set; }
} }
} }

View File

@@ -14,7 +14,7 @@ namespace PlexAPI.Models.Requests
using PlexAPI.Utils; using PlexAPI.Utils;
using System.Collections.Generic; using System.Collections.Generic;
public class GetLibraryType public class GetLibraryDetailsType
{ {
[JsonProperty("key")] [JsonProperty("key")]
@@ -30,7 +30,7 @@ namespace PlexAPI.Models.Requests
public bool? Active { get; set; } public bool? Active { get; set; }
[JsonProperty("Filter")] [JsonProperty("Filter")]
public List<GetLibraryFilter>? Filter { get; set; } public List<GetLibraryDetailsFilter>? Filter { get; set; }
[JsonProperty("Sort")] [JsonProperty("Sort")]
public List<Sort>? Sort { get; set; } public List<Sort>? Sort { get; set; }

View File

@@ -9,15 +9,22 @@
#nullable enable #nullable enable
namespace PlexAPI.Models.Requests namespace PlexAPI.Models.Requests
{ {
using PlexAPI.Models.Requests;
using PlexAPI.Utils; using PlexAPI.Utils;
public class RefreshLibraryRequest public class GetRefreshLibraryMetadataRequest
{ {
/// <summary> /// <summary>
/// the Id of the library to refresh /// The id of the library
/// </summary> /// </summary>
[SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sectionId")] [SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sectionId")]
public double SectionId { get; set; } = default!; public double SectionId { get; set; } = default!;
/// <summary>
/// Force the refresh even if the library is already being refreshed.
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=force")]
public Force? Force { get; set; }
} }
} }

View File

@@ -13,7 +13,7 @@ namespace PlexAPI.Models.Requests
using System.Net.Http; using System.Net.Http;
using System; using System;
public class RefreshLibraryResponse public class GetRefreshLibraryMetadataResponse
{ {
/// <summary> /// <summary>

View File

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

View File

@@ -22,15 +22,9 @@ namespace PlexAPI.Models.Requests
[JsonProperty("mode", NullValueHandling = NullValueHandling.Include)] [JsonProperty("mode", NullValueHandling = NullValueHandling.Include)]
public string? Mode { get; set; } public string? Mode { get; set; }
/// <summary>
/// Unix epoch datetime
/// </summary>
[JsonProperty("renewsAt", NullValueHandling = NullValueHandling.Include)] [JsonProperty("renewsAt", NullValueHandling = NullValueHandling.Include)]
public int? RenewsAt { get; set; } public int? RenewsAt { get; set; }
/// <summary>
/// Unix epoch datetime
/// </summary>
[JsonProperty("endsAt", NullValueHandling = NullValueHandling.Include)] [JsonProperty("endsAt", NullValueHandling = NullValueHandling.Include)]
public int? EndsAt { get; set; } public int? EndsAt { get; set; }
@@ -62,7 +56,7 @@ namespace PlexAPI.Models.Requests
public string? Transfer { get; set; } public string? Transfer { get; set; }
[JsonProperty("state")] [JsonProperty("state")]
public PostSignInState State { get; set; } = default!; public PostUsersSignInDataState State { get; set; } = default!;
[JsonProperty("billing")] [JsonProperty("billing")]
public Billing Billing { get; set; } = default!; public Billing Billing { get; set; } = default!;

View File

@@ -13,7 +13,7 @@ namespace PlexAPI.Models.Requests
using PlexAPI.Utils; using PlexAPI.Utils;
using System; using System;
public enum PostSignInUserFeatures public enum PostUsersSignInDataAuthenticationFeatures
{ {
[JsonProperty("Android - Dolby Vision")] [JsonProperty("Android - Dolby Vision")]
AndroidDolbyVision, AndroidDolbyVision,
@@ -135,16 +135,16 @@ namespace PlexAPI.Models.Requests
WebServerDashboard, 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(); 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); var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false);
if (attributes.Length == 0) if (attributes.Length == 0)
@@ -157,14 +157,14 @@ namespace PlexAPI.Models.Requests
{ {
var enumVal = field.GetValue(null); 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");
} }
} }

View File

@@ -16,7 +16,7 @@ namespace PlexAPI.Models.Requests
/// <summary> /// <summary>
/// String representation of subscriptionActive /// String representation of subscriptionActive
/// </summary> /// </summary>
public enum PostSignInUserStatus public enum PostUsersSignInDataAuthenticationResponseStatus
{ {
[JsonProperty("Inactive")] [JsonProperty("Inactive")]
Inactive, Inactive,
@@ -24,16 +24,16 @@ namespace PlexAPI.Models.Requests
Active, 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(); 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); var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false);
if (attributes.Length == 0) if (attributes.Length == 0)
@@ -46,14 +46,14 @@ namespace PlexAPI.Models.Requests
{ {
var enumVal = field.GetValue(null); 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");
} }
} }

View File

@@ -16,7 +16,7 @@ namespace PlexAPI.Models.Requests
/// <summary> /// <summary>
/// String representation of subscriptionActive /// String representation of subscriptionActive
/// </summary> /// </summary>
public enum PostSignInUserResponseStatus public enum PostUsersSignInDataAuthenticationStatus
{ {
[JsonProperty("Inactive")] [JsonProperty("Inactive")]
Inactive, Inactive,
@@ -24,16 +24,16 @@ namespace PlexAPI.Models.Requests
Active, 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(); 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); var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false);
if (attributes.Length == 0) if (attributes.Length == 0)
@@ -46,14 +46,14 @@ namespace PlexAPI.Models.Requests
{ {
var enumVal = field.GetValue(null); 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");
} }
} }

View File

@@ -14,14 +14,14 @@ namespace PlexAPI.Models.Requests
using PlexAPI.Utils; using PlexAPI.Utils;
using System.Collections.Generic; using System.Collections.Generic;
public class PostSignInUserSubscription public class PostUsersSignInDataAuthenticationSubscription
{ {
/// <summary> /// <summary>
/// List of features allowed on your Plex Pass subscription /// List of features allowed on your Plex Pass subscription
/// </summary> /// </summary>
[JsonProperty("features")] [JsonProperty("features")]
public List<PostSignInUserFeatures>? Features { get; set; } public List<PostUsersSignInDataAuthenticationFeatures>? Features { get; set; }
/// <summary> /// <summary>
/// If the account&apos;s Plex Pass subscription is active /// If the account&apos;s Plex Pass subscription is active
@@ -39,7 +39,7 @@ namespace PlexAPI.Models.Requests
/// String representation of subscriptionActive /// String representation of subscriptionActive
/// </summary> /// </summary>
[JsonProperty("status")] [JsonProperty("status")]
public PostSignInUserResponseStatus? Status { get; set; } public PostUsersSignInDataAuthenticationResponseStatus? Status { get; set; }
/// <summary> /// <summary>
/// Payment service used for your Plex Pass subscription /// Payment service used for your Plex Pass subscription

View File

@@ -16,7 +16,7 @@ namespace PlexAPI.Models.Requests
/// <summary> /// <summary>
/// The auto-select subtitle mode (0 = Manually selected, 1 = Shown with foreign audio, 2 = Always enabled) /// The auto-select subtitle mode (0 = Manually selected, 1 = Shown with foreign audio, 2 = Always enabled)
/// </summary> /// </summary>
public enum PostSignInAutoSelectSubtitle public enum PostUsersSignInDataAutoSelectSubtitle
{ {
[JsonProperty("0")] [JsonProperty("0")]
Zero, Zero,
@@ -24,16 +24,16 @@ namespace PlexAPI.Models.Requests
One, 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(); 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); var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false);
if (attributes.Length == 0) if (attributes.Length == 0)
@@ -46,14 +46,14 @@ namespace PlexAPI.Models.Requests
{ {
var enumVal = field.GetValue(null); 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");
} }
} }

View File

@@ -16,7 +16,7 @@ namespace PlexAPI.Models.Requests
/// <summary> /// <summary>
/// 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) /// 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)
/// </summary> /// </summary>
public enum PostSignInDefaultSubtitleAccessibility public enum PostUsersSignInDataDefaultSubtitleAccessibility
{ {
[JsonProperty("0")] [JsonProperty("0")]
Zero, Zero,
@@ -24,16 +24,16 @@ namespace PlexAPI.Models.Requests
One, 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(); 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); var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false);
if (attributes.Length == 0) if (attributes.Length == 0)
@@ -46,14 +46,14 @@ namespace PlexAPI.Models.Requests
{ {
var enumVal = field.GetValue(null); 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");
} }
} }

View File

@@ -16,7 +16,7 @@ namespace PlexAPI.Models.Requests
/// <summary> /// <summary>
/// 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) /// 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)
/// </summary> /// </summary>
public enum PostSignInDefaultSubtitleForced public enum PostUsersSignInDataDefaultSubtitleForced
{ {
[JsonProperty("0")] [JsonProperty("0")]
Zero, Zero,
@@ -24,16 +24,16 @@ namespace PlexAPI.Models.Requests
One, 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(); 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); var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false);
if (attributes.Length == 0) if (attributes.Length == 0)
@@ -46,14 +46,14 @@ namespace PlexAPI.Models.Requests
{ {
var enumVal = field.GetValue(null); 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");
} }
} }

View File

@@ -13,7 +13,7 @@ namespace PlexAPI.Models.Requests
using PlexAPI.Utils; using PlexAPI.Utils;
using System; using System;
public enum PostSignInFeatures public enum PostUsersSignInDataFeatures
{ {
[JsonProperty("Android - Dolby Vision")] [JsonProperty("Android - Dolby Vision")]
AndroidDolbyVision, AndroidDolbyVision,
@@ -135,16 +135,16 @@ namespace PlexAPI.Models.Requests
WebServerDashboard, 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(); 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); var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false);
if (attributes.Length == 0) if (attributes.Length == 0)
@@ -157,14 +157,14 @@ namespace PlexAPI.Models.Requests
{ {
var enumVal = field.GetValue(null); 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");
} }
} }

View File

@@ -16,7 +16,7 @@ namespace PlexAPI.Models.Requests
/// <summary> /// <summary>
/// Your current mailing list status /// Your current mailing list status
/// </summary> /// </summary>
public enum PostSignInMailingListStatus public enum PostUsersSignInDataMailingListStatus
{ {
[JsonProperty("active")] [JsonProperty("active")]
Active, Active,
@@ -24,16 +24,16 @@ namespace PlexAPI.Models.Requests
Unsubscribed, 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(); 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); var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false);
if (attributes.Length == 0) if (attributes.Length == 0)
@@ -46,14 +46,14 @@ namespace PlexAPI.Models.Requests
{ {
var enumVal = field.GetValue(null); 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");
} }
} }

View File

@@ -11,7 +11,7 @@ namespace PlexAPI.Models.Requests
{ {
using PlexAPI.Utils; using PlexAPI.Utils;
public enum PostSignInMediaReviewsVisibility public enum PostUsersSignInDataMediaReviewsVisibility
{ {
Zero = 0, Zero = 0,
One = 1, One = 1,

View File

@@ -12,7 +12,7 @@ namespace PlexAPI.Models.Requests
using PlexAPI.Models.Requests; using PlexAPI.Models.Requests;
using PlexAPI.Utils; using PlexAPI.Utils;
public class PostSignInRequest public class PostUsersSignInDataRequest
{ {
/// <summary> /// <summary>
@@ -31,6 +31,6 @@ namespace PlexAPI.Models.Requests
/// Login credentials /// Login credentials
/// </summary> /// </summary>
[SpeakeasyMetadata("request:mediaType=application/x-www-form-urlencoded")] [SpeakeasyMetadata("request:mediaType=application/x-www-form-urlencoded")]
public PostSignInRequestBody? RequestBody { get; set; } public PostUsersSignInDataRequestBody? RequestBody { get; set; }
} }
} }

View File

@@ -14,7 +14,7 @@ namespace PlexAPI.Models.Requests
/// <summary> /// <summary>
/// Login credentials /// Login credentials
/// </summary> /// </summary>
public class PostSignInRequestBody public class PostUsersSignInDataRequestBody
{ {
[SpeakeasyMetadata("form:name=login")] [SpeakeasyMetadata("form:name=login")]

View File

@@ -14,7 +14,7 @@ namespace PlexAPI.Models.Requests
using System.Net.Http; using System.Net.Http;
using System; using System;
public class PostSignInResponse public class PostUsersSignInDataResponse
{ {
/// <summary> /// <summary>
@@ -35,6 +35,6 @@ namespace PlexAPI.Models.Requests
/// <summary> /// <summary>
/// Returns the user account data with a valid auth token /// Returns the user account data with a valid auth token
/// </summary> /// </summary>
public PostSignInUserPlexAccount? UserPlexAccount { get; set; } public PostUsersSignInDataUserPlexAccount? UserPlexAccount { get; set; }
} }
} }

View File

@@ -13,7 +13,7 @@ namespace PlexAPI.Models.Requests
using PlexAPI.Models.Requests; using PlexAPI.Models.Requests;
using PlexAPI.Utils; using PlexAPI.Utils;
public class PostSignInServices public class PostUsersSignInDataServices
{ {
[JsonProperty("identifier")] [JsonProperty("identifier")]
@@ -29,6 +29,6 @@ namespace PlexAPI.Models.Requests
public string? Secret { get; set; } public string? Secret { get; set; }
[JsonProperty("status")] [JsonProperty("status")]
public PostSignInStatus Status { get; set; } = default!; public PostUsersSignInDataStatus Status { get; set; } = default!;
} }
} }

View File

@@ -13,22 +13,22 @@ namespace PlexAPI.Models.Requests
using PlexAPI.Utils; using PlexAPI.Utils;
using System; using System;
public enum PostSignInState public enum PostUsersSignInDataState
{ {
[JsonProperty("ended")] [JsonProperty("ended")]
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(); 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); var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false);
if (attributes.Length == 0) if (attributes.Length == 0)
@@ -41,14 +41,14 @@ namespace PlexAPI.Models.Requests
{ {
var enumVal = field.GetValue(null); 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");
} }
} }

View File

@@ -13,7 +13,7 @@ namespace PlexAPI.Models.Requests
using PlexAPI.Utils; using PlexAPI.Utils;
using System; using System;
public enum PostSignInStatus public enum PostUsersSignInDataStatus
{ {
[JsonProperty("online")] [JsonProperty("online")]
Online, Online,
@@ -21,16 +21,16 @@ namespace PlexAPI.Models.Requests
Offline, 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(); 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); var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false);
if (attributes.Length == 0) if (attributes.Length == 0)
@@ -43,14 +43,14 @@ namespace PlexAPI.Models.Requests
{ {
var enumVal = field.GetValue(null); 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");
} }
} }

View File

@@ -17,14 +17,14 @@ namespace PlexAPI.Models.Requests
/// <summary> /// <summary>
/// If the accounts Plex Pass subscription is active /// If the accounts Plex Pass subscription is active
/// </summary> /// </summary>
public class PostSignInSubscription public class PostUsersSignInDataSubscription
{ {
/// <summary> /// <summary>
/// List of features allowed on your Plex Pass subscription /// List of features allowed on your Plex Pass subscription
/// </summary> /// </summary>
[JsonProperty("features")] [JsonProperty("features")]
public List<PostSignInFeatures>? Features { get; set; } public List<PostUsersSignInDataFeatures>? Features { get; set; }
/// <summary> /// <summary>
/// If the account&apos;s Plex Pass subscription is active /// If the account&apos;s Plex Pass subscription is active
@@ -42,7 +42,7 @@ namespace PlexAPI.Models.Requests
/// String representation of subscriptionActive /// String representation of subscriptionActive
/// </summary> /// </summary>
[JsonProperty("status")] [JsonProperty("status")]
public PostSignInUserStatus? Status { get; set; } public PostUsersSignInDataAuthenticationStatus? Status { get; set; }
/// <summary> /// <summary>
/// Payment service used for your Plex Pass subscription /// Payment service used for your Plex Pass subscription

View File

@@ -18,7 +18,7 @@ namespace PlexAPI.Models.Requests
/// <summary> /// <summary>
/// Returns the user account data with a valid auth token /// Returns the user account data with a valid auth token
/// </summary> /// </summary>
public class PostSignInUserPlexAccount public class PostUsersSignInDataUserPlexAccount
{ {
/// <summary> /// <summary>
@@ -157,7 +157,7 @@ namespace PlexAPI.Models.Requests
/// Your current mailing list status /// Your current mailing list status
/// </summary> /// </summary>
[JsonProperty("mailingListStatus")] [JsonProperty("mailingListStatus")]
public PostSignInMailingListStatus MailingListStatus { get; set; } = default!; public PostUsersSignInDataMailingListStatus MailingListStatus { get; set; } = default!;
/// <summary> /// <summary>
/// The maximum number of accounts allowed in the Plex Home /// The maximum number of accounts allowed in the Plex Home
@@ -173,7 +173,7 @@ namespace PlexAPI.Models.Requests
public string? Pin { get; set; } public string? Pin { get; set; }
[JsonProperty("profile")] [JsonProperty("profile")]
public PostSignInUserProfile Profile { get; set; } = default!; public PostUsersSignInDataUserProfile Profile { get; set; } = default!;
/// <summary> /// <summary>
/// If the account has a Plex Home PIN enabled /// If the account has a Plex Home PIN enabled
@@ -206,13 +206,13 @@ namespace PlexAPI.Models.Requests
public string ScrobbleTypes { get; set; } = default!; public string ScrobbleTypes { get; set; } = default!;
[JsonProperty("services")] [JsonProperty("services")]
public List<PostSignInServices> Services { get; set; } = default!; public List<PostUsersSignInDataServices> Services { get; set; } = default!;
/// <summary> /// <summary>
/// If the accounts Plex Pass subscription is active /// If the accounts Plex Pass subscription is active
/// </summary> /// </summary>
[JsonProperty("subscription")] [JsonProperty("subscription")]
public PostSignInSubscription Subscription { get; set; } = default!; public PostUsersSignInDataSubscription Subscription { get; set; } = default!;
/// <summary> /// <summary>
/// Description of the Plex Pass subscription /// Description of the Plex Pass subscription
@@ -221,7 +221,7 @@ namespace PlexAPI.Models.Requests
public string? SubscriptionDescription { get; set; } public string? SubscriptionDescription { get; set; }
[JsonProperty("subscriptions")] [JsonProperty("subscriptions")]
public List<PostSignInUserSubscription> Subscriptions { get; set; } = default!; public List<PostUsersSignInDataAuthenticationSubscription> Subscriptions { get; set; } = default!;
/// <summary> /// <summary>
/// URL of the account thumbnail /// URL of the account thumbnail

View File

@@ -13,7 +13,7 @@ namespace PlexAPI.Models.Requests
using PlexAPI.Models.Requests; using PlexAPI.Models.Requests;
using PlexAPI.Utils; using PlexAPI.Utils;
public class PostSignInUserProfile public class PostUsersSignInDataUserProfile
{ {
/// <summary> /// <summary>
@@ -38,24 +38,24 @@ namespace PlexAPI.Models.Requests
/// The auto-select subtitle mode (0 = Manually selected, 1 = Shown with foreign audio, 2 = Always enabled) /// The auto-select subtitle mode (0 = Manually selected, 1 = Shown with foreign audio, 2 = Always enabled)
/// </summary> /// </summary>
[JsonProperty("autoSelectSubtitle")] [JsonProperty("autoSelectSubtitle")]
public PostSignInAutoSelectSubtitle? AutoSelectSubtitle { get; set; } public PostUsersSignInDataAutoSelectSubtitle? AutoSelectSubtitle { get; set; }
/// <summary> /// <summary>
/// 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) /// 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)
/// </summary> /// </summary>
[JsonProperty("defaultSubtitleAccessibility")] [JsonProperty("defaultSubtitleAccessibility")]
public PostSignInDefaultSubtitleAccessibility? DefaultSubtitleAccessibility { get; set; } public PostUsersSignInDataDefaultSubtitleAccessibility? DefaultSubtitleAccessibility { get; set; }
/// <summary> /// <summary>
/// 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) /// 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)
/// </summary> /// </summary>
[JsonProperty("defaultSubtitleForced")] [JsonProperty("defaultSubtitleForced")]
public PostSignInDefaultSubtitleForced? DefaultSubtitleForced { get; set; } public PostUsersSignInDataDefaultSubtitleForced? DefaultSubtitleForced { get; set; }
[JsonProperty("watchedIndicator")] [JsonProperty("watchedIndicator")]
public PostSignInWatchedIndicator? WatchedIndicator { get; set; } public PostUsersSignInDataWatchedIndicator? WatchedIndicator { get; set; }
[JsonProperty("mediaReviewsVisibility")] [JsonProperty("mediaReviewsVisibility")]
public PostSignInMediaReviewsVisibility? MediaReviewsVisibility { get; set; } public PostUsersSignInDataMediaReviewsVisibility? MediaReviewsVisibility { get; set; }
} }
} }

View File

@@ -13,7 +13,7 @@ namespace PlexAPI.Models.Requests
using PlexAPI.Utils; using PlexAPI.Utils;
using System; using System;
public enum PostSignInWatchedIndicator public enum PostUsersSignInDataWatchedIndicator
{ {
[JsonProperty("0")] [JsonProperty("0")]
Zero, Zero,
@@ -21,16 +21,16 @@ namespace PlexAPI.Models.Requests
One, 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(); 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); var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false);
if (attributes.Length == 0) if (attributes.Length == 0)
@@ -43,14 +43,14 @@ namespace PlexAPI.Models.Requests
{ {
var enumVal = field.GetValue(null); 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");
} }
} }

View File

@@ -0,0 +1,30 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace PlexAPI.Models.Requests
{
using PlexAPI.Utils;
/// <summary>
/// Force overwriting of duplicate playlists. <br/>
///
/// <remarks>
/// By default, a playlist file uploaded with the same path will overwrite the existing playlist. <br/>
/// The `force` argument is used to disable overwriting. <br/>
/// If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.<br/>
///
/// </remarks>
/// </summary>
public enum QueryParamForce
{
Zero = 0,
One = 1,
}
}

View File

@@ -25,6 +25,6 @@ namespace PlexAPI.Models.Requests
/// Plex content type to search for /// Plex content type to search for
/// </summary> /// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=type")] [SpeakeasyMetadata("queryParam:style=form,explode=true,name=type")]
public Type Type { get; set; } = default!; public Models.Requests.Type Type { get; set; } = default!;
} }
} }

View File

@@ -41,6 +41,6 @@ namespace PlexAPI.Models.Requests
/// </remarks> /// </remarks>
/// </summary> /// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=force")] [SpeakeasyMetadata("queryParam:style=form,explode=true,name=force")]
public Force Force { get; set; } = default!; public QueryParamForce Force { get; set; } = default!;
} }
} }

View File

@@ -129,7 +129,7 @@ namespace PlexAPI
/// ///
/// </remarks> /// </remarks>
/// </summary> /// </summary>
Task<UploadPlaylistResponse> UploadPlaylistAsync(string path, Force force); Task<UploadPlaylistResponse> UploadPlaylistAsync(string path, QueryParamForce force);
} }
/// <summary> /// <summary>
@@ -146,10 +146,10 @@ namespace PlexAPI
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.4.1"; private const string _sdkVersion = "0.4.2";
private const string _sdkGenVersion = "2.404.3"; private const string _sdkGenVersion = "2.407.0";
private const string _openapiDocVersion = "0.0.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 const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<PlexAPI.Models.Components.Security>? _securitySource; private Func<PlexAPI.Models.Components.Security>? _securitySource;
@@ -894,7 +894,7 @@ namespace PlexAPI
} }
} }
public async Task<UploadPlaylistResponse> UploadPlaylistAsync(string path, Force force) public async Task<UploadPlaylistResponse> UploadPlaylistAsync(string path, QueryParamForce force)
{ {
var request = new UploadPlaylistRequest() var request = new UploadPlaylistRequest()
{ {

View File

@@ -158,10 +158,10 @@ namespace PlexAPI
}; };
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.4.1"; private const string _sdkVersion = "0.4.2";
private const string _sdkGenVersion = "2.404.3"; private const string _sdkGenVersion = "2.407.0";
private const string _openapiDocVersion = "0.0.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 const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<PlexAPI.Models.Components.Security>? _securitySource; private Func<PlexAPI.Models.Components.Security>? _securitySource;

View File

@@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<IsPackable>true</IsPackable> <IsPackable>true</IsPackable>
<PackageId>PlexAPI</PackageId> <PackageId>PlexAPI</PackageId>
<Version>0.4.1</Version> <Version>0.4.2</Version>
<TargetFramework>net5.0</TargetFramework> <TargetFramework>net5.0</TargetFramework>
<Authors>LukeHagar</Authors> <Authors>LukeHagar</Authors>
<Copyright>Copyright (c) LukeHagar 2024</Copyright> <Copyright>Copyright (c) LukeHagar 2024</Copyright>

View File

@@ -213,15 +213,6 @@ namespace PlexAPI
/// </summary> /// </summary>
public IUpdater Updater { get; } public IUpdater Updater { get; }
/// <summary>
/// API Calls that perform operations with Plex Media Server Users<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
public IUser User { get; }
/// <summary> /// <summary>
/// API Calls that perform operations with Plex Media Server Watchlists<br/> /// API Calls that perform operations with Plex Media Server Watchlists<br/>
/// ///
@@ -277,10 +268,10 @@ namespace PlexAPI
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.4.1"; private const string _sdkVersion = "0.4.2";
private const string _sdkGenVersion = "2.404.3"; private const string _sdkGenVersion = "2.407.0";
private const string _openapiDocVersion = "0.0.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 const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI";
private string _serverUrl = ""; private string _serverUrl = "";
private int _serverIndex = 0; private int _serverIndex = 0;
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
@@ -300,7 +291,6 @@ namespace PlexAPI
public IStatistics Statistics { get; private set; } public IStatistics Statistics { get; private set; }
public ISessions Sessions { get; private set; } public ISessions Sessions { get; private set; }
public IUpdater Updater { get; private set; } public IUpdater Updater { get; private set; }
public IUser User { get; private set; }
public IWatchlist Watchlist { get; private set; } public IWatchlist Watchlist { get; private set; }
public PlexAPISDK(string? accessToken = null, Func<string>? accessTokenSource = null, string? xPlexClientIdentifier = null, int? serverIndex = null, ServerProtocol? protocol = null, string? ip = null, string? port = null, string? serverUrl = null, Dictionary<string, string>? urlParams = null, ISpeakeasyHttpClient? client = null, RetryConfig? retryConfig = null) public PlexAPISDK(string? accessToken = null, Func<string>? accessTokenSource = null, string? xPlexClientIdentifier = null, int? serverIndex = null, ServerProtocol? protocol = null, string? ip = null, string? port = null, string? serverUrl = null, Dictionary<string, string>? urlParams = null, ISpeakeasyHttpClient? client = null, RetryConfig? retryConfig = null)
@@ -400,9 +390,6 @@ namespace PlexAPI
Updater = new Updater(_client, _securitySource, _serverUrl, SDKConfiguration); Updater = new Updater(_client, _securitySource, _serverUrl, SDKConfiguration);
User = new User(_client, _securitySource, _serverUrl, SDKConfiguration);
Watchlist = new Watchlist(_client, _securitySource, _serverUrl, SDKConfiguration); Watchlist = new Watchlist(_client, _securitySource, _serverUrl, SDKConfiguration);
} }
} }

View File

@@ -87,10 +87,10 @@ namespace PlexAPI
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.4.1"; private const string _sdkVersion = "0.4.2";
private const string _sdkGenVersion = "2.404.3"; private const string _sdkGenVersion = "2.407.0";
private const string _openapiDocVersion = "0.0.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 const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<PlexAPI.Models.Components.Security>? _securitySource; private Func<PlexAPI.Models.Components.Security>? _securitySource;

View File

@@ -117,10 +117,10 @@ namespace PlexAPI
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.4.1"; private const string _sdkVersion = "0.4.2";
private const string _sdkGenVersion = "2.404.3"; private const string _sdkGenVersion = "2.407.0";
private const string _openapiDocVersion = "0.0.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 const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<PlexAPI.Models.Components.Security>? _securitySource; private Func<PlexAPI.Models.Components.Security>? _securitySource;

View File

@@ -80,10 +80,10 @@ namespace PlexAPI
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.4.1"; private const string _sdkVersion = "0.4.2";
private const string _sdkGenVersion = "2.404.3"; private const string _sdkGenVersion = "2.407.0";
private const string _openapiDocVersion = "0.0.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 const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<PlexAPI.Models.Components.Security>? _securitySource; private Func<PlexAPI.Models.Components.Security>? _securitySource;

View File

@@ -71,10 +71,10 @@ namespace PlexAPI
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.4.1"; private const string _sdkVersion = "0.4.2";
private const string _sdkGenVersion = "2.404.3"; private const string _sdkGenVersion = "2.407.0";
private const string _openapiDocVersion = "0.0.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 const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<PlexAPI.Models.Components.Security>? _securitySource; private Func<PlexAPI.Models.Components.Security>? _securitySource;

View File

@@ -74,10 +74,10 @@ namespace PlexAPI
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.4.1"; private const string _sdkVersion = "0.4.2";
private const string _sdkGenVersion = "2.404.3"; private const string _sdkGenVersion = "2.407.0";
private const string _openapiDocVersion = "0.0.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 const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<PlexAPI.Models.Components.Security>? _securitySource; private Func<PlexAPI.Models.Components.Security>? _securitySource;

View File

@@ -1,184 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace 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;
/// <summary>
/// API Calls that perform operations with Plex Media Server Users<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
public interface IUser
{
/// <summary>
/// Get User SignIn Data
///
/// <remarks>
/// Sign in user with username and password and return user data with Plex authentication token
/// </remarks>
/// </summary>
Task<PostSignInResponse> PostSignInAsync(string? xPlexClientIdentifier = null, PostSignInRequestBody? requestBody = null, string? serverUrl = null);
}
/// <summary>
/// API Calls that perform operations with Plex Media Server Users<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
public class User: IUser
{
/// <summary>
/// List of server URLs available for the post-sign-in operation.
/// </summary>
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<PlexAPI.Models.Components.Security>? _securitySource;
public User(ISpeakeasyHttpClient client, Func<PlexAPI.Models.Components.Security>? securitySource, string serverUrl, SDKConfig config)
{
_client = client;
_securitySource = securitySource;
_serverUrl = serverUrl;
SDKConfiguration = config;
}
public async Task<PostSignInResponse> 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<string, string>(){
});
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<PostSignInUserPlexAccount>(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<PostSignInResponseBody>(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);
}
}
}
}

View File

@@ -62,10 +62,10 @@ namespace PlexAPI
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.4.1"; private const string _sdkVersion = "0.4.2";
private const string _sdkGenVersion = "2.404.3"; private const string _sdkGenVersion = "2.407.0";
private const string _openapiDocVersion = "0.0.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 const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<PlexAPI.Models.Components.Security>? _securitySource; private Func<PlexAPI.Models.Components.Security>? _securitySource;

View File

@@ -59,10 +59,10 @@ namespace PlexAPI
}; };
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.4.1"; private const string _sdkVersion = "0.4.2";
private const string _sdkGenVersion = "2.404.3"; private const string _sdkGenVersion = "2.407.0";
private const string _openapiDocVersion = "0.0.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 const string _userAgent = "speakeasy-sdk/csharp 0.4.2 2.407.0 0.0.3 PlexAPI";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<PlexAPI.Models.Components.Security>? _securitySource; private Func<PlexAPI.Models.Components.Security>? _securitySource;

View File

@@ -12,14 +12,16 @@
### NuGet ### NuGet
To add the [NuGet](https://www.nuget.org/) package to a .NET project:
```bash ```bash
dotnet add package PlexAPI dotnet add package PlexAPI
``` ```
### Locally ### Locally
To add a reference to a local instance of the SDK in a .NET project:
```bash ```bash
dotnet add reference path/to/PlexAPI.csproj dotnet add reference PlexAPI/PlexAPI.csproj
``` ```
<!-- End SDK Installation [installation] --> <!-- End SDK Installation [installation] -->
@@ -34,7 +36,8 @@ using PlexAPI.Models.Components;
var sdk = new PlexAPISDK( var sdk = new PlexAPISDK(
accessToken: "<YOUR_API_KEY_HERE>", accessToken: "<YOUR_API_KEY_HERE>",
xPlexClientIdentifier: "Postman"); xPlexClientIdentifier: "Postman"
);
var res = await sdk.Server.GetServerCapabilitiesAsync(); 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 * [GetFileHash](docs/sdks/library/README.md#getfilehash) - Get Hash Value
* [GetRecentlyAdded](docs/sdks/library/README.md#getrecentlyadded) - Get Recently Added * [GetRecentlyAdded](docs/sdks/library/README.md#getrecentlyadded) - Get Recently Added
* [GetLibraries](docs/sdks/library/README.md#getlibraries) - Get All Libraries * [GetAllLibraries](docs/sdks/library/README.md#getalllibraries) - Get All Libraries
* [GetLibrary](docs/sdks/library/README.md#getlibrary) - Get Library Details * [GetLibraryDetails](docs/sdks/library/README.md#getlibrarydetails) - Get Library Details
* [DeleteLibrary](docs/sdks/library/README.md#deletelibrary) - Delete Library Section * [DeleteLibrary](docs/sdks/library/README.md#deletelibrary) - Delete Library Section
* [GetLibraryItems](docs/sdks/library/README.md#getlibraryitems) - Get Library Items * [GetLibraryItems](docs/sdks/library/README.md#getlibraryitems) - Get Library Items
* [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 * [SearchLibrary](docs/sdks/library/README.md#searchlibrary) - Search Library
* [GetMetadata](docs/sdks/library/README.md#getmetadata) - Get Items Metadata * [GetMetadata](docs/sdks/library/README.md#getmetadata) - Get Items Metadata
* [GetMetadataChildren](docs/sdks/library/README.md#getmetadatachildren) - Get Items Children * [GetMetadataChildren](docs/sdks/library/README.md#getmetadatachildren) - Get Items Children
@@ -139,6 +142,7 @@ var res = await sdk.Server.GetServerCapabilitiesAsync();
* [GetTransientToken](docs/sdks/authentication/README.md#gettransienttoken) - Get a Transient Token. * [GetTransientToken](docs/sdks/authentication/README.md#gettransienttoken) - Get a Transient Token.
* [GetSourceConnectionInformation](docs/sdks/authentication/README.md#getsourceconnectioninformation) - Get Source Connection Information * [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) ### [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 * [CheckForUpdates](docs/sdks/updater/README.md#checkforupdates) - Checking for updates
* [ApplyUpdates](docs/sdks/updater/README.md#applyupdates) - Apply Updates * [ApplyUpdates](docs/sdks/updater/README.md#applyupdates) - Apply Updates
### [User](docs/sdks/user/README.md)
* [PostSignIn](docs/sdks/user/README.md#postsignin) - Get User SignIn Data
### [Watchlist](docs/sdks/watchlist/README.md) ### [Watchlist](docs/sdks/watchlist/README.md)
* [GetWatchlist](docs/sdks/watchlist/README.md#getwatchlist) - Get User Watchlist * [GetWatchlist](docs/sdks/watchlist/README.md#getwatchlist) - Get User Watchlist
@@ -202,7 +202,8 @@ using PlexAPI.Models.Components;
var sdk = new PlexAPISDK( var sdk = new PlexAPISDK(
accessToken: "<YOUR_API_KEY_HERE>", accessToken: "<YOUR_API_KEY_HERE>",
xPlexClientIdentifier: "Postman"); xPlexClientIdentifier: "Postman"
);
var res = await sdk.Plex.GetCompanionsDataAsync(serverUrl: "https://plex.tv/api/v2"); var res = await sdk.Plex.GetCompanionsDataAsync(serverUrl: "https://plex.tv/api/v2");
@@ -228,7 +229,8 @@ using PlexAPI.Models.Components;
var sdk = new PlexAPISDK( var sdk = new PlexAPISDK(
accessToken: "<YOUR_API_KEY_HERE>", accessToken: "<YOUR_API_KEY_HERE>",
xPlexClientIdentifier: "Postman"); xPlexClientIdentifier: "Postman"
);
var res = await sdk.Server.GetServerCapabilitiesAsync(); var res = await sdk.Server.GetServerCapabilitiesAsync();
@@ -256,11 +258,13 @@ using PlexAPI.Models.Errors;
var sdk = new PlexAPISDK( var sdk = new PlexAPISDK(
accessToken: "<YOUR_API_KEY_HERE>", accessToken: "<YOUR_API_KEY_HERE>",
xPlexClientIdentifier: "Postman"); xPlexClientIdentifier: "Postman"
);
try try
{ {
var res = await sdk.Server.GetServerCapabilitiesAsync(); var res = await sdk.Server.GetServerCapabilitiesAsync();
// handle response // handle response
} }
catch (Exception ex) catch (Exception ex)
@@ -274,10 +278,26 @@ catch (Exception ex)
// handle exception // handle exception
} }
} }
``` ```
<!-- End Error Handling [errors] --> <!-- End Error Handling [errors] -->
<!-- Start Summary [summary] -->
## Summary
Plex-API: An Open API Spec for interacting with Plex.tv
<!-- End Summary [summary] -->
<!-- Start Table of Contents [toc] -->
## 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)
<!-- End Table of Contents [toc] -->
<!-- Placeholder for Future Speakeasy SDK Sections --> <!-- Placeholder for Future Speakeasy SDK Sections -->
# Development # Development

View File

@@ -74,4 +74,14 @@ Based on:
### Generated ### Generated
- [csharp v0.4.1] . - [csharp v0.4.1] .
### Releases ### Releases
- [NuGet v0.4.1] https://www.nuget.org/packages/PlexAPI/0.4.1 - . - [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 - .

View File

@@ -5,7 +5,8 @@ using PlexAPI.Models.Components;
var sdk = new PlexAPISDK( var sdk = new PlexAPISDK(
accessToken: "<YOUR_API_KEY_HERE>", accessToken: "<YOUR_API_KEY_HERE>",
xPlexClientIdentifier: "Postman"); xPlexClientIdentifier: "Postman"
);
var res = await sdk.Server.GetServerCapabilitiesAsync(); var res = await sdk.Server.GetServerCapabilitiesAsync();

View File

@@ -1,4 +1,4 @@
# GetLibrariesErrors # GetAllLibrariesErrors
## Fields ## Fields

View File

@@ -1,4 +1,4 @@
# GetLibrariesResponseBody # GetAllLibrariesResponseBody
Unauthorized - Returned if the X-Plex-Token is missing from the header or query. 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 | | 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 | | `RawResponse` | [HttpResponseMessage](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpresponsemessage?view=net-5.0) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -1,4 +1,4 @@
# GetLibraryErrors # GetLibraryDetailsErrors
## Fields ## Fields

View File

@@ -1,4 +1,4 @@
# GetLibraryResponseBody # GetLibraryDetailsResponseBody
Unauthorized - Returned if the X-Plex-Token is missing from the header or query. 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 | | 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 | | `RawResponse` | [HttpResponseMessage](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpresponsemessage?view=net-5.0) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -1,4 +1,4 @@
# RefreshLibraryErrors # GetRefreshLibraryMetadataErrors
## Fields ## Fields

View File

@@ -1,4 +1,4 @@
# RefreshLibraryResponseBody # GetRefreshLibraryMetadataResponseBody
Unauthorized - Returned if the X-Plex-Token is missing from the header or query. 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 | | 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 | | `RawResponse` | [HttpResponseMessage](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpresponsemessage?view=net-5.0) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -1,4 +1,4 @@
# PostSignInErrors # PostUsersSignInDataErrors
## Fields ## Fields

View File

@@ -1,4 +1,4 @@
# PostSignInResponseBody # PostUsersSignInDataResponseBody
Unauthorized - Returned if the X-Plex-Token is missing from the header or query. 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 | | 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 | | `RawResponse` | [HttpResponseMessage](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpresponsemessage?view=net-5.0) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -3,6 +3,6 @@
## Fields ## Fields
| Field | Type | Required | Description | Example | | 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 |

View File

@@ -1,10 +1,6 @@
# Force # Force
Force overwriting of duplicate playlists. Force the refresh even if the library is already being refreshed.
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 ## Values

View File

@@ -1,4 +1,4 @@
# GetLibrariesDirectory # GetAllLibrariesDirectory
## Fields ## Fields
@@ -18,9 +18,9 @@
| `Scanner` | *string* | :heavy_minus_sign: | N/A | Plex Movie | | `Scanner` | *string* | :heavy_minus_sign: | N/A | Plex Movie |
| `Language` | *string* | :heavy_minus_sign: | N/A | en-US | | `Language` | *string* | :heavy_minus_sign: | N/A | en-US |
| `Uuid` | *string* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 | | `Uuid` | *string* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 |
| `UpdatedAt` | *int* | :heavy_minus_sign: | N/A | 1705615634 | | `UpdatedAt` | *int* | :heavy_minus_sign: | Unix epoch datetime | 1556281940 |
| `CreatedAt` | *int* | :heavy_minus_sign: | N/A | 1654131312 | | `CreatedAt` | *int* | :heavy_minus_sign: | Unix epoch datetime | 1556281940 |
| `ScannedAt` | *int* | :heavy_minus_sign: | N/A | 1705615584 | | `ScannedAt` | *int* | :heavy_minus_sign: | Unix epoch datetime | 1556281940 |
| `Content` | *bool* | :heavy_minus_sign: | N/A | true | | `Content` | *bool* | :heavy_minus_sign: | N/A | true |
| `Directory` | *bool* | :heavy_minus_sign: | N/A | true | | `Directory` | *bool* | :heavy_minus_sign: | N/A | true |
| `ContentChangedAt` | *int* | :heavy_minus_sign: | N/A | 3192854 | | `ContentChangedAt` | *int* | :heavy_minus_sign: | N/A | 3192854 |

View File

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

View File

@@ -1,4 +1,4 @@
# GetLibrariesResponse # GetAllLibrariesResponse
## Fields ## Fields
@@ -8,4 +8,4 @@
| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation | | `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation | | `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation |
| `RawResponse` | [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 | | `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 | | `Object` | [Models.Requests.GetAllLibrariesResponseBody](../../Models/Requests/GetAllLibrariesResponseBody.md) | :heavy_minus_sign: | The libraries available on the Server |

View File

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

View File

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

View File

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

View File

@@ -1,4 +1,4 @@
# GetLibraryDirectory # GetLibraryDetailsDirectory
## Fields ## Fields

View File

@@ -1,4 +1,4 @@
# GetLibraryFilter # GetLibraryDetailsFilter
## Fields ## Fields

View File

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

View File

@@ -1,9 +1,9 @@
# GetLibraryRequest # GetLibraryDetailsRequest
## Fields ## Fields
| Field | Type | Required | Description | Example | | 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). <br/>Only exists for backwards compatibility, media providers other than the server libraries have it on always.<br/> | | | `IncludeDetails` | [IncludeDetails](../../Models/Requests/IncludeDetails.md) | :heavy_minus_sign: | Whether or not to include details for a section (types, filters, and sorts). <br/>Only exists for backwards compatibility, media providers other than the server libraries have it on always.<br/> | |

View File

@@ -1,4 +1,4 @@
# GetLibraryResponse # GetLibraryDetailsResponse
## Fields ## Fields
@@ -8,4 +8,4 @@
| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation | | `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation | | `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation |
| `RawResponse` | [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 | | `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 | | `Object` | [Models.Requests.GetLibraryDetailsResponseBody](../../Models/Requests/GetLibraryDetailsResponseBody.md) | :heavy_minus_sign: | The details of the library |

View File

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

View File

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

View File

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

View File

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

View File

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

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