Compare commits

...

6 Commits

Author SHA1 Message Date
speakeasybot
9ccab7b22d ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.529.1 2025-04-19 00:24:30 +00:00
speakeasybot
eb2f6e54a2 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.529.1 2025-04-14 00:26:56 +00:00
speakeasybot
4b798cbb85 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.529.1 2025-04-06 00:25:51 +00:00
speakeasybot
a89870d526 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.528.1 2025-04-03 00:23:53 +00:00
speakeasybot
01b116a71c ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.526.6 2025-03-31 17:08:42 +00:00
Luke Hagar
9831457f45 Update workflow.yaml 2025-03-31 12:06:13 -05:00
89 changed files with 2015 additions and 508 deletions

File diff suppressed because one or more lines are too long

View File

@@ -15,7 +15,7 @@ generation:
oAuth2ClientCredentialsEnabled: true oAuth2ClientCredentialsEnabled: true
oAuth2PasswordEnabled: false oAuth2PasswordEnabled: false
csharp: csharp:
version: 0.14.2 version: 0.14.9
additionalDependencies: [] additionalDependencies: []
author: LukeHagar author: LukeHagar
clientServerStatusCodesAsErrors: true clientServerStatusCodesAsErrors: true

View File

@@ -1,4 +1,4 @@
speakeasyVersion: 1.513.4 speakeasyVersion: 1.529.1
sources: sources:
my-source: my-source:
sourceNamespace: my-source sourceNamespace: my-source
@@ -16,19 +16,19 @@ sources:
- main - main
plexapi: plexapi:
sourceNamespace: plexapi sourceNamespace: plexapi
sourceRevisionDigest: sha256:2066ba94b55e21d651c79003e3cf402fb77c52a0969fc52310b3383fbed038f4 sourceRevisionDigest: sha256:b2f9599237ceb13cf8f9c1693e38b290177b65fb389cebf0c3c60b8ef4778615
sourceBlobDigest: sha256:1737023e29cd9cf36c07ccd8c8c48c47e14f47ce22b4d6ba9ee241afbbd8f351 sourceBlobDigest: sha256:f8df9ef88ada992cd981d601e6c0b45cc82db76aba3d915c2f9d08f90c81ced9
tags: tags:
- latest - latest
- speakeasy-sdk-regen-1741479619 - speakeasy-sdk-regen-1745022139
targets: targets:
plexcsharp: plexcsharp:
source: plexapi source: plexapi
sourceNamespace: plexapi sourceNamespace: plexapi
sourceRevisionDigest: sha256:2066ba94b55e21d651c79003e3cf402fb77c52a0969fc52310b3383fbed038f4 sourceRevisionDigest: sha256:b2f9599237ceb13cf8f9c1693e38b290177b65fb389cebf0c3c60b8ef4778615
sourceBlobDigest: sha256:1737023e29cd9cf36c07ccd8c8c48c47e14f47ce22b4d6ba9ee241afbbd8f351 sourceBlobDigest: sha256:f8df9ef88ada992cd981d601e6c0b45cc82db76aba3d915c2f9d08f90c81ced9
codeSamplesNamespace: code-samples-csharp-plexcsharp codeSamplesNamespace: code-samples-csharp-plexcsharp
codeSamplesRevisionDigest: sha256:6c2afa1814b37e276f0e8369b50baff64065a76786acbe0a3843972f1f3f60c4 codeSamplesRevisionDigest: sha256:004ab610284c105c8117c397a7f5978e24de0ef188017a338cb854644394a990
workflow: workflow:
workflowVersion: 1.0.0 workflowVersion: 1.0.0
speakeasyVersion: latest speakeasyVersion: latest
@@ -47,3 +47,5 @@ workflow:
output: codeSamples.yaml output: codeSamples.yaml
registry: registry:
location: registry.speakeasyapi.dev/plexapi/plexapi/code-samples-csharp-plexcsharp location: registry.speakeasyapi.dev/plexapi/plexapi/code-samples-csharp-plexcsharp
labelOverride:
fixedValue: PlexCSharp

View File

@@ -15,3 +15,5 @@ targets:
output: codeSamples.yaml output: codeSamples.yaml
registry: registry:
location: registry.speakeasyapi.dev/plexapi/plexapi/code-samples-csharp-plexcsharp location: registry.speakeasyapi.dev/plexapi/plexapi/code-samples-csharp-plexcsharp
labelOverride:
fixedValue: PlexCSharp

View File

@@ -74,10 +74,10 @@ namespace LukeHagar.PlexAPI.SDK
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.14.2"; private const string _sdkVersion = "0.14.9";
private const string _sdkGenVersion = "2.545.4"; private const string _sdkGenVersion = "2.566.5";
private const string _openapiDocVersion = "0.0.3"; private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.14.2 2.545.4 0.0.3 LukeHagar.PlexAPI.SDK"; private const string _userAgent = "speakeasy-sdk/csharp 0.14.9 2.566.5 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource; private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;
@@ -104,7 +104,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getServerActivities", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getServerActivities", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -208,7 +208,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("cancelServerActivities", null, _securitySource); var hookCtx = new HookContext(baseUrl, "cancelServerActivities", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);

View File

@@ -95,10 +95,10 @@ namespace LukeHagar.PlexAPI.SDK
}; };
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.14.2"; private const string _sdkVersion = "0.14.9";
private const string _sdkGenVersion = "2.545.4"; private const string _sdkGenVersion = "2.566.5";
private const string _openapiDocVersion = "0.0.3"; private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.14.2 2.545.4 0.0.3 LukeHagar.PlexAPI.SDK"; private const string _userAgent = "speakeasy-sdk/csharp 0.14.9 2.566.5 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource; private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;
@@ -129,7 +129,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getTransientToken", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getTransientToken", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -225,7 +225,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getSourceConnectionInformation", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getSourceConnectionInformation", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -323,7 +323,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getTokenDetails", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getTokenDetails", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -431,7 +431,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest.Content = serializedBody; httpRequest.Content = serializedBody;
} }
var hookCtx = new HookContext("post-users-sign-in-data", null, null); var hookCtx = new HookContext(baseUrl, "post-users-sign-in-data", new List<string> { }, null);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);

View File

