mirror of
https://github.com/LukeHagar/plexcsharp.git
synced 2025-12-06 04:20:46 +00:00
## Csharp SDK Changes:
* `PlexApi.LibraryPlaylists.AddPlaylistItems()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.LibraryPlaylists.ClearPlaylistItems()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.LibraryCollections.MoveCollectionItem()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.LibraryCollections.DeleteCollectionItem()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.LibraryCollections.AddCollectionItems()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Content.GetSonicallySimilar()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Butler.StopTask()`: `request` **Changed** **Breaking** ⚠️ * `PlexApi.Butler.StartTask()`: `request` **Changed** **Breaking** ⚠️ * `PlexApi.Content.GetSonicPath()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.DownloadQueue.GetItemDecision()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Hubs.GetAllHubs()`: * `request.OnlyTransient` **Changed** * `response.mediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Hubs.GetContinueWatching()`: `response.mediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Hubs.GetPromotedHubs()`: `response.mediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Hubs.GetMetadataHubs()`: * `request.OnlyTransient` **Changed** * `response.mediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Hubs.GetPostplayHubs()`: * `request.OnlyTransient` **Changed** * `response.mediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Hubs.GetRelatedHubs()`: * `request.OnlyTransient` **Changed** * `response.mediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Hubs.GetSectionHubs()`: * `request.OnlyTransient` **Changed** * `response.mediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Content.GetAllLeaves()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Content.ListContent()`: * `request` **Changed** * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Search.SearchHubs()`: `response.mediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Content.GetAlbums()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.GetLibraryItems()`: * `request.MediaQuery` **Changed** * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.IngestTransientItem()`: * `request` **Changed** * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.GetLibraryMatches()`: * `request` **Changed** **Breaking** ⚠️ * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Content.GetMetadataItem()`: * `request` **Changed** * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.GetSections()`: `response.mediaContainer.Directory.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.AddSection()`: * `request` **Changed** * `response.mediaContainer.Directory.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.GetTags()`: * `request.Type` **Changed** **Breaking** ⚠️ * `PlexApi.Content.GetCollectionItems()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.GetAllItemLeaves()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Status.ListSessions()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.PlayQueue.MovePlayQueueItem()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.GetExtras()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.PlayQueue.DeletePlayQueueItem()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.PlayQueue.Unshuffle()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.ListMatches()`: * `request.Manual` **Changed** * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.ListSonicallySimilar()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.PlayQueue.Shuffle()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.GetRelatedItems()`: `response.mediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.ListSimilar()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.PlayQueue.ResetPlayQueue()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.GetItemTree()`: `response.mediaContainer.MetadataItem.[]` **Changed** **Breaking** ⚠️ * `PlexApi.PlayQueue.ClearPlayQueue()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.PlayQueue.AddToPlayQueue()`: * `request.Next` **Changed** * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.GetCommon()`: * `request.MediaQuery` **Changed** * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.GetPerson()`: `response.mediaContainer.Directory.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.ListPersonMedia()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.PlayQueue.GetPlayQueue()`: * `request` **Changed** * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.GetLibraryDetails()`: * `request.IncludeDetails` **Changed** * `response.mediaContainer.Directory.[]` **Changed** **Breaking** ⚠️ * `PlexApi.LibraryPlaylists.MovePlaylistItem()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.Autocomplete()`: * `request.MediaQuery` **Changed** * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Library.GetCollections()`: * `request.MediaQuery` **Changed** * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.LibraryPlaylists.GetPlaylistGeneratorItems()`: `response.mediaContainer.Metadata` **Changed** **Breaking** ⚠️ * `PlexApi.LibraryPlaylists.DeletePlaylistItem()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Search.VoiceSearchHubs()`: * `request.Type` **Changed** **Breaking** ⚠️ * `response.mediaContainer.Hub.[].Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.LibraryPlaylists.CreatePlaylist()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Playlist.GetPlaylistItems()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Playlist.GetPlaylist()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Playlist.ListPlaylists()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Collections.CreateCollection()`: * `request.Type` **Changed** **Breaking** ⚠️ * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.DvRs.TuneChannel()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.LiveTv.GetSessions()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.LiveTv.GetLiveTvSession()`: `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Transcoder.MakeDecision()`: * `request` **Changed** * `response.mediaContainer.Metadata.[]` **Changed** **Breaking** ⚠️ * `PlexApi.Subscriptions.GetAllSubscriptions()`: * `request` **Changed** * `response.mediaContainer.MediaSubscription.[].MediaGrabOperation.[].Metadata` **Changed** **Breaking** ⚠️ * `PlexApi.Subscriptions.CreateSubscription()`: `response.mediaContainer.MediaSubscription.[].MediaGrabOperation.[].Metadata` **Changed** **Breaking** ⚠️ * `PlexApi.Subscriptions.GetScheduledRecordings()`: `response.mediaContainer.MediaGrabOperation.[].Metadata` **Changed** **Breaking** ⚠️ * `PlexApi.Subscriptions.GetTemplate()`: `response.mediaContainer.SubscriptionTemplate.[].MediaSubscription.[].MediaGrabOperation.[].Metadata` **Changed** **Breaking** ⚠️ * `PlexApi.Subscriptions.GetSubscription()`: * `request` **Changed** * `response.mediaContainer.MediaSubscription.[].MediaGrabOperation.[].Metadata` **Changed** **Breaking** ⚠️ * `PlexApi.Subscriptions.EditSubscriptionPreferences()`: `response.mediaContainer.MediaSubscription.[].MediaGrabOperation.[].Metadata` **Changed** **Breaking** ⚠️ * `PlexApi.Subscriptions.ReorderSubscription()`: `response.mediaContainer.MediaSubscription.[].MediaGrabOperation.[].Metadata` **Changed** **Breaking** ⚠️ * `PlexApi.Library.AddSubtitles()`: `request` **Changed** * `PlexApi.LibraryPlaylists.UploadPlaylist()`: * `request.Force` **Changed** * `PlexApi.Transcoder.TranscodeSubtitles()`: `request` **Changed** * `PlexApi.Transcoder.StartTranscodeSession()`: `request` **Changed** * `PlexApi.Library.GetMediaPart()`: * `request.Download` **Changed** * `PlexApi.Library.DetectIntros()`: * `request.Force` **Changed** * `PlexApi.Library.GetSectionImage()`: * `request.MediaQuery` **Changed** * `PlexApi.Library.DeleteMediaItem()`: * `request.Proxy` **Changed** * `PlexApi.Library.RefreshItemsMetadata()`: * `request.MarkUpdated` **Changed** * `PlexApi.Authentication.Post-Users-Sign-In-Data()`: **Added** * `PlexApi.Authentication.GetTokenDetails()`: **Added** * `PlexApi.Library.DetectCredits()`: `request` **Changed** * `PlexApi.Library.SetStreamSelection()`: * `request.AllParts` **Changed** * `PlexApi.Library.UpdateItems()`: * `request.Field.locked` **Changed** * `PlexApi.PlayQueue.CreatePlayQueue()`: `request` **Changed** * `PlexApi.Library.DeleteLibrarySection()`: * `request.Async` **Changed** * `PlexApi.Library.GetAugmentationStatus()`: * `request.Wait` **Changed** * `PlexApi.Transcoder.TranscodeImage()`: `request` **Changed** * `PlexApi.Devices.ModifyDevice()`: * `request.Enabled` **Changed** * `PlexApi.Library.DetectVoiceActivity()`: `request` **Changed** * `PlexApi.Library.GetStream()`: * `request.AutoAdjustSubtitle` **Changed** * `PlexApi.Library.StartBifGeneration()`: * `request.Force` **Changed** * `PlexApi.Library.GetFirstCharacters()`: * `request.MediaQuery` **Changed** * `PlexApi.UltraBlur.GetImage()`: * `request.Noise` **Changed** * `PlexApi.Library.GenerateThumbs()`: * `request.Force` **Changed** * `PlexApi.Updater.ApplyUpdates()`: `request` **Changed** * `PlexApi.Updater.CheckUpdates()`: * `request.Download` **Changed** * `PlexApi.Library.DeleteMetadataItem()`: * `request.Proxy` **Changed** * `PlexApi.Library.OptimizeDatabase()`: * `request.Async` **Changed** * `PlexApi.Library.RefreshSection()`: * `request.Force` **Changed** * `PlexApi.Hubs.UpdateHubVisibility()`: `request` **Changed** * `PlexApi.Hubs.CreateCustomHub()`: `request` **Changed** * `PlexApi.DownloadQueue.AddDownloadQueueItems()`: `request` **Changed** * `PlexApi.Timeline.Report()`: `request` **Changed** * `PlexApi.General.GetSourceConnectionInformation()`: * `request.Refresh` **Changed** * `PlexApi.Plex.Get-Server-Resources()`: **Added** * `PlexApi.Users.Get-Users()`: **Added**
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -25,7 +25,7 @@ generation:
|
||||
generateNewTests: false
|
||||
skipResponseBodyAssertions: false
|
||||
csharp:
|
||||
version: 0.19.1
|
||||
version: 0.20.0
|
||||
additionalDependencies: []
|
||||
author: LukeHagar
|
||||
baseErrorName: PlexAPIError
|
||||
@@ -47,9 +47,11 @@ csharp:
|
||||
shared: Models/Components
|
||||
webhooks: Models/Webhooks
|
||||
includeDebugSymbols: true
|
||||
inferUnionDiscriminators: false
|
||||
inputModelSuffix: input
|
||||
maxMethodParams: 4
|
||||
methodArguments: infer-optional-args
|
||||
multipartArrayFormat: legacy
|
||||
outputModelSuffix: output
|
||||
packageName: LukeHagar.PlexAPI.SDK
|
||||
packageTags: Plex Media Server SDK
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
speakeasyVersion: 1.656.1
|
||||
speakeasyVersion: 1.665.0
|
||||
sources:
|
||||
my-source:
|
||||
sourceNamespace: my-source
|
||||
@@ -16,20 +16,20 @@ sources:
|
||||
- main
|
||||
plexapi:
|
||||
sourceNamespace: plexapi
|
||||
sourceRevisionDigest: sha256:56fc783b16af019db4eb0fe52df504315e8e7c7ae41e319a61bba8823f19df4b
|
||||
sourceBlobDigest: sha256:b62613477fd824bb42cf0bf5d0f9980448259c9c7456e03ca6a10eef39a3994f
|
||||
sourceRevisionDigest: sha256:ace004a3b232e8ab9ca3d89f2da8e40470236e6d997073a16c3f8872d67a7383
|
||||
sourceBlobDigest: sha256:993bfb796a3833b0a3b813ad12469ca34db94f23c2d15ae988a26b4d1ed80fbe
|
||||
tags:
|
||||
- latest
|
||||
- speakeasy-sdk-regen-1762993511
|
||||
- speakeasy-sdk-regen-1764549074
|
||||
- 1.1.1
|
||||
targets:
|
||||
plexcsharp:
|
||||
source: plexapi
|
||||
sourceNamespace: plexapi
|
||||
sourceRevisionDigest: sha256:56fc783b16af019db4eb0fe52df504315e8e7c7ae41e319a61bba8823f19df4b
|
||||
sourceBlobDigest: sha256:b62613477fd824bb42cf0bf5d0f9980448259c9c7456e03ca6a10eef39a3994f
|
||||
sourceRevisionDigest: sha256:ace004a3b232e8ab9ca3d89f2da8e40470236e6d997073a16c3f8872d67a7383
|
||||
sourceBlobDigest: sha256:993bfb796a3833b0a3b813ad12469ca34db94f23c2d15ae988a26b4d1ed80fbe
|
||||
codeSamplesNamespace: code-samples-csharp-plexcsharp
|
||||
codeSamplesRevisionDigest: sha256:afd93668dc1b2d774d361d321511b4a5655cbbfa606a8a41bbe498aab600f0e9
|
||||
codeSamplesRevisionDigest: sha256:1608b54b5bd352a497de07a555fe755ff438efc7fd0d0f42fb1021dda420e88f
|
||||
workflow:
|
||||
workflowVersion: 1.0.0
|
||||
speakeasyVersion: latest
|
||||
|
||||
@@ -69,10 +69,11 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
public class Activities: IActivities
|
||||
{
|
||||
public SDKConfig SDKConfiguration { get; private set; }
|
||||
private const string _language = "csharp";
|
||||
private const string _sdkVersion = "0.19.1";
|
||||
private const string _sdkGenVersion = "2.753.1";
|
||||
private const string _openapiDocVersion = "1.1.1";
|
||||
|
||||
private const string _language = Constants.Language;
|
||||
private const string _sdkVersion = Constants.SdkVersion;
|
||||
private const string _sdkGenVersion = Constants.SdkGenVersion;
|
||||
private const string _openapiDocVersion = Constants.OpenApiDocVersion;
|
||||
|
||||
public Activities(SDKConfig config)
|
||||
{
|
||||
@@ -187,7 +188,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/activities/{activityId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/activities/{activityId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
|
||||
372
LukeHagar/PlexAPI/SDK/Authentication.cs
Normal file
372
LukeHagar/PlexAPI/SDK/Authentication.cs
Normal file
@@ -0,0 +1,372 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Hooks;
|
||||
using LukeHagar.PlexAPI.SDK.Models.Components;
|
||||
using LukeHagar.PlexAPI.SDK.Models.Errors;
|
||||
using LukeHagar.PlexAPI.SDK.Models.Requests;
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using LukeHagar.PlexAPI.SDK.Utils.Retries;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Http;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
public interface IAuthentication
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Get Token Details
|
||||
///
|
||||
/// <remarks>
|
||||
/// Get the User data from the provided X-Plex-Token
|
||||
/// </remarks>
|
||||
/// </summary>
|
||||
Task<GetTokenDetailsResponse> GetTokenDetailsAsync(GetTokenDetailsRequest? request = null, string? serverUrl = null);
|
||||
|
||||
/// <summary>
|
||||
/// Get User Sign In Data
|
||||
///
|
||||
/// <remarks>
|
||||
/// Sign in user with username and password and return user data with Plex authentication token
|
||||
/// </remarks>
|
||||
/// </summary>
|
||||
Task<PostUsersSignInDataResponse> PostUsersSignInDataAsync(PostUsersSignInDataRequest? request = null, string? serverUrl = null);
|
||||
}
|
||||
|
||||
public class Authentication: IAuthentication
|
||||
{
|
||||
/// <summary>
|
||||
/// List of server URLs available for the getTokenDetails operation.
|
||||
/// </summary>
|
||||
public static readonly string[] GetTokenDetailsServerList = {
|
||||
"https://plex.tv/api/v2",
|
||||
};
|
||||
/// <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; }
|
||||
|
||||
private const string _language = Constants.Language;
|
||||
private const string _sdkVersion = Constants.SdkVersion;
|
||||
private const string _sdkGenVersion = Constants.SdkGenVersion;
|
||||
private const string _openapiDocVersion = Constants.OpenApiDocVersion;
|
||||
|
||||
public Authentication(SDKConfig config)
|
||||
{
|
||||
SDKConfiguration = config;
|
||||
}
|
||||
|
||||
public async Task<GetTokenDetailsResponse> GetTokenDetailsAsync(GetTokenDetailsRequest? request = null, string? serverUrl = null)
|
||||
{
|
||||
request.Accepts ??= SDKConfiguration.Accepts;
|
||||
request.ClientIdentifier ??= SDKConfiguration.ClientIdentifier;
|
||||
request.Product ??= SDKConfiguration.Product;
|
||||
request.Version ??= SDKConfiguration.Version;
|
||||
request.Platform ??= SDKConfiguration.Platform;
|
||||
request.PlatformVersion ??= SDKConfiguration.PlatformVersion;
|
||||
request.Device ??= SDKConfiguration.Device;
|
||||
request.Model ??= SDKConfiguration.Model;
|
||||
request.DeviceVendor ??= SDKConfiguration.DeviceVendor;
|
||||
request.DeviceName ??= SDKConfiguration.DeviceName;
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = Utilities.TemplateUrl(GetTokenDetailsServerList[0], new Dictionary<string, string>(){
|
||||
});
|
||||
if (serverUrl != null)
|
||||
{
|
||||
baseUrl = serverUrl;
|
||||
}
|
||||
|
||||
var urlString = baseUrl + "/user";
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
HeaderSerializer.PopulateHeaders(ref httpRequest, request);
|
||||
|
||||
if (SDKConfiguration.SecuritySource != null)
|
||||
{
|
||||
httpRequest = new SecurityMetadata(SDKConfiguration.SecuritySource).Apply(httpRequest);
|
||||
}
|
||||
|
||||
var hookCtx = new HookContext(SDKConfiguration, baseUrl, "getTokenDetails", null, SDKConfiguration.SecuritySource);
|
||||
|
||||
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
|
||||
|
||||
HttpResponseMessage httpResponse;
|
||||
try
|
||||
{
|
||||
httpResponse = await SDKConfiguration.Client.SendAsync(httpRequest);
|
||||
int _statusCode = (int)httpResponse.StatusCode;
|
||||
|
||||
if (_statusCode == 400 || _statusCode == 401 || _statusCode >= 400 && _statusCode < 500 || _statusCode >= 500 && _statusCode < 600)
|
||||
{
|
||||
var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), httpResponse, null);
|
||||
if (_httpResponse != null)
|
||||
{
|
||||
httpResponse = _httpResponse;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception error)
|
||||
{
|
||||
var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error);
|
||||
if (_httpResponse != null)
|
||||
{
|
||||
httpResponse = _httpResponse;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
httpResponse = await this.SDKConfiguration.Hooks.AfterSuccessAsync(new AfterSuccessContext(hookCtx), httpResponse);
|
||||
|
||||
var contentType = httpResponse.Content.Headers.ContentType?.MediaType;
|
||||
int responseStatusCode = (int)httpResponse.StatusCode;
|
||||
if(responseStatusCode == 200)
|
||||
{
|
||||
if(Utilities.IsContentTypeMatch("application/json", contentType))
|
||||
{
|
||||
var httpResponseBody = await httpResponse.Content.ReadAsStringAsync();
|
||||
UserPlexAccount obj;
|
||||
try
|
||||
{
|
||||
obj = ResponseBodyDeserializer.DeserializeNotNull<UserPlexAccount>(httpResponseBody, NullValueHandling.Include);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new ResponseValidationException("Failed to deserialize response body into UserPlexAccount.", httpResponse, httpResponseBody, ex);
|
||||
}
|
||||
|
||||
var response = new GetTokenDetailsResponse()
|
||||
{
|
||||
StatusCode = responseStatusCode,
|
||||
ContentType = contentType,
|
||||
RawResponse = httpResponse
|
||||
};
|
||||
response.UserPlexAccount = obj;
|
||||
return response;
|
||||
}
|
||||
|
||||
throw new Models.Errors.SDKException("Unknown content type received", httpResponse, await httpResponse.Content.ReadAsStringAsync());
|
||||
}
|
||||
else if(responseStatusCode == 400)
|
||||
{
|
||||
if(Utilities.IsContentTypeMatch("application/json", contentType))
|
||||
{
|
||||
var httpResponseBody = await httpResponse.Content.ReadAsStringAsync();
|
||||
GetTokenDetailsBadRequestPayload payload;
|
||||
try
|
||||
{
|
||||
payload = ResponseBodyDeserializer.DeserializeNotNull<GetTokenDetailsBadRequestPayload>(httpResponseBody, NullValueHandling.Include);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new ResponseValidationException("Failed to deserialize response body into GetTokenDetailsBadRequestPayload.", httpResponse, httpResponseBody, ex);
|
||||
}
|
||||
|
||||
payload.RawResponse = httpResponse;
|
||||
throw new GetTokenDetailsBadRequest(payload, httpResponse, httpResponseBody);
|
||||
}
|
||||
|
||||
throw new Models.Errors.SDKException("Unknown content type received", httpResponse, await httpResponse.Content.ReadAsStringAsync());
|
||||
}
|
||||
else if(responseStatusCode == 401)
|
||||
{
|
||||
if(Utilities.IsContentTypeMatch("application/json", contentType))
|
||||
{
|
||||
var httpResponseBody = await httpResponse.Content.ReadAsStringAsync();
|
||||
GetTokenDetailsUnauthorizedPayload payload;
|
||||
try
|
||||
{
|
||||
payload = ResponseBodyDeserializer.DeserializeNotNull<GetTokenDetailsUnauthorizedPayload>(httpResponseBody, NullValueHandling.Include);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new ResponseValidationException("Failed to deserialize response body into GetTokenDetailsUnauthorizedPayload.", httpResponse, httpResponseBody, ex);
|
||||
}
|
||||
|
||||
payload.RawResponse = httpResponse;
|
||||
throw new GetTokenDetailsUnauthorized(payload, httpResponse, httpResponseBody);
|
||||
}
|
||||
|
||||
throw new Models.Errors.SDKException("Unknown content type received", httpResponse, await httpResponse.Content.ReadAsStringAsync());
|
||||
}
|
||||
else if(responseStatusCode >= 400 && responseStatusCode < 500)
|
||||
{
|
||||
throw new Models.Errors.SDKException("API error occurred", httpResponse, await httpResponse.Content.ReadAsStringAsync());
|
||||
}
|
||||
else if(responseStatusCode >= 500 && responseStatusCode < 600)
|
||||
{
|
||||
throw new Models.Errors.SDKException("API error occurred", httpResponse, await httpResponse.Content.ReadAsStringAsync());
|
||||
}
|
||||
|
||||
throw new Models.Errors.SDKException("Unknown status code received", httpResponse, await httpResponse.Content.ReadAsStringAsync());
|
||||
}
|
||||
|
||||
public async Task<PostUsersSignInDataResponse> PostUsersSignInDataAsync(PostUsersSignInDataRequest? request = null, string? serverUrl = null)
|
||||
{
|
||||
request.Accepts ??= SDKConfiguration.Accepts;
|
||||
request.ClientIdentifier ??= SDKConfiguration.ClientIdentifier;
|
||||
request.Product ??= SDKConfiguration.Product;
|
||||
request.Version ??= SDKConfiguration.Version;
|
||||
request.Platform ??= SDKConfiguration.Platform;
|
||||
request.PlatformVersion ??= SDKConfiguration.PlatformVersion;
|
||||
request.Device ??= SDKConfiguration.Device;
|
||||
request.Model ??= SDKConfiguration.Model;
|
||||
request.DeviceVendor ??= SDKConfiguration.DeviceVendor;
|
||||
request.DeviceName ??= SDKConfiguration.DeviceName;
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
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", SDKConfiguration.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(SDKConfiguration, baseUrl, "post-users-sign-in-data", null, null);
|
||||
|
||||
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
|
||||
|
||||
HttpResponseMessage httpResponse;
|
||||
try
|
||||
{
|
||||
httpResponse = await SDKConfiguration.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 httpResponseBody = await httpResponse.Content.ReadAsStringAsync();
|
||||
PostUsersSignInDataUserPlexAccount obj;
|
||||
try
|
||||
{
|
||||
obj = ResponseBodyDeserializer.DeserializeNotNull<PostUsersSignInDataUserPlexAccount>(httpResponseBody, NullValueHandling.Include);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new ResponseValidationException("Failed to deserialize response body into PostUsersSignInDataUserPlexAccount.", httpResponse, httpResponseBody, ex);
|
||||
}
|
||||
|
||||
var response = new PostUsersSignInDataResponse()
|
||||
{
|
||||
StatusCode = responseStatusCode,
|
||||
ContentType = contentType,
|
||||
RawResponse = httpResponse
|
||||
};
|
||||
response.UserPlexAccount = obj;
|
||||
return response;
|
||||
}
|
||||
|
||||
throw new Models.Errors.SDKException("Unknown content type received", httpResponse, await httpResponse.Content.ReadAsStringAsync());
|
||||
}
|
||||
else if(responseStatusCode == 400)
|
||||
{
|
||||
if(Utilities.IsContentTypeMatch("application/json", contentType))
|
||||
{
|
||||
var httpResponseBody = await httpResponse.Content.ReadAsStringAsync();
|
||||
PostUsersSignInDataBadRequestPayload payload;
|
||||
try
|
||||
{
|
||||
payload = ResponseBodyDeserializer.DeserializeNotNull<PostUsersSignInDataBadRequestPayload>(httpResponseBody, NullValueHandling.Include);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new ResponseValidationException("Failed to deserialize response body into PostUsersSignInDataBadRequestPayload.", httpResponse, httpResponseBody, ex);
|
||||
}
|
||||
|
||||
payload.RawResponse = httpResponse;
|
||||
throw new PostUsersSignInDataBadRequest(payload, httpResponse, httpResponseBody);
|
||||
}
|
||||
|
||||
throw new Models.Errors.SDKException("Unknown content type received", httpResponse, await httpResponse.Content.ReadAsStringAsync());
|
||||
}
|
||||
else if(responseStatusCode == 401)
|
||||
{
|
||||
if(Utilities.IsContentTypeMatch("application/json", contentType))
|
||||
{
|
||||
var httpResponseBody = await httpResponse.Content.ReadAsStringAsync();
|
||||
PostUsersSignInDataUnauthorizedPayload payload;
|
||||
try
|
||||
{
|
||||
payload = ResponseBodyDeserializer.DeserializeNotNull<PostUsersSignInDataUnauthorizedPayload>(httpResponseBody, NullValueHandling.Include);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new ResponseValidationException("Failed to deserialize response body into PostUsersSignInDataUnauthorizedPayload.", httpResponse, httpResponseBody, ex);
|
||||
}
|
||||
|
||||
payload.RawResponse = httpResponse;
|
||||
throw new PostUsersSignInDataUnauthorized(payload, httpResponse, httpResponseBody);
|
||||
}
|
||||
|
||||
throw new Models.Errors.SDKException("Unknown content type received", httpResponse, await httpResponse.Content.ReadAsStringAsync());
|
||||
}
|
||||
else if(responseStatusCode >= 400 && responseStatusCode < 500)
|
||||
{
|
||||
throw new Models.Errors.SDKException("API error occurred", httpResponse, await httpResponse.Content.ReadAsStringAsync());
|
||||
}
|
||||
else if(responseStatusCode >= 500 && responseStatusCode < 600)
|
||||
{
|
||||
throw new Models.Errors.SDKException("API error occurred", httpResponse, await httpResponse.Content.ReadAsStringAsync());
|
||||
}
|
||||
|
||||
throw new Models.Errors.SDKException("Unknown status code received", httpResponse, await httpResponse.Content.ReadAsStringAsync());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -89,10 +89,11 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
public class Butler: IButler
|
||||
{
|
||||
public SDKConfig SDKConfiguration { get; private set; }
|
||||
private const string _language = "csharp";
|
||||
private const string _sdkVersion = "0.19.1";
|
||||
private const string _sdkGenVersion = "2.753.1";
|
||||
private const string _openapiDocVersion = "1.1.1";
|
||||
|
||||
private const string _language = Constants.Language;
|
||||
private const string _sdkVersion = Constants.SdkVersion;
|
||||
private const string _sdkGenVersion = Constants.SdkGenVersion;
|
||||
private const string _openapiDocVersion = Constants.OpenApiDocVersion;
|
||||
|
||||
public Butler(SDKConfig config)
|
||||
{
|
||||
@@ -349,7 +350,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/butler/{task}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/butler/{butlerTask}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -436,7 +437,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/butler/{task}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/butler/{butlerTask}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
|
||||
@@ -44,10 +44,11 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
public class Collections: ICollections
|
||||
{
|
||||
public SDKConfig SDKConfiguration { get; private set; }
|
||||
private const string _language = "csharp";
|
||||
private const string _sdkVersion = "0.19.1";
|
||||
private const string _sdkGenVersion = "2.753.1";
|
||||
private const string _openapiDocVersion = "1.1.1";
|
||||
|
||||
private const string _language = Constants.Language;
|
||||
private const string _sdkVersion = Constants.SdkVersion;
|
||||
private const string _sdkGenVersion = Constants.SdkGenVersion;
|
||||
private const string _openapiDocVersion = Constants.OpenApiDocVersion;
|
||||
|
||||
public Collections(SDKConfig config)
|
||||
{
|
||||
@@ -73,7 +74,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/collections", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/collections", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
|
||||
@@ -152,10 +152,11 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
public class Content: IContent
|
||||
{
|
||||
public SDKConfig SDKConfiguration { get; private set; }
|
||||
private const string _language = "csharp";
|
||||
private const string _sdkVersion = "0.19.1";
|
||||
private const string _sdkGenVersion = "2.753.1";
|
||||
private const string _openapiDocVersion = "1.1.1";
|
||||
|
||||
private const string _language = Constants.Language;
|
||||
private const string _sdkVersion = Constants.SdkVersion;
|
||||
private const string _sdkGenVersion = Constants.SdkGenVersion;
|
||||
private const string _openapiDocVersion = Constants.OpenApiDocVersion;
|
||||
|
||||
public Content(SDKConfig config)
|
||||
{
|
||||
@@ -181,7 +182,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/collections/{collectionId}/items", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/collections/{collectionId}/items", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -286,7 +287,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -391,7 +392,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/albums", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/albums", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -496,7 +497,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/all", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/all", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -601,7 +602,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/allLeaves", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/allLeaves", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -706,7 +707,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/arts", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/arts", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -811,7 +812,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/categories", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/categories", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -916,7 +917,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/cluster", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/cluster", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1021,7 +1022,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/computePath", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/computePath", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1126,7 +1127,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/location", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/location", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1231,7 +1232,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/moment", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/moment", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1336,7 +1337,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/nearest", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/nearest", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1441,7 +1442,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/collections/{collectionId}/composite/{updatedAt}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/collections/{collectionId}/composite/{updatedAt}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
|
||||
@@ -151,10 +151,11 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
public class DVRs: IDVRs
|
||||
{
|
||||
public SDKConfig SDKConfiguration { get; private set; }
|
||||
private const string _language = "csharp";
|
||||
private const string _sdkVersion = "0.19.1";
|
||||
private const string _sdkGenVersion = "2.753.1";
|
||||
private const string _openapiDocVersion = "1.1.1";
|
||||
|
||||
private const string _language = Constants.Language;
|
||||
private const string _sdkVersion = Constants.SdkVersion;
|
||||
private const string _sdkGenVersion = Constants.SdkGenVersion;
|
||||
private const string _openapiDocVersion = Constants.OpenApiDocVersion;
|
||||
|
||||
public DVRs(SDKConfig config)
|
||||
{
|
||||
@@ -265,7 +266,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/dvrs", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/dvrs", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -370,7 +371,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/dvrs/{dvrId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/dvrs/{dvrId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -457,7 +458,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/dvrs/{dvrId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/dvrs/{dvrId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -562,7 +563,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/dvrs/{dvrId}/lineups", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/dvrs/{dvrId}/lineups", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -667,7 +668,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/dvrs/{dvrId}/lineups", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/dvrs/{dvrId}/lineups", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -772,7 +773,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/dvrs/{dvrId}/prefs", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/dvrs/{dvrId}/prefs", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -877,7 +878,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/dvrs/{dvrId}/reloadGuide", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/dvrs/{dvrId}/reloadGuide", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -964,7 +965,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/dvrs/{dvrId}/reloadGuide", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/dvrs/{dvrId}/reloadGuide", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1051,7 +1052,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/dvrs/{dvrId}/channels/{channel}/tune", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/dvrs/{dvrId}/channels/{channel}/tune", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1156,7 +1157,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/dvrs/{dvrId}/devices/{deviceId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/dvrs/{dvrId}/devices/{deviceId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1261,7 +1262,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/dvrs/{dvrId}/devices/{deviceId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/dvrs/{dvrId}/devices/{deviceId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
|
||||
@@ -226,10 +226,11 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
public class Devices: IDevices
|
||||
{
|
||||
public SDKConfig SDKConfiguration { get; private set; }
|
||||
private const string _language = "csharp";
|
||||
private const string _sdkVersion = "0.19.1";
|
||||
private const string _sdkGenVersion = "2.753.1";
|
||||
private const string _openapiDocVersion = "1.1.1";
|
||||
|
||||
private const string _language = Constants.Language;
|
||||
private const string _sdkVersion = Constants.SdkVersion;
|
||||
private const string _sdkGenVersion = Constants.SdkGenVersion;
|
||||
private const string _openapiDocVersion = Constants.OpenApiDocVersion;
|
||||
|
||||
public Devices(SDKConfig config)
|
||||
{
|
||||
@@ -251,7 +252,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/media/grabbers", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/media/grabbers", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -441,7 +442,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/media/grabbers/devices", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/media/grabbers/devices", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -635,7 +636,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/media/grabbers/devices/{deviceId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/media/grabbers/devices/{deviceId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -740,7 +741,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/media/grabbers/devices/{deviceId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/media/grabbers/devices/{deviceId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -845,7 +846,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/media/grabbers/devices/{deviceId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/media/grabbers/devices/{deviceId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -950,7 +951,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/media/grabbers/devices/{deviceId}/channelmap", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/media/grabbers/devices/{deviceId}/channelmap", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1055,7 +1056,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/media/grabbers/devices/{deviceId}/channels", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/media/grabbers/devices/{deviceId}/channels", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1160,7 +1161,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/media/grabbers/devices/{deviceId}/prefs", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/media/grabbers/devices/{deviceId}/prefs", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1247,7 +1248,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/media/grabbers/devices/{deviceId}/scan", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/media/grabbers/devices/{deviceId}/scan", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1352,7 +1353,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/media/grabbers/devices/{deviceId}/scan", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/media/grabbers/devices/{deviceId}/scan", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1457,7 +1458,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/media/grabbers/devices/{deviceId}/thumb/{version}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/media/grabbers/devices/{deviceId}/thumb/{version}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
|
||||
@@ -140,10 +140,11 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
public class DownloadQueue: IDownloadQueue
|
||||
{
|
||||
public SDKConfig SDKConfiguration { get; private set; }
|
||||
private const string _language = "csharp";
|
||||
private const string _sdkVersion = "0.19.1";
|
||||
private const string _sdkGenVersion = "2.753.1";
|
||||
private const string _openapiDocVersion = "1.1.1";
|
||||
|
||||
private const string _language = Constants.Language;
|
||||
private const string _sdkVersion = Constants.SdkVersion;
|
||||
private const string _sdkGenVersion = Constants.SdkGenVersion;
|
||||
private const string _openapiDocVersion = Constants.OpenApiDocVersion;
|
||||
|
||||
public DownloadQueue(SDKConfig config)
|
||||
{
|
||||
@@ -258,7 +259,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/downloadQueue/{queueId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/downloadQueue/{queueId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -363,7 +364,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/downloadQueue/{queueId}/add", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/downloadQueue/{queueId}/add", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -468,7 +469,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/downloadQueue/{queueId}/items", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/downloadQueue/{queueId}/items", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -573,7 +574,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/downloadQueue/{queueId}/item/{itemId}/decision", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/downloadQueue/{queueId}/item/{itemId}/decision", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -678,7 +679,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/downloadQueue/{queueId}/item/{itemId}/media", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/downloadQueue/{queueId}/item/{itemId}/media", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -769,7 +770,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/downloadQueue/{queueId}/items/{itemId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/downloadQueue/{queueId}/items/{itemId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -856,7 +857,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/downloadQueue/{queueId}/items/{itemId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/downloadQueue/{queueId}/items/{itemId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -961,7 +962,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/downloadQueue/{queueId}/items/{itemId}/restart", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/downloadQueue/{queueId}/items/{itemId}/restart", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
|
||||
@@ -124,10 +124,11 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
public class Epg: IEpg
|
||||
{
|
||||
public SDKConfig SDKConfiguration { get; private set; }
|
||||
private const string _language = "csharp";
|
||||
private const string _sdkVersion = "0.19.1";
|
||||
private const string _sdkGenVersion = "2.753.1";
|
||||
private const string _openapiDocVersion = "1.1.1";
|
||||
|
||||
private const string _language = Constants.Language;
|
||||
private const string _sdkVersion = Constants.SdkVersion;
|
||||
private const string _sdkGenVersion = Constants.SdkGenVersion;
|
||||
private const string _openapiDocVersion = Constants.OpenApiDocVersion;
|
||||
|
||||
public Epg(SDKConfig config)
|
||||
{
|
||||
@@ -153,7 +154,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/epg/channelmap", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/epg/channelmap", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -258,7 +259,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/epg/channels", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/epg/channels", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -541,7 +542,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/epg/lineup", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/epg/lineup", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -628,7 +629,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/epg/lineupchannels", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/epg/lineupchannels", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -733,7 +734,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/epg/countries/{country}/{epgId}/lineups", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/epg/countries/{country}/{epgId}/lineups", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -838,7 +839,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/epg/countries/{country}/{epgId}/regions", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/epg/countries/{country}/{epgId}/regions", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -943,7 +944,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/epg/countries/{country}/{epgId}/regions/{region}/lineups", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/epg/countries/{country}/{epgId}/regions/{region}/lineups", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
|
||||
@@ -64,10 +64,11 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
public class Events: IEvents
|
||||
{
|
||||
public SDKConfig SDKConfiguration { get; private set; }
|
||||
private const string _language = "csharp";
|
||||
private const string _sdkVersion = "0.19.1";
|
||||
private const string _sdkGenVersion = "2.753.1";
|
||||
private const string _openapiDocVersion = "1.1.1";
|
||||
|
||||
private const string _language = Constants.Language;
|
||||
private const string _sdkVersion = Constants.SdkVersion;
|
||||
private const string _sdkGenVersion = Constants.SdkGenVersion;
|
||||
private const string _openapiDocVersion = Constants.OpenApiDocVersion;
|
||||
|
||||
public Events(SDKConfig config)
|
||||
{
|
||||
@@ -89,7 +90,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/:/eventsource/notifications", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/:/eventsource/notifications", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -179,7 +180,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/:/websocket/notifications", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/:/websocket/notifications", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
|
||||
@@ -72,10 +72,11 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
public class General: IGeneral
|
||||
{
|
||||
public SDKConfig SDKConfiguration { get; private set; }
|
||||
private const string _language = "csharp";
|
||||
private const string _sdkVersion = "0.19.1";
|
||||
private const string _sdkGenVersion = "2.753.1";
|
||||
private const string _openapiDocVersion = "1.1.1";
|
||||
|
||||
private const string _language = Constants.Language;
|
||||
private const string _sdkVersion = Constants.SdkVersion;
|
||||
private const string _sdkGenVersion = Constants.SdkGenVersion;
|
||||
private const string _openapiDocVersion = Constants.OpenApiDocVersion;
|
||||
|
||||
public General(SDKConfig config)
|
||||
{
|
||||
@@ -287,7 +288,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/security/resources", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/security/resources", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -392,7 +393,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/security/token", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/security/token", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
|
||||
@@ -161,10 +161,11 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
public class Hubs: IHubs
|
||||
{
|
||||
public SDKConfig SDKConfiguration { get; private set; }
|
||||
private const string _language = "csharp";
|
||||
private const string _sdkVersion = "0.19.1";
|
||||
private const string _sdkGenVersion = "2.753.1";
|
||||
private const string _openapiDocVersion = "1.1.1";
|
||||
|
||||
private const string _language = Constants.Language;
|
||||
private const string _sdkVersion = Constants.SdkVersion;
|
||||
private const string _sdkGenVersion = Constants.SdkGenVersion;
|
||||
private const string _openapiDocVersion = Constants.OpenApiDocVersion;
|
||||
|
||||
public Hubs(SDKConfig config)
|
||||
{
|
||||
@@ -186,7 +187,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -287,7 +288,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/continueWatching", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/continueWatching", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -392,7 +393,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/items", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/items", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -493,7 +494,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/promoted", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/promoted", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -598,7 +599,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/metadata/{metadataId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/metadata/{metadataId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -703,7 +704,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/metadata/{metadataId}/postplay", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/metadata/{metadataId}/postplay", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -808,7 +809,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/metadata/{metadataId}/related", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/metadata/{metadataId}/related", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -913,7 +914,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/sections/{sectionId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/sections/{sectionId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1018,7 +1019,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/sections/{sectionId}/manage", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/sections/{sectionId}/manage", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1105,7 +1106,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/sections/{sectionId}/manage", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/sections/{sectionId}/manage", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1210,7 +1211,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/sections/{sectionId}/manage", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/sections/{sectionId}/manage", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1297,7 +1298,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/sections/{sectionId}/manage/move", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/sections/{sectionId}/manage/move", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1402,7 +1403,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/sections/{sectionId}/manage/{identifier}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/sections/{sectionId}/manage/{identifier}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1489,7 +1490,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/sections/{sectionId}/manage/{identifier}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/hubs/sections/{sectionId}/manage/{identifier}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
|
||||
@@ -806,10 +806,11 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
public class Library: ILibrary
|
||||
{
|
||||
public SDKConfig SDKConfiguration { get; private set; }
|
||||
private const string _language = "csharp";
|
||||
private const string _sdkVersion = "0.19.1";
|
||||
private const string _sdkGenVersion = "2.753.1";
|
||||
private const string _openapiDocVersion = "1.1.1";
|
||||
|
||||
private const string _language = Constants.Language;
|
||||
private const string _sdkVersion = Constants.SdkVersion;
|
||||
private const string _sdkGenVersion = Constants.SdkGenVersion;
|
||||
private const string _openapiDocVersion = Constants.OpenApiDocVersion;
|
||||
|
||||
public Library(SDKConfig config)
|
||||
{
|
||||
@@ -831,7 +832,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/all", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/all", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1074,7 +1075,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/file", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/file", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1175,7 +1176,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/matches", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/matches", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1276,7 +1277,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/optimize", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/optimize", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1359,7 +1360,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/randomArtwork", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/randomArtwork", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1553,7 +1554,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/all", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/all", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1747,7 +1748,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/prefs", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/prefs", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1848,7 +1849,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/refresh", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/refresh", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1931,7 +1932,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/tags", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/tags", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -2036,7 +2037,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -2123,7 +2124,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -2210,7 +2211,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/addetect", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/addetect", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -2297,7 +2298,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/allLeaves", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/allLeaves", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -2402,7 +2403,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/analyze", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/analyze", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -2489,7 +2490,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/chapterThumbs", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/chapterThumbs", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -2576,7 +2577,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/credits", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/credits", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -2663,7 +2664,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/extras", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/extras", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -2768,7 +2769,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/extras", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/extras", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -2855,7 +2856,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/file", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/file", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -2960,7 +2961,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/index", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/index", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -3047,7 +3048,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/intro", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/intro", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -3134,7 +3135,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/marker", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/marker", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -3239,7 +3240,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/match", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/match", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -3326,7 +3327,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/matches", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/matches", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -3431,7 +3432,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/merge", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/merge", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -3518,7 +3519,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/nearest", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/nearest", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -3623,7 +3624,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/prefs", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/prefs", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -3710,7 +3711,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/refresh", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/refresh", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -3797,7 +3798,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/related", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/related", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -3902,7 +3903,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/similar", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/similar", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -4007,7 +4008,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/split", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/split", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -4094,7 +4095,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/subtitles", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/subtitles", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -4181,7 +4182,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/tree", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/tree", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -4286,7 +4287,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/unmatch", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/unmatch", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -4373,7 +4374,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/users/top", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/users/top", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -4478,7 +4479,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/voiceActivity", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/voiceActivity", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -4565,7 +4566,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/augmentations/{augmentationId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/augmentations/{augmentationId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -4652,7 +4653,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/parts/{partId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/parts/{partId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -4739,7 +4740,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/people/{personId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/people/{personId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -4844,7 +4845,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/people/{personId}/media", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/people/{personId}/media", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -4949,7 +4950,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -5036,7 +5037,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -5141,7 +5142,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -5228,7 +5229,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/all", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/all", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -5315,7 +5316,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/analyze", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/analyze", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -5402,7 +5403,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/autocomplete", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/autocomplete", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -5507,7 +5508,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/collections", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/collections", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -5612,7 +5613,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/common", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/common", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -5717,7 +5718,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/emptyTrash", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/emptyTrash", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -5804,7 +5805,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/filters", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/filters", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -5909,7 +5910,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/firstCharacters", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/firstCharacters", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -6014,7 +6015,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/indexes", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/indexes", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -6101,7 +6102,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/intros", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/intros", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -6188,7 +6189,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/prefs", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/prefs", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -6293,7 +6294,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/prefs", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/prefs", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -6380,7 +6381,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
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, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -6467,7 +6468,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
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, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -6554,7 +6555,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/sorts", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/sorts", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -6659,7 +6660,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/streams/{streamId}/levels", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/streams/{streamId}/levels", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -6764,7 +6765,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/streams/{streamId}/loudness", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/streams/{streamId}/loudness", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -6858,7 +6859,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/media/{mediaId}/chapterImages/{chapter}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/media/{mediaId}/chapterImages/{chapter}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -6952,7 +6953,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/{element}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/{element}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -7039,7 +7040,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/{element}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/{element}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -7126,7 +7127,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/marker/{marker}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/marker/{marker}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -7213,7 +7214,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/marker/{marker}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/marker/{marker}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -7318,7 +7319,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/media/{mediaItem}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/media/{mediaItem}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -7405,7 +7406,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/parts/{partId}/indexes/{index}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/parts/{partId}/indexes/{index}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -7499,7 +7500,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/collection/{collectionId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/collection/{collectionId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -7586,7 +7587,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/composite/{updatedAt}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/composite/{updatedAt}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -7673,7 +7674,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/streams/{streamId}.{ext}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/streams/{streamId}.{ext}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -7760,7 +7761,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/streams/{streamId}.{ext}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/streams/{streamId}.{ext}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -7847,7 +7848,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/streams/{streamId}.{ext}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/streams/{streamId}.{ext}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -7934,7 +7935,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/{element}/{timestamp}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ids}/{element}/{timestamp}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -8039,7 +8040,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/parts/{partId}/{changestamp}/{filename}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/parts/{partId}/{changestamp}/{filename}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -8126,7 +8127,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/parts/{partId}/indexes/{index}/{offset}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/parts/{partId}/indexes/{index}/{offset}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
|
||||
@@ -62,10 +62,11 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
public class LibraryCollections: ILibraryCollections
|
||||
{
|
||||
public SDKConfig SDKConfiguration { get; private set; }
|
||||
private const string _language = "csharp";
|
||||
private const string _sdkVersion = "0.19.1";
|
||||
private const string _sdkGenVersion = "2.753.1";
|
||||
private const string _openapiDocVersion = "1.1.1";
|
||||
|
||||
private const string _language = Constants.Language;
|
||||
private const string _sdkVersion = Constants.SdkVersion;
|
||||
private const string _sdkGenVersion = Constants.SdkGenVersion;
|
||||
private const string _openapiDocVersion = Constants.OpenApiDocVersion;
|
||||
|
||||
public LibraryCollections(SDKConfig config)
|
||||
{
|
||||
@@ -91,7 +92,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/collections/{collectionId}/items", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/collections/{collectionId}/items", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -196,7 +197,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/collections/{collectionId}/items/{itemId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/collections/{collectionId}/items/{itemId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -301,7 +302,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/collections/{collectionId}/items/{itemId}/move", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/library/collections/{collectionId}/items/{itemId}/move", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
|
||||
@@ -143,10 +143,11 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
public class LibraryPlaylists: ILibraryPlaylists
|
||||
{
|
||||
public SDKConfig SDKConfiguration { get; private set; }
|
||||
private const string _language = "csharp";
|
||||
private const string _sdkVersion = "0.19.1";
|
||||
private const string _sdkGenVersion = "2.753.1";
|
||||
private const string _openapiDocVersion = "1.1.1";
|
||||
|
||||
private const string _language = Constants.Language;
|
||||
private const string _sdkVersion = Constants.SdkVersion;
|
||||
private const string _sdkGenVersion = Constants.SdkGenVersion;
|
||||
private const string _openapiDocVersion = Constants.OpenApiDocVersion;
|
||||
|
||||
public LibraryPlaylists(SDKConfig config)
|
||||
{
|
||||
@@ -168,7 +169,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/playlists", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/playlists", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -269,7 +270,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/playlists/upload", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/playlists/upload", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -356,7 +357,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/playlists/{playlistId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/playlists/{playlistId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -443,7 +444,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/playlists/{playlistId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/playlists/{playlistId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -530,7 +531,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/playlists/{playlistId}/generators", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/playlists/{playlistId}/generators", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -635,7 +636,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/playlists/{playlistId}/items", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/playlists/{playlistId}/items", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -740,7 +741,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/playlists/{playlistId}/items", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/playlists/{playlistId}/items", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -845,7 +846,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/playlists/{playlistId}/items/{generatorId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/playlists/{playlistId}/items/{generatorId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Delete, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -950,7 +951,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/playlists/{playlistId}/items/{generatorId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/playlists/{playlistId}/items/{generatorId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1055,7 +1056,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/playlists/{playlistId}/items/{generatorId}/items", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/playlists/{playlistId}/items/{generatorId}/items", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1160,7 +1161,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/playlists/{playlistId}/items/{playlistItemId}/move", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/playlists/{playlistId}/items/{playlistItemId}/move", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -1265,7 +1266,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/playlists/{playlistId}/items/{generatorId}/{metadataId}/{action}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/playlists/{playlistId}/items/{generatorId}/{metadataId}/{action}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
|
||||
@@ -79,10 +79,11 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
public class LiveTV: ILiveTV
|
||||
{
|
||||
public SDKConfig SDKConfiguration { get; private set; }
|
||||
private const string _language = "csharp";
|
||||
private const string _sdkVersion = "0.19.1";
|
||||
private const string _sdkGenVersion = "2.753.1";
|
||||
private const string _openapiDocVersion = "1.1.1";
|
||||
|
||||
private const string _language = Constants.Language;
|
||||
private const string _sdkVersion = Constants.SdkVersion;
|
||||
private const string _sdkGenVersion = Constants.SdkGenVersion;
|
||||
private const string _openapiDocVersion = Constants.OpenApiDocVersion;
|
||||
|
||||
public LiveTV(SDKConfig config)
|
||||
{
|
||||
@@ -197,7 +198,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/sessions/{sessionId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/sessions/{sessionId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -302,7 +303,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/sessions/{sessionId}/{consumerId}/index.m3u8", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/sessions/{sessionId}/{consumerId}/index.m3u8", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -389,7 +390,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/sessions/{sessionId}/{consumerId}/{segmentId}", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/livetv/sessions/{sessionId}/{consumerId}/{segmentId}", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
|
||||
@@ -68,10 +68,11 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
public class Log: ILog
|
||||
{
|
||||
public SDKConfig SDKConfiguration { get; private set; }
|
||||
private const string _language = "csharp";
|
||||
private const string _sdkVersion = "0.19.1";
|
||||
private const string _sdkGenVersion = "2.753.1";
|
||||
private const string _openapiDocVersion = "1.1.1";
|
||||
|
||||
private const string _language = Constants.Language;
|
||||
private const string _sdkVersion = Constants.SdkVersion;
|
||||
private const string _sdkGenVersion = Constants.SdkGenVersion;
|
||||
private const string _openapiDocVersion = Constants.OpenApiDocVersion;
|
||||
|
||||
public Log(SDKConfig config)
|
||||
{
|
||||
@@ -170,7 +171,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/log", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/log", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Put, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
@@ -253,7 +254,7 @@ namespace LukeHagar.PlexAPI.SDK
|
||||
request.Marketplace ??= SDKConfiguration.Marketplace;
|
||||
|
||||
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
|
||||
var urlString = URLBuilder.Build(baseUrl, "/log/networked", request);
|
||||
var urlString = URLBuilder.Build(baseUrl, "/log/networked", request, null);
|
||||
|
||||
var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString);
|
||||
httpRequest.Headers.Add("user-agent", SDKConfiguration.UserAgent);
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<PropertyGroup>
|
||||
<IsPackable>true</IsPackable>
|
||||
<PackageId>LukeHagar.PlexAPI.SDK</PackageId>
|
||||
<Version>0.19.1</Version>
|
||||
<Version>0.20.0</Version>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<Authors>LukeHagar</Authors>
|
||||
<Copyright>Copyright (c) LukeHagar 2025</Copyright>
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
|
||||
/// <summary>
|
||||
/// The auto-select subtitle mode (0 = Manually selected, 1 = Shown with foreign audio, 2 = Always enabled)
|
||||
/// </summary>
|
||||
public enum AutoSelectSubtitle
|
||||
{
|
||||
ManuallySelected = 0,
|
||||
ShownWithForeignAudio = 1,
|
||||
AlwaysEnabled = 2,
|
||||
}
|
||||
|
||||
}
|
||||
@@ -13,8 +13,8 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
|
||||
public enum BoolInt
|
||||
{
|
||||
Zero = 0,
|
||||
One = 1,
|
||||
False = 0,
|
||||
True = 1,
|
||||
}
|
||||
|
||||
}
|
||||
61
LukeHagar/PlexAPI/SDK/Models/Components/Connections.cs
Normal file
61
LukeHagar/PlexAPI/SDK/Models/Components/Connections.cs
Normal file
@@ -0,0 +1,61 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Models.Components;
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
public class Connections
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// The protocol used for the connection (http, https, etc)
|
||||
/// </summary>
|
||||
[JsonProperty("protocol")]
|
||||
public PlexDeviceProtocol Protocol { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// The (ip) address or domain name used for the connection
|
||||
/// </summary>
|
||||
[JsonProperty("address")]
|
||||
public string Address { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// The port used for the connection
|
||||
/// </summary>
|
||||
[JsonProperty("port")]
|
||||
public int Port { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// The full URI of the connection
|
||||
/// </summary>
|
||||
[JsonProperty("uri")]
|
||||
public string Uri { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// If the connection is local address
|
||||
/// </summary>
|
||||
[JsonProperty("local")]
|
||||
public bool Local { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// If the connection is relayed through plex.direct
|
||||
/// </summary>
|
||||
[JsonProperty("relay")]
|
||||
public bool Relay { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// If the connection is using IPv6
|
||||
/// </summary>
|
||||
[JsonProperty("IPv6")]
|
||||
public bool IPv6 { get; set; } = default!;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
|
||||
/// <summary>
|
||||
/// The audio accessibility mode (0 = Prefer non-accessibility audio, 1 = Prefer accessibility audio, 2 = Only show accessibility audio, 3 = Only show non-accessibility audio)
|
||||
/// </summary>
|
||||
public enum DefaultAudioAccessibility
|
||||
{
|
||||
PreferNonAccessibility = 0,
|
||||
PreferAccessibility = 1,
|
||||
OnlyAccessibility = 2,
|
||||
OnlyNonAccessibility = 3,
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
|
||||
/// <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 show non-SDH subtitles)
|
||||
/// </summary>
|
||||
public enum DefaultSubtitleAccessibility
|
||||
{
|
||||
PreferNonSdh = 0,
|
||||
PreferSdh = 1,
|
||||
OnlySdh = 2,
|
||||
OnlyNonSdh = 3,
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
|
||||
/// <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)
|
||||
/// </summary>
|
||||
public enum DefaultSubtitleForced
|
||||
{
|
||||
PreferNonForced = 0,
|
||||
PreferForced = 1,
|
||||
OnlyForced = 2,
|
||||
OnlyNonForced = 3,
|
||||
}
|
||||
|
||||
}
|
||||
28
LukeHagar/PlexAPI/SDK/Models/Components/Guids.cs
Normal file
28
LukeHagar/PlexAPI/SDK/Models/Components/Guids.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
public class Guids
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb://<br/>
|
||||
///
|
||||
/// <remarks>
|
||||
///
|
||||
/// </remarks>
|
||||
/// </summary>
|
||||
[JsonProperty("id")]
|
||||
public string Id { get; set; } = default!;
|
||||
}
|
||||
}
|
||||
@@ -12,6 +12,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
using LukeHagar.PlexAPI.SDK.Models.Components;
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using NodaTime;
|
||||
using System.Collections.Generic;
|
||||
|
||||
/// <summary>
|
||||
@@ -32,43 +33,43 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// The title of the item (e.g. “300” or “The Simpsons”)
|
||||
/// </summary>
|
||||
[JsonProperty("title")]
|
||||
public object? Title { get; set; }
|
||||
public string Title { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// The type of the video item, such as `movie`, `episode`, or `clip`.
|
||||
/// </summary>
|
||||
[JsonProperty("type")]
|
||||
public object? Type { get; set; }
|
||||
public string Type { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// When present, contains the disc number for a track on multi-disc albums.
|
||||
/// </summary>
|
||||
[JsonProperty("absoluteIndex")]
|
||||
public long? AbsoluteIndex { get; set; }
|
||||
public int? AbsoluteIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// In units of seconds since the epoch, returns the time at which the item was added to the library.
|
||||
/// </summary>
|
||||
[JsonProperty("addedAt")]
|
||||
public long? AddedAt { get; set; }
|
||||
public long AddedAt { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// When present, the URL for the background artwork for the item.
|
||||
/// </summary>
|
||||
[JsonProperty("art")]
|
||||
public object? Art { get; set; }
|
||||
public string? Art { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Some rating systems separate reviewer ratings from audience ratings
|
||||
/// </summary>
|
||||
[JsonProperty("audienceRating")]
|
||||
public double? AudienceRating { get; set; }
|
||||
public float? AudienceRating { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// A URI representing the image to be shown with the audience rating (e.g. rottentomatoes://image.rating.spilled).
|
||||
/// </summary>
|
||||
[JsonProperty("audienceRatingImage")]
|
||||
public object? AudienceRatingImage { get; set; }
|
||||
public string? AudienceRatingImage { get; set; }
|
||||
|
||||
[JsonProperty("Autotag")]
|
||||
public List<Tag>? Autotag { get; set; }
|
||||
@@ -77,25 +78,31 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, the URL for a banner graphic for the item.
|
||||
/// </summary>
|
||||
[JsonProperty("banner")]
|
||||
public object? Banner { get; set; }
|
||||
public string? Banner { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, indicates the source for the chapters in the media file. Can be media (the chapters were embedded in the media itself), agent (a metadata agent computed them), or mixed (a combination of the two).
|
||||
/// </summary>
|
||||
[JsonProperty("chapterSource")]
|
||||
public object? ChapterSource { get; set; }
|
||||
public string? ChapterSource { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The number of child items associated with this media item.
|
||||
/// </summary>
|
||||
[JsonProperty("childCount")]
|
||||
public int? ChildCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, the URL for a composite image for descendent items (e.g. photo albums or playlists).
|
||||
/// </summary>
|
||||
[JsonProperty("composite")]
|
||||
public object? Composite { get; set; }
|
||||
public string? Composite { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// If known, the content rating (e.g. MPAA) for an item.
|
||||
/// </summary>
|
||||
[JsonProperty("contentRating")]
|
||||
public object? ContentRating { get; set; }
|
||||
public string? ContentRating { get; set; }
|
||||
|
||||
[JsonProperty("Country")]
|
||||
public List<Tag>? Country { get; set; }
|
||||
@@ -107,7 +114,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, the duration for the item, in units of milliseconds.
|
||||
/// </summary>
|
||||
[JsonProperty("duration")]
|
||||
public long? Duration { get; set; }
|
||||
public int? Duration { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Typically only seen in metadata at a library's top level
|
||||
@@ -124,6 +131,12 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
[JsonProperty("grandparentArt")]
|
||||
public string? GrandparentArt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The GUID of the grandparent media item.
|
||||
/// </summary>
|
||||
[JsonProperty("grandparentGuid")]
|
||||
public string? GrandparentGuid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The `hero` of the grandparent
|
||||
/// </summary>
|
||||
@@ -160,14 +173,20 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
[JsonProperty("grandparentTitle")]
|
||||
public string? GrandparentTitle { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The globally unique identifier for the media item.
|
||||
/// </summary>
|
||||
[JsonProperty("guid")]
|
||||
public string? Guid { get; set; }
|
||||
|
||||
[JsonProperty("Guid")]
|
||||
public List<Tag>? Guid { get; set; }
|
||||
public List<ItemsGuids>? Guids { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, the URL for a hero image for the item.
|
||||
/// </summary>
|
||||
[JsonProperty("hero")]
|
||||
public object? Hero { get; set; }
|
||||
public string? Hero { get; set; }
|
||||
|
||||
[JsonProperty("Image")]
|
||||
public List<Image>? Image { get; set; }
|
||||
@@ -176,17 +195,14 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, this represents the episode number for episodes, season number for seasons, or track number for audio tracks.
|
||||
/// </summary>
|
||||
[JsonProperty("index")]
|
||||
public long? Index { get; set; }
|
||||
public int? Index { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The key at which the item's details can be fetched. In many cases a metadata item may be passed without all the details (such as in a hub) and this key corresponds to the endpoint to fetch additional details.
|
||||
/// </summary>
|
||||
[JsonProperty("key")]
|
||||
public object? Key { get; set; }
|
||||
public string Key { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// When a user has watched or listened to an item, this contains a timestamp (epoch seconds) for that last consumption time.
|
||||
/// </summary>
|
||||
[JsonProperty("lastViewedAt")]
|
||||
public long? LastViewedAt { get; set; }
|
||||
|
||||
@@ -194,7 +210,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// For shows and seasons, contains the number of total episodes.
|
||||
/// </summary>
|
||||
[JsonProperty("leafCount")]
|
||||
public long? LeafCount { get; set; }
|
||||
public int? LeafCount { get; set; }
|
||||
|
||||
[JsonProperty("Media")]
|
||||
public List<Media>? Media { get; set; }
|
||||
@@ -203,13 +219,19 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, in the format YYYY-MM-DD [HH:MM:SS] (the hours/minutes/seconds part is not always present). The air date, or a higher resolution release date for an item, depending on type. For example, episodes usually have air date like 1979-08-10 (we don't use epoch seconds because media existed prior to 1970). In some cases, recorded over-the-air content has higher resolution air date which includes a time component. Albums and movies may have day-resolution release dates as well.
|
||||
/// </summary>
|
||||
[JsonProperty("originallyAvailableAt")]
|
||||
public object? OriginallyAvailableAt { get; set; }
|
||||
public LocalDate? OriginallyAvailableAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, used to indicate an item's original title, e.g. a movie's foreign title.
|
||||
/// </summary>
|
||||
[JsonProperty("originalTitle")]
|
||||
public object? OriginalTitle { get; set; }
|
||||
public string? OriginalTitle { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The GUID of the parent media item.
|
||||
/// </summary>
|
||||
[JsonProperty("parentGuid")]
|
||||
public string? ParentGuid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The `hero` of the parent
|
||||
@@ -221,7 +243,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// The `index` of the parent
|
||||
/// </summary>
|
||||
[JsonProperty("parentIndex")]
|
||||
public long? ParentIndex { get; set; }
|
||||
public int? ParentIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The `key` of the parent
|
||||
@@ -251,7 +273,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// Indicates that the item has a primary extra; for a movie, this is a trailer, and for a music track it is a music video. The URL points to the metadata details endpoint for the item.
|
||||
/// </summary>
|
||||
[JsonProperty("primaryExtraKey")]
|
||||
public object? PrimaryExtraKey { get; set; }
|
||||
public string? PrimaryExtraKey { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Prompt to give the user for this directory (such as `Search Movies`)
|
||||
@@ -263,7 +285,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, the rating for the item. The exact meaning and representation depends on where the rating was sourced from.
|
||||
/// </summary>
|
||||
[JsonProperty("rating")]
|
||||
public double? Rating { get; set; }
|
||||
public float? Rating { get; set; }
|
||||
|
||||
[JsonProperty("Rating")]
|
||||
public List<Tag>? RatingArray { get; set; }
|
||||
@@ -272,19 +294,19 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// Number of ratings under this metadata
|
||||
/// </summary>
|
||||
[JsonProperty("ratingCount")]
|
||||
public long? RatingCount { get; set; }
|
||||
public int? RatingCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, indicates an image to be shown with the rating. This is passed back as a small set of defined URI values, e.g. rottentomatoes://image.rating.rotten.
|
||||
/// </summary>
|
||||
[JsonProperty("ratingImage")]
|
||||
public object? RatingImage { get; set; }
|
||||
public string? RatingImage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This is the opaque string to be passed into timeline, scrobble, and rating endpoints to identify them. While it often appears to be numeric, this is not guaranteed.
|
||||
/// </summary>
|
||||
[JsonProperty("ratingKey")]
|
||||
public object? RatingKey { get; set; }
|
||||
public string? RatingKey { get; set; }
|
||||
|
||||
[JsonProperty("Role")]
|
||||
public List<Tag>? Role { get; set; }
|
||||
@@ -323,43 +345,43 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, the studio or label which produced an item (e.g. movie studio for movies, record label for albums).
|
||||
/// </summary>
|
||||
[JsonProperty("studio")]
|
||||
public object? Studio { get; set; }
|
||||
public string? Studio { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The subtype of the video item, such as `photo` when the video item is in a photo library
|
||||
/// </summary>
|
||||
[JsonProperty("subtype")]
|
||||
public object? Subtype { get; set; }
|
||||
public string? Subtype { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, the extended textual information about the item (e.g. movie plot, artist biography, album review).
|
||||
/// </summary>
|
||||
[JsonProperty("summary")]
|
||||
public object? Summary { get; set; }
|
||||
public string? Summary { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, a pithy one-liner about the item (usually only seen for movies).
|
||||
/// </summary>
|
||||
[JsonProperty("tagline")]
|
||||
public object? Tagline { get; set; }
|
||||
public string? Tagline { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, the URL for theme music for the item (usually only for TV shows).
|
||||
/// </summary>
|
||||
[JsonProperty("theme")]
|
||||
public object? Theme { get; set; }
|
||||
public string? Theme { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, the URL for the poster or thumbnail for the item. When available for types like movie, it will be the poster graphic, but fall-back to the extracted media thumbnail.
|
||||
/// </summary>
|
||||
[JsonProperty("thumb")]
|
||||
public object? Thumb { get; set; }
|
||||
public string? Thumb { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whene present, this is the string used for sorting the item. It's usually the title with any leading articles removed (e.g. “Simpsons”).
|
||||
/// </summary>
|
||||
[JsonProperty("titleSort")]
|
||||
public object? TitleSort { get; set; }
|
||||
public string? TitleSort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// In units of seconds since the epoch, returns the time at which the item was last changed (e.g. had its metadata updated).
|
||||
@@ -371,25 +393,25 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When the user has rated an item, this contains the user rating
|
||||
/// </summary>
|
||||
[JsonProperty("userRating")]
|
||||
public double? UserRating { get; set; }
|
||||
public float? UserRating { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When a users has completed watched or listened to an item, this attribute contains the number of consumptions.
|
||||
/// </summary>
|
||||
[JsonProperty("viewCount")]
|
||||
public long? ViewCount { get; set; }
|
||||
public int? ViewCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// For shows and seasons, contains the number of viewed episodes.
|
||||
/// </summary>
|
||||
[JsonProperty("viewedLeafCount")]
|
||||
public long? ViewedLeafCount { get; set; }
|
||||
public int? ViewedLeafCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When a user is in the process of viewing or listening to this item, this attribute contains the current offset, in units of milliseconds.
|
||||
/// </summary>
|
||||
[JsonProperty("viewOffset")]
|
||||
public long? ViewOffset { get; set; }
|
||||
public int? ViewOffset { get; set; }
|
||||
|
||||
[JsonProperty("Writer")]
|
||||
public List<Tag>? Writer { get; set; }
|
||||
@@ -398,7 +420,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, the year associated with the item's release (e.g. release year for a movie).
|
||||
/// </summary>
|
||||
[JsonProperty("year")]
|
||||
public long? Year { get; set; }
|
||||
public int? Year { get; set; }
|
||||
|
||||
[JsonProperty("MetadataItem")]
|
||||
public List<Items>? MetadataItem { get; set; }
|
||||
|
||||
28
LukeHagar/PlexAPI/SDK/Models/Components/ItemsGuids.cs
Normal file
28
LukeHagar/PlexAPI/SDK/Models/Components/ItemsGuids.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
public class ItemsGuids
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb://<br/>
|
||||
///
|
||||
/// <remarks>
|
||||
///
|
||||
/// </remarks>
|
||||
/// </summary>
|
||||
[JsonProperty("id")]
|
||||
public string Id { get; set; } = default!;
|
||||
}
|
||||
}
|
||||
@@ -17,11 +17,21 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
public class LibrarySection
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// The title of the library
|
||||
/// </summary>
|
||||
[JsonProperty("title")]
|
||||
public string? Title { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The type of media content in the Plex library. This can represent videos, music, or photos.<br/>
|
||||
///
|
||||
/// <remarks>
|
||||
///
|
||||
/// </remarks>
|
||||
/// </summary>
|
||||
[JsonProperty("type")]
|
||||
public string? Type { get; set; }
|
||||
public MediaTypeString Type { get; set; } = default!;
|
||||
|
||||
[JsonProperty("agent")]
|
||||
public string? Agent { get; set; }
|
||||
@@ -60,7 +70,13 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
public string? Key { get; set; }
|
||||
|
||||
[JsonProperty("language")]
|
||||
public string? Language { get; set; }
|
||||
public string Language { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// The universally unique identifier for the library.
|
||||
/// </summary>
|
||||
[JsonProperty("uuid")]
|
||||
public string Uuid { get; set; } = default!;
|
||||
|
||||
[JsonProperty("Location")]
|
||||
public List<LibrarySectionLocation>? Location { get; set; }
|
||||
|
||||
62
LukeHagar/PlexAPI/SDK/Models/Components/MailingListStatus.cs
Normal file
62
LukeHagar/PlexAPI/SDK/Models/Components/MailingListStatus.cs
Normal file
@@ -0,0 +1,62 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
|
||||
/// <summary>
|
||||
/// Your current mailing list status
|
||||
/// </summary>
|
||||
public enum MailingListStatus
|
||||
{
|
||||
[JsonProperty("active")]
|
||||
Active,
|
||||
[JsonProperty("unsubscribed")]
|
||||
Unsubscribed,
|
||||
[JsonProperty("removed")]
|
||||
Removed,
|
||||
}
|
||||
|
||||
public static class MailingListStatusExtension
|
||||
{
|
||||
public static string Value(this MailingListStatus value)
|
||||
{
|
||||
return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString();
|
||||
}
|
||||
|
||||
public static MailingListStatus ToEnum(this string value)
|
||||
{
|
||||
foreach(var field in typeof(MailingListStatus).GetFields())
|
||||
{
|
||||
var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false);
|
||||
if (attributes.Length == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var attribute = attributes[0] as JsonPropertyAttribute;
|
||||
if (attribute != null && attribute.PropertyName == value)
|
||||
{
|
||||
var enumVal = field.GetValue(null);
|
||||
|
||||
if (enumVal is MailingListStatus)
|
||||
{
|
||||
return (MailingListStatus)enumVal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
throw new Exception($"Unknown value {value} for enum MailingListStatus");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -25,25 +25,25 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
|
||||
[JsonProperty("aspectRatio")]
|
||||
public double? AspectRatio { get; set; }
|
||||
public float? AspectRatio { get; set; }
|
||||
|
||||
[JsonProperty("audioChannels")]
|
||||
public long? AudioChannels { get; set; }
|
||||
public int? AudioChannels { get; set; }
|
||||
|
||||
[JsonProperty("audioCodec")]
|
||||
public object? AudioCodec { get; set; }
|
||||
public string? AudioCodec { get; set; }
|
||||
|
||||
[JsonProperty("audioProfile")]
|
||||
public object? AudioProfile { get; set; }
|
||||
public string? AudioProfile { get; set; }
|
||||
|
||||
[JsonProperty("bitrate")]
|
||||
public long? Bitrate { get; set; }
|
||||
public int? Bitrate { get; set; }
|
||||
|
||||
[JsonProperty("container")]
|
||||
public object? Container { get; set; }
|
||||
public string? Container { get; set; }
|
||||
|
||||
[JsonProperty("duration")]
|
||||
public long? Duration { get; set; }
|
||||
public int? Duration { get; set; }
|
||||
|
||||
[JsonProperty("has64bitOffsets")]
|
||||
public bool? Has64bitOffsets { get; set; }
|
||||
@@ -52,10 +52,10 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
public bool? HasVoiceActivity { get; set; }
|
||||
|
||||
[JsonProperty("height")]
|
||||
public long? Height { get; set; }
|
||||
public int? Height { get; set; }
|
||||
|
||||
[JsonProperty("id")]
|
||||
public long? Id { get; set; }
|
||||
public long Id { get; set; } = default!;
|
||||
|
||||
[JsonProperty("optimizedForStreaming")]
|
||||
public bool? OptimizedForStreaming { get; set; }
|
||||
@@ -64,19 +64,19 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
public List<Part>? Part { get; set; }
|
||||
|
||||
[JsonProperty("videoCodec")]
|
||||
public object? VideoCodec { get; set; }
|
||||
public string? VideoCodec { get; set; }
|
||||
|
||||
[JsonProperty("videoFrameRate")]
|
||||
public object? VideoFrameRate { get; set; }
|
||||
public string? VideoFrameRate { get; set; }
|
||||
|
||||
[JsonProperty("videoProfile")]
|
||||
public object? VideoProfile { get; set; }
|
||||
public string? VideoProfile { get; set; }
|
||||
|
||||
[JsonProperty("videoResolution")]
|
||||
public object? VideoResolution { get; set; }
|
||||
public string? VideoResolution { get; set; }
|
||||
|
||||
[JsonProperty("width")]
|
||||
public long? Width { get; set; }
|
||||
public int? Width { get; set; }
|
||||
|
||||
[JsonProperty("additionalProperties")]
|
||||
public Dictionary<string, object>? AdditionalProperties { get; set; }
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
public class MediaContainerWithDecisionGuids
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb://<br/>
|
||||
///
|
||||
/// <remarks>
|
||||
///
|
||||
/// </remarks>
|
||||
/// </summary>
|
||||
[JsonProperty("id")]
|
||||
public string Id { get; set; } = default!;
|
||||
}
|
||||
}
|
||||
@@ -25,25 +25,25 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
|
||||
[JsonProperty("aspectRatio")]
|
||||
public double? AspectRatio { get; set; }
|
||||
public float? AspectRatio { get; set; }
|
||||
|
||||
[JsonProperty("audioChannels")]
|
||||
public long? AudioChannels { get; set; }
|
||||
public int? AudioChannels { get; set; }
|
||||
|
||||
[JsonProperty("audioCodec")]
|
||||
public object? AudioCodec { get; set; }
|
||||
public string? AudioCodec { get; set; }
|
||||
|
||||
[JsonProperty("audioProfile")]
|
||||
public object? AudioProfile { get; set; }
|
||||
public string? AudioProfile { get; set; }
|
||||
|
||||
[JsonProperty("bitrate")]
|
||||
public long? Bitrate { get; set; }
|
||||
public int? Bitrate { get; set; }
|
||||
|
||||
[JsonProperty("container")]
|
||||
public object? Container { get; set; }
|
||||
public string? Container { get; set; }
|
||||
|
||||
[JsonProperty("duration")]
|
||||
public long? Duration { get; set; }
|
||||
public int? Duration { get; set; }
|
||||
|
||||
[JsonProperty("has64bitOffsets")]
|
||||
public bool? Has64bitOffsets { get; set; }
|
||||
@@ -52,10 +52,10 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
public bool? HasVoiceActivity { get; set; }
|
||||
|
||||
[JsonProperty("height")]
|
||||
public long? Height { get; set; }
|
||||
public int? Height { get; set; }
|
||||
|
||||
[JsonProperty("id")]
|
||||
public long? Id { get; set; }
|
||||
public long Id { get; set; } = default!;
|
||||
|
||||
[JsonProperty("optimizedForStreaming")]
|
||||
public bool? OptimizedForStreaming { get; set; }
|
||||
@@ -64,19 +64,19 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
public List<MediaContainerWithDecisionPart>? Part { get; set; }
|
||||
|
||||
[JsonProperty("videoCodec")]
|
||||
public object? VideoCodec { get; set; }
|
||||
public string? VideoCodec { get; set; }
|
||||
|
||||
[JsonProperty("videoFrameRate")]
|
||||
public object? VideoFrameRate { get; set; }
|
||||
public string? VideoFrameRate { get; set; }
|
||||
|
||||
[JsonProperty("videoProfile")]
|
||||
public object? VideoProfile { get; set; }
|
||||
public string? VideoProfile { get; set; }
|
||||
|
||||
[JsonProperty("videoResolution")]
|
||||
public object? VideoResolution { get; set; }
|
||||
public string? VideoResolution { get; set; }
|
||||
|
||||
[JsonProperty("width")]
|
||||
public long? Width { get; set; }
|
||||
public int? Width { get; set; }
|
||||
|
||||
[JsonProperty("abr")]
|
||||
public bool? Abr { get; set; }
|
||||
|
||||
@@ -12,6 +12,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
using LukeHagar.PlexAPI.SDK.Models.Components;
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using NodaTime;
|
||||
using System.Collections.Generic;
|
||||
|
||||
/// <summary>
|
||||
@@ -32,43 +33,43 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// The title of the item (e.g. “300” or “The Simpsons”)
|
||||
/// </summary>
|
||||
[JsonProperty("title")]
|
||||
public object? Title { get; set; }
|
||||
public string Title { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// The type of the video item, such as `movie`, `episode`, or `clip`.
|
||||
/// </summary>
|
||||
[JsonProperty("type")]
|
||||
public object? Type { get; set; }
|
||||
public string Type { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// When present, contains the disc number for a track on multi-disc albums.
|
||||
/// </summary>
|
||||
[JsonProperty("absoluteIndex")]
|
||||
public long? AbsoluteIndex { get; set; }
|
||||
public int? AbsoluteIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// In units of seconds since the epoch, returns the time at which the item was added to the library.
|
||||
/// </summary>
|
||||
[JsonProperty("addedAt")]
|
||||
public long? AddedAt { get; set; }
|
||||
public long AddedAt { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// When present, the URL for the background artwork for the item.
|
||||
/// </summary>
|
||||
[JsonProperty("art")]
|
||||
public object? Art { get; set; }
|
||||
public string? Art { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Some rating systems separate reviewer ratings from audience ratings
|
||||
/// </summary>
|
||||
[JsonProperty("audienceRating")]
|
||||
public double? AudienceRating { get; set; }
|
||||
public float? AudienceRating { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// A URI representing the image to be shown with the audience rating (e.g. rottentomatoes://image.rating.spilled).
|
||||
/// </summary>
|
||||
[JsonProperty("audienceRatingImage")]
|
||||
public object? AudienceRatingImage { get; set; }
|
||||
public string? AudienceRatingImage { get; set; }
|
||||
|
||||
[JsonProperty("Autotag")]
|
||||
public List<Tag>? Autotag { get; set; }
|
||||
@@ -77,25 +78,31 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, the URL for a banner graphic for the item.
|
||||
/// </summary>
|
||||
[JsonProperty("banner")]
|
||||
public object? Banner { get; set; }
|
||||
public string? Banner { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, indicates the source for the chapters in the media file. Can be media (the chapters were embedded in the media itself), agent (a metadata agent computed them), or mixed (a combination of the two).
|
||||
/// </summary>
|
||||
[JsonProperty("chapterSource")]
|
||||
public object? ChapterSource { get; set; }
|
||||
public string? ChapterSource { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The number of child items associated with this media item.
|
||||
/// </summary>
|
||||
[JsonProperty("childCount")]
|
||||
public int? ChildCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, the URL for a composite image for descendent items (e.g. photo albums or playlists).
|
||||
/// </summary>
|
||||
[JsonProperty("composite")]
|
||||
public object? Composite { get; set; }
|
||||
public string? Composite { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// If known, the content rating (e.g. MPAA) for an item.
|
||||
/// </summary>
|
||||
[JsonProperty("contentRating")]
|
||||
public object? ContentRating { get; set; }
|
||||
public string? ContentRating { get; set; }
|
||||
|
||||
[JsonProperty("Country")]
|
||||
public List<Tag>? Country { get; set; }
|
||||
@@ -107,7 +114,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, the duration for the item, in units of milliseconds.
|
||||
/// </summary>
|
||||
[JsonProperty("duration")]
|
||||
public long? Duration { get; set; }
|
||||
public int? Duration { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Typically only seen in metadata at a library's top level
|
||||
@@ -124,6 +131,12 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
[JsonProperty("grandparentArt")]
|
||||
public string? GrandparentArt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The GUID of the grandparent media item.
|
||||
/// </summary>
|
||||
[JsonProperty("grandparentGuid")]
|
||||
public string? GrandparentGuid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The `hero` of the grandparent
|
||||
/// </summary>
|
||||
@@ -160,14 +173,20 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
[JsonProperty("grandparentTitle")]
|
||||
public string? GrandparentTitle { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The globally unique identifier for the media item.
|
||||
/// </summary>
|
||||
[JsonProperty("guid")]
|
||||
public string? Guid { get; set; }
|
||||
|
||||
[JsonProperty("Guid")]
|
||||
public List<Tag>? Guid { get; set; }
|
||||
public List<MediaContainerWithDecisionGuids>? Guids { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, the URL for a hero image for the item.
|
||||
/// </summary>
|
||||
[JsonProperty("hero")]
|
||||
public object? Hero { get; set; }
|
||||
public string? Hero { get; set; }
|
||||
|
||||
[JsonProperty("Image")]
|
||||
public List<Image>? Image { get; set; }
|
||||
@@ -176,17 +195,14 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, this represents the episode number for episodes, season number for seasons, or track number for audio tracks.
|
||||
/// </summary>
|
||||
[JsonProperty("index")]
|
||||
public long? Index { get; set; }
|
||||
public int? Index { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The key at which the item's details can be fetched. In many cases a metadata item may be passed without all the details (such as in a hub) and this key corresponds to the endpoint to fetch additional details.
|
||||
/// </summary>
|
||||
[JsonProperty("key")]
|
||||
public object? Key { get; set; }
|
||||
public string Key { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// When a user has watched or listened to an item, this contains a timestamp (epoch seconds) for that last consumption time.
|
||||
/// </summary>
|
||||
[JsonProperty("lastViewedAt")]
|
||||
public long? LastViewedAt { get; set; }
|
||||
|
||||
@@ -194,7 +210,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// For shows and seasons, contains the number of total episodes.
|
||||
/// </summary>
|
||||
[JsonProperty("leafCount")]
|
||||
public long? LeafCount { get; set; }
|
||||
public int? LeafCount { get; set; }
|
||||
|
||||
[JsonProperty("Media")]
|
||||
public List<MediaContainerWithDecisionMedia>? Media { get; set; }
|
||||
@@ -203,13 +219,19 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, in the format YYYY-MM-DD [HH:MM:SS] (the hours/minutes/seconds part is not always present). The air date, or a higher resolution release date for an item, depending on type. For example, episodes usually have air date like 1979-08-10 (we don't use epoch seconds because media existed prior to 1970). In some cases, recorded over-the-air content has higher resolution air date which includes a time component. Albums and movies may have day-resolution release dates as well.
|
||||
/// </summary>
|
||||
[JsonProperty("originallyAvailableAt")]
|
||||
public object? OriginallyAvailableAt { get; set; }
|
||||
public LocalDate? OriginallyAvailableAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, used to indicate an item's original title, e.g. a movie's foreign title.
|
||||
/// </summary>
|
||||
[JsonProperty("originalTitle")]
|
||||
public object? OriginalTitle { get; set; }
|
||||
public string? OriginalTitle { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The GUID of the parent media item.
|
||||
/// </summary>
|
||||
[JsonProperty("parentGuid")]
|
||||
public string? ParentGuid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The `hero` of the parent
|
||||
@@ -221,7 +243,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// The `index` of the parent
|
||||
/// </summary>
|
||||
[JsonProperty("parentIndex")]
|
||||
public long? ParentIndex { get; set; }
|
||||
public int? ParentIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The `key` of the parent
|
||||
@@ -251,7 +273,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// Indicates that the item has a primary extra; for a movie, this is a trailer, and for a music track it is a music video. The URL points to the metadata details endpoint for the item.
|
||||
/// </summary>
|
||||
[JsonProperty("primaryExtraKey")]
|
||||
public object? PrimaryExtraKey { get; set; }
|
||||
public string? PrimaryExtraKey { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Prompt to give the user for this directory (such as `Search Movies`)
|
||||
@@ -263,7 +285,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, the rating for the item. The exact meaning and representation depends on where the rating was sourced from.
|
||||
/// </summary>
|
||||
[JsonProperty("rating")]
|
||||
public double? Rating { get; set; }
|
||||
public float? Rating { get; set; }
|
||||
|
||||
[JsonProperty("Rating")]
|
||||
public List<Tag>? RatingArray { get; set; }
|
||||
@@ -272,19 +294,19 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// Number of ratings under this metadata
|
||||
/// </summary>
|
||||
[JsonProperty("ratingCount")]
|
||||
public long? RatingCount { get; set; }
|
||||
public int? RatingCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, indicates an image to be shown with the rating. This is passed back as a small set of defined URI values, e.g. rottentomatoes://image.rating.rotten.
|
||||
/// </summary>
|
||||
[JsonProperty("ratingImage")]
|
||||
public object? RatingImage { get; set; }
|
||||
public string? RatingImage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This is the opaque string to be passed into timeline, scrobble, and rating endpoints to identify them. While it often appears to be numeric, this is not guaranteed.
|
||||
/// </summary>
|
||||
[JsonProperty("ratingKey")]
|
||||
public object? RatingKey { get; set; }
|
||||
public string? RatingKey { get; set; }
|
||||
|
||||
[JsonProperty("Role")]
|
||||
public List<Tag>? Role { get; set; }
|
||||
@@ -323,43 +345,43 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, the studio or label which produced an item (e.g. movie studio for movies, record label for albums).
|
||||
/// </summary>
|
||||
[JsonProperty("studio")]
|
||||
public object? Studio { get; set; }
|
||||
public string? Studio { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The subtype of the video item, such as `photo` when the video item is in a photo library
|
||||
/// </summary>
|
||||
[JsonProperty("subtype")]
|
||||
public object? Subtype { get; set; }
|
||||
public string? Subtype { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, the extended textual information about the item (e.g. movie plot, artist biography, album review).
|
||||
/// </summary>
|
||||
[JsonProperty("summary")]
|
||||
public object? Summary { get; set; }
|
||||
public string? Summary { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, a pithy one-liner about the item (usually only seen for movies).
|
||||
/// </summary>
|
||||
[JsonProperty("tagline")]
|
||||
public object? Tagline { get; set; }
|
||||
public string? Tagline { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, the URL for theme music for the item (usually only for TV shows).
|
||||
/// </summary>
|
||||
[JsonProperty("theme")]
|
||||
public object? Theme { get; set; }
|
||||
public string? Theme { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, the URL for the poster or thumbnail for the item. When available for types like movie, it will be the poster graphic, but fall-back to the extracted media thumbnail.
|
||||
/// </summary>
|
||||
[JsonProperty("thumb")]
|
||||
public object? Thumb { get; set; }
|
||||
public string? Thumb { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whene present, this is the string used for sorting the item. It's usually the title with any leading articles removed (e.g. “Simpsons”).
|
||||
/// </summary>
|
||||
[JsonProperty("titleSort")]
|
||||
public object? TitleSort { get; set; }
|
||||
public string? TitleSort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// In units of seconds since the epoch, returns the time at which the item was last changed (e.g. had its metadata updated).
|
||||
@@ -371,25 +393,25 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When the user has rated an item, this contains the user rating
|
||||
/// </summary>
|
||||
[JsonProperty("userRating")]
|
||||
public double? UserRating { get; set; }
|
||||
public float? UserRating { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When a users has completed watched or listened to an item, this attribute contains the number of consumptions.
|
||||
/// </summary>
|
||||
[JsonProperty("viewCount")]
|
||||
public long? ViewCount { get; set; }
|
||||
public int? ViewCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// For shows and seasons, contains the number of viewed episodes.
|
||||
/// </summary>
|
||||
[JsonProperty("viewedLeafCount")]
|
||||
public long? ViewedLeafCount { get; set; }
|
||||
public int? ViewedLeafCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When a user is in the process of viewing or listening to this item, this attribute contains the current offset, in units of milliseconds.
|
||||
/// </summary>
|
||||
[JsonProperty("viewOffset")]
|
||||
public long? ViewOffset { get; set; }
|
||||
public int? ViewOffset { get; set; }
|
||||
|
||||
[JsonProperty("Writer")]
|
||||
public List<Tag>? Writer { get; set; }
|
||||
@@ -398,7 +420,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, the year associated with the item's release (e.g. release year for a movie).
|
||||
/// </summary>
|
||||
[JsonProperty("year")]
|
||||
public long? Year { get; set; }
|
||||
public int? Year { get; set; }
|
||||
|
||||
[JsonProperty("additionalProperties")]
|
||||
public Dictionary<string, object>? AdditionalProperties { get; set; }
|
||||
|
||||
@@ -24,38 +24,53 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
public class MediaContainerWithDecisionPart
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if the part is accessible.
|
||||
/// </summary>
|
||||
[JsonProperty("accessible")]
|
||||
public bool? Accessible { get; set; }
|
||||
|
||||
[JsonProperty("audioProfile")]
|
||||
public object? AudioProfile { get; set; }
|
||||
public string? AudioProfile { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The container of the media file, such as `mp4` or `mkv`
|
||||
/// </summary>
|
||||
[JsonProperty("container")]
|
||||
public object? Container { get; set; }
|
||||
public string? Container { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The duration of the media item, in milliseconds
|
||||
/// </summary>
|
||||
[JsonProperty("duration")]
|
||||
public long? Duration { get; set; }
|
||||
public int? Duration { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if the part exists.
|
||||
/// </summary>
|
||||
[JsonProperty("exists")]
|
||||
public bool? Exists { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The local file path at which the part is stored on the server
|
||||
/// </summary>
|
||||
[JsonProperty("file")]
|
||||
public object? File { get; set; }
|
||||
public string? File { get; set; }
|
||||
|
||||
[JsonProperty("has64bitOffsets")]
|
||||
public bool? Has64bitOffsets { get; set; }
|
||||
|
||||
[JsonProperty("id")]
|
||||
public long? Id { get; set; }
|
||||
public long Id { get; set; } = default!;
|
||||
|
||||
[JsonProperty("indexes")]
|
||||
public string? Indexes { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The key from which the media can be streamed
|
||||
/// </summary>
|
||||
[JsonProperty("key")]
|
||||
public object? Key { get; set; }
|
||||
public string Key { get; set; } = default!;
|
||||
|
||||
[JsonProperty("optimizedForStreaming")]
|
||||
public bool? OptimizedForStreaming { get; set; }
|
||||
@@ -70,7 +85,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
public List<MediaContainerWithDecisionStream>? Stream { get; set; }
|
||||
|
||||
[JsonProperty("videoProfile")]
|
||||
public object? VideoProfile { get; set; }
|
||||
public string? VideoProfile { get; set; }
|
||||
|
||||
[JsonProperty("decision")]
|
||||
public Decision? Decision { get; set; }
|
||||
|
||||
@@ -24,113 +24,306 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
public class MediaContainerWithDecisionStream
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if this stream is default.
|
||||
/// </summary>
|
||||
[JsonProperty("default")]
|
||||
public bool? Default { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Audio channel layout.
|
||||
/// </summary>
|
||||
[JsonProperty("audioChannelLayout")]
|
||||
public object? AudioChannelLayout { get; set; }
|
||||
|
||||
[JsonProperty("bitDepth")]
|
||||
public long? BitDepth { get; set; }
|
||||
|
||||
[JsonProperty("bitrate")]
|
||||
public long? Bitrate { get; set; }
|
||||
public string? AudioChannelLayout { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// For subtitle streams only. If `true` then the server can attempt to automatically sync the subtitle timestamps with the video.
|
||||
/// Number of audio channels (for audio streams).
|
||||
/// </summary>
|
||||
[JsonProperty("channels")]
|
||||
public int? Channels { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Bit depth of the video stream.
|
||||
/// </summary>
|
||||
[JsonProperty("bitDepth")]
|
||||
public int? BitDepth { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Dolby Vision BL compatibility ID.
|
||||
/// </summary>
|
||||
[JsonProperty("DOVIBLCompatID")]
|
||||
public int? DOVIBLCompatID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if Dolby Vision BL is present.
|
||||
/// </summary>
|
||||
[JsonProperty("DOVIBLPresent")]
|
||||
public bool? DOVIBLPresent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if Dolby Vision EL is present.
|
||||
/// </summary>
|
||||
[JsonProperty("DOVIELPresent")]
|
||||
public bool? DOVIELPresent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Dolby Vision level.
|
||||
/// </summary>
|
||||
[JsonProperty("DOVILevel")]
|
||||
public int? DOVILevel { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if Dolby Vision is present.
|
||||
/// </summary>
|
||||
[JsonProperty("DOVIPresent")]
|
||||
public bool? DOVIPresent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Dolby Vision profile.
|
||||
/// </summary>
|
||||
[JsonProperty("DOVIProfile")]
|
||||
public int? DOVIProfile { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if Dolby Vision RPU is present.
|
||||
/// </summary>
|
||||
[JsonProperty("DOVIRPUPresent")]
|
||||
public bool? DOVIRPUPresent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Dolby Vision version.
|
||||
/// </summary>
|
||||
[JsonProperty("DOVIVersion")]
|
||||
public string? DOVIVersion { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Bitrate of the stream.
|
||||
/// </summary>
|
||||
[JsonProperty("bitrate")]
|
||||
public int? Bitrate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if the stream can auto-sync.
|
||||
/// </summary>
|
||||
[JsonProperty("canAutoSync")]
|
||||
public bool? CanAutoSync { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Chroma sample location.
|
||||
/// </summary>
|
||||
[JsonProperty("chromaLocation")]
|
||||
public object? ChromaLocation { get; set; }
|
||||
|
||||
[JsonProperty("chromaSubsampling")]
|
||||
public object? ChromaSubsampling { get; set; }
|
||||
public string? ChromaLocation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The codec of the stream, such as `h264` or `aac`
|
||||
/// Chroma subsampling format.
|
||||
/// </summary>
|
||||
[JsonProperty("chromaSubsampling")]
|
||||
public string? ChromaSubsampling { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Coded video height.
|
||||
/// </summary>
|
||||
[JsonProperty("codedHeight")]
|
||||
public int? CodedHeight { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Coded video width.
|
||||
/// </summary>
|
||||
[JsonProperty("codedWidth")]
|
||||
public int? CodedWidth { get; set; }
|
||||
|
||||
[JsonProperty("closedCaptions")]
|
||||
public bool? ClosedCaptions { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Codec used by the stream.
|
||||
/// </summary>
|
||||
[JsonProperty("codec")]
|
||||
public object? Codec { get; set; }
|
||||
|
||||
[JsonProperty("colorPrimaries")]
|
||||
public object? ColorPrimaries { get; set; }
|
||||
|
||||
[JsonProperty("colorRange")]
|
||||
public object? ColorRange { get; set; }
|
||||
|
||||
[JsonProperty("colorSpace")]
|
||||
public object? ColorSpace { get; set; }
|
||||
|
||||
[JsonProperty("colorTrc")]
|
||||
public object? ColorTrc { get; set; }
|
||||
public string Codec { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// A friendly name for the stream, often comprised of the language and codec information
|
||||
/// Color primaries used.
|
||||
/// </summary>
|
||||
[JsonProperty("colorPrimaries")]
|
||||
public string? ColorPrimaries { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Color range (e.g., tv).
|
||||
/// </summary>
|
||||
[JsonProperty("colorRange")]
|
||||
public string? ColorRange { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Color space.
|
||||
/// </summary>
|
||||
[JsonProperty("colorSpace")]
|
||||
public string? ColorSpace { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Color transfer characteristics.
|
||||
/// </summary>
|
||||
[JsonProperty("colorTrc")]
|
||||
public string? ColorTrc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Display title for the stream.
|
||||
/// </summary>
|
||||
[JsonProperty("displayTitle")]
|
||||
public object? DisplayTitle { get; set; }
|
||||
public string DisplayTitle { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// Extended display title for the stream.
|
||||
/// </summary>
|
||||
[JsonProperty("extendedDisplayTitle")]
|
||||
public string? ExtendedDisplayTitle { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Frame rate of the stream.
|
||||
/// </summary>
|
||||
[JsonProperty("frameRate")]
|
||||
public double? FrameRate { get; set; }
|
||||
public float? FrameRate { get; set; }
|
||||
|
||||
[JsonProperty("hasScalingMatrix")]
|
||||
public object? HasScalingMatrix { get; set; }
|
||||
|
||||
[JsonProperty("height")]
|
||||
public long? Height { get; set; }
|
||||
|
||||
[JsonProperty("id")]
|
||||
public long? Id { get; set; }
|
||||
public bool? HasScalingMatrix { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// If the stream is part of the `Part` and not an external resource, the index of the stream within that part
|
||||
/// Height of the video stream.
|
||||
/// </summary>
|
||||
[JsonProperty("height")]
|
||||
public int? Height { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Unique stream identifier.
|
||||
/// </summary>
|
||||
[JsonProperty("id")]
|
||||
public int Id { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// Index of the stream.
|
||||
/// </summary>
|
||||
[JsonProperty("index")]
|
||||
public long? Index { get; set; }
|
||||
public int? Index { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// If the stream is independently streamable, the key from which it can be streamed
|
||||
/// Key to access this stream part.
|
||||
/// </summary>
|
||||
[JsonProperty("key")]
|
||||
public object? Key { get; set; }
|
||||
|
||||
[JsonProperty("language")]
|
||||
public object? Language { get; set; }
|
||||
public string Key { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// The three character language code for the stream contents
|
||||
/// Language of the stream.
|
||||
/// </summary>
|
||||
[JsonProperty("language")]
|
||||
public string? Language { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ISO language code.
|
||||
/// </summary>
|
||||
[JsonProperty("languageCode")]
|
||||
public object? LanguageCode { get; set; }
|
||||
public string? LanguageCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Language tag (e.g., en).
|
||||
/// </summary>
|
||||
[JsonProperty("languageTag")]
|
||||
public string? LanguageTag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Format of the stream (e.g., srt).
|
||||
/// </summary>
|
||||
[JsonProperty("format")]
|
||||
public string? Format { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates whether header compression is enabled.
|
||||
/// </summary>
|
||||
[JsonProperty("headerCompression")]
|
||||
public bool? HeaderCompression { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Video level.
|
||||
/// </summary>
|
||||
[JsonProperty("level")]
|
||||
public long? Level { get; set; }
|
||||
public int? Level { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if this is the original stream.
|
||||
/// </summary>
|
||||
[JsonProperty("original")]
|
||||
public bool? Original { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Video profile.
|
||||
/// </summary>
|
||||
[JsonProperty("profile")]
|
||||
public object? Profile { get; set; }
|
||||
public string? Profile { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of reference frames.
|
||||
/// </summary>
|
||||
[JsonProperty("refFrames")]
|
||||
public long? RefFrames { get; set; }
|
||||
public int? RefFrames { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Sampling rate for the audio stream.
|
||||
/// </summary>
|
||||
[JsonProperty("samplingRate")]
|
||||
public long? SamplingRate { get; set; }
|
||||
public int? SamplingRate { get; set; }
|
||||
|
||||
[JsonProperty("scanType")]
|
||||
public string? ScanType { get; set; }
|
||||
|
||||
[JsonProperty("embeddedInVideo")]
|
||||
public string? EmbeddedInVideo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if this stream is selected (applicable for audio streams).
|
||||
/// </summary>
|
||||
[JsonProperty("selected")]
|
||||
public bool? Selected { get; set; }
|
||||
|
||||
[JsonProperty("streamIdentifier")]
|
||||
public long? StreamIdentifier { get; set; }
|
||||
[JsonProperty("forced")]
|
||||
public bool? Forced { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// A number indicating the type of the stream. `1` for video, `2` for audio, `3` for subtitles, `4` for lyrics
|
||||
/// Indicates if the stream is for the hearing impaired.
|
||||
/// </summary>
|
||||
[JsonProperty("hearingImpaired")]
|
||||
public bool? HearingImpaired { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if the stream is a dub.
|
||||
/// </summary>
|
||||
[JsonProperty("dub")]
|
||||
public bool? Dub { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Optional title for the stream (e.g., language variant).
|
||||
/// </summary>
|
||||
[JsonProperty("title")]
|
||||
public string? Title { get; set; }
|
||||
|
||||
[JsonProperty("streamIdentifier")]
|
||||
public int? StreamIdentifier { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Stream type:<br/>
|
||||
///
|
||||
/// <remarks>
|
||||
/// - VIDEO = 1<br/>
|
||||
/// - AUDIO = 2<br/>
|
||||
/// - SUBTITLE = 3<br/>
|
||||
///
|
||||
/// </remarks>
|
||||
/// </summary>
|
||||
[JsonProperty("streamType")]
|
||||
public long? StreamType { get; set; }
|
||||
public long StreamType { get; } = 1;
|
||||
|
||||
/// <summary>
|
||||
/// Width of the video stream.
|
||||
/// </summary>
|
||||
[JsonProperty("width")]
|
||||
public long? Width { get; set; }
|
||||
public int? Width { get; set; }
|
||||
|
||||
[JsonProperty("decision")]
|
||||
public MediaContainerWithDecisionDecision? Decision { get; set; }
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
public class MediaContainerWithNestedMetadataGuids
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb://<br/>
|
||||
///
|
||||
/// <remarks>
|
||||
///
|
||||
/// </remarks>
|
||||
/// </summary>
|
||||
[JsonProperty("id")]
|
||||
public string Id { get; set; } = default!;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
public class MediaContainerWithPlaylistMetadataGuids
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb://<br/>
|
||||
///
|
||||
/// <remarks>
|
||||
///
|
||||
/// </remarks>
|
||||
/// </summary>
|
||||
[JsonProperty("id")]
|
||||
public string Id { get; set; } = default!;
|
||||
}
|
||||
}
|
||||
@@ -12,6 +12,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
using LukeHagar.PlexAPI.SDK.Models.Components;
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using NodaTime;
|
||||
using System.Collections.Generic;
|
||||
|
||||
/// <summary>
|
||||
@@ -38,25 +39,25 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, the URL for a composite image for descendent items (e.g. photo albums or playlists).
|
||||
/// </summary>
|
||||
[JsonProperty("composite")]
|
||||
public object? Composite { get; set; }
|
||||
public string? Composite { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, the duration for the item, in units of milliseconds.
|
||||
/// </summary>
|
||||
[JsonProperty("duration")]
|
||||
public long? Duration { get; set; }
|
||||
public int? Duration { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The key at which the item's details can be fetched. In many cases a metadata item may be passed without all the details (such as in a hub) and this key corresponds to the endpoint to fetch additional details.
|
||||
/// </summary>
|
||||
[JsonProperty("key")]
|
||||
public object? Key { get; set; }
|
||||
public string Key { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// For shows and seasons, contains the number of total episodes.
|
||||
/// </summary>
|
||||
[JsonProperty("leafCount")]
|
||||
public long? LeafCount { get; set; }
|
||||
public int? LeafCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The type of the playlist.
|
||||
@@ -80,43 +81,43 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// The title of the item (e.g. “300” or “The Simpsons”)
|
||||
/// </summary>
|
||||
[JsonProperty("title")]
|
||||
public object? Title { get; set; }
|
||||
public string Title { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// The type of the video item, such as `movie`, `episode`, or `clip`.
|
||||
/// </summary>
|
||||
[JsonProperty("type")]
|
||||
public object? Type { get; set; }
|
||||
public string Type { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// When present, contains the disc number for a track on multi-disc albums.
|
||||
/// </summary>
|
||||
[JsonProperty("absoluteIndex")]
|
||||
public long? AbsoluteIndex { get; set; }
|
||||
public int? AbsoluteIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// In units of seconds since the epoch, returns the time at which the item was added to the library.
|
||||
/// </summary>
|
||||
[JsonProperty("addedAt")]
|
||||
public long? AddedAt { get; set; }
|
||||
public long AddedAt { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// When present, the URL for the background artwork for the item.
|
||||
/// </summary>
|
||||
[JsonProperty("art")]
|
||||
public object? Art { get; set; }
|
||||
public string? Art { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Some rating systems separate reviewer ratings from audience ratings
|
||||
/// </summary>
|
||||
[JsonProperty("audienceRating")]
|
||||
public double? AudienceRating { get; set; }
|
||||
public float? AudienceRating { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// A URI representing the image to be shown with the audience rating (e.g. rottentomatoes://image.rating.spilled).
|
||||
/// </summary>
|
||||
[JsonProperty("audienceRatingImage")]
|
||||
public object? AudienceRatingImage { get; set; }
|
||||
public string? AudienceRatingImage { get; set; }
|
||||
|
||||
[JsonProperty("Autotag")]
|
||||
public List<Tag>? Autotag { get; set; }
|
||||
@@ -125,19 +126,25 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, the URL for a banner graphic for the item.
|
||||
/// </summary>
|
||||
[JsonProperty("banner")]
|
||||
public object? Banner { get; set; }
|
||||
public string? Banner { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, indicates the source for the chapters in the media file. Can be media (the chapters were embedded in the media itself), agent (a metadata agent computed them), or mixed (a combination of the two).
|
||||
/// </summary>
|
||||
[JsonProperty("chapterSource")]
|
||||
public object? ChapterSource { get; set; }
|
||||
public string? ChapterSource { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The number of child items associated with this media item.
|
||||
/// </summary>
|
||||
[JsonProperty("childCount")]
|
||||
public int? ChildCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// If known, the content rating (e.g. MPAA) for an item.
|
||||
/// </summary>
|
||||
[JsonProperty("contentRating")]
|
||||
public object? ContentRating { get; set; }
|
||||
public string? ContentRating { get; set; }
|
||||
|
||||
[JsonProperty("Country")]
|
||||
public List<Tag>? Country { get; set; }
|
||||
@@ -160,6 +167,12 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
[JsonProperty("grandparentArt")]
|
||||
public string? GrandparentArt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The GUID of the grandparent media item.
|
||||
/// </summary>
|
||||
[JsonProperty("grandparentGuid")]
|
||||
public string? GrandparentGuid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The `hero` of the grandparent
|
||||
/// </summary>
|
||||
@@ -196,14 +209,20 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
[JsonProperty("grandparentTitle")]
|
||||
public string? GrandparentTitle { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The globally unique identifier for the media item.
|
||||
/// </summary>
|
||||
[JsonProperty("guid")]
|
||||
public string? Guid { get; set; }
|
||||
|
||||
[JsonProperty("Guid")]
|
||||
public List<Tag>? Guid { get; set; }
|
||||
public List<MediaContainerWithPlaylistMetadataGuids>? Guids { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, the URL for a hero image for the item.
|
||||
/// </summary>
|
||||
[JsonProperty("hero")]
|
||||
public object? Hero { get; set; }
|
||||
public string? Hero { get; set; }
|
||||
|
||||
[JsonProperty("Image")]
|
||||
public List<Image>? Image { get; set; }
|
||||
@@ -212,11 +231,8 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, this represents the episode number for episodes, season number for seasons, or track number for audio tracks.
|
||||
/// </summary>
|
||||
[JsonProperty("index")]
|
||||
public long? Index { get; set; }
|
||||
public int? Index { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When a user has watched or listened to an item, this contains a timestamp (epoch seconds) for that last consumption time.
|
||||
/// </summary>
|
||||
[JsonProperty("lastViewedAt")]
|
||||
public long? LastViewedAt { get; set; }
|
||||
|
||||
@@ -227,13 +243,19 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, in the format YYYY-MM-DD [HH:MM:SS] (the hours/minutes/seconds part is not always present). The air date, or a higher resolution release date for an item, depending on type. For example, episodes usually have air date like 1979-08-10 (we don't use epoch seconds because media existed prior to 1970). In some cases, recorded over-the-air content has higher resolution air date which includes a time component. Albums and movies may have day-resolution release dates as well.
|
||||
/// </summary>
|
||||
[JsonProperty("originallyAvailableAt")]
|
||||
public object? OriginallyAvailableAt { get; set; }
|
||||
public LocalDate? OriginallyAvailableAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, used to indicate an item's original title, e.g. a movie's foreign title.
|
||||
/// </summary>
|
||||
[JsonProperty("originalTitle")]
|
||||
public object? OriginalTitle { get; set; }
|
||||
public string? OriginalTitle { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The GUID of the parent media item.
|
||||
/// </summary>
|
||||
[JsonProperty("parentGuid")]
|
||||
public string? ParentGuid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The `hero` of the parent
|
||||
@@ -245,7 +267,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// The `index` of the parent
|
||||
/// </summary>
|
||||
[JsonProperty("parentIndex")]
|
||||
public long? ParentIndex { get; set; }
|
||||
public int? ParentIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The `key` of the parent
|
||||
@@ -275,7 +297,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// Indicates that the item has a primary extra; for a movie, this is a trailer, and for a music track it is a music video. The URL points to the metadata details endpoint for the item.
|
||||
/// </summary>
|
||||
[JsonProperty("primaryExtraKey")]
|
||||
public object? PrimaryExtraKey { get; set; }
|
||||
public string? PrimaryExtraKey { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Prompt to give the user for this directory (such as `Search Movies`)
|
||||
@@ -287,7 +309,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, the rating for the item. The exact meaning and representation depends on where the rating was sourced from.
|
||||
/// </summary>
|
||||
[JsonProperty("rating")]
|
||||
public double? Rating { get; set; }
|
||||
public float? Rating { get; set; }
|
||||
|
||||
[JsonProperty("Rating")]
|
||||
public List<Tag>? RatingArray { get; set; }
|
||||
@@ -296,19 +318,19 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// Number of ratings under this metadata
|
||||
/// </summary>
|
||||
[JsonProperty("ratingCount")]
|
||||
public long? RatingCount { get; set; }
|
||||
public int? RatingCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, indicates an image to be shown with the rating. This is passed back as a small set of defined URI values, e.g. rottentomatoes://image.rating.rotten.
|
||||
/// </summary>
|
||||
[JsonProperty("ratingImage")]
|
||||
public object? RatingImage { get; set; }
|
||||
public string? RatingImage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This is the opaque string to be passed into timeline, scrobble, and rating endpoints to identify them. While it often appears to be numeric, this is not guaranteed.
|
||||
/// </summary>
|
||||
[JsonProperty("ratingKey")]
|
||||
public object? RatingKey { get; set; }
|
||||
public string? RatingKey { get; set; }
|
||||
|
||||
[JsonProperty("Role")]
|
||||
public List<Tag>? Role { get; set; }
|
||||
@@ -347,43 +369,43 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, the studio or label which produced an item (e.g. movie studio for movies, record label for albums).
|
||||
/// </summary>
|
||||
[JsonProperty("studio")]
|
||||
public object? Studio { get; set; }
|
||||
public string? Studio { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The subtype of the video item, such as `photo` when the video item is in a photo library
|
||||
/// </summary>
|
||||
[JsonProperty("subtype")]
|
||||
public object? Subtype { get; set; }
|
||||
public string? Subtype { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, the extended textual information about the item (e.g. movie plot, artist biography, album review).
|
||||
/// </summary>
|
||||
[JsonProperty("summary")]
|
||||
public object? Summary { get; set; }
|
||||
public string? Summary { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, a pithy one-liner about the item (usually only seen for movies).
|
||||
/// </summary>
|
||||
[JsonProperty("tagline")]
|
||||
public object? Tagline { get; set; }
|
||||
public string? Tagline { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, the URL for theme music for the item (usually only for TV shows).
|
||||
/// </summary>
|
||||
[JsonProperty("theme")]
|
||||
public object? Theme { get; set; }
|
||||
public string? Theme { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, the URL for the poster or thumbnail for the item. When available for types like movie, it will be the poster graphic, but fall-back to the extracted media thumbnail.
|
||||
/// </summary>
|
||||
[JsonProperty("thumb")]
|
||||
public object? Thumb { get; set; }
|
||||
public string? Thumb { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whene present, this is the string used for sorting the item. It's usually the title with any leading articles removed (e.g. “Simpsons”).
|
||||
/// </summary>
|
||||
[JsonProperty("titleSort")]
|
||||
public object? TitleSort { get; set; }
|
||||
public string? TitleSort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// In units of seconds since the epoch, returns the time at which the item was last changed (e.g. had its metadata updated).
|
||||
@@ -395,25 +417,25 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When the user has rated an item, this contains the user rating
|
||||
/// </summary>
|
||||
[JsonProperty("userRating")]
|
||||
public double? UserRating { get; set; }
|
||||
public float? UserRating { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When a users has completed watched or listened to an item, this attribute contains the number of consumptions.
|
||||
/// </summary>
|
||||
[JsonProperty("viewCount")]
|
||||
public long? ViewCount { get; set; }
|
||||
public int? ViewCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// For shows and seasons, contains the number of viewed episodes.
|
||||
/// </summary>
|
||||
[JsonProperty("viewedLeafCount")]
|
||||
public long? ViewedLeafCount { get; set; }
|
||||
public int? ViewedLeafCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When a user is in the process of viewing or listening to this item, this attribute contains the current offset, in units of milliseconds.
|
||||
/// </summary>
|
||||
[JsonProperty("viewOffset")]
|
||||
public long? ViewOffset { get; set; }
|
||||
public int? ViewOffset { get; set; }
|
||||
|
||||
[JsonProperty("Writer")]
|
||||
public List<Tag>? Writer { get; set; }
|
||||
@@ -422,7 +444,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, the year associated with the item's release (e.g. release year for a movie).
|
||||
/// </summary>
|
||||
[JsonProperty("year")]
|
||||
public long? Year { get; set; }
|
||||
public int? Year { get; set; }
|
||||
|
||||
[JsonProperty("additionalProperties")]
|
||||
public Dictionary<string, object>? AdditionalProperties { get; set; }
|
||||
|
||||
@@ -9,9 +9,65 @@
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Models.Components;
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
|
||||
/// <summary>
|
||||
/// A querystring-based filtering language used to select subsets of media. When provided as an object, properties are serialized as a querystring using form style with explode.<br/>
|
||||
///
|
||||
/// <remarks>
|
||||
/// <br/>
|
||||
/// Only the defined properties below are allowed. The object serializes to a querystring format like: `type=4&sourceType=2&sort=duration:desc,index`<br/>
|
||||
///
|
||||
/// </remarks>
|
||||
/// </summary>
|
||||
public class MediaQuery
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// The type of media to retrieve or filter by.<br/>
|
||||
///
|
||||
/// <remarks>
|
||||
/// <br/>
|
||||
/// 1 = movie<br/>
|
||||
/// 2 = show<br/>
|
||||
/// 3 = season<br/>
|
||||
/// 4 = episode<br/>
|
||||
/// 5 = artist<br/>
|
||||
/// 6 = album<br/>
|
||||
/// 7 = track<br/>
|
||||
/// 8 = photo_album<br/>
|
||||
/// 9 = photo<br/>
|
||||
/// <br/>
|
||||
/// E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries<br/>
|
||||
///
|
||||
/// </remarks>
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:name=type")]
|
||||
public MediaType? Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Change the default level to which fields refer (used with type for hierarchical queries)
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:name=sourceType")]
|
||||
public long? SourceType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Field(s) to sort by, with optional modifiers. Use comma to separate multiple fields, and :desc or :nullsLast for modifiers (e.g., "duration:desc,index")
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:name=sort")]
|
||||
public string? Sort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Field to group results by (similar to SQL GROUP BY)
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:name=group")]
|
||||
public string? Group { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Maximum number of results to return
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:name=limit")]
|
||||
public long? Limit { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
|
||||
/// <summary>
|
||||
/// Whether or not the account has media reviews visibility enabled
|
||||
/// </summary>
|
||||
public enum MediaReviewsVisibility
|
||||
{
|
||||
NoOne = 0,
|
||||
CriticsOnly = 1,
|
||||
PlexUsersOnly = 2,
|
||||
PlexUsersAndCritics = 3,
|
||||
}
|
||||
|
||||
}
|
||||
46
LukeHagar/PlexAPI/SDK/Models/Components/MediaType.cs
Normal file
46
LukeHagar/PlexAPI/SDK/Models/Components/MediaType.cs
Normal file
@@ -0,0 +1,46 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
|
||||
/// <summary>
|
||||
/// The type of media to retrieve or filter by.<br/>
|
||||
///
|
||||
/// <remarks>
|
||||
/// <br/>
|
||||
/// 1 = movie<br/>
|
||||
/// 2 = show<br/>
|
||||
/// 3 = season<br/>
|
||||
/// 4 = episode<br/>
|
||||
/// 5 = artist<br/>
|
||||
/// 6 = album<br/>
|
||||
/// 7 = track<br/>
|
||||
/// 8 = photo_album<br/>
|
||||
/// 9 = photo<br/>
|
||||
/// <br/>
|
||||
/// E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries<br/>
|
||||
///
|
||||
/// </remarks>
|
||||
/// </summary>
|
||||
public enum MediaType
|
||||
{
|
||||
Movie = 1,
|
||||
TvShow = 2,
|
||||
Season = 3,
|
||||
Episode = 4,
|
||||
Artist = 5,
|
||||
Album = 6,
|
||||
Track = 7,
|
||||
PhotoAlbum = 8,
|
||||
Photo = 9,
|
||||
}
|
||||
|
||||
}
|
||||
80
LukeHagar/PlexAPI/SDK/Models/Components/MediaTypeString.cs
Normal file
80
LukeHagar/PlexAPI/SDK/Models/Components/MediaTypeString.cs
Normal file
@@ -0,0 +1,80 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
|
||||
/// <summary>
|
||||
/// The type of media content in the Plex library. This can represent videos, music, or photos.<br/>
|
||||
///
|
||||
/// <remarks>
|
||||
///
|
||||
/// </remarks>
|
||||
/// </summary>
|
||||
public enum MediaTypeString
|
||||
{
|
||||
[JsonProperty("movie")]
|
||||
Movie,
|
||||
[JsonProperty("show")]
|
||||
TvShow,
|
||||
[JsonProperty("season")]
|
||||
Season,
|
||||
[JsonProperty("episode")]
|
||||
Episode,
|
||||
[JsonProperty("artist")]
|
||||
Artist,
|
||||
[JsonProperty("album")]
|
||||
Album,
|
||||
[JsonProperty("track")]
|
||||
Track,
|
||||
[JsonProperty("photoalbum")]
|
||||
PhotoAlbum,
|
||||
[JsonProperty("photo")]
|
||||
Photo,
|
||||
[JsonProperty("collection")]
|
||||
Collection,
|
||||
}
|
||||
|
||||
public static class MediaTypeStringExtension
|
||||
{
|
||||
public static string Value(this MediaTypeString value)
|
||||
{
|
||||
return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString();
|
||||
}
|
||||
|
||||
public static MediaTypeString ToEnum(this string value)
|
||||
{
|
||||
foreach(var field in typeof(MediaTypeString).GetFields())
|
||||
{
|
||||
var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false);
|
||||
if (attributes.Length == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var attribute = attributes[0] as JsonPropertyAttribute;
|
||||
if (attribute != null && attribute.PropertyName == value)
|
||||
{
|
||||
var enumVal = field.GetValue(null);
|
||||
|
||||
if (enumVal is MediaTypeString)
|
||||
{
|
||||
return (MediaTypeString)enumVal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
throw new Exception($"Unknown value {value} for enum MediaTypeString");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -12,6 +12,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
using LukeHagar.PlexAPI.SDK.Models.Components;
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using NodaTime;
|
||||
using System.Collections.Generic;
|
||||
|
||||
/// <summary>
|
||||
@@ -32,43 +33,43 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// The title of the item (e.g. “300” or “The Simpsons”)
|
||||
/// </summary>
|
||||
[JsonProperty("title")]
|
||||
public object? Title { get; set; }
|
||||
public string Title { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// The type of the video item, such as `movie`, `episode`, or `clip`.
|
||||
/// </summary>
|
||||
[JsonProperty("type")]
|
||||
public object? Type { get; set; }
|
||||
public string Type { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// When present, contains the disc number for a track on multi-disc albums.
|
||||
/// </summary>
|
||||
[JsonProperty("absoluteIndex")]
|
||||
public long? AbsoluteIndex { get; set; }
|
||||
public int? AbsoluteIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// In units of seconds since the epoch, returns the time at which the item was added to the library.
|
||||
/// </summary>
|
||||
[JsonProperty("addedAt")]
|
||||
public long? AddedAt { get; set; }
|
||||
public long AddedAt { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// When present, the URL for the background artwork for the item.
|
||||
/// </summary>
|
||||
[JsonProperty("art")]
|
||||
public object? Art { get; set; }
|
||||
public string? Art { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Some rating systems separate reviewer ratings from audience ratings
|
||||
/// </summary>
|
||||
[JsonProperty("audienceRating")]
|
||||
public double? AudienceRating { get; set; }
|
||||
public float? AudienceRating { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// A URI representing the image to be shown with the audience rating (e.g. rottentomatoes://image.rating.spilled).
|
||||
/// </summary>
|
||||
[JsonProperty("audienceRatingImage")]
|
||||
public object? AudienceRatingImage { get; set; }
|
||||
public string? AudienceRatingImage { get; set; }
|
||||
|
||||
[JsonProperty("Autotag")]
|
||||
public List<Tag>? Autotag { get; set; }
|
||||
@@ -77,25 +78,31 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, the URL for a banner graphic for the item.
|
||||
/// </summary>
|
||||
[JsonProperty("banner")]
|
||||
public object? Banner { get; set; }
|
||||
public string? Banner { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, indicates the source for the chapters in the media file. Can be media (the chapters were embedded in the media itself), agent (a metadata agent computed them), or mixed (a combination of the two).
|
||||
/// </summary>
|
||||
[JsonProperty("chapterSource")]
|
||||
public object? ChapterSource { get; set; }
|
||||
public string? ChapterSource { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The number of child items associated with this media item.
|
||||
/// </summary>
|
||||
[JsonProperty("childCount")]
|
||||
public int? ChildCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, the URL for a composite image for descendent items (e.g. photo albums or playlists).
|
||||
/// </summary>
|
||||
[JsonProperty("composite")]
|
||||
public object? Composite { get; set; }
|
||||
public string? Composite { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// If known, the content rating (e.g. MPAA) for an item.
|
||||
/// </summary>
|
||||
[JsonProperty("contentRating")]
|
||||
public object? ContentRating { get; set; }
|
||||
public string? ContentRating { get; set; }
|
||||
|
||||
[JsonProperty("Country")]
|
||||
public List<Tag>? Country { get; set; }
|
||||
@@ -107,7 +114,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, the duration for the item, in units of milliseconds.
|
||||
/// </summary>
|
||||
[JsonProperty("duration")]
|
||||
public long? Duration { get; set; }
|
||||
public int? Duration { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Typically only seen in metadata at a library's top level
|
||||
@@ -124,6 +131,12 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
[JsonProperty("grandparentArt")]
|
||||
public string? GrandparentArt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The GUID of the grandparent media item.
|
||||
/// </summary>
|
||||
[JsonProperty("grandparentGuid")]
|
||||
public string? GrandparentGuid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The `hero` of the grandparent
|
||||
/// </summary>
|
||||
@@ -160,14 +173,20 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
[JsonProperty("grandparentTitle")]
|
||||
public string? GrandparentTitle { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The globally unique identifier for the media item.
|
||||
/// </summary>
|
||||
[JsonProperty("guid")]
|
||||
public string? Guid { get; set; }
|
||||
|
||||
[JsonProperty("Guid")]
|
||||
public List<Tag>? Guid { get; set; }
|
||||
public List<Models.Components.Guids>? Guids { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, the URL for a hero image for the item.
|
||||
/// </summary>
|
||||
[JsonProperty("hero")]
|
||||
public object? Hero { get; set; }
|
||||
public string? Hero { get; set; }
|
||||
|
||||
[JsonProperty("Image")]
|
||||
public List<Image>? Image { get; set; }
|
||||
@@ -176,17 +195,14 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, this represents the episode number for episodes, season number for seasons, or track number for audio tracks.
|
||||
/// </summary>
|
||||
[JsonProperty("index")]
|
||||
public long? Index { get; set; }
|
||||
public int? Index { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The key at which the item's details can be fetched. In many cases a metadata item may be passed without all the details (such as in a hub) and this key corresponds to the endpoint to fetch additional details.
|
||||
/// </summary>
|
||||
[JsonProperty("key")]
|
||||
public object? Key { get; set; }
|
||||
public string Key { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// When a user has watched or listened to an item, this contains a timestamp (epoch seconds) for that last consumption time.
|
||||
/// </summary>
|
||||
[JsonProperty("lastViewedAt")]
|
||||
public long? LastViewedAt { get; set; }
|
||||
|
||||
@@ -194,7 +210,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// For shows and seasons, contains the number of total episodes.
|
||||
/// </summary>
|
||||
[JsonProperty("leafCount")]
|
||||
public long? LeafCount { get; set; }
|
||||
public int? LeafCount { get; set; }
|
||||
|
||||
[JsonProperty("Media")]
|
||||
public List<Media>? Media { get; set; }
|
||||
@@ -203,13 +219,19 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, in the format YYYY-MM-DD [HH:MM:SS] (the hours/minutes/seconds part is not always present). The air date, or a higher resolution release date for an item, depending on type. For example, episodes usually have air date like 1979-08-10 (we don't use epoch seconds because media existed prior to 1970). In some cases, recorded over-the-air content has higher resolution air date which includes a time component. Albums and movies may have day-resolution release dates as well.
|
||||
/// </summary>
|
||||
[JsonProperty("originallyAvailableAt")]
|
||||
public object? OriginallyAvailableAt { get; set; }
|
||||
public LocalDate? OriginallyAvailableAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, used to indicate an item's original title, e.g. a movie's foreign title.
|
||||
/// </summary>
|
||||
[JsonProperty("originalTitle")]
|
||||
public object? OriginalTitle { get; set; }
|
||||
public string? OriginalTitle { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The GUID of the parent media item.
|
||||
/// </summary>
|
||||
[JsonProperty("parentGuid")]
|
||||
public string? ParentGuid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The `hero` of the parent
|
||||
@@ -221,7 +243,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// The `index` of the parent
|
||||
/// </summary>
|
||||
[JsonProperty("parentIndex")]
|
||||
public long? ParentIndex { get; set; }
|
||||
public int? ParentIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The `key` of the parent
|
||||
@@ -251,7 +273,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// Indicates that the item has a primary extra; for a movie, this is a trailer, and for a music track it is a music video. The URL points to the metadata details endpoint for the item.
|
||||
/// </summary>
|
||||
[JsonProperty("primaryExtraKey")]
|
||||
public object? PrimaryExtraKey { get; set; }
|
||||
public string? PrimaryExtraKey { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Prompt to give the user for this directory (such as `Search Movies`)
|
||||
@@ -263,7 +285,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, the rating for the item. The exact meaning and representation depends on where the rating was sourced from.
|
||||
/// </summary>
|
||||
[JsonProperty("rating")]
|
||||
public double? Rating { get; set; }
|
||||
public float? Rating { get; set; }
|
||||
|
||||
[JsonProperty("Rating")]
|
||||
public List<Tag>? RatingArray { get; set; }
|
||||
@@ -272,19 +294,19 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// Number of ratings under this metadata
|
||||
/// </summary>
|
||||
[JsonProperty("ratingCount")]
|
||||
public long? RatingCount { get; set; }
|
||||
public int? RatingCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, indicates an image to be shown with the rating. This is passed back as a small set of defined URI values, e.g. rottentomatoes://image.rating.rotten.
|
||||
/// </summary>
|
||||
[JsonProperty("ratingImage")]
|
||||
public object? RatingImage { get; set; }
|
||||
public string? RatingImage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This is the opaque string to be passed into timeline, scrobble, and rating endpoints to identify them. While it often appears to be numeric, this is not guaranteed.
|
||||
/// </summary>
|
||||
[JsonProperty("ratingKey")]
|
||||
public object? RatingKey { get; set; }
|
||||
public string? RatingKey { get; set; }
|
||||
|
||||
[JsonProperty("Role")]
|
||||
public List<Tag>? Role { get; set; }
|
||||
@@ -323,43 +345,43 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, the studio or label which produced an item (e.g. movie studio for movies, record label for albums).
|
||||
/// </summary>
|
||||
[JsonProperty("studio")]
|
||||
public object? Studio { get; set; }
|
||||
public string? Studio { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The subtype of the video item, such as `photo` when the video item is in a photo library
|
||||
/// </summary>
|
||||
[JsonProperty("subtype")]
|
||||
public object? Subtype { get; set; }
|
||||
public string? Subtype { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, the extended textual information about the item (e.g. movie plot, artist biography, album review).
|
||||
/// </summary>
|
||||
[JsonProperty("summary")]
|
||||
public object? Summary { get; set; }
|
||||
public string? Summary { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, a pithy one-liner about the item (usually only seen for movies).
|
||||
/// </summary>
|
||||
[JsonProperty("tagline")]
|
||||
public object? Tagline { get; set; }
|
||||
public string? Tagline { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, the URL for theme music for the item (usually only for TV shows).
|
||||
/// </summary>
|
||||
[JsonProperty("theme")]
|
||||
public object? Theme { get; set; }
|
||||
public string? Theme { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, the URL for the poster or thumbnail for the item. When available for types like movie, it will be the poster graphic, but fall-back to the extracted media thumbnail.
|
||||
/// </summary>
|
||||
[JsonProperty("thumb")]
|
||||
public object? Thumb { get; set; }
|
||||
public string? Thumb { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whene present, this is the string used for sorting the item. It's usually the title with any leading articles removed (e.g. “Simpsons”).
|
||||
/// </summary>
|
||||
[JsonProperty("titleSort")]
|
||||
public object? TitleSort { get; set; }
|
||||
public string? TitleSort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// In units of seconds since the epoch, returns the time at which the item was last changed (e.g. had its metadata updated).
|
||||
@@ -371,25 +393,25 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When the user has rated an item, this contains the user rating
|
||||
/// </summary>
|
||||
[JsonProperty("userRating")]
|
||||
public double? UserRating { get; set; }
|
||||
public float? UserRating { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When a users has completed watched or listened to an item, this attribute contains the number of consumptions.
|
||||
/// </summary>
|
||||
[JsonProperty("viewCount")]
|
||||
public long? ViewCount { get; set; }
|
||||
public int? ViewCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// For shows and seasons, contains the number of viewed episodes.
|
||||
/// </summary>
|
||||
[JsonProperty("viewedLeafCount")]
|
||||
public long? ViewedLeafCount { get; set; }
|
||||
public int? ViewedLeafCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When a user is in the process of viewing or listening to this item, this attribute contains the current offset, in units of milliseconds.
|
||||
/// </summary>
|
||||
[JsonProperty("viewOffset")]
|
||||
public long? ViewOffset { get; set; }
|
||||
public int? ViewOffset { get; set; }
|
||||
|
||||
[JsonProperty("Writer")]
|
||||
public List<Tag>? Writer { get; set; }
|
||||
@@ -398,7 +420,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, the year associated with the item's release (e.g. release year for a movie).
|
||||
/// </summary>
|
||||
[JsonProperty("year")]
|
||||
public long? Year { get; set; }
|
||||
public int? Year { get; set; }
|
||||
|
||||
[JsonProperty("additionalProperties")]
|
||||
public Dictionary<string, object>? AdditionalProperties { get; set; }
|
||||
|
||||
@@ -12,6 +12,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
using LukeHagar.PlexAPI.SDK.Models.Components;
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using NodaTime;
|
||||
using System.Collections.Generic;
|
||||
|
||||
/// <summary>
|
||||
@@ -32,43 +33,43 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// The title of the item (e.g. “300” or “The Simpsons”)
|
||||
/// </summary>
|
||||
[JsonProperty("title")]
|
||||
public object? Title { get; set; }
|
||||
public string Title { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// The type of the video item, such as `movie`, `episode`, or `clip`.
|
||||
/// </summary>
|
||||
[JsonProperty("type")]
|
||||
public object? Type { get; set; }
|
||||
public string Type { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// When present, contains the disc number for a track on multi-disc albums.
|
||||
/// </summary>
|
||||
[JsonProperty("absoluteIndex")]
|
||||
public long? AbsoluteIndex { get; set; }
|
||||
public int? AbsoluteIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// In units of seconds since the epoch, returns the time at which the item was added to the library.
|
||||
/// </summary>
|
||||
[JsonProperty("addedAt")]
|
||||
public long? AddedAt { get; set; }
|
||||
public long AddedAt { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// When present, the URL for the background artwork for the item.
|
||||
/// </summary>
|
||||
[JsonProperty("art")]
|
||||
public object? Art { get; set; }
|
||||
public string? Art { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Some rating systems separate reviewer ratings from audience ratings
|
||||
/// </summary>
|
||||
[JsonProperty("audienceRating")]
|
||||
public double? AudienceRating { get; set; }
|
||||
public float? AudienceRating { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// A URI representing the image to be shown with the audience rating (e.g. rottentomatoes://image.rating.spilled).
|
||||
/// </summary>
|
||||
[JsonProperty("audienceRatingImage")]
|
||||
public object? AudienceRatingImage { get; set; }
|
||||
public string? AudienceRatingImage { get; set; }
|
||||
|
||||
[JsonProperty("Autotag")]
|
||||
public List<Tag>? Autotag { get; set; }
|
||||
@@ -77,25 +78,31 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, the URL for a banner graphic for the item.
|
||||
/// </summary>
|
||||
[JsonProperty("banner")]
|
||||
public object? Banner { get; set; }
|
||||
public string? Banner { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, indicates the source for the chapters in the media file. Can be media (the chapters were embedded in the media itself), agent (a metadata agent computed them), or mixed (a combination of the two).
|
||||
/// </summary>
|
||||
[JsonProperty("chapterSource")]
|
||||
public object? ChapterSource { get; set; }
|
||||
public string? ChapterSource { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The number of child items associated with this media item.
|
||||
/// </summary>
|
||||
[JsonProperty("childCount")]
|
||||
public int? ChildCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, the URL for a composite image for descendent items (e.g. photo albums or playlists).
|
||||
/// </summary>
|
||||
[JsonProperty("composite")]
|
||||
public object? Composite { get; set; }
|
||||
public string? Composite { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// If known, the content rating (e.g. MPAA) for an item.
|
||||
/// </summary>
|
||||
[JsonProperty("contentRating")]
|
||||
public object? ContentRating { get; set; }
|
||||
public string? ContentRating { get; set; }
|
||||
|
||||
[JsonProperty("Country")]
|
||||
public List<Tag>? Country { get; set; }
|
||||
@@ -107,7 +114,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, the duration for the item, in units of milliseconds.
|
||||
/// </summary>
|
||||
[JsonProperty("duration")]
|
||||
public long? Duration { get; set; }
|
||||
public int? Duration { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Typically only seen in metadata at a library's top level
|
||||
@@ -124,6 +131,12 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
[JsonProperty("grandparentArt")]
|
||||
public string? GrandparentArt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The GUID of the grandparent media item.
|
||||
/// </summary>
|
||||
[JsonProperty("grandparentGuid")]
|
||||
public string? GrandparentGuid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The `hero` of the grandparent
|
||||
/// </summary>
|
||||
@@ -160,14 +173,20 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
[JsonProperty("grandparentTitle")]
|
||||
public string? GrandparentTitle { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The globally unique identifier for the media item.
|
||||
/// </summary>
|
||||
[JsonProperty("guid")]
|
||||
public string? Guid { get; set; }
|
||||
|
||||
[JsonProperty("Guid")]
|
||||
public List<Tag>? Guid { get; set; }
|
||||
public List<MediaContainerWithNestedMetadataGuids>? Guids { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, the URL for a hero image for the item.
|
||||
/// </summary>
|
||||
[JsonProperty("hero")]
|
||||
public object? Hero { get; set; }
|
||||
public string? Hero { get; set; }
|
||||
|
||||
[JsonProperty("Image")]
|
||||
public List<Image>? Image { get; set; }
|
||||
@@ -176,17 +195,14 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, this represents the episode number for episodes, season number for seasons, or track number for audio tracks.
|
||||
/// </summary>
|
||||
[JsonProperty("index")]
|
||||
public long? Index { get; set; }
|
||||
public int? Index { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The key at which the item's details can be fetched. In many cases a metadata item may be passed without all the details (such as in a hub) and this key corresponds to the endpoint to fetch additional details.
|
||||
/// </summary>
|
||||
[JsonProperty("key")]
|
||||
public object? Key { get; set; }
|
||||
public string Key { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// When a user has watched or listened to an item, this contains a timestamp (epoch seconds) for that last consumption time.
|
||||
/// </summary>
|
||||
[JsonProperty("lastViewedAt")]
|
||||
public long? LastViewedAt { get; set; }
|
||||
|
||||
@@ -194,7 +210,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// For shows and seasons, contains the number of total episodes.
|
||||
/// </summary>
|
||||
[JsonProperty("leafCount")]
|
||||
public long? LeafCount { get; set; }
|
||||
public int? LeafCount { get; set; }
|
||||
|
||||
[JsonProperty("Media")]
|
||||
public List<Media>? Media { get; set; }
|
||||
@@ -203,13 +219,19 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, in the format YYYY-MM-DD [HH:MM:SS] (the hours/minutes/seconds part is not always present). The air date, or a higher resolution release date for an item, depending on type. For example, episodes usually have air date like 1979-08-10 (we don't use epoch seconds because media existed prior to 1970). In some cases, recorded over-the-air content has higher resolution air date which includes a time component. Albums and movies may have day-resolution release dates as well.
|
||||
/// </summary>
|
||||
[JsonProperty("originallyAvailableAt")]
|
||||
public object? OriginallyAvailableAt { get; set; }
|
||||
public LocalDate? OriginallyAvailableAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, used to indicate an item's original title, e.g. a movie's foreign title.
|
||||
/// </summary>
|
||||
[JsonProperty("originalTitle")]
|
||||
public object? OriginalTitle { get; set; }
|
||||
public string? OriginalTitle { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The GUID of the parent media item.
|
||||
/// </summary>
|
||||
[JsonProperty("parentGuid")]
|
||||
public string? ParentGuid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The `hero` of the parent
|
||||
@@ -221,7 +243,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// The `index` of the parent
|
||||
/// </summary>
|
||||
[JsonProperty("parentIndex")]
|
||||
public long? ParentIndex { get; set; }
|
||||
public int? ParentIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The `key` of the parent
|
||||
@@ -251,7 +273,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// Indicates that the item has a primary extra; for a movie, this is a trailer, and for a music track it is a music video. The URL points to the metadata details endpoint for the item.
|
||||
/// </summary>
|
||||
[JsonProperty("primaryExtraKey")]
|
||||
public object? PrimaryExtraKey { get; set; }
|
||||
public string? PrimaryExtraKey { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Prompt to give the user for this directory (such as `Search Movies`)
|
||||
@@ -263,7 +285,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, the rating for the item. The exact meaning and representation depends on where the rating was sourced from.
|
||||
/// </summary>
|
||||
[JsonProperty("rating")]
|
||||
public double? Rating { get; set; }
|
||||
public float? Rating { get; set; }
|
||||
|
||||
[JsonProperty("Rating")]
|
||||
public List<Tag>? RatingArray { get; set; }
|
||||
@@ -272,19 +294,19 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// Number of ratings under this metadata
|
||||
/// </summary>
|
||||
[JsonProperty("ratingCount")]
|
||||
public long? RatingCount { get; set; }
|
||||
public int? RatingCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, indicates an image to be shown with the rating. This is passed back as a small set of defined URI values, e.g. rottentomatoes://image.rating.rotten.
|
||||
/// </summary>
|
||||
[JsonProperty("ratingImage")]
|
||||
public object? RatingImage { get; set; }
|
||||
public string? RatingImage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This is the opaque string to be passed into timeline, scrobble, and rating endpoints to identify them. While it often appears to be numeric, this is not guaranteed.
|
||||
/// </summary>
|
||||
[JsonProperty("ratingKey")]
|
||||
public object? RatingKey { get; set; }
|
||||
public string? RatingKey { get; set; }
|
||||
|
||||
[JsonProperty("Role")]
|
||||
public List<Tag>? Role { get; set; }
|
||||
@@ -323,43 +345,43 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, the studio or label which produced an item (e.g. movie studio for movies, record label for albums).
|
||||
/// </summary>
|
||||
[JsonProperty("studio")]
|
||||
public object? Studio { get; set; }
|
||||
public string? Studio { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The subtype of the video item, such as `photo` when the video item is in a photo library
|
||||
/// </summary>
|
||||
[JsonProperty("subtype")]
|
||||
public object? Subtype { get; set; }
|
||||
public string? Subtype { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, the extended textual information about the item (e.g. movie plot, artist biography, album review).
|
||||
/// </summary>
|
||||
[JsonProperty("summary")]
|
||||
public object? Summary { get; set; }
|
||||
public string? Summary { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, a pithy one-liner about the item (usually only seen for movies).
|
||||
/// </summary>
|
||||
[JsonProperty("tagline")]
|
||||
public object? Tagline { get; set; }
|
||||
public string? Tagline { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, the URL for theme music for the item (usually only for TV shows).
|
||||
/// </summary>
|
||||
[JsonProperty("theme")]
|
||||
public object? Theme { get; set; }
|
||||
public string? Theme { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When present, the URL for the poster or thumbnail for the item. When available for types like movie, it will be the poster graphic, but fall-back to the extracted media thumbnail.
|
||||
/// </summary>
|
||||
[JsonProperty("thumb")]
|
||||
public object? Thumb { get; set; }
|
||||
public string? Thumb { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whene present, this is the string used for sorting the item. It's usually the title with any leading articles removed (e.g. “Simpsons”).
|
||||
/// </summary>
|
||||
[JsonProperty("titleSort")]
|
||||
public object? TitleSort { get; set; }
|
||||
public string? TitleSort { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// In units of seconds since the epoch, returns the time at which the item was last changed (e.g. had its metadata updated).
|
||||
@@ -371,25 +393,25 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When the user has rated an item, this contains the user rating
|
||||
/// </summary>
|
||||
[JsonProperty("userRating")]
|
||||
public double? UserRating { get; set; }
|
||||
public float? UserRating { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When a users has completed watched or listened to an item, this attribute contains the number of consumptions.
|
||||
/// </summary>
|
||||
[JsonProperty("viewCount")]
|
||||
public long? ViewCount { get; set; }
|
||||
public int? ViewCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// For shows and seasons, contains the number of viewed episodes.
|
||||
/// </summary>
|
||||
[JsonProperty("viewedLeafCount")]
|
||||
public long? ViewedLeafCount { get; set; }
|
||||
public int? ViewedLeafCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When a user is in the process of viewing or listening to this item, this attribute contains the current offset, in units of milliseconds.
|
||||
/// </summary>
|
||||
[JsonProperty("viewOffset")]
|
||||
public long? ViewOffset { get; set; }
|
||||
public int? ViewOffset { get; set; }
|
||||
|
||||
[JsonProperty("Writer")]
|
||||
public List<Tag>? Writer { get; set; }
|
||||
@@ -398,7 +420,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// When present, the year associated with the item's release (e.g. release year for a movie).
|
||||
/// </summary>
|
||||
[JsonProperty("year")]
|
||||
public long? Year { get; set; }
|
||||
public int? Year { get; set; }
|
||||
|
||||
[JsonProperty("MetadataItem")]
|
||||
public List<Items>? MetadataItemValue { get; set; }
|
||||
|
||||
@@ -24,38 +24,53 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
public class Part
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if the part is accessible.
|
||||
/// </summary>
|
||||
[JsonProperty("accessible")]
|
||||
public bool? Accessible { get; set; }
|
||||
|
||||
[JsonProperty("audioProfile")]
|
||||
public object? AudioProfile { get; set; }
|
||||
public string? AudioProfile { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The container of the media file, such as `mp4` or `mkv`
|
||||
/// </summary>
|
||||
[JsonProperty("container")]
|
||||
public object? Container { get; set; }
|
||||
public string? Container { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The duration of the media item, in milliseconds
|
||||
/// </summary>
|
||||
[JsonProperty("duration")]
|
||||
public long? Duration { get; set; }
|
||||
public int? Duration { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if the part exists.
|
||||
/// </summary>
|
||||
[JsonProperty("exists")]
|
||||
public bool? Exists { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The local file path at which the part is stored on the server
|
||||
/// </summary>
|
||||
[JsonProperty("file")]
|
||||
public object? File { get; set; }
|
||||
public string? File { get; set; }
|
||||
|
||||
[JsonProperty("has64bitOffsets")]
|
||||
public bool? Has64bitOffsets { get; set; }
|
||||
|
||||
[JsonProperty("id")]
|
||||
public long? Id { get; set; }
|
||||
public long Id { get; set; } = default!;
|
||||
|
||||
[JsonProperty("indexes")]
|
||||
public string? Indexes { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The key from which the media can be streamed
|
||||
/// </summary>
|
||||
[JsonProperty("key")]
|
||||
public object? Key { get; set; }
|
||||
public string Key { get; set; } = default!;
|
||||
|
||||
[JsonProperty("optimizedForStreaming")]
|
||||
public bool? OptimizedForStreaming { get; set; }
|
||||
@@ -70,7 +85,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
public List<Stream>? Stream { get; set; }
|
||||
|
||||
[JsonProperty("videoProfile")]
|
||||
public object? VideoProfile { get; set; }
|
||||
public string? VideoProfile { get; set; }
|
||||
|
||||
[JsonProperty("additionalProperties")]
|
||||
public Dictionary<string, object>? AdditionalProperties { get; set; }
|
||||
|
||||
96
LukeHagar/PlexAPI/SDK/Models/Components/PlexDevice.cs
Normal file
96
LukeHagar/PlexAPI/SDK/Models/Components/PlexDevice.cs
Normal file
@@ -0,0 +1,96 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Models.Components;
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
public class PlexDevice
|
||||
{
|
||||
|
||||
[JsonProperty("name")]
|
||||
public string Name { get; set; } = default!;
|
||||
|
||||
[JsonProperty("product")]
|
||||
public string Product { get; set; } = default!;
|
||||
|
||||
[JsonProperty("productVersion")]
|
||||
public string ProductVersion { get; set; } = default!;
|
||||
|
||||
[JsonProperty("platform", NullValueHandling = NullValueHandling.Include)]
|
||||
public string? Platform { get; set; }
|
||||
|
||||
[JsonProperty("platformVersion", NullValueHandling = NullValueHandling.Include)]
|
||||
public string? PlatformVersion { get; set; }
|
||||
|
||||
[JsonProperty("device", NullValueHandling = NullValueHandling.Include)]
|
||||
public string? Device { get; set; }
|
||||
|
||||
[JsonProperty("clientIdentifier")]
|
||||
public string ClientIdentifier { get; set; } = default!;
|
||||
|
||||
[JsonProperty("createdAt")]
|
||||
public DateTime CreatedAt { get; set; } = default!;
|
||||
|
||||
[JsonProperty("lastSeenAt")]
|
||||
public DateTime LastSeenAt { get; set; } = default!;
|
||||
|
||||
[JsonProperty("provides")]
|
||||
public string Provides { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// ownerId is null when the device is owned by the token used to send the request
|
||||
/// </summary>
|
||||
[JsonProperty("ownerId", NullValueHandling = NullValueHandling.Include)]
|
||||
public long? OwnerId { get; set; }
|
||||
|
||||
[JsonProperty("sourceTitle", NullValueHandling = NullValueHandling.Include)]
|
||||
public string? SourceTitle { get; set; }
|
||||
|
||||
[JsonProperty("publicAddress")]
|
||||
public string PublicAddress { get; set; } = default!;
|
||||
|
||||
[JsonProperty("accessToken")]
|
||||
public string AccessToken { get; set; } = default!;
|
||||
|
||||
[JsonProperty("owned")]
|
||||
public bool Owned { get; set; } = default!;
|
||||
|
||||
[JsonProperty("home")]
|
||||
public bool Home { get; set; } = default!;
|
||||
|
||||
[JsonProperty("synced")]
|
||||
public bool Synced { get; set; } = default!;
|
||||
|
||||
[JsonProperty("relay")]
|
||||
public bool Relay { get; set; } = default!;
|
||||
|
||||
[JsonProperty("presence")]
|
||||
public bool Presence { get; set; } = default!;
|
||||
|
||||
[JsonProperty("httpsRequired")]
|
||||
public bool HttpsRequired { get; set; } = default!;
|
||||
|
||||
[JsonProperty("publicAddressMatches")]
|
||||
public bool PublicAddressMatches { get; set; } = default!;
|
||||
|
||||
[JsonProperty("dnsRebindingProtection")]
|
||||
public bool DnsRebindingProtection { get; set; } = default!;
|
||||
|
||||
[JsonProperty("natLoopbackSupported")]
|
||||
public bool NatLoopbackSupported { get; set; } = default!;
|
||||
|
||||
[JsonProperty("connections")]
|
||||
public List<Connections> Connections { get; set; } = default!;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
|
||||
/// <summary>
|
||||
/// The protocol used for the connection (http, https, etc)
|
||||
/// </summary>
|
||||
public enum PlexDeviceProtocol
|
||||
{
|
||||
[JsonProperty("http")]
|
||||
Http,
|
||||
[JsonProperty("https")]
|
||||
Https,
|
||||
}
|
||||
|
||||
public static class PlexDeviceProtocolExtension
|
||||
{
|
||||
public static string Value(this PlexDeviceProtocol value)
|
||||
{
|
||||
return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString();
|
||||
}
|
||||
|
||||
public static PlexDeviceProtocol ToEnum(this string value)
|
||||
{
|
||||
foreach(var field in typeof(PlexDeviceProtocol).GetFields())
|
||||
{
|
||||
var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false);
|
||||
if (attributes.Length == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var attribute = attributes[0] as JsonPropertyAttribute;
|
||||
if (attribute != null && attribute.PropertyName == value)
|
||||
{
|
||||
var enumVal = field.GetValue(null);
|
||||
|
||||
if (enumVal is PlexDeviceProtocol)
|
||||
{
|
||||
return (PlexDeviceProtocol)enumVal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
throw new Exception($"Unknown value {value} for enum PlexDeviceProtocol");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
38
LukeHagar/PlexAPI/SDK/Models/Components/Services.cs
Normal file
38
LukeHagar/PlexAPI/SDK/Models/Components/Services.cs
Normal file
@@ -0,0 +1,38 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Models.Components;
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
public class Services
|
||||
{
|
||||
|
||||
[JsonProperty("identifier")]
|
||||
public string Identifier { get; set; } = default!;
|
||||
|
||||
[JsonProperty("endpoint")]
|
||||
public string Endpoint { get; set; } = default!;
|
||||
|
||||
[JsonProperty("token", NullValueHandling = NullValueHandling.Include)]
|
||||
public string? Token { get; set; }
|
||||
|
||||
[JsonProperty("secret", NullValueHandling = NullValueHandling.Include)]
|
||||
public string? Secret { get; set; }
|
||||
|
||||
[JsonProperty("status")]
|
||||
public UserPlexAccountStatus Status { get; set; } = default!;
|
||||
}
|
||||
}
|
||||
@@ -23,113 +23,306 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
public class Stream
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if this stream is default.
|
||||
/// </summary>
|
||||
[JsonProperty("default")]
|
||||
public bool? Default { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Audio channel layout.
|
||||
/// </summary>
|
||||
[JsonProperty("audioChannelLayout")]
|
||||
public object? AudioChannelLayout { get; set; }
|
||||
|
||||
[JsonProperty("bitDepth")]
|
||||
public long? BitDepth { get; set; }
|
||||
|
||||
[JsonProperty("bitrate")]
|
||||
public long? Bitrate { get; set; }
|
||||
public string? AudioChannelLayout { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// For subtitle streams only. If `true` then the server can attempt to automatically sync the subtitle timestamps with the video.
|
||||
/// Number of audio channels (for audio streams).
|
||||
/// </summary>
|
||||
[JsonProperty("channels")]
|
||||
public int? Channels { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Bit depth of the video stream.
|
||||
/// </summary>
|
||||
[JsonProperty("bitDepth")]
|
||||
public int? BitDepth { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Dolby Vision BL compatibility ID.
|
||||
/// </summary>
|
||||
[JsonProperty("DOVIBLCompatID")]
|
||||
public int? DOVIBLCompatID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if Dolby Vision BL is present.
|
||||
/// </summary>
|
||||
[JsonProperty("DOVIBLPresent")]
|
||||
public bool? DOVIBLPresent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if Dolby Vision EL is present.
|
||||
/// </summary>
|
||||
[JsonProperty("DOVIELPresent")]
|
||||
public bool? DOVIELPresent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Dolby Vision level.
|
||||
/// </summary>
|
||||
[JsonProperty("DOVILevel")]
|
||||
public int? DOVILevel { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if Dolby Vision is present.
|
||||
/// </summary>
|
||||
[JsonProperty("DOVIPresent")]
|
||||
public bool? DOVIPresent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Dolby Vision profile.
|
||||
/// </summary>
|
||||
[JsonProperty("DOVIProfile")]
|
||||
public int? DOVIProfile { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if Dolby Vision RPU is present.
|
||||
/// </summary>
|
||||
[JsonProperty("DOVIRPUPresent")]
|
||||
public bool? DOVIRPUPresent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Dolby Vision version.
|
||||
/// </summary>
|
||||
[JsonProperty("DOVIVersion")]
|
||||
public string? DOVIVersion { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Bitrate of the stream.
|
||||
/// </summary>
|
||||
[JsonProperty("bitrate")]
|
||||
public int? Bitrate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if the stream can auto-sync.
|
||||
/// </summary>
|
||||
[JsonProperty("canAutoSync")]
|
||||
public bool? CanAutoSync { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Chroma sample location.
|
||||
/// </summary>
|
||||
[JsonProperty("chromaLocation")]
|
||||
public object? ChromaLocation { get; set; }
|
||||
|
||||
[JsonProperty("chromaSubsampling")]
|
||||
public object? ChromaSubsampling { get; set; }
|
||||
public string? ChromaLocation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The codec of the stream, such as `h264` or `aac`
|
||||
/// Chroma subsampling format.
|
||||
/// </summary>
|
||||
[JsonProperty("chromaSubsampling")]
|
||||
public string? ChromaSubsampling { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Coded video height.
|
||||
/// </summary>
|
||||
[JsonProperty("codedHeight")]
|
||||
public int? CodedHeight { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Coded video width.
|
||||
/// </summary>
|
||||
[JsonProperty("codedWidth")]
|
||||
public int? CodedWidth { get; set; }
|
||||
|
||||
[JsonProperty("closedCaptions")]
|
||||
public bool? ClosedCaptions { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Codec used by the stream.
|
||||
/// </summary>
|
||||
[JsonProperty("codec")]
|
||||
public object? Codec { get; set; }
|
||||
|
||||
[JsonProperty("colorPrimaries")]
|
||||
public object? ColorPrimaries { get; set; }
|
||||
|
||||
[JsonProperty("colorRange")]
|
||||
public object? ColorRange { get; set; }
|
||||
|
||||
[JsonProperty("colorSpace")]
|
||||
public object? ColorSpace { get; set; }
|
||||
|
||||
[JsonProperty("colorTrc")]
|
||||
public object? ColorTrc { get; set; }
|
||||
public string Codec { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// A friendly name for the stream, often comprised of the language and codec information
|
||||
/// Color primaries used.
|
||||
/// </summary>
|
||||
[JsonProperty("colorPrimaries")]
|
||||
public string? ColorPrimaries { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Color range (e.g., tv).
|
||||
/// </summary>
|
||||
[JsonProperty("colorRange")]
|
||||
public string? ColorRange { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Color space.
|
||||
/// </summary>
|
||||
[JsonProperty("colorSpace")]
|
||||
public string? ColorSpace { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Color transfer characteristics.
|
||||
/// </summary>
|
||||
[JsonProperty("colorTrc")]
|
||||
public string? ColorTrc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Display title for the stream.
|
||||
/// </summary>
|
||||
[JsonProperty("displayTitle")]
|
||||
public object? DisplayTitle { get; set; }
|
||||
public string DisplayTitle { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// Extended display title for the stream.
|
||||
/// </summary>
|
||||
[JsonProperty("extendedDisplayTitle")]
|
||||
public string? ExtendedDisplayTitle { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Frame rate of the stream.
|
||||
/// </summary>
|
||||
[JsonProperty("frameRate")]
|
||||
public double? FrameRate { get; set; }
|
||||
public float? FrameRate { get; set; }
|
||||
|
||||
[JsonProperty("hasScalingMatrix")]
|
||||
public object? HasScalingMatrix { get; set; }
|
||||
|
||||
[JsonProperty("height")]
|
||||
public long? Height { get; set; }
|
||||
|
||||
[JsonProperty("id")]
|
||||
public long? Id { get; set; }
|
||||
public bool? HasScalingMatrix { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// If the stream is part of the `Part` and not an external resource, the index of the stream within that part
|
||||
/// Height of the video stream.
|
||||
/// </summary>
|
||||
[JsonProperty("height")]
|
||||
public int? Height { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Unique stream identifier.
|
||||
/// </summary>
|
||||
[JsonProperty("id")]
|
||||
public int Id { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// Index of the stream.
|
||||
/// </summary>
|
||||
[JsonProperty("index")]
|
||||
public long? Index { get; set; }
|
||||
public int? Index { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// If the stream is independently streamable, the key from which it can be streamed
|
||||
/// Key to access this stream part.
|
||||
/// </summary>
|
||||
[JsonProperty("key")]
|
||||
public object? Key { get; set; }
|
||||
|
||||
[JsonProperty("language")]
|
||||
public object? Language { get; set; }
|
||||
public string Key { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// The three character language code for the stream contents
|
||||
/// Language of the stream.
|
||||
/// </summary>
|
||||
[JsonProperty("language")]
|
||||
public string? Language { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ISO language code.
|
||||
/// </summary>
|
||||
[JsonProperty("languageCode")]
|
||||
public object? LanguageCode { get; set; }
|
||||
public string? LanguageCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Language tag (e.g., en).
|
||||
/// </summary>
|
||||
[JsonProperty("languageTag")]
|
||||
public string? LanguageTag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Format of the stream (e.g., srt).
|
||||
/// </summary>
|
||||
[JsonProperty("format")]
|
||||
public string? Format { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates whether header compression is enabled.
|
||||
/// </summary>
|
||||
[JsonProperty("headerCompression")]
|
||||
public bool? HeaderCompression { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Video level.
|
||||
/// </summary>
|
||||
[JsonProperty("level")]
|
||||
public long? Level { get; set; }
|
||||
public int? Level { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if this is the original stream.
|
||||
/// </summary>
|
||||
[JsonProperty("original")]
|
||||
public bool? Original { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Video profile.
|
||||
/// </summary>
|
||||
[JsonProperty("profile")]
|
||||
public object? Profile { get; set; }
|
||||
public string? Profile { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of reference frames.
|
||||
/// </summary>
|
||||
[JsonProperty("refFrames")]
|
||||
public long? RefFrames { get; set; }
|
||||
public int? RefFrames { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Sampling rate for the audio stream.
|
||||
/// </summary>
|
||||
[JsonProperty("samplingRate")]
|
||||
public long? SamplingRate { get; set; }
|
||||
public int? SamplingRate { get; set; }
|
||||
|
||||
[JsonProperty("scanType")]
|
||||
public string? ScanType { get; set; }
|
||||
|
||||
[JsonProperty("embeddedInVideo")]
|
||||
public string? EmbeddedInVideo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if this stream is selected (applicable for audio streams).
|
||||
/// </summary>
|
||||
[JsonProperty("selected")]
|
||||
public bool? Selected { get; set; }
|
||||
|
||||
[JsonProperty("streamIdentifier")]
|
||||
public long? StreamIdentifier { get; set; }
|
||||
[JsonProperty("forced")]
|
||||
public bool? Forced { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// A number indicating the type of the stream. `1` for video, `2` for audio, `3` for subtitles, `4` for lyrics
|
||||
/// Indicates if the stream is for the hearing impaired.
|
||||
/// </summary>
|
||||
[JsonProperty("hearingImpaired")]
|
||||
public bool? HearingImpaired { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if the stream is a dub.
|
||||
/// </summary>
|
||||
[JsonProperty("dub")]
|
||||
public bool? Dub { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Optional title for the stream (e.g., language variant).
|
||||
/// </summary>
|
||||
[JsonProperty("title")]
|
||||
public string? Title { get; set; }
|
||||
|
||||
[JsonProperty("streamIdentifier")]
|
||||
public int? StreamIdentifier { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Stream type:<br/>
|
||||
///
|
||||
/// <remarks>
|
||||
/// - VIDEO = 1<br/>
|
||||
/// - AUDIO = 2<br/>
|
||||
/// - SUBTITLE = 3<br/>
|
||||
///
|
||||
/// </remarks>
|
||||
/// </summary>
|
||||
[JsonProperty("streamType")]
|
||||
public long? StreamType { get; set; }
|
||||
public long StreamType { get; } = 1;
|
||||
|
||||
/// <summary>
|
||||
/// Width of the video stream.
|
||||
/// </summary>
|
||||
[JsonProperty("width")]
|
||||
public long? Width { get; set; }
|
||||
public int? Width { get; set; }
|
||||
|
||||
[JsonProperty("additionalProperties")]
|
||||
public Dictionary<string, object>? AdditionalProperties { get; set; }
|
||||
|
||||
62
LukeHagar/PlexAPI/SDK/Models/Components/Subscription.cs
Normal file
62
LukeHagar/PlexAPI/SDK/Models/Components/Subscription.cs
Normal file
@@ -0,0 +1,62 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Models.Components;
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
/// <summary>
|
||||
/// If the account's Plex Pass subscription is active
|
||||
/// </summary>
|
||||
public class Subscription
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// List of features allowed on your Plex Pass subscription
|
||||
/// </summary>
|
||||
[JsonProperty("features")]
|
||||
public List<string>? Features { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// If the account's Plex Pass subscription is active
|
||||
/// </summary>
|
||||
[JsonProperty("active")]
|
||||
public bool? Active { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Date the account subscribed to Plex Pass
|
||||
/// </summary>
|
||||
[JsonProperty("subscribedAt")]
|
||||
public string? SubscribedAt { get; set; } = null;
|
||||
|
||||
/// <summary>
|
||||
/// String representation of subscriptionActive
|
||||
/// </summary>
|
||||
[JsonProperty("status")]
|
||||
public UserPlexAccountSubscriptionStatus? Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Payment service used for your Plex Pass subscription
|
||||
/// </summary>
|
||||
[JsonProperty("paymentService")]
|
||||
public string? PaymentService { get; set; } = null;
|
||||
|
||||
/// <summary>
|
||||
/// Name of Plex Pass subscription plan
|
||||
/// </summary>
|
||||
[JsonProperty("plan")]
|
||||
public string? Plan { get; set; } = null;
|
||||
}
|
||||
}
|
||||
@@ -35,11 +35,14 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// A filter parameter that can be used to query for more content that matches this tag value.
|
||||
/// </summary>
|
||||
[JsonProperty("filter")]
|
||||
public object? Filter { get; set; }
|
||||
public string? Filter { get; set; }
|
||||
|
||||
[JsonProperty("id")]
|
||||
public long? Id { get; set; }
|
||||
public int? Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The rating key (Media ID) of this media item. Note: Although this is always an integer, it is represented as a string in the API.
|
||||
/// </summary>
|
||||
[JsonProperty("ratingKey")]
|
||||
public string? RatingKey { get; set; }
|
||||
|
||||
@@ -47,24 +50,24 @@ namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
/// The role this actor played
|
||||
/// </summary>
|
||||
[JsonProperty("role")]
|
||||
public object? Role { get; set; }
|
||||
public string? Role { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The value of the tag (the name)
|
||||
/// </summary>
|
||||
[JsonProperty("tag")]
|
||||
public object? TagValue { get; set; }
|
||||
public string TagValue { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// Plex identifier for this tag which can be used to fetch additional information from plex.tv
|
||||
/// </summary>
|
||||
[JsonProperty("tagKey")]
|
||||
public object? TagKey { get; set; }
|
||||
public string? TagKey { get; set; }
|
||||
|
||||
[JsonProperty("tagType")]
|
||||
public long? TagType { get; set; }
|
||||
public int? TagType { get; set; }
|
||||
|
||||
[JsonProperty("thumb")]
|
||||
public object? Thumb { get; set; }
|
||||
public string? Thumb { get; set; }
|
||||
}
|
||||
}
|
||||
250
LukeHagar/PlexAPI/SDK/Models/Components/UserPlexAccount.cs
Normal file
250
LukeHagar/PlexAPI/SDK/Models/Components/UserPlexAccount.cs
Normal file
@@ -0,0 +1,250 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Models.Components;
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
public class UserPlexAccount
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Unknown
|
||||
/// </summary>
|
||||
[JsonProperty("adsConsent")]
|
||||
public bool? AdsConsent { get; set; } = null;
|
||||
|
||||
[JsonProperty("adsConsentReminderAt")]
|
||||
public long? AdsConsentReminderAt { get; set; } = null;
|
||||
|
||||
[JsonProperty("adsConsentSetAt")]
|
||||
public long? AdsConsentSetAt { get; set; } = null;
|
||||
|
||||
/// <summary>
|
||||
/// Unknown
|
||||
/// </summary>
|
||||
[JsonProperty("anonymous")]
|
||||
public bool? Anonymous { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// The account token
|
||||
/// </summary>
|
||||
[JsonProperty("authToken")]
|
||||
public string AuthToken { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// If the two-factor authentication backup codes have been created
|
||||
/// </summary>
|
||||
[JsonProperty("backupCodesCreated")]
|
||||
public bool? BackupCodesCreated { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// If the account has been confirmed
|
||||
/// </summary>
|
||||
[JsonProperty("confirmed")]
|
||||
public bool? Confirmed { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// The account country
|
||||
/// </summary>
|
||||
[JsonProperty("country")]
|
||||
public string? Country { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The account email address
|
||||
/// </summary>
|
||||
[JsonProperty("email")]
|
||||
public string Email { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// If login with email only is enabled
|
||||
/// </summary>
|
||||
[JsonProperty("emailOnlyAuth")]
|
||||
public bool? EmailOnlyAuth { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// If experimental features are enabled
|
||||
/// </summary>
|
||||
[JsonProperty("experimentalFeatures")]
|
||||
public bool? ExperimentalFeatures { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// Your account full name
|
||||
/// </summary>
|
||||
[JsonProperty("friendlyName")]
|
||||
public string FriendlyName { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// List of devices your allowed to use with this account
|
||||
/// </summary>
|
||||
[JsonProperty("entitlements")]
|
||||
public List<string>? Entitlements { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// If the account is a Plex Home guest user
|
||||
/// </summary>
|
||||
[JsonProperty("guest")]
|
||||
public bool? Guest { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// If the account has a password
|
||||
/// </summary>
|
||||
[JsonProperty("hasPassword")]
|
||||
public bool? HasPassword { get; set; } = true;
|
||||
|
||||
/// <summary>
|
||||
/// If the account is a Plex Home user
|
||||
/// </summary>
|
||||
[JsonProperty("home")]
|
||||
public bool? Home { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// If the account is the Plex Home admin
|
||||
/// </summary>
|
||||
[JsonProperty("homeAdmin")]
|
||||
public bool? HomeAdmin { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// The number of accounts in the Plex Home
|
||||
/// </summary>
|
||||
[JsonProperty("homeSize")]
|
||||
public int? HomeSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The Plex account ID
|
||||
/// </summary>
|
||||
[JsonProperty("id")]
|
||||
public int Id { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// Unix epoch datetime in seconds
|
||||
/// </summary>
|
||||
[JsonProperty("joinedAt")]
|
||||
public long JoinedAt { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// The account locale
|
||||
/// </summary>
|
||||
[JsonProperty("locale")]
|
||||
public string? Locale { get; set; } = null;
|
||||
|
||||
/// <summary>
|
||||
/// If you are subscribed to the Plex newsletter
|
||||
/// </summary>
|
||||
[JsonProperty("mailingListActive")]
|
||||
public bool? MailingListActive { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// Your current mailing list status
|
||||
/// </summary>
|
||||
[JsonProperty("mailingListStatus")]
|
||||
public Models.Components.MailingListStatus? MailingListStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The maximum number of accounts allowed in the Plex Home
|
||||
/// </summary>
|
||||
[JsonProperty("maxHomeSize")]
|
||||
public int? MaxHomeSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// [Might be removed] The hashed Plex Home PIN
|
||||
/// </summary>
|
||||
[Obsolete("This field will be removed in a future release, please migrate away from it as soon as possible")]
|
||||
[JsonProperty("pin")]
|
||||
public string? Pin { get; set; }
|
||||
|
||||
[JsonProperty("profile")]
|
||||
public UserProfile? Profile { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// If the account has a Plex Home PIN enabled
|
||||
/// </summary>
|
||||
[JsonProperty("protected")]
|
||||
public bool? Protected { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// Unix epoch datetime in seconds
|
||||
/// </summary>
|
||||
[JsonProperty("rememberExpiresAt")]
|
||||
public long? RememberExpiresAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// If the account is a Plex Home managed user
|
||||
/// </summary>
|
||||
[JsonProperty("restricted")]
|
||||
public bool? Restricted { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// [Might be removed] List of account roles. Plexpass membership listed here
|
||||
/// </summary>
|
||||
[JsonProperty("roles")]
|
||||
public List<string>? Roles { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Unknown
|
||||
/// </summary>
|
||||
[JsonProperty("scrobbleTypes")]
|
||||
public string? ScrobbleTypes { get; set; }
|
||||
|
||||
[JsonProperty("services")]
|
||||
public List<Models.Components.Services>? Services { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// If the account's Plex Pass subscription is active
|
||||
/// </summary>
|
||||
[JsonProperty("subscription")]
|
||||
public Models.Components.Subscription? Subscription { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Description of the Plex Pass subscription
|
||||
/// </summary>
|
||||
[JsonProperty("subscriptionDescription")]
|
||||
public string? SubscriptionDescription { get; set; } = null;
|
||||
|
||||
[JsonProperty("subscriptions")]
|
||||
public List<UserPlexAccountSubscription>? Subscriptions { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// URL of the account thumbnail
|
||||
/// </summary>
|
||||
[JsonProperty("thumb")]
|
||||
public string? Thumb { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The title of the account (username or friendly name)
|
||||
/// </summary>
|
||||
[JsonProperty("title")]
|
||||
public string Title { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// If two-factor authentication is enabled
|
||||
/// </summary>
|
||||
[JsonProperty("twoFactorEnabled")]
|
||||
public bool? TwoFactorEnabled { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// The account username
|
||||
/// </summary>
|
||||
[JsonProperty("username")]
|
||||
public string Username { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// The account UUID
|
||||
/// </summary>
|
||||
[JsonProperty("uuid")]
|
||||
public string Uuid { get; set; } = default!;
|
||||
|
||||
[JsonProperty("attributionPartner")]
|
||||
public string? AttributionPartner { get; set; } = null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
[JsonConverter(typeof(OpenEnumConverter))]
|
||||
public class UserPlexAccountStatus : IEquatable<UserPlexAccountStatus>
|
||||
{
|
||||
public static readonly UserPlexAccountStatus Online = new UserPlexAccountStatus("online");
|
||||
public static readonly UserPlexAccountStatus Offline = new UserPlexAccountStatus("offline");
|
||||
|
||||
private static readonly Dictionary <string, UserPlexAccountStatus> _knownValues =
|
||||
new Dictionary <string, UserPlexAccountStatus> ()
|
||||
{
|
||||
["online"] = Online,
|
||||
["offline"] = Offline
|
||||
};
|
||||
|
||||
private static readonly ConcurrentDictionary<string, UserPlexAccountStatus> _values =
|
||||
new ConcurrentDictionary<string, UserPlexAccountStatus>(_knownValues);
|
||||
|
||||
private UserPlexAccountStatus(string value)
|
||||
{
|
||||
if (value == null) throw new ArgumentNullException(nameof(value));
|
||||
Value = value;
|
||||
}
|
||||
|
||||
public string Value { get; }
|
||||
|
||||
public static UserPlexAccountStatus Of(string value)
|
||||
{
|
||||
return _values.GetOrAdd(value, _ => new UserPlexAccountStatus(value));
|
||||
}
|
||||
|
||||
public static implicit operator UserPlexAccountStatus(string value) => Of(value);
|
||||
public static implicit operator string(UserPlexAccountStatus userplexaccountstatus) => userplexaccountstatus.Value;
|
||||
|
||||
public static UserPlexAccountStatus[] Values()
|
||||
{
|
||||
return _values.Values.ToArray();
|
||||
}
|
||||
|
||||
public override string ToString() => Value.ToString();
|
||||
|
||||
public bool IsKnown()
|
||||
{
|
||||
return _knownValues.ContainsKey(Value);
|
||||
}
|
||||
|
||||
public override bool Equals(object? obj) => Equals(obj as UserPlexAccountStatus);
|
||||
|
||||
public bool Equals(UserPlexAccountStatus? other)
|
||||
{
|
||||
if (ReferenceEquals(this, other)) return true;
|
||||
if (other is null) return false;
|
||||
return string.Equals(Value, other.Value);
|
||||
}
|
||||
|
||||
public override int GetHashCode() => Value.GetHashCode();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Models.Components;
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
public class UserPlexAccountSubscription
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// List of features allowed on your Plex Pass subscription
|
||||
/// </summary>
|
||||
[JsonProperty("features")]
|
||||
public List<string>? Features { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// If the account's Plex Pass subscription is active
|
||||
/// </summary>
|
||||
[JsonProperty("active")]
|
||||
public bool? Active { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Date the account subscribed to Plex Pass
|
||||
/// </summary>
|
||||
[JsonProperty("subscribedAt")]
|
||||
public string? SubscribedAt { get; set; } = null;
|
||||
|
||||
/// <summary>
|
||||
/// String representation of subscriptionActive
|
||||
/// </summary>
|
||||
[JsonProperty("status")]
|
||||
public UserPlexAccountSubscriptionsStatus? Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Payment service used for your Plex Pass subscription
|
||||
/// </summary>
|
||||
[JsonProperty("paymentService")]
|
||||
public string? PaymentService { get; set; } = null;
|
||||
|
||||
/// <summary>
|
||||
/// Name of Plex Pass subscription plan
|
||||
/// </summary>
|
||||
[JsonProperty("plan")]
|
||||
public string? Plan { get; set; } = null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
/// <summary>
|
||||
/// String representation of subscriptionActive
|
||||
/// </summary>
|
||||
[JsonConverter(typeof(OpenEnumConverter))]
|
||||
public class UserPlexAccountSubscriptionStatus : IEquatable<UserPlexAccountSubscriptionStatus>
|
||||
{
|
||||
public static readonly UserPlexAccountSubscriptionStatus Inactive = new UserPlexAccountSubscriptionStatus("Inactive");
|
||||
public static readonly UserPlexAccountSubscriptionStatus Active = new UserPlexAccountSubscriptionStatus("Active");
|
||||
|
||||
private static readonly Dictionary <string, UserPlexAccountSubscriptionStatus> _knownValues =
|
||||
new Dictionary <string, UserPlexAccountSubscriptionStatus> ()
|
||||
{
|
||||
["Inactive"] = Inactive,
|
||||
["Active"] = Active
|
||||
};
|
||||
|
||||
private static readonly ConcurrentDictionary<string, UserPlexAccountSubscriptionStatus> _values =
|
||||
new ConcurrentDictionary<string, UserPlexAccountSubscriptionStatus>(_knownValues);
|
||||
|
||||
private UserPlexAccountSubscriptionStatus(string value)
|
||||
{
|
||||
if (value == null) throw new ArgumentNullException(nameof(value));
|
||||
Value = value;
|
||||
}
|
||||
|
||||
public string Value { get; }
|
||||
|
||||
public static UserPlexAccountSubscriptionStatus Of(string value)
|
||||
{
|
||||
return _values.GetOrAdd(value, _ => new UserPlexAccountSubscriptionStatus(value));
|
||||
}
|
||||
|
||||
public static implicit operator UserPlexAccountSubscriptionStatus(string value) => Of(value);
|
||||
public static implicit operator string(UserPlexAccountSubscriptionStatus userplexaccountsubscriptionstatus) => userplexaccountsubscriptionstatus.Value;
|
||||
|
||||
public static UserPlexAccountSubscriptionStatus[] Values()
|
||||
{
|
||||
return _values.Values.ToArray();
|
||||
}
|
||||
|
||||
public override string ToString() => Value.ToString();
|
||||
|
||||
public bool IsKnown()
|
||||
{
|
||||
return _knownValues.ContainsKey(Value);
|
||||
}
|
||||
|
||||
public override bool Equals(object? obj) => Equals(obj as UserPlexAccountSubscriptionStatus);
|
||||
|
||||
public bool Equals(UserPlexAccountSubscriptionStatus? other)
|
||||
{
|
||||
if (ReferenceEquals(this, other)) return true;
|
||||
if (other is null) return false;
|
||||
return string.Equals(Value, other.Value);
|
||||
}
|
||||
|
||||
public override int GetHashCode() => Value.GetHashCode();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
/// <summary>
|
||||
/// String representation of subscriptionActive
|
||||
/// </summary>
|
||||
[JsonConverter(typeof(OpenEnumConverter))]
|
||||
public class UserPlexAccountSubscriptionsStatus : IEquatable<UserPlexAccountSubscriptionsStatus>
|
||||
{
|
||||
public static readonly UserPlexAccountSubscriptionsStatus Inactive = new UserPlexAccountSubscriptionsStatus("Inactive");
|
||||
public static readonly UserPlexAccountSubscriptionsStatus Active = new UserPlexAccountSubscriptionsStatus("Active");
|
||||
|
||||
private static readonly Dictionary <string, UserPlexAccountSubscriptionsStatus> _knownValues =
|
||||
new Dictionary <string, UserPlexAccountSubscriptionsStatus> ()
|
||||
{
|
||||
["Inactive"] = Inactive,
|
||||
["Active"] = Active
|
||||
};
|
||||
|
||||
private static readonly ConcurrentDictionary<string, UserPlexAccountSubscriptionsStatus> _values =
|
||||
new ConcurrentDictionary<string, UserPlexAccountSubscriptionsStatus>(_knownValues);
|
||||
|
||||
private UserPlexAccountSubscriptionsStatus(string value)
|
||||
{
|
||||
if (value == null) throw new ArgumentNullException(nameof(value));
|
||||
Value = value;
|
||||
}
|
||||
|
||||
public string Value { get; }
|
||||
|
||||
public static UserPlexAccountSubscriptionsStatus Of(string value)
|
||||
{
|
||||
return _values.GetOrAdd(value, _ => new UserPlexAccountSubscriptionsStatus(value));
|
||||
}
|
||||
|
||||
public static implicit operator UserPlexAccountSubscriptionsStatus(string value) => Of(value);
|
||||
public static implicit operator string(UserPlexAccountSubscriptionsStatus userplexaccountsubscriptionsstatus) => userplexaccountsubscriptionsstatus.Value;
|
||||
|
||||
public static UserPlexAccountSubscriptionsStatus[] Values()
|
||||
{
|
||||
return _values.Values.ToArray();
|
||||
}
|
||||
|
||||
public override string ToString() => Value.ToString();
|
||||
|
||||
public bool IsKnown()
|
||||
{
|
||||
return _knownValues.ContainsKey(Value);
|
||||
}
|
||||
|
||||
public override bool Equals(object? obj) => Equals(obj as UserPlexAccountSubscriptionsStatus);
|
||||
|
||||
public bool Equals(UserPlexAccountSubscriptionsStatus? other)
|
||||
{
|
||||
if (ReferenceEquals(this, other)) return true;
|
||||
if (other is null) return false;
|
||||
return string.Equals(Value, other.Value);
|
||||
}
|
||||
|
||||
public override int GetHashCode() => Value.GetHashCode();
|
||||
}
|
||||
|
||||
}
|
||||
74
LukeHagar/PlexAPI/SDK/Models/Components/UserProfile.cs
Normal file
74
LukeHagar/PlexAPI/SDK/Models/Components/UserProfile.cs
Normal file
@@ -0,0 +1,74 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Models.Components;
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using System.Collections.Generic;
|
||||
|
||||
public class UserProfile
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// If the account has automatically select audio and subtitle tracks enabled
|
||||
/// </summary>
|
||||
[JsonProperty("autoSelectAudio")]
|
||||
public bool? AutoSelectAudio { get; set; } = true;
|
||||
|
||||
/// <summary>
|
||||
/// The preferred audio language for the account
|
||||
/// </summary>
|
||||
[JsonProperty("defaultAudioLanguage", NullValueHandling = NullValueHandling.Include)]
|
||||
public string? DefaultAudioLanguage { get; set; }
|
||||
|
||||
[JsonProperty("defaultAudioAccessibility")]
|
||||
public DefaultAudioAccessibility? DefaultAudioAccessibility { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.DefaultAudioAccessibility.PreferNonAccessibility;
|
||||
|
||||
/// <summary>
|
||||
/// The preferred audio languages for the account
|
||||
/// </summary>
|
||||
[JsonProperty("defaultAudioLanguages")]
|
||||
public List<string>? DefaultAudioLanguages { get; set; } = null;
|
||||
|
||||
/// <summary>
|
||||
/// The preferred subtitle language for the account
|
||||
/// </summary>
|
||||
[JsonProperty("defaultSubtitleLanguage", NullValueHandling = NullValueHandling.Include)]
|
||||
public string? DefaultSubtitleLanguage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The preferred subtitle languages for the account
|
||||
/// </summary>
|
||||
[JsonProperty("defaultSubtitleLanguages")]
|
||||
public List<string>? DefaultSubtitleLanguages { get; set; } = null;
|
||||
|
||||
[JsonProperty("autoSelectSubtitle")]
|
||||
public AutoSelectSubtitle? AutoSelectSubtitle { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.AutoSelectSubtitle.ManuallySelected;
|
||||
|
||||
[JsonProperty("defaultSubtitleAccessibility")]
|
||||
public DefaultSubtitleAccessibility? DefaultSubtitleAccessibility { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.DefaultSubtitleAccessibility.PreferNonSdh;
|
||||
|
||||
[JsonProperty("defaultSubtitleForced")]
|
||||
public DefaultSubtitleForced? DefaultSubtitleForced { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.DefaultSubtitleForced.PreferNonForced;
|
||||
|
||||
[JsonProperty("watchedIndicator")]
|
||||
public WatchedIndicator? WatchedIndicator { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.WatchedIndicator.None;
|
||||
|
||||
[JsonProperty("mediaReviewsVisibility")]
|
||||
public MediaReviewsVisibility? MediaReviewsVisibility { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.MediaReviewsVisibility.NoOne;
|
||||
|
||||
/// <summary>
|
||||
/// The languages for media reviews visibility
|
||||
/// </summary>
|
||||
[JsonProperty("mediaReviewsLanguages")]
|
||||
public List<string>? MediaReviewsLanguages { get; set; } = null;
|
||||
}
|
||||
}
|
||||
25
LukeHagar/PlexAPI/SDK/Models/Components/WatchedIndicator.cs
Normal file
25
LukeHagar/PlexAPI/SDK/Models/Components/WatchedIndicator.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Components
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
|
||||
/// <summary>
|
||||
/// Whether or not media watched indicators are enabled (little orange dot on media)
|
||||
/// </summary>
|
||||
public enum WatchedIndicator
|
||||
{
|
||||
None = 0,
|
||||
MoviesAndTvShows = 1,
|
||||
Movies = 2,
|
||||
TvShows = 3,
|
||||
}
|
||||
|
||||
}
|
||||
27
LukeHagar/PlexAPI/SDK/Models/Errors/Errors.cs
Normal file
27
LukeHagar/PlexAPI/SDK/Models/Errors/Errors.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Errors
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
public class Errors
|
||||
{
|
||||
|
||||
[JsonProperty("code")]
|
||||
public int? Code { get; set; }
|
||||
|
||||
[JsonProperty("message")]
|
||||
public string? Message { get; set; }
|
||||
|
||||
[JsonProperty("status")]
|
||||
public int? Status { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Errors
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
public class GetServerResourcesErrors
|
||||
{
|
||||
|
||||
[JsonProperty("code")]
|
||||
public int? Code { get; set; }
|
||||
|
||||
[JsonProperty("message")]
|
||||
public string? Message { get; set; }
|
||||
|
||||
[JsonProperty("status")]
|
||||
public int? Status { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Errors
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Models.Errors;
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Http;
|
||||
|
||||
public class GetServerResourcesUnauthorizedPayload
|
||||
{
|
||||
[JsonProperty("errors")]
|
||||
public List<GetServerResourcesErrors>? Errors { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Raw HTTP response; suitable for custom response parsing
|
||||
/// </summary>
|
||||
[JsonProperty("-")]
|
||||
public HttpResponseMessage? RawResponse { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
/// </summary>
|
||||
public class GetServerResourcesUnauthorized : PlexAPIError
|
||||
{
|
||||
/// <summary>
|
||||
/// The original data that was passed to this exception.
|
||||
/// </summary>
|
||||
public GetServerResourcesUnauthorizedPayload Payload { get; }
|
||||
|
||||
[Obsolete("This field will be removed in a future release, please migrate away from it as soon as possible. Use GetServerResourcesUnauthorized.Payload.Errors instead.")]
|
||||
public List<GetServerResourcesErrors>? Errors { get; set; }
|
||||
|
||||
public GetServerResourcesUnauthorized(
|
||||
GetServerResourcesUnauthorizedPayload payload,
|
||||
HttpResponseMessage rawResponse,
|
||||
string body
|
||||
): base("API error occurred", rawResponse, body)
|
||||
{
|
||||
Payload = payload;
|
||||
|
||||
#pragma warning disable CS0618
|
||||
Errors = payload.Errors;
|
||||
#pragma warning restore CS0618
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Errors
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Models.Errors;
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Http;
|
||||
|
||||
public class GetTokenDetailsBadRequestPayload
|
||||
{
|
||||
[JsonProperty("errors")]
|
||||
public List<Errors>? Errors { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Raw HTTP response; suitable for custom response parsing
|
||||
/// </summary>
|
||||
[JsonProperty("-")]
|
||||
public HttpResponseMessage? RawResponse { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Bad Request - A parameter was not specified, or was specified incorrectly.
|
||||
/// </summary>
|
||||
public class GetTokenDetailsBadRequest : PlexAPIError
|
||||
{
|
||||
/// <summary>
|
||||
/// The original data that was passed to this exception.
|
||||
/// </summary>
|
||||
public GetTokenDetailsBadRequestPayload Payload { get; }
|
||||
|
||||
[Obsolete("This field will be removed in a future release, please migrate away from it as soon as possible. Use GetTokenDetailsBadRequest.Payload.Errors instead.")]
|
||||
public List<Errors>? Errors { get; set; }
|
||||
|
||||
public GetTokenDetailsBadRequest(
|
||||
GetTokenDetailsBadRequestPayload payload,
|
||||
HttpResponseMessage rawResponse,
|
||||
string body
|
||||
): base("API error occurred", rawResponse, body)
|
||||
{
|
||||
Payload = payload;
|
||||
|
||||
#pragma warning disable CS0618
|
||||
Errors = payload.Errors;
|
||||
#pragma warning restore CS0618
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
27
LukeHagar/PlexAPI/SDK/Models/Errors/GetTokenDetailsErrors.cs
Normal file
27
LukeHagar/PlexAPI/SDK/Models/Errors/GetTokenDetailsErrors.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Errors
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
public class GetTokenDetailsErrors
|
||||
{
|
||||
|
||||
[JsonProperty("code")]
|
||||
public int? Code { get; set; }
|
||||
|
||||
[JsonProperty("message")]
|
||||
public string? Message { get; set; }
|
||||
|
||||
[JsonProperty("status")]
|
||||
public int? Status { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Errors
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Models.Errors;
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Http;
|
||||
|
||||
public class GetTokenDetailsUnauthorizedPayload
|
||||
{
|
||||
[JsonProperty("errors")]
|
||||
public List<GetTokenDetailsErrors>? Errors { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Raw HTTP response; suitable for custom response parsing
|
||||
/// </summary>
|
||||
[JsonProperty("-")]
|
||||
public HttpResponseMessage? RawResponse { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
/// </summary>
|
||||
public class GetTokenDetailsUnauthorized : PlexAPIError
|
||||
{
|
||||
/// <summary>
|
||||
/// The original data that was passed to this exception.
|
||||
/// </summary>
|
||||
public GetTokenDetailsUnauthorizedPayload Payload { get; }
|
||||
|
||||
[Obsolete("This field will be removed in a future release, please migrate away from it as soon as possible. Use GetTokenDetailsUnauthorized.Payload.Errors instead.")]
|
||||
public List<GetTokenDetailsErrors>? Errors { get; set; }
|
||||
|
||||
public GetTokenDetailsUnauthorized(
|
||||
GetTokenDetailsUnauthorizedPayload payload,
|
||||
HttpResponseMessage rawResponse,
|
||||
string body
|
||||
): base("API error occurred", rawResponse, body)
|
||||
{
|
||||
Payload = payload;
|
||||
|
||||
#pragma warning disable CS0618
|
||||
Errors = payload.Errors;
|
||||
#pragma warning restore CS0618
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
58
LukeHagar/PlexAPI/SDK/Models/Errors/GetUsersBadRequest.cs
Normal file
58
LukeHagar/PlexAPI/SDK/Models/Errors/GetUsersBadRequest.cs
Normal file
@@ -0,0 +1,58 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Errors
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Models.Errors;
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Http;
|
||||
|
||||
public class GetUsersBadRequestPayload
|
||||
{
|
||||
[JsonProperty("errors")]
|
||||
public List<GetUsersErrors>? Errors { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Raw HTTP response; suitable for custom response parsing
|
||||
/// </summary>
|
||||
[JsonProperty("-")]
|
||||
public HttpResponseMessage? RawResponse { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Bad Request - A parameter was not specified, or was specified incorrectly.
|
||||
/// </summary>
|
||||
public class GetUsersBadRequest : PlexAPIError
|
||||
{
|
||||
/// <summary>
|
||||
/// The original data that was passed to this exception.
|
||||
/// </summary>
|
||||
public GetUsersBadRequestPayload Payload { get; }
|
||||
|
||||
[Obsolete("This field will be removed in a future release, please migrate away from it as soon as possible. Use GetUsersBadRequest.Payload.Errors instead.")]
|
||||
public List<GetUsersErrors>? Errors { get; set; }
|
||||
|
||||
public GetUsersBadRequest(
|
||||
GetUsersBadRequestPayload payload,
|
||||
HttpResponseMessage rawResponse,
|
||||
string body
|
||||
): base("API error occurred", rawResponse, body)
|
||||
{
|
||||
Payload = payload;
|
||||
|
||||
#pragma warning disable CS0618
|
||||
Errors = payload.Errors;
|
||||
#pragma warning restore CS0618
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
27
LukeHagar/PlexAPI/SDK/Models/Errors/GetUsersErrors.cs
Normal file
27
LukeHagar/PlexAPI/SDK/Models/Errors/GetUsersErrors.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Errors
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
public class GetUsersErrors
|
||||
{
|
||||
|
||||
[JsonProperty("code")]
|
||||
public int? Code { get; set; }
|
||||
|
||||
[JsonProperty("message")]
|
||||
public string? Message { get; set; }
|
||||
|
||||
[JsonProperty("status")]
|
||||
public int? Status { get; set; }
|
||||
}
|
||||
}
|
||||
58
LukeHagar/PlexAPI/SDK/Models/Errors/GetUsersUnauthorized.cs
Normal file
58
LukeHagar/PlexAPI/SDK/Models/Errors/GetUsersUnauthorized.cs
Normal file
@@ -0,0 +1,58 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Errors
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Models.Errors;
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Http;
|
||||
|
||||
public class GetUsersUnauthorizedPayload
|
||||
{
|
||||
[JsonProperty("errors")]
|
||||
public List<GetUsersUsersErrors>? Errors { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Raw HTTP response; suitable for custom response parsing
|
||||
/// </summary>
|
||||
[JsonProperty("-")]
|
||||
public HttpResponseMessage? RawResponse { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
/// </summary>
|
||||
public class GetUsersUnauthorized : PlexAPIError
|
||||
{
|
||||
/// <summary>
|
||||
/// The original data that was passed to this exception.
|
||||
/// </summary>
|
||||
public GetUsersUnauthorizedPayload Payload { get; }
|
||||
|
||||
[Obsolete("This field will be removed in a future release, please migrate away from it as soon as possible. Use GetUsersUnauthorized.Payload.Errors instead.")]
|
||||
public List<GetUsersUsersErrors>? Errors { get; set; }
|
||||
|
||||
public GetUsersUnauthorized(
|
||||
GetUsersUnauthorizedPayload payload,
|
||||
HttpResponseMessage rawResponse,
|
||||
string body
|
||||
): base("API error occurred", rawResponse, body)
|
||||
{
|
||||
Payload = payload;
|
||||
|
||||
#pragma warning disable CS0618
|
||||
Errors = payload.Errors;
|
||||
#pragma warning restore CS0618
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
27
LukeHagar/PlexAPI/SDK/Models/Errors/GetUsersUsersErrors.cs
Normal file
27
LukeHagar/PlexAPI/SDK/Models/Errors/GetUsersUsersErrors.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Errors
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
public class GetUsersUsersErrors
|
||||
{
|
||||
|
||||
[JsonProperty("code")]
|
||||
public int? Code { get; set; }
|
||||
|
||||
[JsonProperty("message")]
|
||||
public string? Message { get; set; }
|
||||
|
||||
[JsonProperty("status")]
|
||||
public int? Status { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Errors
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
public class PostUsersSignInDataAuthenticationErrors
|
||||
{
|
||||
|
||||
[JsonProperty("code")]
|
||||
public int? Code { get; set; }
|
||||
|
||||
[JsonProperty("message")]
|
||||
public string? Message { get; set; }
|
||||
|
||||
[JsonProperty("status")]
|
||||
public int? Status { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Errors
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Models.Errors;
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Http;
|
||||
|
||||
public class PostUsersSignInDataBadRequestPayload
|
||||
{
|
||||
[JsonProperty("errors")]
|
||||
public List<PostUsersSignInDataErrors>? Errors { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Raw HTTP response; suitable for custom response parsing
|
||||
/// </summary>
|
||||
[JsonProperty("-")]
|
||||
public HttpResponseMessage? RawResponse { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Bad Request - A parameter was not specified, or was specified incorrectly.
|
||||
/// </summary>
|
||||
public class PostUsersSignInDataBadRequest : PlexAPIError
|
||||
{
|
||||
/// <summary>
|
||||
/// The original data that was passed to this exception.
|
||||
/// </summary>
|
||||
public PostUsersSignInDataBadRequestPayload Payload { get; }
|
||||
|
||||
[Obsolete("This field will be removed in a future release, please migrate away from it as soon as possible. Use PostUsersSignInDataBadRequest.Payload.Errors instead.")]
|
||||
public List<PostUsersSignInDataErrors>? Errors { get; set; }
|
||||
|
||||
public PostUsersSignInDataBadRequest(
|
||||
PostUsersSignInDataBadRequestPayload payload,
|
||||
HttpResponseMessage rawResponse,
|
||||
string body
|
||||
): base("API error occurred", rawResponse, body)
|
||||
{
|
||||
Payload = payload;
|
||||
|
||||
#pragma warning disable CS0618
|
||||
Errors = payload.Errors;
|
||||
#pragma warning restore CS0618
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Errors
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
public class PostUsersSignInDataErrors
|
||||
{
|
||||
|
||||
[JsonProperty("code")]
|
||||
public int? Code { get; set; }
|
||||
|
||||
[JsonProperty("message")]
|
||||
public string? Message { get; set; }
|
||||
|
||||
[JsonProperty("status")]
|
||||
public int? Status { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Errors
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Models.Errors;
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Http;
|
||||
|
||||
public class PostUsersSignInDataUnauthorizedPayload
|
||||
{
|
||||
[JsonProperty("errors")]
|
||||
public List<PostUsersSignInDataAuthenticationErrors>? Errors { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Raw HTTP response; suitable for custom response parsing
|
||||
/// </summary>
|
||||
[JsonProperty("-")]
|
||||
public HttpResponseMessage? RawResponse { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||
/// </summary>
|
||||
public class PostUsersSignInDataUnauthorized : PlexAPIError
|
||||
{
|
||||
/// <summary>
|
||||
/// The original data that was passed to this exception.
|
||||
/// </summary>
|
||||
public PostUsersSignInDataUnauthorizedPayload Payload { get; }
|
||||
|
||||
[Obsolete("This field will be removed in a future release, please migrate away from it as soon as possible. Use PostUsersSignInDataUnauthorized.Payload.Errors instead.")]
|
||||
public List<PostUsersSignInDataAuthenticationErrors>? Errors { get; set; }
|
||||
|
||||
public PostUsersSignInDataUnauthorized(
|
||||
PostUsersSignInDataUnauthorizedPayload payload,
|
||||
HttpResponseMessage rawResponse,
|
||||
string body
|
||||
): base("API error occurred", rawResponse, body)
|
||||
{
|
||||
Payload = payload;
|
||||
|
||||
#pragma warning disable CS0618
|
||||
Errors = payload.Errors;
|
||||
#pragma warning restore CS0618
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -120,43 +120,43 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
/// Indicates the client supports ABR.
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=autoAdjustQuality")]
|
||||
public BoolInt? AutoAdjustQuality { get; set; }
|
||||
public BoolInt? AutoAdjustQuality { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if the server should adjust subtitles based on Voice Activity Data.
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=autoAdjustSubtitle")]
|
||||
public BoolInt? AutoAdjustSubtitle { get; set; }
|
||||
public BoolInt? AutoAdjustSubtitle { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
|
||||
/// <summary>
|
||||
/// Indicates the client supports direct playing the indicated content.
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=directPlay")]
|
||||
public BoolInt? DirectPlay { get; set; }
|
||||
public BoolInt? DirectPlay { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
|
||||
/// <summary>
|
||||
/// Indicates the client supports direct streaming the video of the indicated content.
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=directStream")]
|
||||
public BoolInt? DirectStream { get; set; }
|
||||
public BoolInt? DirectStream { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
|
||||
/// <summary>
|
||||
/// Indicates the client supports direct streaming the audio of the indicated content.
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=directStreamAudio")]
|
||||
public BoolInt? DirectStreamAudio { get; set; }
|
||||
public BoolInt? DirectStreamAudio { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if resolution should be adjusted for orientation.
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=disableResolutionRotation")]
|
||||
public BoolInt? DisableResolutionRotation { get; set; }
|
||||
public BoolInt? DisableResolutionRotation { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
|
||||
/// <summary>
|
||||
/// Ignore client profiles when determining if direct play is possible. Only has an effect when directPlay=1 and both mediaIndex and partIndex are specified and neither are -1
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=hasMDE")]
|
||||
public BoolInt? HasMDE { get; set; }
|
||||
public BoolInt? HasMDE { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
|
||||
/// <summary>
|
||||
/// Network type of the client, can be used to help determine target bitrate.
|
||||
|
||||
@@ -135,12 +135,12 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
/// If set, paths are relative to `Media Upload` path
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=relative")]
|
||||
public BoolInt? Relative { get; set; }
|
||||
public BoolInt? Relative { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
|
||||
/// <summary>
|
||||
/// If set, import media from iTunes.
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=importFromiTunes")]
|
||||
public BoolInt? ImportFromiTunes { get; set; }
|
||||
public BoolInt? ImportFromiTunes { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
}
|
||||
}
|
||||
@@ -103,9 +103,9 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
public string? Format { get; set; }
|
||||
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=forced")]
|
||||
public BoolInt? Forced { get; set; }
|
||||
public BoolInt? Forced { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=hearingImpaired")]
|
||||
public BoolInt? HearingImpaired { get; set; }
|
||||
public BoolInt? HearingImpaired { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
}
|
||||
}
|
||||
@@ -103,6 +103,6 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
/// Play this item next (defaults to 0 - queueing at the end of manually queued items).
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=next")]
|
||||
public BoolInt? Next { get; set; }
|
||||
public BoolInt? Next { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
}
|
||||
}
|
||||
23
LukeHagar/PlexAPI/SDK/Models/Requests/AllLibraries.cs
Normal file
23
LukeHagar/PlexAPI/SDK/Models/Requests/AllLibraries.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if the user has access to all libraries.
|
||||
/// </summary>
|
||||
public enum AllLibraries
|
||||
{
|
||||
Disable = 0,
|
||||
Enable = 1,
|
||||
}
|
||||
|
||||
}
|
||||
23
LukeHagar/PlexAPI/SDK/Models/Requests/AllowCameraUpload.cs
Normal file
23
LukeHagar/PlexAPI/SDK/Models/Requests/AllowCameraUpload.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if the user is allowed to upload from a camera.
|
||||
/// </summary>
|
||||
public enum AllowCameraUpload
|
||||
{
|
||||
Disable = 0,
|
||||
Enable = 1,
|
||||
}
|
||||
|
||||
}
|
||||
23
LukeHagar/PlexAPI/SDK/Models/Requests/AllowChannels.cs
Normal file
23
LukeHagar/PlexAPI/SDK/Models/Requests/AllowChannels.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if the user has access to channels.
|
||||
/// </summary>
|
||||
public enum AllowChannels
|
||||
{
|
||||
Disable = 0,
|
||||
Enable = 1,
|
||||
}
|
||||
|
||||
}
|
||||
23
LukeHagar/PlexAPI/SDK/Models/Requests/AllowSubtitleAdmin.cs
Normal file
23
LukeHagar/PlexAPI/SDK/Models/Requests/AllowSubtitleAdmin.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if the user can manage subtitles.
|
||||
/// </summary>
|
||||
public enum AllowSubtitleAdmin
|
||||
{
|
||||
Disable = 0,
|
||||
Enable = 1,
|
||||
}
|
||||
|
||||
}
|
||||
23
LukeHagar/PlexAPI/SDK/Models/Requests/AllowSync.cs
Normal file
23
LukeHagar/PlexAPI/SDK/Models/Requests/AllowSync.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if the user is allowed to sync media.
|
||||
/// </summary>
|
||||
public enum AllowSync
|
||||
{
|
||||
Disable = 0,
|
||||
Enable = 1,
|
||||
}
|
||||
|
||||
}
|
||||
23
LukeHagar/PlexAPI/SDK/Models/Requests/AllowTuners.cs
Normal file
23
LukeHagar/PlexAPI/SDK/Models/Requests/AllowTuners.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if the user is allowed to use tuners.
|
||||
/// </summary>
|
||||
public enum AllowTuners
|
||||
{
|
||||
Disable = 0,
|
||||
Enable = 1,
|
||||
}
|
||||
|
||||
}
|
||||
@@ -85,12 +85,12 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
/// Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install immediately.
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=tonight")]
|
||||
public BoolInt? Tonight { get; set; }
|
||||
public BoolInt? Tonight { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
|
||||
/// <summary>
|
||||
/// Indicate that the latest version should be marked as skipped. The <Release> entry for this version will have the `state` set to `skipped`.
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=skip")]
|
||||
public BoolInt? Skip { get; set; }
|
||||
public BoolInt? Skip { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
}
|
||||
}
|
||||
@@ -100,7 +100,26 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
public string? FieldQuery { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This is a complex query built of several parameters. See <a href="#section/API-Info/Media-Queries">API Info section</a> for information on building media queries
|
||||
/// A querystring-based filtering language used to select subsets of media. Can be provided as an object with typed properties for type safety, or as a string for complex queries with operators and boolean logic.<br/>
|
||||
///
|
||||
/// <remarks>
|
||||
/// <br/>
|
||||
/// The query supports:<br/>
|
||||
/// - Fields: integer, boolean, tag, string, date, language<br/>
|
||||
/// - Operators: =, !=, ==, !==, <=, >=, >>=, <<= (varies by field type)<br/>
|
||||
/// - Boolean operators: & (AND), , (OR), push/pop (parentheses), or=1 (explicit OR)<br/>
|
||||
/// - Sorting: sort parameter with :desc, :nullsLast modifiers<br/>
|
||||
/// - Grouping: group parameter<br/>
|
||||
/// - Limits: limit parameter<br/>
|
||||
/// <br/>
|
||||
/// Examples:<br/>
|
||||
/// - Object format: `{type: 4, sourceType: 2, title: "24"}` → `type=4&sourceType=2&title=24`<br/>
|
||||
/// - String format: `type=4&sourceType=2&title==24` - type = 4 AND sourceType = 2 AND title = "24"<br/>
|
||||
/// - Complex: `push=1&index=1&or=1&rating=2&pop=1&duration=10` - (index = 1 OR rating = 2) AND duration = 10<br/>
|
||||
/// <br/>
|
||||
/// See <a href="#section/API-Info/Media-Queries">API Info section</a> for detailed information on building media queries.<br/>
|
||||
///
|
||||
/// </remarks>
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=mediaQuery")]
|
||||
public MediaQuery? MediaQuery { get; set; }
|
||||
|
||||
25
LukeHagar/PlexAPI/SDK/Models/Requests/Billing.cs
Normal file
25
LukeHagar/PlexAPI/SDK/Models/Requests/Billing.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Models.Requests;
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
public class Billing
|
||||
{
|
||||
|
||||
[JsonProperty("internalPaymentMethod")]
|
||||
public InternalPaymentMethod InternalPaymentMethod { get; set; } = default!;
|
||||
|
||||
[JsonProperty("paymentMethodId", NullValueHandling = NullValueHandling.Include)]
|
||||
public long? PaymentMethodId { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -11,44 +11,90 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
|
||||
public class ButlerTask
|
||||
/// <summary>
|
||||
/// The task name
|
||||
/// </summary>
|
||||
public enum ButlerTask
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// A user-friendly description of the task
|
||||
/// </summary>
|
||||
[JsonProperty("description")]
|
||||
public string? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whether this task is enabled or not
|
||||
/// </summary>
|
||||
[JsonProperty("enabled")]
|
||||
public bool? Enabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The interval (in days) of when this task is run. A value of 1 is run every day, 7 is every week, etc.
|
||||
/// </summary>
|
||||
[JsonProperty("interval")]
|
||||
public long? Interval { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The name of the task
|
||||
/// </summary>
|
||||
[JsonProperty("name")]
|
||||
public string? Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates whether the timing of the task is randomized within the butler interval
|
||||
/// </summary>
|
||||
[JsonProperty("scheduleRandomized")]
|
||||
public bool? ScheduleRandomized { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// A user-friendly title of the task
|
||||
/// </summary>
|
||||
[JsonProperty("title")]
|
||||
public string? Title { get; set; }
|
||||
[JsonProperty("AutomaticUpdates")]
|
||||
AutomaticUpdates,
|
||||
[JsonProperty("BackupDatabase")]
|
||||
BackupDatabase,
|
||||
[JsonProperty("ButlerTaskGenerateAdMarkers")]
|
||||
ButlerTaskGenerateAdMarkers,
|
||||
[JsonProperty("ButlerTaskGenerateCreditsMarkers")]
|
||||
ButlerTaskGenerateCreditsMarkers,
|
||||
[JsonProperty("ButlerTaskGenerateIntroMarkers")]
|
||||
ButlerTaskGenerateIntroMarkers,
|
||||
[JsonProperty("ButlerTaskGenerateVoiceActivity")]
|
||||
ButlerTaskGenerateVoiceActivity,
|
||||
[JsonProperty("CleanOldBundles")]
|
||||
CleanOldBundles,
|
||||
[JsonProperty("CleanOldCacheFiles")]
|
||||
CleanOldCacheFiles,
|
||||
[JsonProperty("DeepMediaAnalysis")]
|
||||
DeepMediaAnalysis,
|
||||
[JsonProperty("GarbageCollectBlobs")]
|
||||
GarbageCollectBlobs,
|
||||
[JsonProperty("GarbageCollectLibraryMedia")]
|
||||
GarbageCollectLibraryMedia,
|
||||
[JsonProperty("GenerateBlurHashes")]
|
||||
GenerateBlurHashes,
|
||||
[JsonProperty("GenerateChapterThumbs")]
|
||||
GenerateChapterThumbs,
|
||||
[JsonProperty("GenerateMediaIndexFiles")]
|
||||
GenerateMediaIndexFiles,
|
||||
[JsonProperty("LoudnessAnalysis")]
|
||||
LoudnessAnalysis,
|
||||
[JsonProperty("MusicAnalysis")]
|
||||
MusicAnalysis,
|
||||
[JsonProperty("OptimizeDatabase")]
|
||||
OptimizeDatabase,
|
||||
[JsonProperty("RefreshEpgGuides")]
|
||||
RefreshEpgGuides,
|
||||
[JsonProperty("RefreshLibraries")]
|
||||
RefreshLibraries,
|
||||
[JsonProperty("RefreshLocalMedia")]
|
||||
RefreshLocalMedia,
|
||||
[JsonProperty("RefreshPeriodicMetadata")]
|
||||
RefreshPeriodicMetadata,
|
||||
[JsonProperty("UpgradeMediaAnalysis")]
|
||||
UpgradeMediaAnalysis,
|
||||
}
|
||||
|
||||
public static class ButlerTaskExtension
|
||||
{
|
||||
public static string Value(this ButlerTask value)
|
||||
{
|
||||
return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString();
|
||||
}
|
||||
|
||||
public static ButlerTask ToEnum(this string value)
|
||||
{
|
||||
foreach(var field in typeof(ButlerTask).GetFields())
|
||||
{
|
||||
var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false);
|
||||
if (attributes.Length == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var attribute = attributes[0] as JsonPropertyAttribute;
|
||||
if (attribute != null && attribute.PropertyName == value)
|
||||
{
|
||||
var enumVal = field.GetValue(null);
|
||||
|
||||
if (enumVal is ButlerTask)
|
||||
{
|
||||
return (ButlerTask)enumVal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
throw new Exception($"Unknown value {value} for enum ButlerTask");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -18,6 +18,6 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
{
|
||||
|
||||
[JsonProperty("ButlerTask")]
|
||||
public List<ButlerTask>? ButlerTask { get; set; }
|
||||
public List<GetTasksButlerTask>? ButlerTask { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -85,6 +85,6 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
/// Indicate that you want to start download any updates found.
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=download")]
|
||||
public BoolInt? Download { get; set; }
|
||||
public BoolInt? Download { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
}
|
||||
}
|
||||
@@ -106,9 +106,25 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
public string? Uri { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The metadata type to filter by
|
||||
/// The type of media to retrieve or filter by.<br/>
|
||||
///
|
||||
/// <remarks>
|
||||
/// <br/>
|
||||
/// 1 = movie<br/>
|
||||
/// 2 = show<br/>
|
||||
/// 3 = season<br/>
|
||||
/// 4 = episode<br/>
|
||||
/// 5 = artist<br/>
|
||||
/// 6 = album<br/>
|
||||
/// 7 = track<br/>
|
||||
/// 8 = photo_album<br/>
|
||||
/// 9 = photo<br/>
|
||||
/// <br/>
|
||||
/// E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries<br/>
|
||||
///
|
||||
/// </remarks>
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=type")]
|
||||
public long? Type { get; set; }
|
||||
public MediaType? Type { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -97,18 +97,18 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
/// Whether this hub should be displayed in recommended
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=promotedToRecommended")]
|
||||
public BoolInt? PromotedToRecommended { get; set; }
|
||||
public BoolInt? PromotedToRecommended { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
|
||||
/// <summary>
|
||||
/// Whether this hub should be displayed in admin's home
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=promotedToOwnHome")]
|
||||
public BoolInt? PromotedToOwnHome { get; set; }
|
||||
public BoolInt? PromotedToOwnHome { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
|
||||
/// <summary>
|
||||
/// Whether this hub should be displayed in shared user's home
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=promotedToSharedHome")]
|
||||
public BoolInt? PromotedToSharedHome { get; set; }
|
||||
public BoolInt? PromotedToSharedHome { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
{
|
||||
using LukeHagar.PlexAPI.SDK.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
|
||||
/// <summary>
|
||||
/// The state of this queue<br/>
|
||||
///
|
||||
/// <remarks>
|
||||
/// - deciding: At least one item is still being decided<br/>
|
||||
/// - waiting: At least one item is waiting for transcode and none are currently transcoding<br/>
|
||||
/// - processing: At least one item is being transcoded<br/>
|
||||
/// - done: All items are available (or potentially expired)<br/>
|
||||
/// - error: At least one item has encountered an error<br/>
|
||||
///
|
||||
/// </remarks>
|
||||
/// </summary>
|
||||
public enum CreateDownloadQueueStatus
|
||||
{
|
||||
[JsonProperty("deciding")]
|
||||
Deciding,
|
||||
[JsonProperty("waiting")]
|
||||
Waiting,
|
||||
[JsonProperty("processing")]
|
||||
Processing,
|
||||
[JsonProperty("done")]
|
||||
Done,
|
||||
[JsonProperty("error")]
|
||||
Error,
|
||||
}
|
||||
|
||||
public static class CreateDownloadQueueStatusExtension
|
||||
{
|
||||
public static string Value(this CreateDownloadQueueStatus value)
|
||||
{
|
||||
return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString();
|
||||
}
|
||||
|
||||
public static CreateDownloadQueueStatus ToEnum(this string value)
|
||||
{
|
||||
foreach(var field in typeof(CreateDownloadQueueStatus).GetFields())
|
||||
{
|
||||
var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false);
|
||||
if (attributes.Length == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var attribute = attributes[0] as JsonPropertyAttribute;
|
||||
if (attribute != null && attribute.PropertyName == value)
|
||||
{
|
||||
var enumVal = field.GetValue(null);
|
||||
|
||||
if (enumVal is CreateDownloadQueueStatus)
|
||||
{
|
||||
return (CreateDownloadQueueStatus)enumVal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
throw new Exception($"Unknown value {value} for enum CreateDownloadQueueStatus");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -110,19 +110,19 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
/// Whether to shuffle the playlist, defaults to 0.
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=shuffle")]
|
||||
public BoolInt? Shuffle { get; set; }
|
||||
public BoolInt? Shuffle { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
|
||||
/// <summary>
|
||||
/// If the PQ is bigger than the window, fill any empty space with wraparound items, defaults to 0.
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=repeat")]
|
||||
public BoolInt? Repeat { get; set; }
|
||||
public BoolInt? Repeat { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
|
||||
/// <summary>
|
||||
/// Whether to create a continuous play queue (e.g. from an episode), defaults to 0.
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=continuous")]
|
||||
public BoolInt? Continuous { get; set; }
|
||||
public BoolInt? Continuous { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
|
||||
/// <summary>
|
||||
/// Number of trailers to prepend a movie with not including the pre-roll. If omitted the pre-roll will not be returned in the play queue. When resuming a movie `extrasPrefixCount` should be omitted as a parameter instead of passing 0.
|
||||
@@ -134,12 +134,12 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
/// Only applies to queues of type photo, whether to retrieve all descendent photos from an album or section, defaults to 1.
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=recursive")]
|
||||
public BoolInt? Recursive { get; set; }
|
||||
public BoolInt? Recursive { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
|
||||
/// <summary>
|
||||
/// Only applies to queues of type show or seasons, whether to return a queue that is started on the On Deck episode if one exists. Otherwise begins the play queue on the beginning of the show or season.
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=onDeck")]
|
||||
public BoolInt? OnDeck { get; set; }
|
||||
public BoolInt? OnDeck { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
}
|
||||
}
|
||||
@@ -91,6 +91,6 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
/// If set, response will return an activity with the actual deletion process. Otherwise request will return when deletion is complete
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=async")]
|
||||
public BoolInt? Async { get; set; }
|
||||
public BoolInt? Async { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
}
|
||||
}
|
||||
@@ -91,6 +91,6 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
/// Whether proxy items, such as media optimized versions, should also be deleted. Defaults to false.
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=proxy")]
|
||||
public BoolInt? Proxy { get; set; }
|
||||
public BoolInt? Proxy { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
}
|
||||
}
|
||||
@@ -88,6 +88,6 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
/// Whether proxy items, such as media optimized versions, should also be deleted. Defaults to false.
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=proxy")]
|
||||
public BoolInt? Proxy { get; set; }
|
||||
public BoolInt? Proxy { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
}
|
||||
}
|
||||
@@ -85,9 +85,9 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
public string Ids { get; set; } = default!;
|
||||
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=force")]
|
||||
public BoolInt? Force { get; set; }
|
||||
public BoolInt? Force { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=manual")]
|
||||
public BoolInt? Manual { get; set; }
|
||||
public BoolInt? Manual { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
}
|
||||
}
|
||||
@@ -88,7 +88,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
|
||||
/// Indicate whether detection should be re-run
|
||||
/// </summary>
|
||||
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=force")]
|
||||
public BoolInt? Force { get; set; }
|
||||
public BoolInt? Force { get; set; } = LukeHagar.PlexAPI.SDK.Models.Components.BoolInt.False;
|
||||
|
||||
/// <summary>
|
||||
/// The threshold for determining if content is an intro or not
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user