@@ -101,10 +101,10 @@ namespace LukeHagar.PlexAPI.SDK
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.14.2"; private const string _sdkVersion = "0.14.9";
private const string _sdkGenVersion = "2.545.4"; private const string _sdkGenVersion = "2.566.5";
private const string _openapiDocVersion = "0.0.3"; private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.14.2 2.545.4 0.0.3 LukeHagar.PlexAPI.SDK"; private const string _userAgent = "speakeasy-sdk/csharp 0.14.9 2.566.5 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource; private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;
@@ -131,7 +131,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getButlerTasks", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getButlerTasks", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -232,7 +232,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("startAllTasks", null, _securitySource); var hookCtx = new HookContext(baseUrl, "startAllTasks", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -325,7 +325,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("stopAllTasks", null, _securitySource); var hookCtx = new HookContext(baseUrl, "stopAllTasks", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -421,7 +421,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("startTask", null, _securitySource); var hookCtx = new HookContext(baseUrl, "startTask", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -517,7 +517,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("stopTask", null, _securitySource); var hookCtx = new HookContext(baseUrl, "stopTask", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);

View File

@@ -17,12 +17,14 @@ namespace LukeHagar.PlexAPI.SDK.Hooks
public class HookContext public class HookContext
{ {
public string BaseURL { get; set; } = "";
public string OperationID { get; set; } public string OperationID { get; set; }
public List<string>? Oauth2Scopes { get; set; } public List<string>? Oauth2Scopes { get; set; }
public Func<object>? SecuritySource { get; set; } public Func<object>? SecuritySource { get; set; }
public HookContext(string operationID, List<string>? oauth2Scopes, Func<object>? securitySource) public HookContext(string baseURL, string operationID, List<string>? oauth2Scopes, Func<object>? securitySource)
{ {
BaseURL = baseURL;
OperationID = operationID; OperationID = operationID;
Oauth2Scopes = oauth2Scopes; Oauth2Scopes = oauth2Scopes;
SecuritySource = securitySource; SecuritySource = securitySource;
@@ -32,19 +34,19 @@ namespace LukeHagar.PlexAPI.SDK.Hooks
public class BeforeRequestContext : HookContext public class BeforeRequestContext : HookContext
{ {
public BeforeRequestContext(HookContext hookCtx) public BeforeRequestContext(HookContext hookCtx)
: base(hookCtx.OperationID, hookCtx.Oauth2Scopes, hookCtx.SecuritySource) { } : base(hookCtx.BaseURL, hookCtx.OperationID, hookCtx.Oauth2Scopes, hookCtx.SecuritySource) { }
} }
public class AfterSuccessContext : HookContext public class AfterSuccessContext : HookContext
{ {
public AfterSuccessContext(HookContext hookCtx) public AfterSuccessContext(HookContext hookCtx)
: base(hookCtx.OperationID, hookCtx.Oauth2Scopes, hookCtx.SecuritySource) { } : base(hookCtx.BaseURL, hookCtx.OperationID, hookCtx.Oauth2Scopes, hookCtx.SecuritySource) { }
} }
public class AfterErrorContext : HookContext public class AfterErrorContext : HookContext
{ {
public AfterErrorContext(HookContext hookCtx) public AfterErrorContext(HookContext hookCtx)
: base(hookCtx.OperationID, hookCtx.Oauth2Scopes, hookCtx.SecuritySource) { } : base(hookCtx.BaseURL, hookCtx.OperationID, hookCtx.Oauth2Scopes, hookCtx.SecuritySource) { }
} }
/// <summary> /// <summary>

View File

@@ -73,10 +73,10 @@ namespace LukeHagar.PlexAPI.SDK
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.14.2"; private const string _sdkVersion = "0.14.9";
private const string _sdkGenVersion = "2.545.4"; private const string _sdkGenVersion = "2.566.5";
private const string _openapiDocVersion = "0.0.3"; private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.14.2 2.545.4 0.0.3 LukeHagar.PlexAPI.SDK"; private const string _userAgent = "speakeasy-sdk/csharp 0.14.9 2.566.5 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource; private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;
@@ -107,7 +107,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getGlobalHubs", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getGlobalHubs", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -207,7 +207,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("get-recently-added", null, _securitySource); var hookCtx = new HookContext(baseUrl, "get-recently-added", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -291,7 +291,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getLibraryHubs", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getLibraryHubs", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);

View File

@@ -72,14 +72,14 @@ namespace LukeHagar.PlexAPI.SDK
/// <remarks> /// <remarks>
/// ## Library Details Endpoint<br/> /// ## Library Details Endpoint<br/>
/// <br/> /// <br/>
/// This endpoint provides comprehensive details about the library, focusing on organizational aspects rather than the content itself. <br/> /// This endpoint provides comprehensive details about the library, focusing on organizational aspects rather than the content itself.<br/>
/// <br/> /// <br/>
/// The details include:<br/> /// The details include:<br/>
/// <br/> /// <br/>
/// ### Directories<br/> /// ### Directories<br/>
/// Organized into three categories:<br/> /// Organized into three categories:<br/>
/// <br/> /// <br/>
/// - **Primary Directories**: <br/> /// - **Primary Directories**:<br/>
/// - Used in some clients for quick access to media subsets (e.g., &quot;All&quot;, &quot;On Deck&quot;).<br/> /// - Used in some clients for quick access to media subsets (e.g., &quot;All&quot;, &quot;On Deck&quot;).<br/>
/// - Most can be replicated via media queries.<br/> /// - Most can be replicated via media queries.<br/>
/// - Customizable by users.<br/> /// - Customizable by users.<br/>
@@ -250,6 +250,42 @@ namespace LukeHagar.PlexAPI.SDK
/// </summary> /// </summary>
Task<GetMediaMetaDataResponse> GetMediaMetaDataAsync(GetMediaMetaDataRequest request); Task<GetMediaMetaDataResponse> GetMediaMetaDataAsync(GetMediaMetaDataRequest request);
/// <summary>
/// Get Media Background Artwork
///
/// <remarks>
/// Returns the background artwork for a library item.
/// </remarks>
/// </summary>
Task<GetMediaArtsResponse> GetMediaArtsAsync(long ratingKey);
/// <summary>
/// Upload Media Background Artwork
///
/// <remarks>
/// Uploads an image to use as the background artwork for a library item, either from a local file or a remote URL
/// </remarks>
/// </summary>
Task<PostMediaArtsResponse> PostMediaArtsAsync(long ratingKey, string? url = null, byte[]? requestBody = null);
/// <summary>
/// Get Media Posters
///
/// <remarks>
/// Returns the available posters for a library item.
/// </remarks>
/// </summary>
Task<GetMediaPostersResponse> GetMediaPostersAsync(long ratingKey);
/// <summary>
/// Upload Media Poster
///
/// <remarks>
/// Uploads a poster to a library item, either from a local file or a remote URL
/// </remarks>
/// </summary>
Task<PostMediaPosterResponse> PostMediaPosterAsync(long ratingKey, string? url = null, byte[]? requestBody = null);
/// <summary> /// <summary>
/// Get Items Children /// Get Items Children
/// ///
@@ -282,10 +318,10 @@ namespace LukeHagar.PlexAPI.SDK
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.14.2"; private const string _sdkVersion = "0.14.9";
private const string _sdkGenVersion = "2.545.4"; private const string _sdkGenVersion = "2.566.5";
private const string _openapiDocVersion = "0.0.3"; private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.14.2 2.545.4 0.0.3 LukeHagar.PlexAPI.SDK"; private const string _userAgent = "speakeasy-sdk/csharp 0.14.9 2.566.5 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource; private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;
@@ -316,7 +352,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getFileHash", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getFileHash", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -408,7 +444,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("get-recently-added-library", null, _securitySource); var hookCtx = new HookContext(baseUrl, "get-recently-added-library", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -509,7 +545,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("get-all-libraries", null, _securitySource); var hookCtx = new HookContext(baseUrl, "get-all-libraries", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -614,7 +650,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("get-library-details", null, _securitySource); var hookCtx = new HookContext(baseUrl, "get-library-details", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -718,7 +754,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("deleteLibrary", null, _securitySource); var hookCtx = new HookContext(baseUrl, "deleteLibrary", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -810,7 +846,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("get-library-items", null, _securitySource); var hookCtx = new HookContext(baseUrl, "get-library-items", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -910,7 +946,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("get-all-media-library", null, _securitySource); var hookCtx = new HookContext(baseUrl, "get-all-media-library", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -1015,7 +1051,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("get-refresh-library-metadata", null, _securitySource); var hookCtx = new HookContext(baseUrl, "get-refresh-library-metadata", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -1112,7 +1148,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("get-search-library", null, _securitySource); var hookCtx = new HookContext(baseUrl, "get-search-library", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -1217,7 +1253,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("get-genres-library", null, _securitySource); var hookCtx = new HookContext(baseUrl, "get-genres-library", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -1322,7 +1358,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("get-countries-library", null, _securitySource); var hookCtx = new HookContext(baseUrl, "get-countries-library", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -1427,7 +1463,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("get-actors-library", null, _securitySource); var hookCtx = new HookContext(baseUrl, "get-actors-library", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -1528,7 +1564,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("get-search-all-libraries", null, _securitySource); var hookCtx = new HookContext(baseUrl, "get-search-all-libraries", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -1628,7 +1664,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("get-media-meta-data", null, _securitySource); var hookCtx = new HookContext(baseUrl, "get-media-meta-data", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -1715,6 +1751,334 @@ namespace LukeHagar.PlexAPI.SDK
throw new Models.Errors.SDKException("Unknown status code received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse); throw new Models.Errors.SDKException("Unknown status code received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
} }
public async Task<GetMediaArtsResponse> GetMediaArtsAsync(long ratingKey)
{
var request = new GetMediaArtsRequest()
{
RatingKey = ratingKey,
};
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ratingKey}/arts", request);
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
httpRequest.Headers.Add("user-agent", _userAgent);
if (_securitySource != null)
{
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
}
var hookCtx = new HookContext(baseUrl, "get-media-arts", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
HttpResponseMessage httpResponse;
try
{
httpResponse = await _client.SendAsync(httpRequest);
int _statusCode = (int)httpResponse.StatusCode;
if (_statusCode == 404 || _statusCode >= 400 && _statusCode < 500 || _statusCode >= 500 && _statusCode < 600)
{
var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), httpResponse, null);
if (_httpResponse != null)
{
httpResponse = _httpResponse;
}
}
}
catch (Exception error)
{
var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error);
if (_httpResponse != null)
{
httpResponse = _httpResponse;
}
else
{
throw;
}
}
httpResponse = await this.SDKConfiguration.Hooks.AfterSuccessAsync(new AfterSuccessContext(hookCtx), httpResponse);
var contentType = httpResponse.Content.Headers.ContentType?.MediaType;
int responseStatusCode = (int)httpResponse.StatusCode;
if(responseStatusCode == 200)
{
if(Utilities.IsContentTypeMatch("application/json", contentType))
{
var obj = ResponseBodyDeserializer.Deserialize<GetMediaArtsResponseBody>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore);
var response = new GetMediaArtsResponse()
{
StatusCode = responseStatusCode,
ContentType = contentType,
RawResponse = httpResponse
};
response.Object = obj;
return response;
}
throw new Models.Errors.SDKException("Unknown content type received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
else if(responseStatusCode == 404 || responseStatusCode >= 400 && responseStatusCode < 500)
{
throw new Models.Errors.SDKException("API error occurred", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
else if(responseStatusCode >= 500 && responseStatusCode < 600)
{
throw new Models.Errors.SDKException("API error occurred", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
throw new Models.Errors.SDKException("Unknown status code received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
public async Task<PostMediaArtsResponse> PostMediaArtsAsync(long ratingKey, string? url = null, byte[]? requestBody = null)
{
var request = new PostMediaArtsRequest()
{
RatingKey = ratingKey,
Url = url,
RequestBody = requestBody,
};
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ratingKey}/arts", request);
var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString);
httpRequest.Headers.Add("user-agent", _userAgent);
var serializedBody = RequestBodySerializer.Serialize(request, "RequestBody", "raw", false, true);
if (serializedBody != null)
{
httpRequest.Content = serializedBody;
}
if (_securitySource != null)
{
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
}
var hookCtx = new HookContext(baseUrl, "post-media-arts", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
HttpResponseMessage httpResponse;
try
{
httpResponse = await _client.SendAsync(httpRequest);
int _statusCode = (int)httpResponse.StatusCode;
if (_statusCode == 404 || _statusCode >= 400 && _statusCode < 500 || _statusCode >= 500 && _statusCode < 600)
{
var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), httpResponse, null);
if (_httpResponse != null)
{
httpResponse = _httpResponse;
}
}
}
catch (Exception error)
{
var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error);
if (_httpResponse != null)
{
httpResponse = _httpResponse;
}
else
{
throw;
}
}
httpResponse = await this.SDKConfiguration.Hooks.AfterSuccessAsync(new AfterSuccessContext(hookCtx), httpResponse);
var contentType = httpResponse.Content.Headers.ContentType?.MediaType;
int responseStatusCode = (int)httpResponse.StatusCode;
if(responseStatusCode == 200)
{
return new PostMediaArtsResponse()
{
StatusCode = responseStatusCode,
ContentType = contentType,
RawResponse = httpResponse
};
}
else if(responseStatusCode == 404 || responseStatusCode >= 400 && responseStatusCode < 500)
{
throw new Models.Errors.SDKException("API error occurred", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
else if(responseStatusCode >= 500 && responseStatusCode < 600)
{
throw new Models.Errors.SDKException("API error occurred", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
throw new Models.Errors.SDKException("Unknown status code received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
public async Task<GetMediaPostersResponse> GetMediaPostersAsync(long ratingKey)
{
var request = new GetMediaPostersRequest()
{
RatingKey = ratingKey,
};
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ratingKey}/posters", request);
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
httpRequest.Headers.Add("user-agent", _userAgent);
if (_securitySource != null)
{
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
}
var hookCtx = new HookContext(baseUrl, "get-media-posters", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
HttpResponseMessage httpResponse;
try
{
httpResponse = await _client.SendAsync(httpRequest);
int _statusCode = (int)httpResponse.StatusCode;
if (_statusCode == 404 || _statusCode >= 400 && _statusCode < 500 || _statusCode >= 500 && _statusCode < 600)
{
var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), httpResponse, null);
if (_httpResponse != null)
{
httpResponse = _httpResponse;
}
}
}
catch (Exception error)
{
var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error);
if (_httpResponse != null)
{
httpResponse = _httpResponse;
}
else
{
throw;
}
}
httpResponse = await this.SDKConfiguration.Hooks.AfterSuccessAsync(new AfterSuccessContext(hookCtx), httpResponse);
var contentType = httpResponse.Content.Headers.ContentType?.MediaType;
int responseStatusCode = (int)httpResponse.StatusCode;
if(responseStatusCode == 200)
{
if(Utilities.IsContentTypeMatch("application/json", contentType))
{
var obj = ResponseBodyDeserializer.Deserialize<GetMediaPostersResponseBody>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore);
var response = new GetMediaPostersResponse()
{
StatusCode = responseStatusCode,
ContentType = contentType,
RawResponse = httpResponse
};
response.Object = obj;
return response;
}
throw new Models.Errors.SDKException("Unknown content type received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
else if(responseStatusCode == 404 || responseStatusCode >= 400 && responseStatusCode < 500)
{
throw new Models.Errors.SDKException("API error occurred", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
else if(responseStatusCode >= 500 && responseStatusCode < 600)
{
throw new Models.Errors.SDKException("API error occurred", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
throw new Models.Errors.SDKException("Unknown status code received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
public async Task<PostMediaPosterResponse> PostMediaPosterAsync(long ratingKey, string? url = null, byte[]? requestBody = null)
{
var request = new PostMediaPosterRequest()
{
RatingKey = ratingKey,
Url = url,
RequestBody = requestBody,
};
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
var urlString = URLBuilder.Build(baseUrl, "/library/metadata/{ratingKey}/posters", request);
var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString);
httpRequest.Headers.Add("user-agent", _userAgent);
var serializedBody = RequestBodySerializer.Serialize(request, "RequestBody", "raw", false, true);
if (serializedBody != null)
{
httpRequest.Content = serializedBody;
}
if (_securitySource != null)
{
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
}
var hookCtx = new HookContext(baseUrl, "post-media-poster", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
HttpResponseMessage httpResponse;
try
{
httpResponse = await _client.SendAsync(httpRequest);
int _statusCode = (int)httpResponse.StatusCode;
if (_statusCode == 404 || _statusCode >= 400 && _statusCode < 500 || _statusCode >= 500 && _statusCode < 600)
{
var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), httpResponse, null);
if (_httpResponse != null)
{
httpResponse = _httpResponse;
}
}
}
catch (Exception error)
{
var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error);
if (_httpResponse != null)
{
httpResponse = _httpResponse;
}
else
{
throw;
}
}
httpResponse = await this.SDKConfiguration.Hooks.AfterSuccessAsync(new AfterSuccessContext(hookCtx), httpResponse);
var contentType = httpResponse.Content.Headers.ContentType?.MediaType;
int responseStatusCode = (int)httpResponse.StatusCode;
if(responseStatusCode == 200)
{
return new PostMediaPosterResponse()
{
StatusCode = responseStatusCode,
ContentType = contentType,
RawResponse = httpResponse
};
}
else if(responseStatusCode == 404 || responseStatusCode >= 400 && responseStatusCode < 500)
{
throw new Models.Errors.SDKException("API error occurred", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
else if(responseStatusCode >= 500 && responseStatusCode < 600)
{
throw new Models.Errors.SDKException("API error occurred", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
throw new Models.Errors.SDKException("Unknown status code received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
public async Task<GetMetadataChildrenResponse> GetMetadataChildrenAsync(double ratingKey, string? includeElements = null) public async Task<GetMetadataChildrenResponse> GetMetadataChildrenAsync(double ratingKey, string? includeElements = null)
{ {
var request = new GetMetadataChildrenRequest() var request = new GetMetadataChildrenRequest()
@@ -1733,7 +2097,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getMetadataChildren", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getMetadataChildren", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -1838,7 +2202,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getTopWatchedContent", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getTopWatchedContent", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);

View File

@@ -46,13 +46,13 @@ namespace LukeHagar.PlexAPI.SDK
/// Logging a multi-line message /// Logging a multi-line message
/// ///
/// <remarks> /// <remarks>
/// This endpoint allows for the batch addition of log entries to the main Plex Media Server log. <br/> /// This endpoint allows for the batch addition of log entries to the main Plex Media Server log.<br/>
/// It accepts a text/plain request body, where each line represents a distinct log entry. <br/> /// It accepts a text/plain request body, where each line represents a distinct log entry.<br/>
/// Each log entry consists of URL-encoded key-value pairs, specifying log attributes such as &apos;level&apos;, &apos;message&apos;, and &apos;source&apos;. <br/> /// Each log entry consists of URL-encoded key-value pairs, specifying log attributes such as &apos;level&apos;, &apos;message&apos;, and &apos;source&apos;.<br/>
/// <br/> /// <br/>
/// Log entries are separated by a newline character (`\n`). <br/> /// Log entries are separated by a newline character (`\n`).<br/>
/// Each entry&apos;s parameters should be URL-encoded to ensure accurate parsing and handling of special characters. <br/> /// Each entry&apos;s parameters should be URL-encoded to ensure accurate parsing and handling of special characters.<br/>
/// This method is efficient for logging multiple entries in a single API call, reducing the overhead of multiple individual requests. <br/> /// This method is efficient for logging multiple entries in a single API call, reducing the overhead of multiple individual requests.<br/>
/// <br/> /// <br/>
/// The &apos;level&apos; parameter specifies the log entry&apos;s severity or importance, with the following integer values:<br/> /// The &apos;level&apos; parameter specifies the log entry&apos;s severity or importance, with the following integer values:<br/>
/// - `0`: Error - Critical issues that require immediate attention.<br/> /// - `0`: Error - Critical issues that require immediate attention.<br/>
@@ -94,10 +94,10 @@ namespace LukeHagar.PlexAPI.SDK
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.14.2"; private const string _sdkVersion = "0.14.9";
private const string _sdkGenVersion = "2.545.4"; private const string _sdkGenVersion = "2.566.5";
private const string _openapiDocVersion = "0.0.3"; private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.14.2 2.545.4 0.0.3 LukeHagar.PlexAPI.SDK"; private const string _userAgent = "speakeasy-sdk/csharp 0.14.9 2.566.5 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource; private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;
@@ -129,7 +129,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("logLine", null, _securitySource); var hookCtx = new HookContext(baseUrl, "logLine", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -228,7 +228,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("logMultiLine", null, _securitySource); var hookCtx = new HookContext(baseUrl, "logMultiLine", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -321,7 +321,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("enablePaperTrail", null, _securitySource); var hookCtx = new HookContext(baseUrl, "enablePaperTrail", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);

View File

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

View File

@@ -90,10 +90,10 @@ namespace LukeHagar.PlexAPI.SDK
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.14.2"; private const string _sdkVersion = "0.14.9";
private const string _sdkGenVersion = "2.545.4"; private const string _sdkGenVersion = "2.566.5";
private const string _openapiDocVersion = "0.0.3"; private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.14.2 2.545.4 0.0.3 LukeHagar.PlexAPI.SDK"; private const string _userAgent = "speakeasy-sdk/csharp 0.14.9 2.566.5 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource; private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;
@@ -123,7 +123,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("markPlayed", null, _securitySource); var hookCtx = new HookContext(baseUrl, "markPlayed", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -219,7 +219,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("markUnplayed", null, _securitySource); var hookCtx = new HookContext(baseUrl, "markUnplayed", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -317,7 +317,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("updatePlayProgress", null, _securitySource); var hookCtx = new HookContext(baseUrl, "updatePlayProgress", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -410,7 +410,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("get-banner-image", null, _securitySource); var hookCtx = new HookContext(baseUrl, "get-banner-image", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -510,7 +510,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("get-thumb-image", null, _securitySource); var hookCtx = new HookContext(baseUrl, "get-thumb-image", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);

View File

@@ -17,42 +17,78 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
public class GetAllLibrariesDirectory public class GetAllLibrariesDirectory
{ {
/// <summary>
/// Indicates whether syncing is allowed.
/// </summary>
[JsonProperty("allowSync")] [JsonProperty("allowSync")]
public bool AllowSync { get; set; } = default!; public bool AllowSync { get; set; } = default!;
/// <summary>
/// URL for the background artwork of the media container.
/// </summary>
[JsonProperty("art")] [JsonProperty("art")]
public string Art { get; set; } = default!; public string Art { get; set; } = default!;
/// <summary>
/// The relative path to the composite media item.
/// </summary>
[JsonProperty("composite")] [JsonProperty("composite")]
public string Composite { get; set; } = default!; public string Composite { get; set; } = default!;
/// <summary>
/// UNKNOWN
/// </summary>
[JsonProperty("filters")] [JsonProperty("filters")]
public bool Filters { get; set; } = default!; public bool Filters { get; set; } = default!;
/// <summary>
/// Indicates whether the library is currently being refreshed or updated
/// </summary>
[JsonProperty("refreshing")] [JsonProperty("refreshing")]
public bool Refreshing { get; set; } = default!; public bool Refreshing { get; set; } = default!;
/// <summary>
/// URL for the thumbnail image of the media container.
/// </summary>
[JsonProperty("thumb")] [JsonProperty("thumb")]
public string Thumb { get; set; } = default!; public string Thumb { get; set; } = default!;
/// <summary>
/// The library key representing the unique identifier
/// </summary>
[JsonProperty("key")] [JsonProperty("key")]
public string Key { get; set; } = default!; public string Key { get; set; } = default!;
[JsonProperty("type")] [JsonProperty("type")]
public string Type { get; set; } = default!; public GetAllLibrariesType Type { get; set; } = default!;
/// <summary>
/// The title of the library
/// </summary>
[JsonProperty("title")] [JsonProperty("title")]
public string Title { get; set; } = default!; public string Title { get; set; } = default!;
/// <summary>
/// The Plex agent used to match and retrieve media metadata.
/// </summary>
[JsonProperty("agent")] [JsonProperty("agent")]
public string Agent { get; set; } = default!; public string Agent { get; set; } = default!;
/// <summary>
/// UNKNOWN
/// </summary>
[JsonProperty("scanner")] [JsonProperty("scanner")]
public string Scanner { get; set; } = default!; public string Scanner { get; set; } = default!;
/// <summary>
/// The Plex library language that has been set
/// </summary>
[JsonProperty("language")] [JsonProperty("language")]
public string Language { get; set; } = default!; public string Language { get; set; } = default!;
/// <summary>
/// The universally unique identifier for the library.
/// </summary>
[JsonProperty("uuid")] [JsonProperty("uuid")]
public string Uuid { get; set; } = default!; public string Uuid { get; set; } = default!;
@@ -62,11 +98,8 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
[JsonProperty("updatedAt")] [JsonProperty("updatedAt")]
public long UpdatedAt { get; set; } = default!; public long UpdatedAt { get; set; } = default!;
/// <summary>
/// Unix epoch datetime in seconds
/// </summary>
[JsonProperty("createdAt")] [JsonProperty("createdAt")]
public long CreatedAt { get; set; } = default!; public long? CreatedAt { get; set; }
/// <summary> /// <summary>
/// Unix epoch datetime in seconds /// Unix epoch datetime in seconds
@@ -74,20 +107,31 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
[JsonProperty("scannedAt")] [JsonProperty("scannedAt")]
public long ScannedAt { get; set; } = default!; public long ScannedAt { get; set; } = default!;
/// <summary>
/// UNKNOWN
/// </summary>
[JsonProperty("content")] [JsonProperty("content")]
public bool Content { get; set; } = default!; public bool Content { get; set; } = default!;
/// <summary>
/// UNKNOWN
/// </summary>
[JsonProperty("directory")] [JsonProperty("directory")]
public bool Directory { get; set; } = default!; public bool Directory { get; set; } = default!;
/// <summary> /// <summary>
/// Unix epoch datetime in seconds /// Timestamp (in seconds) representing the last time the content was modified.<br/>
///
/// <remarks>
/// NOTE: Some Plex server have some absurd values for this field, like 8457612157633039800 so it should be int64<br/>
///
/// </remarks>
/// </summary> /// </summary>
[JsonProperty("contentChangedAt")] [JsonProperty("contentChangedAt")]
public long ContentChangedAt { get; set; } = default!; public long ContentChangedAt { get; set; } = default!;
[JsonProperty("hidden")] [JsonProperty("hidden")]
public int Hidden { get; set; } = default!; public Hidden? Hidden { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.Hidden.Disable;
[JsonProperty("Location")] [JsonProperty("Location")]
public List<GetAllLibrariesLocation> Location { get; set; } = default!; public List<GetAllLibrariesLocation> Location { get; set; } = default!;

View File

@@ -15,9 +15,15 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
public class GetAllLibrariesLocation public class GetAllLibrariesLocation
{ {
/// <summary>
/// The ID of the location.
/// </summary>
[JsonProperty("id")] [JsonProperty("id")]
public int Id { get; set; } = default!; public int Id { get; set; } = default!;
/// <summary>
/// The path to the media item.
/// </summary>
[JsonProperty("path")] [JsonProperty("path")]
public string Path { get; set; } = default!; public string Path { get; set; } = default!;
} }

View File

@@ -17,16 +17,25 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
public class GetAllLibrariesMediaContainer public class GetAllLibrariesMediaContainer
{ {
/// <summary>
/// Number of media items returned in this response.
/// </summary>
[JsonProperty("size")] [JsonProperty("size")]
public int Size { get; set; } = default!; public int Size { get; set; } = default!;
/// <summary>
/// Indicates whether syncing is allowed.
/// </summary>
[JsonProperty("allowSync")] [JsonProperty("allowSync")]
public bool AllowSync { get; set; } = default!; public bool AllowSync { get; set; } = default!;
/// <summary>
/// The primary title of the media container.
/// </summary>
[JsonProperty("title1")] [JsonProperty("title1")]
public string Title1 { get; set; } = default!; public string Title1 { get; set; } = default!;
[JsonProperty("Directory")] [JsonProperty("Directory")]
public List<GetAllLibrariesDirectory> Directory { get; set; } = default!; public List<GetAllLibrariesDirectory>? Directory { get; set; }
} }
} }

View File

@@ -20,6 +20,6 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
{ {
[JsonProperty("MediaContainer")] [JsonProperty("MediaContainer")]
public GetAllLibrariesMediaContainer MediaContainer { get; set; } = default!; public GetAllLibrariesMediaContainer? MediaContainer { get; set; }
} }
} }

View File

@@ -0,0 +1,68 @@
//------------------------------------------------------------------------------
// <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 library type
/// </summary>
public enum GetAllLibrariesType
{
[JsonProperty("movie")]
Movie,
[JsonProperty("show")]
TvShow,
[JsonProperty("season")]
Season,
[JsonProperty("episode")]
Episode,
[JsonProperty("artist")]
Artist,
[JsonProperty("album")]
Album,
}
public static class GetAllLibrariesTypeExtension
{
public static string Value(this GetAllLibrariesType value)
{
return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString();
}
public static GetAllLibrariesType ToEnum(this string value)
{
foreach(var field in typeof(GetAllLibrariesType).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 GetAllLibrariesType)
{
return (GetAllLibrariesType)enumVal;
}
}
}
throw new Exception($"Unknown value {value} for enum GetAllLibrariesType");
}
}
}

View File

@@ -15,6 +15,17 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
public class GetLibraryDetailsRequest public class GetLibraryDetailsRequest
{ {
/// <summary>
/// Whether or not to include details for a section (types, filters, and sorts).<br/>
///
/// <remarks>
/// Only exists for backwards compatibility, media providers other than the server libraries have it on always.<br/>
///
/// </remarks>
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=includeDetails")]
public IncludeDetails? IncludeDetails { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.IncludeDetails.Zero;
/// <summary> /// <summary>
/// The unique key of the Plex library. <br/> /// The unique key of the Plex library. <br/>
/// ///
@@ -25,16 +36,5 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
/// </summary> /// </summary>
[SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sectionKey")] [SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sectionKey")]
public int SectionKey { get; set; } = default!; public int SectionKey { get; set; } = default!;
/// <summary>
/// Whether or not to include details for a section (types, filters, and sorts). <br/>
///
/// <remarks>
/// Only exists for backwards compatibility, media providers other than the server libraries have it on always.<br/>
///
/// </remarks>
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=includeDetails")]
public IncludeDetails? IncludeDetails { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.IncludeDetails.Zero;
} }
} }

View File

@@ -0,0 +1,47 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Models.Requests;
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using System.Collections.Generic;
public class GetMediaArtsMediaContainer
{
/// <summary>
/// Number of media items returned in this response.
/// </summary>
[JsonProperty("size")]
public int Size { get; set; } = default!;
/// <summary>
/// The version number for media tags.
/// </summary>
[JsonProperty("mediaTagVersion")]
public long MediaTagVersion { get; set; } = default!;
/// <summary>
/// The prefix used for media tag resource paths.
/// </summary>
[JsonProperty("mediaTagPrefix")]
public string MediaTagPrefix { get; set; } = default!;
/// <summary>
/// An plugin identifier for the media container.
/// </summary>
[JsonProperty("identifier")]
public string Identifier { get; set; } = default!;
[JsonProperty("Metadata")]
public List<GetMediaArtsMetadata> Metadata { get; set; } = default!;
}
}

View File

@@ -0,0 +1,48 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
public class GetMediaArtsMetadata
{
/// <summary>
/// The URL of the artwork.
/// </summary>
[JsonProperty("key")]
public string Key { get; set; } = default!;
/// <summary>
/// The provider of the artwork.
/// </summary>
[JsonProperty("provider")]
public string? Provider { get; set; }
/// <summary>
/// The URL of the artwork.
/// </summary>
[JsonProperty("ratingKey")]
public string RatingKey { get; set; } = default!;
/// <summary>
/// Whether this is the selected artwork.
/// </summary>
[JsonProperty("selected")]
public bool Selected { get; set; } = default!;
/// <summary>
/// The URL of the artwork thumbnail.
/// </summary>
[JsonProperty("thumb")]
public string Thumb { get; set; } = default!;
}
}

View File

@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
public class GetMediaArtsRequest
{
/// <summary>
/// the id of the library item to return the artwork of.
/// </summary>
[SpeakeasyMetadata("pathParam:style=simple,explode=false,name=ratingKey")]
public long RatingKey { get; set; } = default!;
}
}

View File

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

View File

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

View File

@@ -0,0 +1,47 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Models.Requests;
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using System.Collections.Generic;
public class GetMediaPostersMediaContainer
{
/// <summary>
/// Number of media items returned in this response.
/// </summary>
[JsonProperty("size")]
public int Size { get; set; } = default!;
/// <summary>
/// The version number for media tags.
/// </summary>
[JsonProperty("mediaTagVersion")]
public long MediaTagVersion { get; set; } = default!;
/// <summary>
/// The prefix used for media tag resource paths.
/// </summary>
[JsonProperty("mediaTagPrefix")]
public string MediaTagPrefix { get; set; } = default!;
/// <summary>
/// An plugin identifier for the media container.
/// </summary>
[JsonProperty("identifier")]
public string Identifier { get; set; } = default!;
[JsonProperty("Metadata")]
public List<GetMediaPostersMetadata> Metadata { get; set; } = default!;
}
}

View File

@@ -0,0 +1,48 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
public class GetMediaPostersMetadata
{
/// <summary>
/// The URL of the poster.
/// </summary>
[JsonProperty("key")]
public string Key { get; set; } = default!;
/// <summary>
/// The provider of the poster.
/// </summary>
[JsonProperty("provider")]
public string? Provider { get; set; }
/// <summary>
/// The URL of the poster.
/// </summary>
[JsonProperty("ratingKey")]
public string RatingKey { get; set; } = default!;
/// <summary>
/// Whether this is the selected poster.
/// </summary>
[JsonProperty("selected")]
public bool Selected { get; set; } = default!;
/// <summary>
/// The URL of the poster thumbnail.
/// </summary>
[JsonProperty("thumb")]
public string Thumb { get; set; } = default!;
}
}

View File

@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
public class GetMediaPostersRequest
{
/// <summary>
/// the id of the library item to return the posters of.
/// </summary>
[SpeakeasyMetadata("pathParam:style=simple,explode=false,name=ratingKey")]
public long RatingKey { get; set; } = default!;
}
}

View File

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

View File

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

View File

@@ -15,6 +15,12 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
public class GetRefreshLibraryMetadataRequest public class GetRefreshLibraryMetadataRequest
{ {
/// <summary>
/// Force the refresh even if the library is already being refreshed.
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=force")]
public Force? Force { get; set; }
/// <summary> /// <summary>
/// The unique key of the Plex library. <br/> /// The unique key of the Plex library. <br/>
/// ///
@@ -25,11 +31,5 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
/// </summary> /// </summary>
[SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sectionKey")] [SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sectionKey")]
public int SectionKey { get; set; } = default!; public int SectionKey { get; set; } = default!;
/// <summary>
/// Force the refresh even if the library is already being refreshed.
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=force")]
public Force? Force { get; set; }
} }
} }

View File

@@ -15,12 +15,6 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
public class GetServerResourcesRequest public class GetServerResourcesRequest
{ {
/// <summary>
/// An opaque identifier unique to the client (UUID, serial number, or other unique device ID)
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Client-Identifier")]
public string ClientID { get; set; } = default!;
/// <summary> /// <summary>
/// Include Https entries in the results /// Include Https entries in the results
/// </summary> /// </summary>
@@ -43,5 +37,11 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
/// </summary> /// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=includeIPv6")] [SpeakeasyMetadata("queryParam:style=form,explode=true,name=includeIPv6")]
public IncludeIPv6? IncludeIPv6 { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.IncludeIPv6.Disable; public IncludeIPv6? IncludeIPv6 { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.IncludeIPv6.Disable;
/// <summary>
/// An opaque identifier unique to the client (UUID, serial number, or other unique device ID)
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Client-Identifier")]
public string ClientID { get; set; } = default!;
} }
} }

View File

@@ -15,6 +15,16 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
public class GetTopWatchedContentRequest public class GetTopWatchedContentRequest
{ {
/// <summary>
/// Adds the Guids object to the response<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=includeGuids")]
public long? IncludeGuids { get; set; }
/// <summary> /// <summary>
/// The type of media to retrieve or filter by.<br/> /// The type of media to retrieve or filter by.<br/>
/// ///
@@ -29,15 +39,5 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
/// </summary> /// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=type")] [SpeakeasyMetadata("queryParam:style=form,explode=true,name=type")]
public GetTopWatchedContentQueryParamType Type { get; set; } = default!; public GetTopWatchedContentQueryParamType Type { get; set; } = default!;
/// <summary>
/// Adds the Guids object to the response<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=includeGuids")]
public long? IncludeGuids { get; set; }
} }
} }

View File

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

View File

@@ -12,7 +12,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
using LukeHagar.PlexAPI.SDK.Utils; using LukeHagar.PlexAPI.SDK.Utils;
/// <summary> /// <summary>
/// Whether or not to include details for a section (types, filters, and sorts). <br/> /// Whether or not to include details for a section (types, filters, and sorts).<br/>
/// ///
/// <remarks> /// <remarks>
/// Only exists for backwards compatibility, media providers other than the server libraries have it on always.<br/> /// Only exists for backwards compatibility, media providers other than the server libraries have it on always.<br/>

View File

@@ -12,13 +12,13 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
using LukeHagar.PlexAPI.SDK.Utils; using LukeHagar.PlexAPI.SDK.Utils;
/// <summary> /// <summary>
/// An integer log level to write to the PMS log with. <br/> /// An integer log level to write to the PMS log with.<br/>
/// ///
/// <remarks> /// <remarks>
/// 0: Error <br/> /// 0: Error<br/>
/// 1: Warning <br/> /// 1: Warning<br/>
/// 2: Info <br/> /// 2: Info<br/>
/// 3: Debug <br/> /// 3: Debug<br/>
/// 4: Verbose<br/> /// 4: Verbose<br/>
/// ///
/// </remarks> /// </remarks>

View File

@@ -16,13 +16,13 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
{ {
/// <summary> /// <summary>
/// An integer log level to write to the PMS log with. <br/> /// An integer log level to write to the PMS log with.<br/>
/// ///
/// <remarks> /// <remarks>
/// 0: Error <br/> /// 0: Error<br/>
/// 1: Warning <br/> /// 1: Warning<br/>
/// 2: Info <br/> /// 2: Info<br/>
/// 3: Debug <br/> /// 3: Debug<br/>
/// 4: Verbose<br/> /// 4: Verbose<br/>
/// ///
/// </remarks> /// </remarks>

View File

@@ -0,0 +1,35 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
public class PostMediaArtsRequest
{
/// <summary>
/// the id of the library item to return the posters of.
/// </summary>
[SpeakeasyMetadata("pathParam:style=simple,explode=false,name=ratingKey")]
public long RatingKey { get; set; } = default!;
/// <summary>
/// The URL of the image, if uploading a remote image
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=url")]
public string? Url { get; set; }
/// <summary>
/// The contents of the image, if uploading a local file
/// </summary>
[SpeakeasyMetadata("request:mediaType=image/*")]
public byte[]? RequestBody { get; set; }
}
}

View File

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

View File

@@ -0,0 +1,35 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
public class PostMediaPosterRequest
{
/// <summary>
/// the id of the library item to return the posters of.
/// </summary>
[SpeakeasyMetadata("pathParam:style=simple,explode=false,name=ratingKey")]
public long RatingKey { get; set; } = default!;
/// <summary>
/// The URL of the image, if uploading a remote image
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=url")]
public string? Url { get; set; }
/// <summary>
/// The contents of the image, if uploading a local file
/// </summary>
[SpeakeasyMetadata("request:mediaType=image/*")]
public byte[]? RequestBody { get; set; }
}
}

View File

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

View File

@@ -12,11 +12,11 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
using LukeHagar.PlexAPI.SDK.Utils; using LukeHagar.PlexAPI.SDK.Utils;
/// <summary> /// <summary>
/// Force overwriting of duplicate playlists. <br/> /// Force overwriting of duplicate playlists.<br/>
/// ///
/// <remarks> /// <remarks>
/// By default, a playlist file uploaded with the same path will overwrite the existing playlist. <br/> /// By default, a playlist file uploaded with the same path will overwrite the existing playlist.<br/>
/// The `force` argument is used to disable overwriting. <br/> /// The `force` argument is used to disable overwriting.<br/>
/// If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.<br/> /// If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.<br/>
/// ///
/// </remarks> /// </remarks>

View File

@@ -16,13 +16,13 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
{ {
/// <summary> /// <summary>
/// absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server. <br/> /// absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server.<br/>
/// ///
/// <remarks> /// <remarks>
/// If the `path` argument is a directory, that path will be scanned for playlist files to be processed. <br/> /// If the `path` argument is a directory, that path will be scanned for playlist files to be processed.<br/>
/// Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it. <br/> /// Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it.<br/>
/// The GUID of each playlist is based on the filename. <br/> /// The GUID of each playlist is based on the filename.<br/>
/// If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it. <br/> /// If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it.<br/>
/// The GUID of each playlist is based on the filename.<br/> /// The GUID of each playlist is based on the filename.<br/>
/// ///
/// </remarks> /// </remarks>
@@ -31,11 +31,11 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
public string Path { get; set; } = default!; public string Path { get; set; } = default!;
/// <summary> /// <summary>
/// Force overwriting of duplicate playlists. <br/> /// Force overwriting of duplicate playlists.<br/>
/// ///
/// <remarks> /// <remarks>
/// By default, a playlist file uploaded with the same path will overwrite the existing playlist. <br/> /// By default, a playlist file uploaded with the same path will overwrite the existing playlist.<br/>
/// The `force` argument is used to disable overwriting. <br/> /// The `force` argument is used to disable overwriting.<br/>
/// If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.<br/> /// If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.<br/>
/// ///
/// </remarks> /// </remarks>

View File

@@ -23,11 +23,11 @@ namespace LukeHagar.PlexAPI.SDK
using System.Threading.Tasks; using System.Threading.Tasks;
/// <summary> /// <summary>
/// Playlists are ordered collections of media. They can be dumb (just a list of media) or smart (based on a media query, such as &quot;all albums from 2017&quot;). <br/> /// Playlists are ordered collections of media. They can be dumb (just a list of media) or smart (based on a media query, such as &quot;all albums from 2017&quot;).<br/>
/// ///
/// <remarks> /// <remarks>
/// They can be organized in (optionally nesting) folders.<br/> /// They can be organized in (optionally nesting) folders.<br/>
/// Retrieving a playlist, or its items, will trigger a refresh of its metadata. <br/> /// Retrieving a playlist, or its items, will trigger a refresh of its metadata.<br/>
/// This may cause the duration and number of items to change.<br/> /// This may cause the duration and number of items to change.<br/>
/// ///
/// </remarks> /// </remarks>
@@ -133,11 +133,11 @@ namespace LukeHagar.PlexAPI.SDK
} }
/// <summary> /// <summary>
/// Playlists are ordered collections of media. They can be dumb (just a list of media) or smart (based on a media query, such as &quot;all albums from 2017&quot;). <br/> /// Playlists are ordered collections of media. They can be dumb (just a list of media) or smart (based on a media query, such as &quot;all albums from 2017&quot;).<br/>
/// ///
/// <remarks> /// <remarks>
/// They can be organized in (optionally nesting) folders.<br/> /// They can be organized in (optionally nesting) folders.<br/>
/// Retrieving a playlist, or its items, will trigger a refresh of its metadata. <br/> /// Retrieving a playlist, or its items, will trigger a refresh of its metadata.<br/>
/// This may cause the duration and number of items to change.<br/> /// This may cause the duration and number of items to change.<br/>
/// ///
/// </remarks> /// </remarks>
@@ -146,10 +146,10 @@ namespace LukeHagar.PlexAPI.SDK
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.14.2"; private const string _sdkVersion = "0.14.9";
private const string _sdkGenVersion = "2.545.4"; private const string _sdkGenVersion = "2.566.5";
private const string _openapiDocVersion = "0.0.3"; private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.14.2 2.545.4 0.0.3 LukeHagar.PlexAPI.SDK"; private const string _userAgent = "speakeasy-sdk/csharp 0.14.9 2.566.5 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource; private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;
@@ -175,7 +175,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("createPlaylist", null, _securitySource); var hookCtx = new HookContext(baseUrl, "createPlaylist", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -280,7 +280,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getPlaylists", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getPlaylists", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -384,7 +384,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getPlaylist", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getPlaylist", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -488,7 +488,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("deletePlaylist", null, _securitySource); var hookCtx = new HookContext(baseUrl, "deletePlaylist", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -586,7 +586,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("updatePlaylist", null, _securitySource); var hookCtx = new HookContext(baseUrl, "updatePlaylist", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -683,7 +683,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getPlaylistContents", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getPlaylistContents", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -787,7 +787,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("clearPlaylistContents", null, _securitySource); var hookCtx = new HookContext(baseUrl, "clearPlaylistContents", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -885,7 +885,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("addPlaylistContents", null, _securitySource); var hookCtx = new HookContext(baseUrl, "addPlaylistContents", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -991,7 +991,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("uploadPlaylist", null, _securitySource); var hookCtx = new HookContext(baseUrl, "uploadPlaylist", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);

View File

@@ -143,10 +143,10 @@ namespace LukeHagar.PlexAPI.SDK
}; };
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.14.2"; private const string _sdkVersion = "0.14.9";
private const string _sdkGenVersion = "2.545.4"; private const string _sdkGenVersion = "2.566.5";
private const string _openapiDocVersion = "0.0.3"; private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.14.2 2.545.4 0.0.3 LukeHagar.PlexAPI.SDK"; private const string _userAgent = "speakeasy-sdk/csharp 0.14.9 2.566.5 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource; private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;
@@ -178,7 +178,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getCompanionsData", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getCompanionsData", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -284,7 +284,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getUserFriends", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getUserFriends", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -385,7 +385,7 @@ namespace LukeHagar.PlexAPI.SDK
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString); var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
httpRequest.Headers.Add("user-agent", _userAgent); httpRequest.Headers.Add("user-agent", _userAgent);
var hookCtx = new HookContext("getGeoData", null, null); var hookCtx = new HookContext(baseUrl, "getGeoData", new List<string> { }, null);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -486,7 +486,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getHomeData", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getHomeData", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -599,7 +599,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("get-server-resources", null, _securitySource); var hookCtx = new HookContext(baseUrl, "get-server-resources", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -700,7 +700,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest.Headers.Add("user-agent", _userAgent); httpRequest.Headers.Add("user-agent", _userAgent);
HeaderSerializer.PopulateHeaders(ref httpRequest, request); HeaderSerializer.PopulateHeaders(ref httpRequest, request);
var hookCtx = new HookContext("getPin", null, null); var hookCtx = new HookContext(baseUrl, "getPin", new List<string> { }, null);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -790,7 +790,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest.Headers.Add("user-agent", _userAgent); httpRequest.Headers.Add("user-agent", _userAgent);
HeaderSerializer.PopulateHeaders(ref httpRequest, request); HeaderSerializer.PopulateHeaders(ref httpRequest, request);
var hookCtx = new HookContext("getTokenByPinId", null, null); var hookCtx = new HookContext(baseUrl, "getTokenByPinId", new List<string> { }, null);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);

View File

@@ -205,11 +205,11 @@ namespace LukeHagar.PlexAPI.SDK
public ILog Log { get; } public ILog Log { get; }
/// <summary> /// <summary>
/// Playlists are ordered collections of media. They can be dumb (just a list of media) or smart (based on a media query, such as &quot;all albums from 2017&quot;). <br/> /// Playlists are ordered collections of media. They can be dumb (just a list of media) or smart (based on a media query, such as &quot;all albums from 2017&quot;).<br/>
/// ///
/// <remarks> /// <remarks>
/// They can be organized in (optionally nesting) folders.<br/> /// They can be organized in (optionally nesting) folders.<br/>
/// Retrieving a playlist, or its items, will trigger a refresh of its metadata. <br/> /// Retrieving a playlist, or its items, will trigger a refresh of its metadata.<br/>
/// This may cause the duration and number of items to change.<br/> /// This may cause the duration and number of items to change.<br/>
/// ///
/// </remarks> /// </remarks>
@@ -327,10 +327,10 @@ namespace LukeHagar.PlexAPI.SDK
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.14.2"; private const string _sdkVersion = "0.14.9";
private const string _sdkGenVersion = "2.545.4"; private const string _sdkGenVersion = "2.566.5";
private const string _openapiDocVersion = "0.0.3"; private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.14.2 2.545.4 0.0.3 LukeHagar.PlexAPI.SDK"; private const string _userAgent = "speakeasy-sdk/csharp 0.14.9 2.566.5 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = ""; private string _serverUrl = "";
private int _serverIndex = 0; private int _serverIndex = 0;
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;

View File

@@ -87,10 +87,10 @@ namespace LukeHagar.PlexAPI.SDK
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.14.2"; private const string _sdkVersion = "0.14.9";
private const string _sdkGenVersion = "2.545.4"; private const string _sdkGenVersion = "2.566.5";
private const string _openapiDocVersion = "0.0.3"; private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.14.2 2.545.4 0.0.3 LukeHagar.PlexAPI.SDK"; private const string _userAgent = "speakeasy-sdk/csharp 0.14.9 2.566.5 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource; private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;
@@ -122,7 +122,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("performSearch", null, _securitySource); var hookCtx = new HookContext(baseUrl, "performSearch", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -220,7 +220,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("performVoiceSearch", null, _securitySource); var hookCtx = new HookContext(baseUrl, "performVoiceSearch", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -316,7 +316,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getSearchResults", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getSearchResults", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);

View File

@@ -126,10 +126,10 @@ namespace LukeHagar.PlexAPI.SDK
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.14.2"; private const string _sdkVersion = "0.14.9";
private const string _sdkGenVersion = "2.545.4"; private const string _sdkGenVersion = "2.566.5";
private const string _openapiDocVersion = "0.0.3"; private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.14.2 2.545.4 0.0.3 LukeHagar.PlexAPI.SDK"; private const string _userAgent = "speakeasy-sdk/csharp 0.14.9 2.566.5 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource; private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;
@@ -156,7 +156,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getServerCapabilities", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getServerCapabilities", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -257,7 +257,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getServerPreferences", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getServerPreferences", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -358,7 +358,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getAvailableClients", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getAvailableClients", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -459,7 +459,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getDevices", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getDevices", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -555,7 +555,7 @@ namespace LukeHagar.PlexAPI.SDK
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString); var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
httpRequest.Headers.Add("user-agent", _userAgent); httpRequest.Headers.Add("user-agent", _userAgent);
var hookCtx = new HookContext("get-server-identity", null, null); var hookCtx = new HookContext(baseUrl, "get-server-identity", new List<string> { }, null);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -645,7 +645,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getMyPlexAccount", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getMyPlexAccount", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -745,7 +745,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getResizedPhoto", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getResizedPhoto", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -843,7 +843,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("get-media-providers", null, _securitySource); var hookCtx = new HookContext(baseUrl, "get-media-providers", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -944,7 +944,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getServerList", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getServerList", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);

View File

@@ -80,10 +80,10 @@ namespace LukeHagar.PlexAPI.SDK
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.14.2"; private const string _sdkVersion = "0.14.9";
private const string _sdkGenVersion = "2.545.4"; private const string _sdkGenVersion = "2.566.5";
private const string _openapiDocVersion = "0.0.3"; private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.14.2 2.545.4 0.0.3 LukeHagar.PlexAPI.SDK"; private const string _userAgent = "speakeasy-sdk/csharp 0.14.9 2.566.5 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource; private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;
@@ -110,7 +110,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getSessions", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getSessions", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -217,7 +217,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getSessionHistory", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getSessionHistory", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -318,7 +318,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getTranscodeSessions", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getTranscodeSessions", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -422,7 +422,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("stopTranscodeSession", null, _securitySource); var hookCtx = new HookContext(baseUrl, "stopTranscodeSession", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);

View File

@@ -71,10 +71,10 @@ namespace LukeHagar.PlexAPI.SDK
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.14.2"; private const string _sdkVersion = "0.14.9";
private const string _sdkGenVersion = "2.545.4"; private const string _sdkGenVersion = "2.566.5";
private const string _openapiDocVersion = "0.0.3"; private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.14.2 2.545.4 0.0.3 LukeHagar.PlexAPI.SDK"; private const string _userAgent = "speakeasy-sdk/csharp 0.14.9 2.566.5 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource; private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;
@@ -104,7 +104,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getStatistics", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getStatistics", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -208,7 +208,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getResourcesStatistics", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getResourcesStatistics", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -312,7 +312,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getBandwidthStatistics", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getBandwidthStatistics", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);

View File

@@ -74,10 +74,10 @@ namespace LukeHagar.PlexAPI.SDK
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.14.2"; private const string _sdkVersion = "0.14.9";
private const string _sdkGenVersion = "2.545.4"; private const string _sdkGenVersion = "2.566.5";
private const string _openapiDocVersion = "0.0.3"; private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.14.2 2.545.4 0.0.3 LukeHagar.PlexAPI.SDK"; private const string _userAgent = "speakeasy-sdk/csharp 0.14.9 2.566.5 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource; private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;
@@ -104,7 +104,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getUpdateStatus", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getUpdateStatus", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -208,7 +208,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("checkForUpdates", null, _securitySource); var hookCtx = new HookContext(baseUrl, "checkForUpdates", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -305,7 +305,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("applyUpdates", null, _securitySource); var hookCtx = new HookContext(baseUrl, "applyUpdates", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);

View File

@@ -45,10 +45,10 @@ namespace LukeHagar.PlexAPI.SDK
}; };
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.14.2"; private const string _sdkVersion = "0.14.9";
private const string _sdkGenVersion = "2.545.4"; private const string _sdkGenVersion = "2.566.5";
private const string _openapiDocVersion = "0.0.3"; private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.14.2 2.545.4 0.0.3 LukeHagar.PlexAPI.SDK"; private const string _userAgent = "speakeasy-sdk/csharp 0.14.9 2.566.5 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource; private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;
@@ -76,7 +76,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest.Headers.Add("user-agent", _userAgent); httpRequest.Headers.Add("user-agent", _userAgent);
HeaderSerializer.PopulateHeaders(ref httpRequest, request); HeaderSerializer.PopulateHeaders(ref httpRequest, request);
var hookCtx = new HookContext("get-users", null, null); var hookCtx = new HookContext(baseUrl, "get-users", new List<string> { }, null);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);

View File

@@ -62,10 +62,10 @@ namespace LukeHagar.PlexAPI.SDK
{ {
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.14.2"; private const string _sdkVersion = "0.14.9";
private const string _sdkGenVersion = "2.545.4"; private const string _sdkGenVersion = "2.566.5";
private const string _openapiDocVersion = "0.0.3"; private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.14.2 2.545.4 0.0.3 LukeHagar.PlexAPI.SDK"; private const string _userAgent = "speakeasy-sdk/csharp 0.14.9 2.566.5 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource; private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;
@@ -91,7 +91,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("getTimeline", null, _securitySource); var hookCtx = new HookContext(baseUrl, "getTimeline", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -183,7 +183,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("startUniversalTranscode", null, _securitySource); var hookCtx = new HookContext(baseUrl, "startUniversalTranscode", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);

View File

@@ -59,10 +59,10 @@ namespace LukeHagar.PlexAPI.SDK
}; };
public SDKConfig SDKConfiguration { get; private set; } public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp"; private const string _language = "csharp";
private const string _sdkVersion = "0.14.2"; private const string _sdkVersion = "0.14.9";
private const string _sdkGenVersion = "2.545.4"; private const string _sdkGenVersion = "2.566.5";
private const string _openapiDocVersion = "0.0.3"; private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.14.2 2.545.4 0.0.3 LukeHagar.PlexAPI.SDK"; private const string _userAgent = "speakeasy-sdk/csharp 0.14.9 2.566.5 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = ""; private string _serverUrl = "";
private ISpeakeasyHttpClient _client; private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource; private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;
@@ -94,7 +94,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest); httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
} }
var hookCtx = new HookContext("get-watch-list", null, _securitySource); var hookCtx = new HookContext(baseUrl, "get-watch-list", new List<string> { }, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest); httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);

View File

@@ -105,7 +105,7 @@ catch (Exception ex)
### Server Variables ### Server Variables
The default server `https://10.10.10.47:32400` contains variables and is set to `https://10.10.10.47:32400` by default. To override default values, the following parameters are available when initializing the SDK client instance: The default server `{protocol}://{ip}:{port}` contains variables and is set to `https://10.10.10.47:32400` by default. To override default values, the following parameters are available when initializing the SDK client instance:
| Variable | Parameter | Supported Values | Default | Description | | Variable | Parameter | Supported Values | Default | Description |
| ---------- | ------------------------------------------------------- | -------------------------- | --------------- | ---------------------------------------------- | | ---------- | ------------------------------------------------------- | -------------------------- | --------------- | ---------------------------------------------- |

View File

@@ -90,6 +90,10 @@ var res = await sdk.Server.GetServerCapabilitiesAsync();
* [GetActorsLibrary](docs/sdks/library/README.md#getactorslibrary) - Get Actors of library media * [GetActorsLibrary](docs/sdks/library/README.md#getactorslibrary) - Get Actors of library media
* [GetSearchAllLibraries](docs/sdks/library/README.md#getsearchalllibraries) - Search All Libraries * [GetSearchAllLibraries](docs/sdks/library/README.md#getsearchalllibraries) - Search All Libraries
* [GetMediaMetaData](docs/sdks/library/README.md#getmediametadata) - Get Media Metadata * [GetMediaMetaData](docs/sdks/library/README.md#getmediametadata) - Get Media Metadata
* [GetMediaArts](docs/sdks/library/README.md#getmediaarts) - Get Media Background Artwork
* [PostMediaArts](docs/sdks/library/README.md#postmediaarts) - Upload Media Background Artwork
* [GetMediaPosters](docs/sdks/library/README.md#getmediaposters) - Get Media Posters
* [PostMediaPoster](docs/sdks/library/README.md#postmediaposter) - Upload Media Poster
* [GetMetadataChildren](docs/sdks/library/README.md#getmetadatachildren) - Get Items Children * [GetMetadataChildren](docs/sdks/library/README.md#getmetadatachildren) - Get Items Children
* [GetTopWatchedContent](docs/sdks/library/README.md#gettopwatchedcontent) - Get Top Watched Content * [GetTopWatchedContent](docs/sdks/library/README.md#gettopwatchedcontent) - Get Top Watched Content
@@ -188,7 +192,7 @@ var res = await sdk.Server.GetServerCapabilitiesAsync();
### Server Variables ### Server Variables
The default server `{protocol}://{ip}:{port}` contains variables and is set to `https://10.10.10.47:32400` by default. To override default values, the following parameters are available when initializing the SDK client instance: The default server `https://10.10.10.47:32400` contains variables and is set to `https://10.10.10.47:32400` by default. To override default values, the following parameters are available when initializing the SDK client instance:
| Variable | Parameter | Supported Values | Default | Description | | Variable | Parameter | Supported Values | Default | Description |
| ---------- | ------------------------------------------------------- | -------------------------- | --------------- | ---------------------------------------------- | | ---------- | ------------------------------------------------------- | -------------------------- | --------------- | ---------------------------------------------- |

View File

@@ -514,4 +514,54 @@ Based on:
### Generated ### Generated
- [csharp v0.14.2] . - [csharp v0.14.2] .
### Releases ### Releases
- [NuGet v0.14.2] https://www.nuget.org/packages/LukeHagar.PlexAPI.SDK/0.14.2 - . - [NuGet v0.14.2] https://www.nuget.org/packages/LukeHagar.PlexAPI.SDK/0.14.2 - .
## 2025-03-31 17:07:12
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.526.6 (2.563.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [csharp v0.14.3] .
### Releases
- [NuGet v0.14.3] https://www.nuget.org/packages/LukeHagar.PlexAPI.SDK/0.14.3 - .
## 2025-04-03 00:22:25
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.528.1 (2.565.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [csharp v0.14.4] .
### Releases
- [NuGet v0.14.4] https://www.nuget.org/packages/LukeHagar.PlexAPI.SDK/0.14.4 - .
## 2025-04-06 00:24:32
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.529.1 (2.566.5) https://github.com/speakeasy-api/speakeasy
### Generated
- [csharp v0.14.5] .
### Releases
- [NuGet v0.14.5] https://www.nuget.org/packages/LukeHagar.PlexAPI.SDK/0.14.5 - .
## 2025-04-14 00:24:43
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.529.1 (2.566.5) https://github.com/speakeasy-api/speakeasy
### Generated
- [csharp v0.14.7] .
### Releases
- [NuGet v0.14.7] https://www.nuget.org/packages/LukeHagar.PlexAPI.SDK/0.14.7 - .
## 2025-04-19 00:22:04
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.529.1 (2.566.5) https://github.com/speakeasy-api/speakeasy
### Generated
- [csharp v0.14.9] .
### Releases
- [NuGet v0.14.9] https://www.nuget.org/packages/LukeHagar.PlexAPI.SDK/0.14.9 - .

View File

@@ -7,7 +7,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getServerCapabilities label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -21,7 +21,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getServerPreferences label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -35,7 +35,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: updatePlayProgress label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -53,7 +53,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: markPlayed label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -67,7 +67,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getTimeline label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -95,7 +95,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: markUnplayed label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -109,7 +109,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getServerActivities label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -123,7 +123,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: cancelServerActivities label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -137,7 +137,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: stopAllTasks label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -151,7 +151,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getButlerTasks label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -165,7 +165,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: startAllTasks label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -179,7 +179,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: stopTask label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -194,7 +194,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: startTask label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -209,7 +209,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getAvailableClients label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -223,7 +223,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getCompanionsData label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -237,7 +237,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getDevices label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -251,7 +251,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getUserFriends label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -265,7 +265,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getGeoData label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
@@ -278,7 +278,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getHomeData label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -292,7 +292,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getGlobalHubs label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -310,7 +310,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: get-recently-added label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -331,7 +331,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: performSearch label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -349,7 +349,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: performVoiceSearch label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -367,7 +367,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getLibraryHubs label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -386,7 +386,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: get-server-identity label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
@@ -399,7 +399,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getTopWatchedContent label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -417,7 +417,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getFileHash label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -434,7 +434,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: get-media-meta-data label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -461,12 +461,45 @@ actions:
var res = await sdk.Library.GetMediaMetaDataAsync(req); var res = await sdk.Library.GetMediaMetaDataAsync(req);
// handle response
- target: $["paths"]["/library/metadata/{ratingKey}/arts"]["get"]
update:
x-codeSamples:
- lang: csharp
label: PlexCSharp
source: |-
using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components;
var sdk = new PlexAPI(accessToken: "<YOUR_API_KEY_HERE>");
var res = await sdk.Library.GetMediaArtsAsync(ratingKey: 16099);
// handle response
- target: $["paths"]["/library/metadata/{ratingKey}/arts"]["post"]
update:
x-codeSamples:
- lang: csharp
label: PlexCSharp
source: |-
using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components;
using System;
var sdk = new PlexAPI(accessToken: "<YOUR_API_KEY_HERE>");
var res = await sdk.Library.PostMediaArtsAsync(
ratingKey: 2268,
url: "https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b",
requestBody: System.Text.Encoding.UTF8.GetBytes("0xee51EFC6De")
);
// handle response // handle response
- target: $["paths"]["/library/metadata/{ratingKey}/banner"]["get"] - target: $["paths"]["/library/metadata/{ratingKey}/banner"]["get"]
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: get-banner-image label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -490,7 +523,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getMetadataChildren label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -502,12 +535,45 @@ actions:
includeElements: "<value>" includeElements: "<value>"
); );
// handle response
- target: $["paths"]["/library/metadata/{ratingKey}/posters"]["get"]
update:
x-codeSamples:
- lang: csharp
label: PlexCSharp
source: |-
using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components;
var sdk = new PlexAPI(accessToken: "<YOUR_API_KEY_HERE>");
var res = await sdk.Library.GetMediaPostersAsync(ratingKey: 16099);
// handle response
- target: $["paths"]["/library/metadata/{ratingKey}/posters"]["post"]
update:
x-codeSamples:
- lang: csharp
label: PlexCSharp
source: |-
using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components;
using System;
var sdk = new PlexAPI(accessToken: "<YOUR_API_KEY_HERE>");
var res = await sdk.Library.PostMediaPosterAsync(
ratingKey: 2268,
url: "https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b",
requestBody: System.Text.Encoding.UTF8.GetBytes("0x7C3d45ad4B")
);
// handle response // handle response
- target: $["paths"]["/library/metadata/{ratingKey}/thumb"]["get"] - target: $["paths"]["/library/metadata/{ratingKey}/thumb"]["get"]
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: get-thumb-image label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -531,7 +597,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: get-recently-added-library label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -567,7 +633,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: get-search-all-libraries label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -591,7 +657,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: get-all-libraries label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -605,7 +671,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: get-watch-list label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -625,7 +691,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: deleteLibrary label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -639,7 +705,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: get-library-details label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -657,7 +723,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: get-actors-library label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -675,7 +741,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: get-all-media-library label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -695,7 +761,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: get-countries-library label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -713,7 +779,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: get-genres-library label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -731,7 +797,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: get-refresh-library-metadata label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -749,7 +815,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: get-search-library label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -767,7 +833,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: get-library-items label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -788,7 +854,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: logLine label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -807,7 +873,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: logMultiLine label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -825,7 +891,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: enablePaperTrail label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -839,7 +905,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: get-media-providers label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -853,7 +919,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getMyPlexAccount label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -867,7 +933,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getResizedPhoto label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -892,7 +958,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getPin label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Requests; using LukeHagar.PlexAPI.SDK.Models.Requests;
@@ -914,7 +980,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getTokenByPinId label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Requests; using LukeHagar.PlexAPI.SDK.Models.Requests;
@@ -937,7 +1003,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getPlaylists label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -955,7 +1021,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: createPlaylist label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -977,7 +1043,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: uploadPlaylist label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -996,7 +1062,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: deletePlaylist label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -1010,7 +1076,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getPlaylist label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -1024,7 +1090,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: updatePlaylist label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -1042,7 +1108,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: clearPlaylistContents label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -1056,7 +1122,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getPlaylistContents label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -1074,7 +1140,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: addPlaylistContents label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -1092,7 +1158,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: get-server-resources label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -1112,7 +1178,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getSearchResults label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -1126,7 +1192,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getSourceConnectionInformation label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -1140,7 +1206,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getTransientToken label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -1158,7 +1224,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getServerList label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -1172,7 +1238,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getBandwidthStatistics label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -1186,7 +1252,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getStatistics label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -1200,7 +1266,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getResourcesStatistics label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -1214,7 +1280,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getSessions label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -1228,7 +1294,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getSessionHistory label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -1248,7 +1314,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getTranscodeSessions label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -1262,7 +1328,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: stopTranscodeSession label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -1276,7 +1342,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: applyUpdates label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -1294,7 +1360,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: checkForUpdates label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -1309,7 +1375,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getUpdateStatus label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -1323,7 +1389,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: getTokenDetails label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;
@@ -1337,7 +1403,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: get-users label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Requests; using LukeHagar.PlexAPI.SDK.Models.Requests;
@@ -1367,7 +1433,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: post-users-sign-in-data label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Requests; using LukeHagar.PlexAPI.SDK.Models.Requests;
@@ -1394,7 +1460,7 @@ actions:
update: update:
x-codeSamples: x-codeSamples:
- lang: csharp - lang: csharp
label: startUniversalTranscode label: PlexCSharp
source: |- source: |-
using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Components;

View File

@@ -3,26 +3,26 @@
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `AllowSync` | *bool* | :heavy_check_mark: | N/A | true | | `AllowSync` | *bool* | :heavy_check_mark: | Indicates whether syncing is allowed. | false |
| `Art` | *string* | :heavy_check_mark: | N/A | /:/resources/movie-fanart.jpg | | `Art` | *string* | :heavy_check_mark: | URL for the background artwork of the media container. | /:/resources/show-fanart.jpg |
| `Composite` | *string* | :heavy_check_mark: | N/A | /library/sections/1/composite/1705615584 | | `Composite` | *string* | :heavy_check_mark: | The relative path to the composite media item. | /library/sections/1/composite/1743824484 |
| `Filters` | *bool* | :heavy_check_mark: | N/A | true | | `Filters` | *bool* | :heavy_check_mark: | UNKNOWN | true |
| `Refreshing` | *bool* | :heavy_check_mark: | N/A | false | | `Refreshing` | *bool* | :heavy_check_mark: | Indicates whether the library is currently being refreshed or updated | true |
| `Thumb` | *string* | :heavy_check_mark: | N/A | /:/resources/movie.png | | `Thumb` | *string* | :heavy_check_mark: | URL for the thumbnail image of the media container. | /:/resources/show.png |
| `Key` | *string* | :heavy_check_mark: | N/A | 1 | | `Key` | *string* | :heavy_check_mark: | The library key representing the unique identifier | 1 |
| `Type` | *string* | :heavy_check_mark: | N/A | movie | | `Type` | [GetAllLibrariesType](../../Models/Requests/GetAllLibrariesType.md) | :heavy_check_mark: | N/A | movie |
| `Title` | *string* | :heavy_check_mark: | N/A | Movies | | `Title` | *string* | :heavy_check_mark: | The title of the library | Movies |
| `Agent` | *string* | :heavy_check_mark: | N/A | tv.plex.agents.movie | | `Agent` | *string* | :heavy_check_mark: | The Plex agent used to match and retrieve media metadata. | tv.plex.agents.movie |
| `Scanner` | *string* | :heavy_check_mark: | N/A | Plex Movie | | `Scanner` | *string* | :heavy_check_mark: | UNKNOWN | Plex Movie |
| `Language` | *string* | :heavy_check_mark: | N/A | en-US | | `Language` | *string* | :heavy_check_mark: | The Plex library language that has been set | en-US |
| `Uuid` | *string* | :heavy_check_mark: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 | | `Uuid` | *string* | :heavy_check_mark: | The universally unique identifier for the library. | e69655a2-ef48-4aba-bb19-01e7d3cc34d6 |
| `UpdatedAt` | *long* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 | | `UpdatedAt` | *long* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 |
| `CreatedAt` | *long* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 | | `CreatedAt` | *long* | :heavy_minus_sign: | N/A | 1556281940 |
| `ScannedAt` | *long* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 | | `ScannedAt` | *long* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 |
| `Content` | *bool* | :heavy_check_mark: | N/A | true | | `Content` | *bool* | :heavy_check_mark: | UNKNOWN | true |
| `Directory` | *bool* | :heavy_check_mark: | N/A | true | | `Directory` | *bool* | :heavy_check_mark: | UNKNOWN | true |
| `ContentChangedAt` | *long* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 | | `ContentChangedAt` | *long* | :heavy_check_mark: | Timestamp (in seconds) representing the last time the content was modified.<br/>NOTE: Some Plex server have some absurd values for this field, like 8457612157633039800 so it should be int64<br/> | 9173960 |
| `Hidden` | *int* | :heavy_check_mark: | N/A | 0 | | `Hidden` | [Hidden](../../Models/Requests/Hidden.md) | :heavy_minus_sign: | N/A | 1 |
| `Location` | List<[GetAllLibrariesLocation](../../Models/Requests/GetAllLibrariesLocation.md)> | :heavy_check_mark: | N/A | | | `Location` | List<[GetAllLibrariesLocation](../../Models/Requests/GetAllLibrariesLocation.md)> | :heavy_check_mark: | N/A | |

View File

@@ -3,7 +3,7 @@
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | | --------------------------- | --------------------------- | --------------------------- | --------------------------- | --------------------------- |
| `Id` | *int* | :heavy_check_mark: | N/A | 1 | | `Id` | *int* | :heavy_check_mark: | The ID of the location. | 1 |
| `Path` | *string* | :heavy_check_mark: | N/A | /movies | | `Path` | *string* | :heavy_check_mark: | The path to the media item. | /Movies |

View File

@@ -5,7 +5,7 @@
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| `Size` | *int* | :heavy_check_mark: | N/A | 5 | | `Size` | *int* | :heavy_check_mark: | Number of media items returned in this response. | 50 |
| `AllowSync` | *bool* | :heavy_check_mark: | N/A | false | | `AllowSync` | *bool* | :heavy_check_mark: | Indicates whether syncing is allowed. | false |
| `Title1` | *string* | :heavy_check_mark: | N/A | Plex Library | | `Title1` | *string* | :heavy_check_mark: | The primary title of the media container. | TV Series |
| `Directory` | List<[GetAllLibrariesDirectory](../../Models/Requests/GetAllLibrariesDirectory.md)> | :heavy_check_mark: | N/A | | | `Directory` | List<[GetAllLibrariesDirectory](../../Models/Requests/GetAllLibrariesDirectory.md)> | :heavy_minus_sign: | N/A | |

View File

@@ -7,4 +7,4 @@ The libraries available on the Server
| Field | Type | Required | Description | | Field | Type | Required | Description |
| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| `MediaContainer` | [GetAllLibrariesMediaContainer](../../Models/Requests/GetAllLibrariesMediaContainer.md) | :heavy_check_mark: | N/A | | `MediaContainer` | [GetAllLibrariesMediaContainer](../../Models/Requests/GetAllLibrariesMediaContainer.md) | :heavy_minus_sign: | N/A |

View File

@@ -0,0 +1,15 @@
# GetAllLibrariesType
The library type
## Values
| Name | Value |
| --------- | --------- |
| `Movie` | movie |
| `TvShow` | show |
| `Season` | season |
| `Episode` | episode |
| `Artist` | artist |
| `Album` | album |

View File

@@ -3,7 +3,7 @@
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SectionKey` | *int* | :heavy_check_mark: | The unique key of the Plex library. <br/>Note: This is unique in the context of the Plex server.<br/> | 9518 | | `IncludeDetails` | [IncludeDetails](../../Models/Requests/IncludeDetails.md) | :heavy_minus_sign: | Whether or not to include details for a section (types, filters, and sorts).<br/>Only exists for backwards compatibility, media providers other than the server libraries have it on always.<br/> | |
| `IncludeDetails` | [IncludeDetails](../../Models/Requests/IncludeDetails.md) | :heavy_minus_sign: | Whether or not to include details for a section (types, filters, and sorts). <br/>Only exists for backwards compatibility, media providers other than the server libraries have it on always.<br/> | | | `SectionKey` | *int* | :heavy_check_mark: | The unique key of the Plex library. <br/>Note: This is unique in the context of the Plex server.<br/> | 9518 |

View File

@@ -0,0 +1,12 @@
# GetMediaArtsMediaContainer
## Fields
| Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| `Size` | *int* | :heavy_check_mark: | Number of media items returned in this response. | 50 |
| `MediaTagVersion` | *long* | :heavy_check_mark: | The version number for media tags. | 1734362201 |
| `MediaTagPrefix` | *string* | :heavy_check_mark: | The prefix used for media tag resource paths. | /system/bundle/media/flags/ |
| `Identifier` | *string* | :heavy_check_mark: | An plugin identifier for the media container. | com.plexapp.plugins.library |
| `Metadata` | List<[GetMediaArtsMetadata](../../Models/Requests/GetMediaArtsMetadata.md)> | :heavy_check_mark: | N/A | |

View File

@@ -0,0 +1,12 @@
# GetMediaArtsMetadata
## Fields
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Key` | *string* | :heavy_check_mark: | The URL of the artwork. | https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg |
| `Provider` | *string* | :heavy_minus_sign: | The provider of the artwork. | tmdb |
| `RatingKey` | *string* | :heavy_check_mark: | The URL of the artwork. | https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg |
| `Selected` | *bool* | :heavy_check_mark: | Whether this is the selected artwork. | true |
| `Thumb` | *string* | :heavy_check_mark: | The URL of the artwork thumbnail. | https://images.plex.tv/photo?height=270&width=480&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FixgFmf1X59PUZam2qbAfskx2gQr%2Ejpg |

View File

@@ -0,0 +1,8 @@
# GetMediaArtsRequest
## Fields
| Field | Type | Required | Description | Example |
| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- |
| `RatingKey` | *long* | :heavy_check_mark: | the id of the library item to return the artwork of. | 16099 |

View File

@@ -0,0 +1,11 @@
# GetMediaArtsResponse
## Fields
| Field | Type | Required | Description |
| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation |
| `RawResponse` | [HttpResponseMessage](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpresponsemessage?view=net-5.0) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
| `Object` | [GetMediaArtsResponseBody](../../Models/Requests/GetMediaArtsResponseBody.md) | :heavy_minus_sign: | The available background artwork for the library item. |

View File

@@ -0,0 +1,10 @@
# GetMediaArtsResponseBody
The available background artwork for the library item.
## Fields
| Field | Type | Required | Description |
| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| `MediaContainer` | [GetMediaArtsMediaContainer](../../Models/Requests/GetMediaArtsMediaContainer.md) | :heavy_minus_sign: | N/A |

View File

@@ -0,0 +1,12 @@
# GetMediaPostersMediaContainer
## Fields
| Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| `Size` | *int* | :heavy_check_mark: | Number of media items returned in this response. | 50 |
| `MediaTagVersion` | *long* | :heavy_check_mark: | The version number for media tags. | 1734362201 |
| `MediaTagPrefix` | *string* | :heavy_check_mark: | The prefix used for media tag resource paths. | /system/bundle/media/flags/ |
| `Identifier` | *string* | :heavy_check_mark: | An plugin identifier for the media container. | com.plexapp.plugins.library |
| `Metadata` | List<[GetMediaPostersMetadata](../../Models/Requests/GetMediaPostersMetadata.md)> | :heavy_check_mark: | N/A | |

View File

@@ -0,0 +1,12 @@
# GetMediaPostersMetadata
## Fields
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Key` | *string* | :heavy_check_mark: | The URL of the poster. | https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg |
| `Provider` | *string* | :heavy_minus_sign: | The provider of the poster. | tmdb |
| `RatingKey` | *string* | :heavy_check_mark: | The URL of the poster. | https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg |
| `Selected` | *bool* | :heavy_check_mark: | Whether this is the selected poster. | true |
| `Thumb` | *string* | :heavy_check_mark: | The URL of the poster thumbnail. | https://images.plex.tv/photo?height=336&width=225&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FhntBJjqbv4m0Iyniqaztv9xaudI%2Ejpg |

View File

@@ -0,0 +1,8 @@
# GetMediaPostersRequest
## Fields
| Field | Type | Required | Description | Example |
| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- |
| `RatingKey` | *long* | :heavy_check_mark: | the id of the library item to return the posters of. | 16099 |

View File

@@ -0,0 +1,11 @@
# GetMediaPostersResponse
## Fields
| Field | Type | Required | Description |
| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation |
| `RawResponse` | [HttpResponseMessage](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpresponsemessage?view=net-5.0) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
| `Object` | [GetMediaPostersResponseBody](../../Models/Requests/GetMediaPostersResponseBody.md) | :heavy_minus_sign: | The available posters for the library item. |

View File

@@ -0,0 +1,10 @@
# GetMediaPostersResponseBody
The available posters for the library item.
## Fields
| Field | Type | Required | Description |
| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| `MediaContainer` | [GetMediaPostersMediaContainer](../../Models/Requests/GetMediaPostersMediaContainer.md) | :heavy_minus_sign: | N/A |

View File

@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
| `SectionKey` | *int* | :heavy_check_mark: | The unique key of the Plex library. <br/>Note: This is unique in the context of the Plex server.<br/> | 9518 | | `Force` | [Force](../../Models/Requests/Force.md) | :heavy_minus_sign: | Force the refresh even if the library is already being refreshed. | 0 |
| `Force` | [Force](../../Models/Requests/Force.md) | :heavy_minus_sign: | Force the refresh even if the library is already being refreshed. | 0 | | `SectionKey` | *int* | :heavy_check_mark: | The unique key of the Plex library. <br/>Note: This is unique in the context of the Plex server.<br/> | 9518 |

View File

@@ -5,7 +5,7 @@
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ |
| `ClientID` | *string* | :heavy_check_mark: | An opaque identifier unique to the client (UUID, serial number, or other unique device ID) | 3381b62b-9ab7-4e37-827b-203e9809eb58 |
| `IncludeHttps` | [IncludeHttps](../../Models/Requests/IncludeHttps.md) | :heavy_minus_sign: | Include Https entries in the results | 1 | | `IncludeHttps` | [IncludeHttps](../../Models/Requests/IncludeHttps.md) | :heavy_minus_sign: | Include Https entries in the results | 1 |
| `IncludeRelay` | [IncludeRelay](../../Models/Requests/IncludeRelay.md) | :heavy_minus_sign: | Include Relay addresses in the results <br/>E.g: https://10-0-0-25.bbf8e10c7fa20447cacee74cd9914cde.plex.direct:32400<br/> | 1 | | `IncludeRelay` | [IncludeRelay](../../Models/Requests/IncludeRelay.md) | :heavy_minus_sign: | Include Relay addresses in the results <br/>E.g: https://10-0-0-25.bbf8e10c7fa20447cacee74cd9914cde.plex.direct:32400<br/> | 1 |
| `IncludeIPv6` | [IncludeIPv6](../../Models/Requests/IncludeIPv6.md) | :heavy_minus_sign: | Include IPv6 entries in the results | 1 | | `IncludeIPv6` | [IncludeIPv6](../../Models/Requests/IncludeIPv6.md) | :heavy_minus_sign: | Include IPv6 entries in the results | 1 |
| `ClientID` | *string* | :heavy_check_mark: | An opaque identifier unique to the client (UUID, serial number, or other unique device ID) | 3381b62b-9ab7-4e37-827b-203e9809eb58 |

View File

@@ -5,5 +5,5 @@
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Type` | [GetTopWatchedContentQueryParamType](../../Models/Requests/GetTopWatchedContentQueryParamType.md) | :heavy_check_mark: | The type of media to retrieve or filter by.<br/>1 = movie<br/>2 = show<br/>3 = season<br/>4 = episode<br/>E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries<br/> | 2 | | `IncludeGuids` | *long* | :heavy_minus_sign: | Adds the Guids object to the response<br/> | 1 |
| `IncludeGuids` | *long* | :heavy_minus_sign: | Adds the Guids object to the response<br/> | 1 | | `Type` | [GetTopWatchedContentQueryParamType](../../Models/Requests/GetTopWatchedContentQueryParamType.md) | :heavy_check_mark: | The type of media to retrieve or filter by.<br/>1 = movie<br/>2 = show<br/>3 = season<br/>4 = episode<br/>E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries<br/> | 2 |

View File

@@ -0,0 +1,11 @@
# Hidden
UNKNOWN
## Values
| Name | Value |
| --------- | --------- |
| `Disable` | 0 |
| `Enable` | 1 |

View File

@@ -1,6 +1,6 @@
# IncludeDetails # IncludeDetails
Whether or not to include details for a section (types, filters, and sorts). Whether or not to include details for a section (types, filters, and sorts).
Only exists for backwards compatibility, media providers other than the server libraries have it on always. Only exists for backwards compatibility, media providers other than the server libraries have it on always.

View File

@@ -1,10 +1,10 @@
# Level # Level
An integer log level to write to the PMS log with. An integer log level to write to the PMS log with.
0: Error 0: Error
1: Warning 1: Warning
2: Info 2: Info
3: Debug 3: Debug
4: Verbose 4: Verbose

View File

@@ -3,8 +3,8 @@
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| `Level` | [Level](../../Models/Requests/Level.md) | :heavy_check_mark: | An integer log level to write to the PMS log with. <br/>0: Error <br/>1: Warning <br/>2: Info <br/>3: Debug <br/>4: Verbose<br/> | | | `Level` | [Level](../../Models/Requests/Level.md) | :heavy_check_mark: | An integer log level to write to the PMS log with.<br/>0: Error<br/>1: Warning<br/>2: Info<br/>3: Debug<br/>4: Verbose<br/> | |
| `Message` | *string* | :heavy_check_mark: | The text of the message to write to the log. | Test log message | | `Message` | *string* | :heavy_check_mark: | The text of the message to write to the log. | Test log message |
| `Source` | *string* | :heavy_check_mark: | a string indicating the source of the message. | Postman | | `Source` | *string* | :heavy_check_mark: | a string indicating the source of the message. | Postman |

View File

@@ -0,0 +1,10 @@
# PostMediaArtsRequest
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| `RatingKey` | *long* | :heavy_check_mark: | the id of the library item to return the posters of. | 2268 |
| `Url` | *string* | :heavy_minus_sign: | The URL of the image, if uploading a remote image | https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b |
| `RequestBody` | *byte[]* | :heavy_minus_sign: | The contents of the image, if uploading a local file | |

View File

@@ -0,0 +1,10 @@
# PostMediaArtsResponse
## Fields
| Field | Type | Required | Description |
| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation |
| `RawResponse` | [HttpResponseMessage](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpresponsemessage?view=net-5.0) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -0,0 +1,10 @@
# PostMediaPosterRequest
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| `RatingKey` | *long* | :heavy_check_mark: | the id of the library item to return the posters of. | 2268 |
| `Url` | *string* | :heavy_minus_sign: | The URL of the image, if uploading a remote image | https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b |
| `RequestBody` | *byte[]* | :heavy_minus_sign: | The contents of the image, if uploading a local file | |

View File

@@ -0,0 +1,10 @@
# PostMediaPosterResponse
## Fields
| Field | Type | Required | Description |
| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation |
| `RawResponse` | [HttpResponseMessage](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpresponsemessage?view=net-5.0) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -1,8 +1,8 @@
# QueryParamForce # QueryParamForce
Force overwriting of duplicate playlists. Force overwriting of duplicate playlists.
By default, a playlist file uploaded with the same path will overwrite the existing playlist. By default, a playlist file uploaded with the same path will overwrite the existing playlist.
The `force` argument is used to disable overwriting. The `force` argument is used to disable overwriting.
If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded. If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.

View File

@@ -3,8 +3,8 @@
## Fields ## Fields
| Field | Type | Required | Description | Example | | Field | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Path` | *string* | :heavy_check_mark: | absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server. <br/>If the `path` argument is a directory, that path will be scanned for playlist files to be processed. <br/>Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it. <br/>The GUID of each playlist is based on the filename. <br/>If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it. <br/>The GUID of each playlist is based on the filename.<br/> | /home/barkley/playlist.m3u | | `Path` | *string* | :heavy_check_mark: | absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server.<br/>If the `path` argument is a directory, that path will be scanned for playlist files to be processed.<br/>Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it.<br/>The GUID of each playlist is based on the filename.<br/>If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it.<br/>The GUID of each playlist is based on the filename.<br/> | /home/barkley/playlist.m3u |
| `Force` | [QueryParamForce](../../Models/Requests/QueryParamForce.md) | :heavy_check_mark: | Force overwriting of duplicate playlists. <br/>By default, a playlist file uploaded with the same path will overwrite the existing playlist. <br/>The `force` argument is used to disable overwriting. <br/>If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.<br/> | | | `Force` | [QueryParamForce](../../Models/Requests/QueryParamForce.md) | :heavy_check_mark: | Force overwriting of duplicate playlists.<br/>By default, a playlist file uploaded with the same path will overwrite the existing playlist.<br/>The `force` argument is used to disable overwriting.<br/>If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.<br/> | |
| `SectionID` | *long* | :heavy_check_mark: | Possibly the section ID to upload the playlist to, we are not certain. | 1 | | `SectionID` | *long* | :heavy_check_mark: | Possibly the section ID to upload the playlist to, we are not certain. | 1 |

View File

@@ -22,6 +22,10 @@ API Calls interacting with Plex Media Server Libraries
* [GetActorsLibrary](#getactorslibrary) - Get Actors of library media * [GetActorsLibrary](#getactorslibrary) - Get Actors of library media
* [GetSearchAllLibraries](#getsearchalllibraries) - Search All Libraries * [GetSearchAllLibraries](#getsearchalllibraries) - Search All Libraries
* [GetMediaMetaData](#getmediametadata) - Get Media Metadata * [GetMediaMetaData](#getmediametadata) - Get Media Metadata
* [GetMediaArts](#getmediaarts) - Get Media Background Artwork
* [PostMediaArts](#postmediaarts) - Upload Media Background Artwork
* [GetMediaPosters](#getmediaposters) - Get Media Posters
* [PostMediaPoster](#postmediaposter) - Upload Media Poster
* [GetMetadataChildren](#getmetadatachildren) - Get Items Children * [GetMetadataChildren](#getmetadatachildren) - Get Items Children
* [GetTopWatchedContent](#gettopwatchedcontent) - Get Top Watched Content * [GetTopWatchedContent](#gettopwatchedcontent) - Get Top Watched Content
@@ -161,14 +165,14 @@ var res = await sdk.Library.GetAllLibrariesAsync();
## Library Details Endpoint ## Library Details Endpoint
This endpoint provides comprehensive details about the library, focusing on organizational aspects rather than the content itself. This endpoint provides comprehensive details about the library, focusing on organizational aspects rather than the content itself.
The details include: The details include:
### Directories ### Directories
Organized into three categories: Organized into three categories:
- **Primary Directories**: - **Primary Directories**:
- Used in some clients for quick access to media subsets (e.g., "All", "On Deck"). - Used in some clients for quick access to media subsets (e.g., "All", "On Deck").
- Most can be replicated via media queries. - Most can be replicated via media queries.
- Customizable by users. - Customizable by users.
@@ -219,10 +223,10 @@ var res = await sdk.Library.GetLibraryDetailsAsync(
### Parameters ### Parameters
| Parameter | Type | Required | Description | Example | | Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SectionKey` | *int* | :heavy_check_mark: | The unique key of the Plex library. <br/>Note: This is unique in the context of the Plex server.<br/> | 9518 | | `SectionKey` | *int* | :heavy_check_mark: | The unique key of the Plex library. <br/>Note: This is unique in the context of the Plex server.<br/> | 9518 |
| `IncludeDetails` | [IncludeDetails](../../Models/Requests/IncludeDetails.md) | :heavy_minus_sign: | Whether or not to include details for a section (types, filters, and sorts). <br/>Only exists for backwards compatibility, media providers other than the server libraries have it on always.<br/> | | | `IncludeDetails` | [IncludeDetails](../../Models/Requests/IncludeDetails.md) | :heavy_minus_sign: | Whether or not to include details for a section (types, filters, and sorts).<br/>Only exists for backwards compatibility, media providers other than the server libraries have it on always.<br/> | |
### Response ### Response
@@ -698,6 +702,152 @@ var res = await sdk.Library.GetMediaMetaDataAsync(req);
| LukeHagar.PlexAPI.SDK.Models.Errors.GetMediaMetaDataUnauthorized | 401 | application/json | | LukeHagar.PlexAPI.SDK.Models.Errors.GetMediaMetaDataUnauthorized | 401 | application/json |
| LukeHagar.PlexAPI.SDK.Models.Errors.SDKException | 4XX, 5XX | \*/\* | | LukeHagar.PlexAPI.SDK.Models.Errors.SDKException | 4XX, 5XX | \*/\* |
## GetMediaArts
Returns the background artwork for a library item.
### Example Usage
```csharp
using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components;
var sdk = new PlexAPI(accessToken: "<YOUR_API_KEY_HERE>");
var res = await sdk.Library.GetMediaArtsAsync(ratingKey: 16099);
// handle response
```
### Parameters
| Parameter | Type | Required | Description | Example |
| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- |
| `RatingKey` | *long* | :heavy_check_mark: | the id of the library item to return the artwork of. | 16099 |
### Response
**[GetMediaArtsResponse](../../Models/Requests/GetMediaArtsResponse.md)**
### Errors
| Error Type | Status Code | Content Type |
| ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ |
| LukeHagar.PlexAPI.SDK.Models.Errors.SDKException | 4XX, 5XX | \*/\* |
## PostMediaArts
Uploads an image to use as the background artwork for a library item, either from a local file or a remote URL
### Example Usage
```csharp
using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components;
using System;
var sdk = new PlexAPI(accessToken: "<YOUR_API_KEY_HERE>");
var res = await sdk.Library.PostMediaArtsAsync(
ratingKey: 2268,
url: "https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b",
requestBody: System.Text.Encoding.UTF8.GetBytes("0xee51EFC6De")
);
// handle response
```
### Parameters
| Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| `RatingKey` | *long* | :heavy_check_mark: | the id of the library item to return the posters of. | 2268 |
| `Url` | *string* | :heavy_minus_sign: | The URL of the image, if uploading a remote image | https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b |
| `RequestBody` | *byte[]* | :heavy_minus_sign: | The contents of the image, if uploading a local file | |
### Response
**[PostMediaArtsResponse](../../Models/Requests/PostMediaArtsResponse.md)**
### Errors
| Error Type | Status Code | Content Type |
| ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ |
| LukeHagar.PlexAPI.SDK.Models.Errors.SDKException | 4XX, 5XX | \*/\* |
## GetMediaPosters
Returns the available posters for a library item.
### Example Usage
```csharp
using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components;
var sdk = new PlexAPI(accessToken: "<YOUR_API_KEY_HERE>");
var res = await sdk.Library.GetMediaPostersAsync(ratingKey: 16099);
// handle response
```
### Parameters
| Parameter | Type | Required | Description | Example |
| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- |
| `RatingKey` | *long* | :heavy_check_mark: | the id of the library item to return the posters of. | 16099 |
### Response
**[GetMediaPostersResponse](../../Models/Requests/GetMediaPostersResponse.md)**
### Errors
| Error Type | Status Code | Content Type |
| ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ |
| LukeHagar.PlexAPI.SDK.Models.Errors.SDKException | 4XX, 5XX | \*/\* |
## PostMediaPoster
Uploads a poster to a library item, either from a local file or a remote URL
### Example Usage
```csharp
using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components;
using System;
var sdk = new PlexAPI(accessToken: "<YOUR_API_KEY_HERE>");
var res = await sdk.Library.PostMediaPosterAsync(
ratingKey: 2268,
url: "https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b",
requestBody: System.Text.Encoding.UTF8.GetBytes("0x7C3d45ad4B")
);
// handle response
```
### Parameters
| Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| `RatingKey` | *long* | :heavy_check_mark: | the id of the library item to return the posters of. | 2268 |
| `Url` | *string* | :heavy_minus_sign: | The URL of the image, if uploading a remote image | https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b |
| `RequestBody` | *byte[]* | :heavy_minus_sign: | The contents of the image, if uploading a local file | |
### Response
**[PostMediaPosterResponse](../../Models/Requests/PostMediaPosterResponse.md)**
### Errors
| Error Type | Status Code | Content Type |
| ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ |
| LukeHagar.PlexAPI.SDK.Models.Errors.SDKException | 4XX, 5XX | \*/\* |
## GetMetadataChildren ## GetMetadataChildren
This endpoint will return the children of of a library item specified with the ratingKey. This endpoint will return the children of of a library item specified with the ratingKey.

View File

@@ -37,11 +37,11 @@ var res = await sdk.Log.LogLineAsync(
### Parameters ### Parameters
| Parameter | Type | Required | Description | Example | | Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| `Level` | [Level](../../Models/Requests/Level.md) | :heavy_check_mark: | An integer log level to write to the PMS log with. <br/>0: Error <br/>1: Warning <br/>2: Info <br/>3: Debug <br/>4: Verbose<br/> | | | `Level` | [Level](../../Models/Requests/Level.md) | :heavy_check_mark: | An integer log level to write to the PMS log with.<br/>0: Error<br/>1: Warning<br/>2: Info<br/>3: Debug<br/>4: Verbose<br/> | |
| `Message` | *string* | :heavy_check_mark: | The text of the message to write to the log. | Test log message | | `Message` | *string* | :heavy_check_mark: | The text of the message to write to the log. | Test log message |
| `Source` | *string* | :heavy_check_mark: | a string indicating the source of the message. | Postman | | `Source` | *string* | :heavy_check_mark: | a string indicating the source of the message. | Postman |
### Response ### Response
@@ -57,13 +57,13 @@ var res = await sdk.Log.LogLineAsync(
## LogMultiLine ## LogMultiLine
This endpoint allows for the batch addition of log entries to the main Plex Media Server log. This endpoint allows for the batch addition of log entries to the main Plex Media Server log.
It accepts a text/plain request body, where each line represents a distinct log entry. It accepts a text/plain request body, where each line represents a distinct log entry.
Each log entry consists of URL-encoded key-value pairs, specifying log attributes such as 'level', 'message', and 'source'. Each log entry consists of URL-encoded key-value pairs, specifying log attributes such as 'level', 'message', and 'source'.
Log entries are separated by a newline character (`\n`). Log entries are separated by a newline character (`\n`).
Each entry's parameters should be URL-encoded to ensure accurate parsing and handling of special characters. Each entry's parameters should be URL-encoded to ensure accurate parsing and handling of special characters.
This method is efficient for logging multiple entries in a single API call, reducing the overhead of multiple individual requests. This method is efficient for logging multiple entries in a single API call, reducing the overhead of multiple individual requests.
The 'level' parameter specifies the log entry's severity or importance, with the following integer values: The 'level' parameter specifies the log entry's severity or importance, with the following integer values:
- `0`: Error - Critical issues that require immediate attention. - `0`: Error - Critical issues that require immediate attention.

View File

@@ -3,9 +3,9 @@
## Overview ## Overview
Playlists are ordered collections of media. They can be dumb (just a list of media) or smart (based on a media query, such as "all albums from 2017"). Playlists are ordered collections of media. They can be dumb (just a list of media) or smart (based on a media query, such as "all albums from 2017").
They can be organized in (optionally nesting) folders. They can be organized in (optionally nesting) folders.
Retrieving a playlist, or its items, will trigger a refresh of its metadata. Retrieving a playlist, or its items, will trigger a refresh of its metadata.
This may cause the duration and number of items to change. This may cause the duration and number of items to change.
@@ -370,11 +370,11 @@ var res = await sdk.Playlists.UploadPlaylistAsync(
### Parameters ### Parameters
| Parameter | Type | Required | Description | Example | | Parameter | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Path` | *string* | :heavy_check_mark: | absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server. <br/>If the `path` argument is a directory, that path will be scanned for playlist files to be processed. <br/>Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it. <br/>The GUID of each playlist is based on the filename. <br/>If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it. <br/>The GUID of each playlist is based on the filename.<br/> | /home/barkley/playlist.m3u | | `Path` | *string* | :heavy_check_mark: | absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server.<br/>If the `path` argument is a directory, that path will be scanned for playlist files to be processed.<br/>Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it.<br/>The GUID of each playlist is based on the filename.<br/>If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it.<br/>The GUID of each playlist is based on the filename.<br/> | /home/barkley/playlist.m3u |
| `Force` | [QueryParamForce](../../Models/Requests/QueryParamForce.md) | :heavy_check_mark: | Force overwriting of duplicate playlists. <br/>By default, a playlist file uploaded with the same path will overwrite the existing playlist. <br/>The `force` argument is used to disable overwriting. <br/>If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.<br/> | | | `Force` | [QueryParamForce](../../Models/Requests/QueryParamForce.md) | :heavy_check_mark: | Force overwriting of duplicate playlists.<br/>By default, a playlist file uploaded with the same path will overwrite the existing playlist.<br/>The `force` argument is used to disable overwriting.<br/>If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.<br/> | |
| `SectionID` | *long* | :heavy_check_mark: | Possibly the section ID to upload the playlist to, we are not certain. | 1 | | `SectionID` | *long* | :heavy_check_mark: | Possibly the section ID to upload the playlist to, we are not certain. | 1 |
### Response ### Response