Compare commits

..

7 Commits

Author SHA1 Message Date
speakeasybot
227e2351d5 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.404.5 2024-09-30 00:23:16 +00:00
JasonLandbridge
3bd4f51297 Merge remote-tracking branch 'origin/main' 2024-09-29 09:09:51 +02:00
speakeasybot
4828de2345 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.404.5 2024-09-29 00:24:39 +00:00
JasonLandbridge
2beb707ed5 make project intelij compatible 2024-09-28 10:01:25 +02:00
speakeasybot
affe5d5a8c ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.404.5 2024-09-28 00:21:51 +00:00
speakeasybot
d16abdad70 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.402.14 2024-09-26 00:22:14 +00:00
speakeasybot
3e9ae76433 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.402.14 2024-09-25 15:33:47 +00:00
248 changed files with 5850 additions and 974 deletions

View File

@@ -0,0 +1 @@
LukeHagar.PlexAPI.SDK

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
</project>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="UserContentModel">
<attachedFolders />
<explicitIncludes />
<explicitExcludes />
</component>
</project>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RiderProjectSettingsUpdater">
<option name="vcsConfiguration" value="3" />
</component>
</project>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

File diff suppressed because one or more lines are too long

View File

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

View File

@@ -1,4 +1,4 @@
speakeasyVersion: 1.401.2
speakeasyVersion: 1.404.5
sources:
my-source:
sourceNamespace: my-source
@@ -16,8 +16,8 @@ sources:
- main
plexapi:
sourceNamespace: plexapi
sourceRevisionDigest: sha256:fc6eebe661455e23b1aa352a91c14ef773fa72331330ec4caeddc2c460dc16bb
sourceBlobDigest: sha256:2e81e86c83d7f4e8842efca0d43a2db84a4932534c8439e3737e1f65c873f855
sourceRevisionDigest: sha256:a9bd67eaa35b8311162ae769209f725cc5da16e57976b4928c54594c02cd451c
sourceBlobDigest: sha256:43ddffba137c37d2f64f8db185179a273bcc5ca7242594c932da99d1eb7f3e98
tags:
- latest
- main
@@ -25,10 +25,10 @@ targets:
plexcsharp:
source: plexapi
sourceNamespace: plexapi
sourceRevisionDigest: sha256:fc6eebe661455e23b1aa352a91c14ef773fa72331330ec4caeddc2c460dc16bb
sourceBlobDigest: sha256:2e81e86c83d7f4e8842efca0d43a2db84a4932534c8439e3737e1f65c873f855
sourceRevisionDigest: sha256:a9bd67eaa35b8311162ae769209f725cc5da16e57976b4928c54594c02cd451c
sourceBlobDigest: sha256:43ddffba137c37d2f64f8db185179a273bcc5ca7242594c932da99d1eb7f3e98
codeSamplesNamespace: code-samples-csharp-plexcsharp
codeSamplesRevisionDigest: sha256:73fbbcf9508835f4d05e9b21d6ae3a250052b663c2759008884a6d0d826a50fd
codeSamplesRevisionDigest: sha256:7ded6433193c6ba017e3716ef54439dc16175b652f8c048dbaef244a52cf1af2
workflow:
workflowVersion: 1.0.0
speakeasyVersion: latest

View File

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

View File

@@ -69,7 +69,7 @@ namespace LukeHagar.PlexAPI.SDK
/// Sign in user with username and password and return user data with Plex authentication token
/// </remarks>
/// </summary>
Task<PostUsersSignInDataResponse> PostUsersSignInDataAsync(PostUsersSignInDataRequestBody? request = null, string? serverUrl = null);
Task<PostUsersSignInDataResponse> PostUsersSignInDataAsync(PostUsersSignInDataRequest? request = null, string? serverUrl = null);
}
/// <summary>
@@ -85,20 +85,20 @@ namespace LukeHagar.PlexAPI.SDK
/// List of server URLs available for the getTokenDetails operation.
/// </summary>
public static readonly string[] GetTokenDetailsServerList = {
"https://plex.tv/api/v2/",
"https://plex.tv/api/v2",
};
/// <summary>
/// List of server URLs available for the post-users-sign-in-data operation.
/// </summary>
public static readonly string[] PostUsersSignInDataServerList = {
"https://plex.tv/api/v2/",
"https://plex.tv/api/v2",
};
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.7.1";
private const string _sdkGenVersion = "2.421.3";
private const string _sdkVersion = "0.8.4";
private const string _sdkGenVersion = "2.426.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.7.1 2.421.3 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.8.4 2.426.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;
@@ -398,21 +398,26 @@ namespace LukeHagar.PlexAPI.SDK
throw new Models.Errors.SDKException("Unknown status code received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
public async Task<PostUsersSignInDataResponse> PostUsersSignInDataAsync(PostUsersSignInDataRequestBody? request = null, string? serverUrl = null)
public async Task<PostUsersSignInDataResponse> PostUsersSignInDataAsync(PostUsersSignInDataRequest? request = null, string? serverUrl = null)
{
request.ClientID ??= SDKConfiguration.ClientID;
request.ClientName ??= SDKConfiguration.ClientName;
request.ClientVersion ??= SDKConfiguration.ClientVersion;
request.ClientPlatform ??= SDKConfiguration.ClientPlatform;
request.DeviceName ??= SDKConfiguration.DeviceName;
string baseUrl = Utilities.TemplateUrl(PostUsersSignInDataServerList[0], new Dictionary<string, string>(){
});
if (serverUrl != null)
{
baseUrl = serverUrl;
}
var urlString = baseUrl + "/users/signin";
var urlString = URLBuilder.Build(baseUrl, "/users/signin", request);
var httpRequest = new HttpRequestMessage(HttpMethod.Post, urlString);
httpRequest.Headers.Add("user-agent", _userAgent);
var serializedBody = RequestBodySerializer.Serialize(request, "Request", "form", false, true);
var serializedBody = RequestBodySerializer.Serialize(request, "RequestBody", "form", false, true);
if (serializedBody != null)
{
httpRequest.Content = serializedBody;

View File

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

View File

@@ -41,6 +41,16 @@ namespace LukeHagar.PlexAPI.SDK
/// </summary>
Task<GetGlobalHubsResponse> GetGlobalHubsAsync(double? count = null, OnlyTransient? onlyTransient = null);
/// <summary>
/// Get Recently Added
///
/// <remarks>
/// This endpoint will return the recently added content.<br/>
///
/// </remarks>
/// </summary>
Task<GetRecentlyAddedResponse> GetRecentlyAddedAsync(GetRecentlyAddedRequest request);
/// <summary>
/// Get library specific hubs
///
@@ -63,10 +73,10 @@ namespace LukeHagar.PlexAPI.SDK
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.7.1";
private const string _sdkGenVersion = "2.421.3";
private const string _sdkVersion = "0.8.4";
private const string _sdkGenVersion = "2.426.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.7.1 2.421.3 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.8.4 2.426.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;
@@ -180,6 +190,80 @@ namespace LukeHagar.PlexAPI.SDK
throw new Models.Errors.SDKException("Unknown status code received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
public async Task<GetRecentlyAddedResponse> GetRecentlyAddedAsync(GetRecentlyAddedRequest request)
{
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
var urlString = URLBuilder.Build(baseUrl, "/hubs/home/recentlyAdded", request);
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
httpRequest.Headers.Add("user-agent", _userAgent);
if (_securitySource != null)
{
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
}
var hookCtx = new HookContext("get-recently-added", null, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
HttpResponseMessage httpResponse;
try
{
httpResponse = await _client.SendAsync(httpRequest);
int _statusCode = (int)httpResponse.StatusCode;
if (_statusCode == 400 || _statusCode == 401 || _statusCode >= 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<GetRecentlyAddedResponseBody>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore);
var response = new GetRecentlyAddedResponse()
{
StatusCode = responseStatusCode,
ContentType = contentType,
RawResponse = httpResponse
};
response.Object = obj;
return response;
}
throw new Models.Errors.SDKException("Unknown content type received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
else if(responseStatusCode == 400 || responseStatusCode == 401 || responseStatusCode >= 400 && responseStatusCode < 500 || 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<GetLibraryHubsResponse> GetLibraryHubsAsync(double sectionId, double? count = null, QueryParamOnlyTransient? onlyTransient = null)
{
var request = new GetLibraryHubsRequest()

View File

@@ -49,7 +49,7 @@ namespace LukeHagar.PlexAPI.SDK
///
/// </remarks>
/// </summary>
Task<GetRecentlyAddedResponse> GetRecentlyAddedAsync(int? xPlexContainerStart = null, int? xPlexContainerSize = null);
Task<GetRecentlyAddedLibraryResponse> GetRecentlyAddedLibraryAsync(GetRecentlyAddedLibraryRequest request);
/// <summary>
/// Get All Libraries
@@ -187,7 +187,7 @@ namespace LukeHagar.PlexAPI.SDK
///
/// </remarks>
/// </summary>
Task<GetSearchLibraryResponse> GetSearchLibraryAsync(int sectionKey, QueryParamType type);
Task<GetSearchLibraryResponse> GetSearchLibraryAsync(int sectionKey, GetSearchLibraryQueryParamType type);
/// <summary>
/// Get Metadata by RatingKey
@@ -241,10 +241,10 @@ namespace LukeHagar.PlexAPI.SDK
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.7.1";
private const string _sdkGenVersion = "2.421.3";
private const string _sdkVersion = "0.8.4";
private const string _sdkGenVersion = "2.426.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.7.1 2.421.3 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.8.4 2.426.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;
@@ -350,13 +350,8 @@ namespace LukeHagar.PlexAPI.SDK
throw new Models.Errors.SDKException("Unknown status code received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
public async Task<GetRecentlyAddedResponse> GetRecentlyAddedAsync(int? xPlexContainerStart = null, int? xPlexContainerSize = null)
public async Task<GetRecentlyAddedLibraryResponse> GetRecentlyAddedLibraryAsync(GetRecentlyAddedLibraryRequest request)
{
var request = new GetRecentlyAddedRequest()
{
XPlexContainerStart = xPlexContainerStart,
XPlexContainerSize = xPlexContainerSize,
};
string baseUrl = this.SDKConfiguration.GetTemplatedServerUrl();
var urlString = URLBuilder.Build(baseUrl, "/library/recentlyAdded", request);
@@ -368,7 +363,7 @@ namespace LukeHagar.PlexAPI.SDK
httpRequest = new SecurityMetadata(_securitySource).Apply(httpRequest);
}
var hookCtx = new HookContext("getRecentlyAdded", null, _securitySource);
var hookCtx = new HookContext("get-recently-added-library", null, _securitySource);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
@@ -408,8 +403,8 @@ namespace LukeHagar.PlexAPI.SDK
{
if(Utilities.IsContentTypeMatch("application/json", contentType))
{
var obj = ResponseBodyDeserializer.Deserialize<GetRecentlyAddedResponseBody>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Include);
var response = new GetRecentlyAddedResponse()
var obj = ResponseBodyDeserializer.Deserialize<GetRecentlyAddedLibraryResponseBody>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore);
var response = new GetRecentlyAddedLibraryResponse()
{
StatusCode = responseStatusCode,
ContentType = contentType,
@@ -425,7 +420,7 @@ namespace LukeHagar.PlexAPI.SDK
{
if(Utilities.IsContentTypeMatch("application/json", contentType))
{
var obj = ResponseBodyDeserializer.Deserialize<GetRecentlyAddedBadRequest>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Include);
var obj = ResponseBodyDeserializer.Deserialize<GetRecentlyAddedLibraryBadRequest>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore);
obj!.RawResponse = httpResponse;
throw obj!;
}
@@ -436,7 +431,7 @@ namespace LukeHagar.PlexAPI.SDK
{
if(Utilities.IsContentTypeMatch("application/json", contentType))
{
var obj = ResponseBodyDeserializer.Deserialize<GetRecentlyAddedUnauthorized>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Include);
var obj = ResponseBodyDeserializer.Deserialize<GetRecentlyAddedLibraryUnauthorized>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore);
obj!.RawResponse = httpResponse;
throw obj!;
}
@@ -930,7 +925,7 @@ namespace LukeHagar.PlexAPI.SDK
throw new Models.Errors.SDKException("Unknown status code received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
public async Task<GetSearchLibraryResponse> GetSearchLibraryAsync(int sectionKey, QueryParamType type)
public async Task<GetSearchLibraryResponse> GetSearchLibraryAsync(int sectionKey, GetSearchLibraryQueryParamType type)
{
var request = new GetSearchLibraryRequest()
{

View File

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

View File

@@ -3,14 +3,38 @@
<PropertyGroup>
<IsPackable>true</IsPackable>
<PackageId>LukeHagar.PlexAPI.SDK</PackageId>
<Version>0.7.1</Version>
<Version>0.8.4</Version>
<TargetFramework>net8.0</TargetFramework>
<Authors>LukeHagar</Authors>
<Copyright>Copyright (c) LukeHagar 2024</Copyright>
<RepositoryUrl>https://github.com/LukeHagar/plexcsharp.git</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageTags>Plex Media Server SDK</PackageTags>
<Description>Plex-API: An Open API Spec for interacting with Plex.tv and Plex Media Server</Description>
<Description># Plex Media Server OpenAPI Specification
An Open Source OpenAPI Specification for Plex Media Server
Automation and SDKs provided by [Speakeasy](https://speakeasyapi.dev/)
## Documentation
[API Documentation](https://plexapi.dev)
## SDKs
The following SDKs are generated from the OpenAPI Specification. They are automatically generated and may not be fully tested. If you find any issues, please open an issue on the [main specification Repository](https://github.com/LukeHagar/plex-api-spec).
| Language | Repository | Releases | Other |
| --------------------- | ------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------- |
| Python | [GitHub](https://github.com/LukeHagar/plexpy) | [PyPI](https://pypi.org/project/plex-api-client/) | - |
| JavaScript/TypeScript | [GitHub](https://github.com/LukeHagar/plexjs) | [NPM](https://www.npmjs.com/package/@lukehagar/plexjs) \ [JSR](https://jsr.io/@lukehagar/plexjs) | - |
| Go | [GitHub](https://github.com/LukeHagar/plexgo) | [Releases](https://github.com/LukeHagar/plexgo/releases) | [GoDoc](https://pkg.go.dev/github.com/LukeHagar/plexgo) |
| Ruby | [GitHub](https://github.com/LukeHagar/plexruby) | [Releases](https://github.com/LukeHagar/plexruby/releases) | - |
| Swift | [GitHub](https://github.com/LukeHagar/plexswift) | [Releases](https://github.com/LukeHagar/plexswift/releases) | - |
| PHP | [GitHub](https://github.com/LukeHagar/plexphp) | [Releases](https://github.com/LukeHagar/plexphp/releases) | - |
| Java | [GitHub](https://github.com/LukeHagar/plexjava) | [Releases](https://github.com/LukeHagar/plexjava/releases) | - |
| C# | [GitHub](https://github.com/LukeHagar/plexcsharp) | [Releases](https://github.com/LukeHagar/plexcsharp/releases) | -
</Description>
</PropertyGroup>
<PropertyGroup>

View File

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

View File

@@ -19,11 +19,11 @@ namespace LukeHagar.PlexAPI.SDK.Models.Errors
/// <summary>
/// Bad Request - A parameter was not specified, or was specified incorrectly.
/// </summary>
public class GetRecentlyAddedBadRequest : Exception
public class GetRecentlyAddedLibraryBadRequest : Exception
{
[JsonProperty("errors")]
public List<GetRecentlyAddedErrors>? Errors { get; set; }
public List<GetRecentlyAddedLibraryErrors>? Errors { get; set; }
/// <summary>
/// Raw HTTP response; suitable for custom response parsing

View File

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

View File

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

View File

@@ -29,6 +29,10 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
AdCountdownTimer,
[JsonProperty("adaptive_bitrate")]
AdaptiveBitrate,
[JsonProperty("album-types")]
AlbumTypes,
[JsonProperty("allow_dvr")]
AllowDvr,
[JsonProperty("amazon-loop-debug")]
AmazonLoopDebug,
[JsonProperty("avod-ad-analysis")]
@@ -37,10 +41,16 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
AvodNewMedia,
[JsonProperty("blacklist_get_signin")]
BlacklistGetSignin,
[JsonProperty("boost-voices")]
BoostVoices,
[JsonProperty("camera_upload")]
CameraUpload,
[JsonProperty("client-radio-stations")]
ClientRadioStations,
[JsonProperty("cloudflare-turnstile-required")]
CloudflareTurnstileRequired,
[JsonProperty("cloudsync")]
Cloudsync,
[JsonProperty("collections")]
Collections,
[JsonProperty("comments_and_replies_push_notifications")]
@@ -49,30 +59,50 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
CommunityAccessPlexTv,
[JsonProperty("companions_sonos")]
CompanionsSonos,
[JsonProperty("content_filter")]
ContentFilter,
[JsonProperty("custom-home-removal")]
CustomHomeRemoval,
[JsonProperty("disable_home_user_friendships")]
DisableHomeUserFriendships,
[JsonProperty("disable_sharing_friendships")]
DisableSharingFriendships,
[JsonProperty("downloads-gating")]
DownloadsGating,
[JsonProperty("drm_support")]
DrmSupport,
[JsonProperty("dvr")]
Dvr,
[JsonProperty("dvr-block-unsupported-countries")]
DvrBlockUnsupportedCountries,
[JsonProperty("epg-recent-channels")]
EpgRecentChannels,
[JsonProperty("exclude restrictions")]
ExcludeRestrictions,
[JsonProperty("federated-auth")]
FederatedAuth,
[JsonProperty("friend_request_push_notifications")]
FriendRequestPushNotifications,
[JsonProperty("grandfather-sync")]
GrandfatherSync,
[JsonProperty("guided-upgrade")]
GuidedUpgrade,
[JsonProperty("hardware_transcoding")]
HardwareTranscoding,
[JsonProperty("home")]
Home,
[JsonProperty("hwtranscode")]
Hwtranscode,
[JsonProperty("imagga-v2")]
ImaggaV2,
[JsonProperty("increase-password-complexity")]
IncreasePasswordComplexity,
[JsonProperty("ios14-privacy-banner")]
Ios14PrivacyBanner,
[JsonProperty("iterable-notification-tokens")]
IterableNotificationTokens,
[JsonProperty("item_clusters")]
ItemClusters,
[JsonProperty("keep-payment-method")]
KeepPaymentMethod,
[JsonProperty("kevin-bacon")]
@@ -89,34 +119,68 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
LiveTvSupportIncompleteSegments,
[JsonProperty("livetv")]
Livetv,
[JsonProperty("lyrics")]
Lyrics,
[JsonProperty("metadata_search")]
MetadataSearch,
[JsonProperty("music-analysis")]
MusicAnalysis,
[JsonProperty("music_videos")]
MusicVideos,
[JsonProperty("new_plex_pass_prices")]
NewPlexPassPrices,
[JsonProperty("news-provider-sunset-modal")]
NewsProviderSunsetModal,
[JsonProperty("nominatim")]
Nominatim,
[JsonProperty("pass")]
Pass,
[JsonProperty("photos-favorites")]
PhotosFavorites,
[JsonProperty("photos-metadata-edition")]
PhotosMetadataEdition,
[JsonProperty("photosV6-edit")]
PhotosV6Edit,
[JsonProperty("photosV6-tv-albums")]
PhotosV6TvAlbums,
[JsonProperty("pms_health")]
PmsHealth,
[JsonProperty("premium-dashboard")]
PremiumDashboard,
[JsonProperty("premium_music_metadata")]
PremiumMusicMetadata,
[JsonProperty("radio")]
Radio,
[JsonProperty("rate-limit-client-token")]
RateLimitClientToken,
[JsonProperty("scrobbling-service-plex-tv")]
ScrobblingServicePlexTv,
[JsonProperty("session_bandwidth_restrictions")]
SessionBandwidthRestrictions,
[JsonProperty("session_kick")]
SessionKick,
[JsonProperty("shared_server_notification")]
SharedServerNotification,
[JsonProperty("shared_source_notification")]
SharedSourceNotification,
[JsonProperty("signin_notification")]
SigninNotification,
[JsonProperty("signin_with_apple")]
SigninWithApple,
[JsonProperty("silence-removal")]
SilenceRemoval,
[JsonProperty("sleep-timer")]
SleepTimer,
[JsonProperty("spring_serve_ad_provider")]
SpringServeAdProvider,
[JsonProperty("sync")]
Sync,
[JsonProperty("sweet-fades")]
SweetFades,
[JsonProperty("transcoder_cache")]
TranscoderCache,
[JsonProperty("trailers")]
Trailers,
[JsonProperty("tuner-sharing")]
TunerSharing,
[JsonProperty("two-factor-authentication")]
@@ -125,14 +189,22 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
Unsupportedtuners,
[JsonProperty("upgrade-3ds2")]
Upgrade3ds2,
[JsonProperty("visualizers")]
Visualizers,
[JsonProperty("vod-schema")]
VodSchema,
[JsonProperty("vod_cloudflare")]
VodCloudflare,
[JsonProperty("volume-leveling")]
VolumeLeveling,
[JsonProperty("watch-together-invite")]
WatchTogetherInvite,
[JsonProperty("watchlist-rss")]
WatchlistRss,
[JsonProperty("web_server_dashboard")]
WebServerDashboard,
[JsonProperty("webhooks")]
Webhooks,
}
public static class FeaturesExtension

View File

@@ -16,13 +16,13 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
[JsonProperty("key")]
public string? Key { get; set; }
public string Key { get; set; } = default!;
[JsonProperty("title")]
public string? Title { get; set; }
public string Title { get; set; } = default!;
[JsonProperty("type")]
public string? Type { get; set; }
public string Type { get; set; } = default!;
[JsonProperty("subType")]
public string? SubType { get; set; }

View File

@@ -18,9 +18,9 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
[JsonProperty("type")]
public string? Type { get; set; }
public string Type { get; set; } = default!;
[JsonProperty("Operator")]
public List<Operator>? Operator { get; set; }
public List<Operator> Operator { get; set; } = default!;
}
}

View File

@@ -80,8 +80,11 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
[JsonProperty("directory")]
public bool Directory { get; set; } = default!;
/// <summary>
/// Unix epoch datetime in seconds
/// </summary>
[JsonProperty("contentChangedAt")]
public int ContentChangedAt { get; set; } = default!;
public long ContentChangedAt { get; set; } = default!;
[JsonProperty("hidden")]
public int Hidden { get; set; } = default!;

View File

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

View File

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

View File

@@ -60,6 +60,6 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
public List<GetLibraryDetailsType>? Type { get; set; }
[JsonProperty("FieldType")]
public List<FieldType>? FieldType { get; set; }
public List<GetLibraryDetailsFieldType>? FieldType { get; set; }
}
}

View File

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

View File

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

View File

@@ -33,9 +33,9 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
public List<GetLibraryDetailsFilter>? Filter { get; set; }
[JsonProperty("Sort")]
public List<Sort>? Sort { get; set; }
public List<GetLibraryDetailsSort>? Sort { get; set; }
[JsonProperty("Field")]
public List<Field>? Field { get; set; }
public List<GetLibraryDetailsField>? Field { get; set; }
}
}

View File

@@ -0,0 +1,64 @@
//------------------------------------------------------------------------------
// <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 direction of the sort. Can be either `asc` or `desc`.<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
public enum GetLibraryItemsActiveDirection
{
[JsonProperty("asc")]
Ascending,
[JsonProperty("desc")]
Descending,
}
public static class GetLibraryItemsActiveDirectionExtension
{
public static string Value(this GetLibraryItemsActiveDirection value)
{
return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString();
}
public static GetLibraryItemsActiveDirection ToEnum(this string value)
{
foreach(var field in typeof(GetLibraryItemsActiveDirection).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 GetLibraryItemsActiveDirection)
{
return (GetLibraryItemsActiveDirection)enumVal;
}
}
}
throw new Exception($"Unknown value {value} for enum GetLibraryItemsActiveDirection");
}
}
}

View File

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

View File

@@ -0,0 +1,64 @@
//------------------------------------------------------------------------------
// <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 direction of the sort. Can be either `asc` or `desc`.<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
public enum GetLibraryItemsDefaultDirection
{
[JsonProperty("asc")]
Ascending,
[JsonProperty("desc")]
Descending,
}
public static class GetLibraryItemsDefaultDirectionExtension
{
public static string Value(this GetLibraryItemsDefaultDirection value)
{
return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString();
}
public static GetLibraryItemsDefaultDirection ToEnum(this string value)
{
foreach(var field in typeof(GetLibraryItemsDefaultDirection).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 GetLibraryItemsDefaultDirection)
{
return (GetLibraryItemsDefaultDirection)enumVal;
}
}
}
throw new Exception($"Unknown value {value} for enum GetLibraryItemsDefaultDirection");
}
}
}

View File

@@ -0,0 +1,57 @@
//------------------------------------------------------------------------------
// <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;
public enum GetLibraryItemsFlattenSeasons
{
[JsonProperty("0")]
False,
[JsonProperty("1")]
True,
}
public static class GetLibraryItemsFlattenSeasonsExtension
{
public static string Value(this GetLibraryItemsFlattenSeasons value)
{
return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString();
}
public static GetLibraryItemsFlattenSeasons ToEnum(this string value)
{
foreach(var field in typeof(GetLibraryItemsFlattenSeasons).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 GetLibraryItemsFlattenSeasons)
{
return (GetLibraryItemsFlattenSeasons)enumVal;
}
}
}
throw new Exception($"Unknown value {value} for enum GetLibraryItemsFlattenSeasons");
}
}
}

View File

@@ -0,0 +1,57 @@
//------------------------------------------------------------------------------
// <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;
public enum GetLibraryItemsHasThumbnail
{
[JsonProperty("0")]
False,
[JsonProperty("1")]
True,
}
public static class GetLibraryItemsHasThumbnailExtension
{
public static string Value(this GetLibraryItemsHasThumbnail value)
{
return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString();
}
public static GetLibraryItemsHasThumbnail ToEnum(this string value)
{
foreach(var field in typeof(GetLibraryItemsHasThumbnail).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 GetLibraryItemsHasThumbnail)
{
return (GetLibraryItemsHasThumbnail)enumVal;
}
}
}
throw new Exception($"Unknown value {value} for enum GetLibraryItemsHasThumbnail");
}
}
}

View File

@@ -20,7 +20,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
public string Alt { get; set; } = default!;
[JsonProperty("type")]
public GetLibraryItemsLibraryResponseType Type { get; set; } = default!;
public GetLibraryItemsLibraryResponse200Type Type { get; set; } = default!;
[JsonProperty("url")]
public string Url { get; set; } = default!;

View File

@@ -0,0 +1,64 @@
//------------------------------------------------------------------------------
// <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 direction of the sort. Can be either `asc` or `desc`.<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
public enum GetLibraryItemsLibraryActiveDirection
{
[JsonProperty("asc")]
Ascending,
[JsonProperty("desc")]
Descending,
}
public static class GetLibraryItemsLibraryActiveDirectionExtension
{
public static string Value(this GetLibraryItemsLibraryActiveDirection value)
{
return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString();
}
public static GetLibraryItemsLibraryActiveDirection ToEnum(this string value)
{
foreach(var field in typeof(GetLibraryItemsLibraryActiveDirection).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 GetLibraryItemsLibraryActiveDirection)
{
return (GetLibraryItemsLibraryActiveDirection)enumVal;
}
}
}
throw new Exception($"Unknown value {value} for enum GetLibraryItemsLibraryActiveDirection");
}
}
}

View File

@@ -0,0 +1,64 @@
//------------------------------------------------------------------------------
// <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 direction of the sort. Can be either `asc` or `desc`.<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
public enum GetLibraryItemsLibraryDefaultDirection
{
[JsonProperty("asc")]
Ascending,
[JsonProperty("desc")]
Descending,
}
public static class GetLibraryItemsLibraryDefaultDirectionExtension
{
public static string Value(this GetLibraryItemsLibraryDefaultDirection value)
{
return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString();
}
public static GetLibraryItemsLibraryDefaultDirection ToEnum(this string value)
{
foreach(var field in typeof(GetLibraryItemsLibraryDefaultDirection).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 GetLibraryItemsLibraryDefaultDirection)
{
return (GetLibraryItemsLibraryDefaultDirection)enumVal;
}
}
}
throw new Exception($"Unknown value {value} for enum GetLibraryItemsLibraryDefaultDirection");
}
}
}

View File

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

View File

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

View File

@@ -0,0 +1,33 @@
//------------------------------------------------------------------------------
// <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 GetLibraryItemsLibraryFilter
{
[JsonProperty("filter")]
public string Filter { get; set; } = default!;
[JsonProperty("filterType")]
public string FilterType { get; set; } = default!;
[JsonProperty("key")]
public string Key { get; set; } = default!;
[JsonProperty("title")]
public string Title { get; set; } = default!;
[JsonProperty("type")]
public string Type { get; set; } = default!;
}
}

View File

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

View File

@@ -0,0 +1,61 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using System;
public enum GetLibraryItemsLibraryResponse200Type
{
[JsonProperty("coverPoster")]
CoverPoster,
[JsonProperty("background")]
Background,
[JsonProperty("snapshot")]
Snapshot,
[JsonProperty("clearLogo")]
ClearLogo,
}
public static class GetLibraryItemsLibraryResponse200TypeExtension
{
public static string Value(this GetLibraryItemsLibraryResponse200Type value)
{
return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString();
}
public static GetLibraryItemsLibraryResponse200Type ToEnum(this string value)
{
foreach(var field in typeof(GetLibraryItemsLibraryResponse200Type).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 GetLibraryItemsLibraryResponse200Type)
{
return (GetLibraryItemsLibraryResponse200Type)enumVal;
}
}
}
throw new Exception($"Unknown value {value} for enum GetLibraryItemsLibraryResponse200Type");
}
}
}

View File

@@ -9,53 +9,33 @@
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Models.Requests;
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
public enum GetLibraryItemsLibraryResponseType
public class GetLibraryItemsLibraryResponseType
{
[JsonProperty("coverPoster")]
CoverPoster,
[JsonProperty("background")]
Background,
[JsonProperty("snapshot")]
Snapshot,
[JsonProperty("clearLogo")]
ClearLogo,
[JsonProperty("key")]
public string Key { get; set; } = default!;
[JsonProperty("type")]
public string Type { get; set; } = default!;
[JsonProperty("title")]
public string Title { get; set; } = default!;
[JsonProperty("active")]
public bool Active { get; set; } = default!;
[JsonProperty("Filter")]
public List<GetLibraryItemsLibraryFilter>? Filter { get; set; }
[JsonProperty("Sort")]
public List<GetLibraryItemsLibrarySort>? Sort { get; set; }
[JsonProperty("Field")]
public List<GetLibraryItemsLibraryField>? Field { get; set; }
}
public static class GetLibraryItemsLibraryResponseTypeExtension
{
public static string Value(this GetLibraryItemsLibraryResponseType value)
{
return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString();
}
public static GetLibraryItemsLibraryResponseType ToEnum(this string value)
{
foreach(var field in typeof(GetLibraryItemsLibraryResponseType).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 GetLibraryItemsLibraryResponseType)
{
return (GetLibraryItemsLibraryResponseType)enumVal;
}
}
}
throw new Exception($"Unknown value {value} for enum GetLibraryItemsLibraryResponseType");
}
}
}

View File

@@ -0,0 +1,57 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Models.Requests;
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
public class GetLibraryItemsLibrarySort
{
[JsonProperty("default")]
public string? Default { get; set; }
[JsonProperty("active")]
public bool? Active { get; set; }
/// <summary>
/// The direction of the sort. Can be either `asc` or `desc`.<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
[JsonProperty("activeDirection")]
public GetLibraryItemsLibraryActiveDirection? ActiveDirection { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.GetLibraryItemsLibraryActiveDirection.Ascending;
/// <summary>
/// The direction of the sort. Can be either `asc` or `desc`.<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
[JsonProperty("defaultDirection")]
public GetLibraryItemsLibraryDefaultDirection? DefaultDirection { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.GetLibraryItemsLibraryDefaultDirection.Ascending;
[JsonProperty("descKey")]
public string? DescKey { get; set; }
[JsonProperty("firstCharacterKey")]
public string? FirstCharacterKey { get; set; }
[JsonProperty("key")]
public string Key { get; set; } = default!;
[JsonProperty("title")]
public string Title { get; set; } = default!;
}
}

View File

@@ -9,33 +9,60 @@
#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;
using System;
public class GetLibraryItemsLibraryType
/// <summary>
/// The type of media content<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
public enum GetLibraryItemsLibraryType
{
[JsonProperty("key")]
public string Key { get; set; } = default!;
[JsonProperty("type")]
public string Type { get; set; } = default!;
[JsonProperty("title")]
public string Title { get; set; } = default!;
[JsonProperty("active")]
public bool Active { get; set; } = default!;
[JsonProperty("Filter")]
public List<GetLibraryItemsFilter>? Filter { get; set; }
[JsonProperty("Sort")]
public List<GetLibraryItemsSort>? Sort { get; set; }
[JsonProperty("Field")]
public List<GetLibraryItemsField>? Field { get; set; }
[JsonProperty("movie")]
Movie,
[JsonProperty("show")]
TvShow,
[JsonProperty("season")]
Season,
[JsonProperty("episode")]
Episode,
}
public static class GetLibraryItemsLibraryTypeExtension
{
public static string Value(this GetLibraryItemsLibraryType value)
{
return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString();
}
public static GetLibraryItemsLibraryType ToEnum(this string value)
{
foreach(var field in typeof(GetLibraryItemsLibraryType).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 GetLibraryItemsLibraryType)
{
return (GetLibraryItemsLibraryType)enumVal;
}
}
}
throw new Exception($"Unknown value {value} for enum GetLibraryItemsLibraryType");
}
}
}

View File

@@ -62,6 +62,12 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
[JsonProperty("hasVoiceActivity")]
public bool? HasVoiceActivity { get; set; }
[JsonProperty("optimizedForStreaming")]
public GetLibraryItemsOptimizedForStreaming? OptimizedForStreaming { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.GetLibraryItemsOptimizedForStreaming.Disable;
[JsonProperty("has64bitOffsets")]
public bool? Has64bitOffsets { get; set; }
[JsonProperty("Part")]
public List<GetLibraryItemsPart> Part { get; set; } = default!;
}

View File

@@ -9,15 +9,27 @@
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Models.Components;
using LukeHagar.PlexAPI.SDK.Models.Requests;
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using System.Collections.Generic;
/// <summary>
/// The Meta object is only included in the response if the `includeMeta` parameter is set to `1`.<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
public class GetLibraryItemsMediaContainer
{
[JsonProperty("Type")]
public List<GetLibraryItemsType>? Type { get; set; }
[JsonProperty("FieldType")]
public List<GetLibraryItemsFieldType>? FieldType { get; set; }
[JsonProperty("size")]
public int Size { get; set; } = default!;
@@ -43,7 +55,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
public string Identifier { get; set; } = default!;
[JsonProperty("librarySectionID")]
public LibrarySectionID LibrarySectionID { get; set; } = default!;
public long LibrarySectionID { get; set; } = default!;
[JsonProperty("librarySectionTitle")]
public string LibrarySectionTitle { get; set; } = default!;
@@ -86,6 +98,6 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
/// </remarks>
/// </summary>
[JsonProperty("Meta")]
public Meta? Meta { get; set; }
public GetLibraryItemsMeta? Meta { get; set; }
}
}

View File

@@ -0,0 +1,29 @@
//------------------------------------------------------------------------------
// <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 GetLibraryItemsMediaGuid
{
/// <summary>
/// Can be one of the following formats:<br/>
///
/// <remarks>
/// imdb://tt13015952, tmdb://2434012, tvdb://7945991<br/>
///
/// </remarks>
/// </summary>
[JsonProperty("id")]
public string Id { get; set; } = default!;
}
}

View File

@@ -0,0 +1,33 @@
//------------------------------------------------------------------------------
// <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;
/// <summary>
/// The Meta object is only included in the response if the `includeMeta` parameter is set to `1`.<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
public class GetLibraryItemsMeta
{
[JsonProperty("Type")]
public List<GetLibraryItemsLibraryResponseType>? Type { get; set; }
[JsonProperty("FieldType")]
public List<GetLibraryItemsLibraryFieldType>? FieldType { get; set; }
}
}

View File

@@ -0,0 +1,36 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
public class GetLibraryItemsMetaDataRating
{
/// <summary>
/// A URI or path to the rating image.
/// </summary>
[JsonProperty("image")]
public string Image { get; set; } = default!;
/// <summary>
/// The value of the rating.
/// </summary>
[JsonProperty("value")]
public float Value { get; set; } = default!;
/// <summary>
/// The type of rating (e.g., audience, critic).
/// </summary>
[JsonProperty("type")]
public string Type { get; set; } = default!;
}
}

View File

@@ -41,6 +41,15 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
[JsonProperty("skipChildren")]
public bool? SkipChildren { get; set; }
[JsonProperty("librarySectionID")]
public long? LibrarySectionID { get; set; }
[JsonProperty("librarySectionTitle")]
public string? LibrarySectionTitle { get; set; }
[JsonProperty("librarySectionKey")]
public string? LibrarySectionKey { get; set; }
/// <summary>
/// The type of media content<br/>
///
@@ -49,7 +58,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
/// </remarks>
/// </summary>
[JsonProperty("type")]
public GetLibraryItemsType Type { get; set; } = default!;
public GetLibraryItemsLibraryType Type { get; set; } = default!;
[JsonProperty("title")]
public string Title { get; set; } = default!;
@@ -79,7 +88,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
public string? Tagline { get; set; }
[JsonProperty("flattenSeasons")]
public FlattenSeasons? FlattenSeasons { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.FlattenSeasons.False;
public GetLibraryItemsFlattenSeasons? FlattenSeasons { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.GetLibraryItemsFlattenSeasons.False;
/// <summary>
/// Setting that indicates the episode ordering for the show <br/>
@@ -94,7 +103,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
/// </remarks>
/// </summary>
[JsonProperty("showOrdering")]
public ShowOrdering? ShowOrdering { get; set; }
public GetLibraryItemsShowOrdering? ShowOrdering { get; set; }
[JsonProperty("thumb")]
public string? Thumb { get; set; }
@@ -150,6 +159,9 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
[JsonProperty("grandparentThumb")]
public string? GrandparentThumb { get; set; }
[JsonProperty("parentSlug")]
public string? ParentSlug { get; set; }
[JsonProperty("grandparentSlug")]
public string? GrandparentSlug { get; set; }
@@ -182,7 +194,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
public List<GetLibraryItemsWriter>? Writer { get; set; }
[JsonProperty("Collection")]
public List<Collection>? Collection { get; set; }
public List<GetLibraryItemsCollection>? Collection { get; set; }
[JsonProperty("Role")]
public List<GetLibraryItemsRole>? Role { get; set; }
@@ -195,10 +207,13 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
/// </remarks>
/// </summary>
[JsonProperty("Guid")]
public List<MediaGuid>? MediaGuid { get; set; }
public List<GetLibraryItemsMediaGuid>? MediaGuid { get; set; }
[JsonProperty("UltraBlurColors")]
public UltraBlurColors? UltraBlurColors { get; set; }
public GetLibraryItemsUltraBlurColors? UltraBlurColors { get; set; }
[JsonProperty("Rating")]
public List<GetLibraryItemsMetaDataRating>? MetaDataRating { get; set; }
[JsonProperty("Image")]
public List<GetLibraryItemsImage>? Image { get; set; }

View File

@@ -0,0 +1,20 @@
//------------------------------------------------------------------------------
// <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 enum GetLibraryItemsOptimizedForStreaming
{
Disable = 0,
Enable = 1,
}
}

View File

@@ -12,6 +12,7 @@ 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 GetLibraryItemsPart
{
@@ -44,6 +45,12 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
[JsonProperty("audioProfile")]
public string? AudioProfile { get; set; }
[JsonProperty("has64bitOffsets")]
public bool? Has64bitOffsets { get; set; }
[JsonProperty("optimizedForStreaming")]
public bool? OptimizedForStreaming { get; set; }
[JsonProperty("videoProfile")]
public string VideoProfile { get; set; } = default!;
@@ -51,6 +58,9 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
public string? Indexes { get; set; }
[JsonProperty("hasThumbnail")]
public HasThumbnail? HasThumbnail { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.HasThumbnail.False;
public GetLibraryItemsHasThumbnail? HasThumbnail { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.GetLibraryItemsHasThumbnail.False;
[JsonProperty("Stream")]
public List<GetLibraryItemsStream>? Stream { get; set; }
}
}

View File

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

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;
/// <summary>
/// The type of media to retrieve.<br/>
///
/// <remarks>
/// 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/>
///
/// </remarks>
/// </summary>
public enum GetLibraryItemsQueryParamType
{
Movie = 1,
TvShow = 2,
Season = 3,
Episode = 4,
}
}

View File

@@ -42,16 +42,6 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=includeGuids")]
public IncludeGuids? IncludeGuids { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.IncludeGuids.Disable;
/// <summary>
/// Adds the Meta object to the response<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=includeMeta")]
public IncludeMeta? IncludeMeta { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.IncludeMeta.Disable;
/// <summary>
/// The type of media to retrieve.<br/>
///
@@ -65,7 +55,17 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
/// </remarks>
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=type")]
public Models.Requests.Type? Type { get; set; }
public GetLibraryItemsQueryParamType? Type { get; set; }
/// <summary>
/// Adds the Meta object to the response<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=includeMeta")]
public GetLibraryItemsQueryParamIncludeMeta? IncludeMeta { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.GetLibraryItemsQueryParamIncludeMeta.Disable;
/// <summary>
/// The index of the first item to return. If not specified, the first item will be returned.<br/>

View File

@@ -15,7 +15,40 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
public class GetLibraryItemsRole
{
/// <summary>
/// The ID of the tag or actor.
/// </summary>
[JsonProperty("id")]
public long? Id { get; set; }
/// <summary>
/// The filter used to find the actor or tag.
/// </summary>
[JsonProperty("filter")]
public string? Filter { get; set; }
/// <summary>
/// The thumbnail of the actor
/// </summary>
[JsonProperty("thumb")]
public string? Thumb { get; set; }
/// <summary>
/// The name of the tag or actor.
/// </summary>
[JsonProperty("tag")]
public string? Tag { get; set; }
/// <summary>
/// Unique identifier for the tag.
/// </summary>
[JsonProperty("tagKey")]
public string? TagKey { get; set; }
/// <summary>
/// The role of the actor or tag in the media.
/// </summary>
[JsonProperty("role")]
public string? Role { get; set; }
}
}

View File

@@ -0,0 +1,75 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using System;
/// <summary>
/// Setting that indicates the episode ordering for the show <br/>
///
/// <remarks>
/// None = Library default, <br/>
/// tmdbAiring = The Movie Database (Aired), <br/>
/// aired = TheTVDB (Aired), <br/>
/// dvd = TheTVDB (DVD), <br/>
/// absolute = TheTVDB (Absolute)).<br/>
///
/// </remarks>
/// </summary>
public enum GetLibraryItemsShowOrdering
{
[JsonProperty("None")]
None,
[JsonProperty("tmdbAiring")]
TmdbAiring,
[JsonProperty("aired")]
Aired,
[JsonProperty("dvd")]
Dvd,
[JsonProperty("absolute")]
Absolute,
}
public static class GetLibraryItemsShowOrderingExtension
{
public static string Value(this GetLibraryItemsShowOrdering value)
{
return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString();
}
public static GetLibraryItemsShowOrdering ToEnum(this string value)
{
foreach(var field in typeof(GetLibraryItemsShowOrdering).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 GetLibraryItemsShowOrdering)
{
return (GetLibraryItemsShowOrdering)enumVal;
}
}
}
throw new Exception($"Unknown value {value} for enum GetLibraryItemsShowOrdering");
}
}
}

View File

@@ -30,7 +30,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
/// </remarks>
/// </summary>
[JsonProperty("activeDirection")]
public ActiveDirection? ActiveDirection { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.ActiveDirection.Ascending;
public GetLibraryItemsActiveDirection? ActiveDirection { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.GetLibraryItemsActiveDirection.Ascending;
/// <summary>
/// The direction of the sort. Can be either `asc` or `desc`.<br/>
@@ -40,7 +40,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
/// </remarks>
/// </summary>
[JsonProperty("defaultDirection")]
public DefaultDirection? DefaultDirection { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.DefaultDirection.Ascending;
public GetLibraryItemsDefaultDirection? DefaultDirection { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.GetLibraryItemsDefaultDirection.Ascending;
[JsonProperty("descKey")]
public string? DescKey { get; set; }

View File

@@ -0,0 +1,234 @@
//------------------------------------------------------------------------------
// <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 GetLibraryItemsStream
{
[JsonProperty("id")]
public long Id { get; set; } = default!;
/// <summary>
/// Type of stream (1 = video, 2 = audio, 3 = subtitle)
/// </summary>
[JsonProperty("streamType")]
public long StreamType { get; set; } = default!;
/// <summary>
/// Indicates if this is the default stream
/// </summary>
[JsonProperty("default")]
public bool? Default { get; set; }
/// <summary>
/// Indicates if the stream is selected
/// </summary>
[JsonProperty("selected")]
public bool? Selected { get; set; }
/// <summary>
/// Codec used by the stream
/// </summary>
[JsonProperty("codec")]
public string Codec { get; set; } = default!;
/// <summary>
/// The index of the stream
/// </summary>
[JsonProperty("index")]
public long Index { get; set; } = default!;
/// <summary>
/// The bitrate of the stream in kbps
/// </summary>
[JsonProperty("bitrate")]
public long? Bitrate { get; set; }
/// <summary>
/// The color primaries of the video stream
/// </summary>
[JsonProperty("colorPrimaries")]
public string? ColorPrimaries { get; set; }
/// <summary>
/// The color range of the video stream
/// </summary>
[JsonProperty("colorRange")]
public string? ColorRange { get; set; }
/// <summary>
/// The color space of the video stream
/// </summary>
[JsonProperty("colorSpace")]
public string? ColorSpace { get; set; }
/// <summary>
/// The transfer characteristics (TRC) of the video stream
/// </summary>
[JsonProperty("colorTrc")]
public string? ColorTrc { get; set; }
/// <summary>
/// The bit depth of the video stream
/// </summary>
[JsonProperty("bitDepth")]
public long? BitDepth { get; set; }
/// <summary>
/// The chroma location of the video stream
/// </summary>
[JsonProperty("chromaLocation")]
public string? ChromaLocation { get; set; }
/// <summary>
/// The identifier of the video stream
/// </summary>
[JsonProperty("streamIdentifier")]
public string? StreamIdentifier { get; set; }
/// <summary>
/// The chroma subsampling format
/// </summary>
[JsonProperty("chromaSubsampling")]
public string? ChromaSubsampling { get; set; }
/// <summary>
/// The coded height of the video stream
/// </summary>
[JsonProperty("codedHeight")]
public long? CodedHeight { get; set; }
/// <summary>
/// The coded width of the video stream
/// </summary>
[JsonProperty("codedWidth")]
public long? CodedWidth { get; set; }
/// <summary>
/// The frame rate of the video stream
/// </summary>
[JsonProperty("frameRate")]
public double? FrameRate { get; set; }
/// <summary>
/// Indicates if the stream has a scaling matrix
/// </summary>
[JsonProperty("hasScalingMatrix")]
public bool? HasScalingMatrix { get; set; }
[JsonProperty("hearingImpaired")]
public bool? HearingImpaired { get; set; }
[JsonProperty("closedCaptions")]
public bool? ClosedCaptions { get; set; }
[JsonProperty("embeddedInVideo")]
public string? EmbeddedInVideo { get; set; }
/// <summary>
/// The height of the video stream
/// </summary>
[JsonProperty("height")]
public long? Height { get; set; }
/// <summary>
/// The level of the video codec
/// </summary>
[JsonProperty("level")]
public long? Level { get; set; }
/// <summary>
/// The profile of the video codec
/// </summary>
[JsonProperty("profile")]
public string? Profile { get; set; }
/// <summary>
/// Number of reference frames
/// </summary>
[JsonProperty("refFrames")]
public long? RefFrames { get; set; }
/// <summary>
/// The scan type (progressive or interlaced)
/// </summary>
[JsonProperty("scanType")]
public string? ScanType { get; set; }
/// <summary>
/// The width of the video stream
/// </summary>
[JsonProperty("width")]
public long? Width { get; set; }
/// <summary>
/// Display title of the stream
/// </summary>
[JsonProperty("displayTitle")]
public string? DisplayTitle { get; set; }
/// <summary>
/// Extended display title of the stream
/// </summary>
[JsonProperty("extendedDisplayTitle")]
public string? ExtendedDisplayTitle { get; set; }
/// <summary>
/// Number of audio channels (for audio streams)
/// </summary>
[JsonProperty("channels")]
public long? Channels { get; set; }
/// <summary>
/// The language of the stream (for audio/subtitle streams)
/// </summary>
[JsonProperty("language")]
public string? Language { get; set; }
/// <summary>
/// Language tag of the stream
/// </summary>
[JsonProperty("languageTag")]
public string? LanguageTag { get; set; }
/// <summary>
/// Language code of the stream
/// </summary>
[JsonProperty("languageCode")]
public string? LanguageCode { get; set; }
/// <summary>
/// The audio channel layout
/// </summary>
[JsonProperty("audioChannelLayout")]
public string? AudioChannelLayout { get; set; }
/// <summary>
/// Sampling rate of the audio stream in Hz
/// </summary>
[JsonProperty("samplingRate")]
public long? SamplingRate { get; set; }
/// <summary>
/// Title of the subtitle track (for subtitle streams)
/// </summary>
[JsonProperty("title")]
public string? Title { get; set; }
/// <summary>
/// Indicates if the subtitle stream can auto-sync
/// </summary>
[JsonProperty("canAutoSync")]
public bool? CanAutoSync { get; set; }
}
}

View File

@@ -9,60 +9,33 @@
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Models.Requests;
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
/// <summary>
/// The type of media content<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
public enum GetLibraryItemsType
public class GetLibraryItemsType
{
[JsonProperty("movie")]
Movie,
[JsonProperty("show")]
TvShow,
[JsonProperty("season")]
Season,
[JsonProperty("episode")]
Episode,
[JsonProperty("key")]
public string Key { get; set; } = default!;
[JsonProperty("type")]
public string Type { get; set; } = default!;
[JsonProperty("title")]
public string Title { get; set; } = default!;
[JsonProperty("active")]
public bool Active { get; set; } = default!;
[JsonProperty("Filter")]
public List<GetLibraryItemsFilter>? Filter { get; set; }
[JsonProperty("Sort")]
public List<GetLibraryItemsSort>? Sort { get; set; }
[JsonProperty("Field")]
public List<GetLibraryItemsField>? Field { get; set; }
}
public static class GetLibraryItemsTypeExtension
{
public static string Value(this GetLibraryItemsType value)
{
return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString();
}
public static GetLibraryItemsType ToEnum(this string value)
{
foreach(var field in typeof(GetLibraryItemsType).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 GetLibraryItemsType)
{
return (GetLibraryItemsType)enumVal;
}
}
}
throw new Exception($"Unknown value {value} for enum GetLibraryItemsType");
}
}
}

View File

@@ -0,0 +1,30 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
public class GetLibraryItemsUltraBlurColors
{
[JsonProperty("topLeft")]
public string TopLeft { get; set; } = default!;
[JsonProperty("topRight")]
public string TopRight { get; set; } = default!;
[JsonProperty("bottomRight")]
public string BottomRight { get; set; } = default!;
[JsonProperty("bottomLeft")]
public string BottomLeft { get; set; } = default!;
}
}

View File

@@ -48,6 +48,6 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
public string? VideoProfile { get; set; }
[JsonProperty("Stream")]
public List<Stream>? Stream { get; set; }
public List<GetMetaDataByRatingKeyStream>? Stream { get; set; }
}
}

View File

@@ -0,0 +1,114 @@
//------------------------------------------------------------------------------
// <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 GetMetaDataByRatingKeyStream
{
[JsonProperty("id")]
public int? Id { get; set; }
[JsonProperty("streamType")]
public int? StreamType { get; set; }
[JsonProperty("default")]
public bool? Default { get; set; }
[JsonProperty("codec")]
public string? Codec { get; set; }
[JsonProperty("index")]
public int? Index { get; set; }
[JsonProperty("bitrate")]
public int? Bitrate { get; set; }
[JsonProperty("bitDepth")]
public int? BitDepth { get; set; }
[JsonProperty("chromaLocation")]
public string? ChromaLocation { get; set; }
[JsonProperty("chromaSubsampling")]
public string? ChromaSubsampling { get; set; }
[JsonProperty("codedHeight")]
public int? CodedHeight { get; set; }
[JsonProperty("codedWidth")]
public int? CodedWidth { get; set; }
[JsonProperty("colorPrimaries")]
public string? ColorPrimaries { get; set; }
[JsonProperty("colorRange")]
public string? ColorRange { get; set; }
[JsonProperty("colorSpace")]
public string? ColorSpace { get; set; }
[JsonProperty("colorTrc")]
public string? ColorTrc { get; set; }
[JsonProperty("frameRate")]
public int? FrameRate { get; set; }
[JsonProperty("hasScalingMatrix")]
public bool? HasScalingMatrix { get; set; }
[JsonProperty("height")]
public int? Height { get; set; }
[JsonProperty("level")]
public int? Level { get; set; }
[JsonProperty("profile")]
public string? Profile { get; set; }
[JsonProperty("refFrames")]
public int? RefFrames { get; set; }
[JsonProperty("scanType")]
public string? ScanType { get; set; }
[JsonProperty("streamIdentifier")]
public string? StreamIdentifier { get; set; }
[JsonProperty("width")]
public int? Width { get; set; }
[JsonProperty("displayTitle")]
public string? DisplayTitle { get; set; }
[JsonProperty("extendedDisplayTitle")]
public string? ExtendedDisplayTitle { get; set; }
[JsonProperty("selected")]
public bool? Selected { get; set; }
[JsonProperty("channels")]
public int? Channels { get; set; }
[JsonProperty("language")]
public string? Language { get; set; }
[JsonProperty("languageTag")]
public string? LanguageTag { get; set; }
[JsonProperty("languageCode")]
public string? LanguageCode { get; set; }
[JsonProperty("samplingRate")]
public int? SamplingRate { get; set; }
}
}

View File

@@ -26,6 +26,18 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=strong")]
public bool? Strong { get; set; } = false;
/// <summary>
/// The unique identifier for the client application<br/>
///
/// <remarks>
/// This is used to track the client application and its usage<br/>
/// (UUID, serial number, or other number unique per device)<br/>
///
/// </remarks>
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=X-Plex-Client-Identifier")]
public string? ClientID { get; set; }
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=X-Plex-Product")]
public string? ClientName { get; set; }

View File

@@ -0,0 +1,64 @@
//------------------------------------------------------------------------------
// <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 direction of the sort. Can be either `asc` or `desc`.<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
public enum GetRecentlyAddedActiveDirection
{
[JsonProperty("asc")]
Ascending,
[JsonProperty("desc")]
Descending,
}
public static class GetRecentlyAddedActiveDirectionExtension
{
public static string Value(this GetRecentlyAddedActiveDirection value)
{
return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString();
}
public static GetRecentlyAddedActiveDirection ToEnum(this string value)
{
foreach(var field in typeof(GetRecentlyAddedActiveDirection).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 GetRecentlyAddedActiveDirection)
{
return (GetRecentlyAddedActiveDirection)enumVal;
}
}
}
throw new Exception($"Unknown value {value} for enum GetRecentlyAddedActiveDirection");
}
}
}

View File

@@ -0,0 +1,64 @@
//------------------------------------------------------------------------------
// <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 direction of the sort. Can be either `asc` or `desc`.<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
public enum GetRecentlyAddedDefaultDirection
{
[JsonProperty("asc")]
Ascending,
[JsonProperty("desc")]
Descending,
}
public static class GetRecentlyAddedDefaultDirectionExtension
{
public static string Value(this GetRecentlyAddedDefaultDirection value)
{
return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString();
}
public static GetRecentlyAddedDefaultDirection ToEnum(this string value)
{
foreach(var field in typeof(GetRecentlyAddedDefaultDirection).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 GetRecentlyAddedDefaultDirection)
{
return (GetRecentlyAddedDefaultDirection)enumVal;
}
}
}
throw new Exception($"Unknown value {value} for enum GetRecentlyAddedDefaultDirection");
}
}
}

View File

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

View File

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

View File

@@ -0,0 +1,33 @@
//------------------------------------------------------------------------------
// <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 GetRecentlyAddedFilter
{
[JsonProperty("filter")]
public string Filter { get; set; } = default!;
[JsonProperty("filterType")]
public string FilterType { get; set; } = default!;
[JsonProperty("key")]
public string Key { get; set; } = default!;
[JsonProperty("title")]
public string Title { get; set; } = default!;
[JsonProperty("type")]
public string Type { get; set; } = default!;
}
}

View File

@@ -0,0 +1,61 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using System;
public enum GetRecentlyAddedHubsResponseType
{
[JsonProperty("coverPoster")]
CoverPoster,
[JsonProperty("background")]
Background,
[JsonProperty("snapshot")]
Snapshot,
[JsonProperty("clearLogo")]
ClearLogo,
}
public static class GetRecentlyAddedHubsResponseTypeExtension
{
public static string Value(this GetRecentlyAddedHubsResponseType value)
{
return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString();
}
public static GetRecentlyAddedHubsResponseType ToEnum(this string value)
{
foreach(var field in typeof(GetRecentlyAddedHubsResponseType).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 GetRecentlyAddedHubsResponseType)
{
return (GetRecentlyAddedHubsResponseType)enumVal;
}
}
}
throw new Exception($"Unknown value {value} for enum GetRecentlyAddedHubsResponseType");
}
}
}

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 type of media content<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
public enum GetRecentlyAddedHubsType
{
[JsonProperty("movie")]
Movie,
[JsonProperty("show")]
TvShow,
[JsonProperty("season")]
Season,
[JsonProperty("episode")]
Episode,
}
public static class GetRecentlyAddedHubsTypeExtension
{
public static string Value(this GetRecentlyAddedHubsType value)
{
return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString();
}
public static GetRecentlyAddedHubsType ToEnum(this string value)
{
foreach(var field in typeof(GetRecentlyAddedHubsType).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 GetRecentlyAddedHubsType)
{
return (GetRecentlyAddedHubsType)enumVal;
}
}
}
throw new Exception($"Unknown value {value} for enum GetRecentlyAddedHubsType");
}
}
}

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,33 @@
//------------------------------------------------------------------------------
// <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 GetRecentlyAddedLibraryFilter
{
[JsonProperty("filter")]
public string Filter { get; set; } = default!;
[JsonProperty("filterType")]
public string FilterType { get; set; } = default!;
[JsonProperty("key")]
public string Key { get; set; } = default!;
[JsonProperty("title")]
public string Title { get; set; } = default!;
[JsonProperty("type")]
public string Type { get; set; } = default!;
}
}

View File

@@ -0,0 +1,21 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
public class GetRecentlyAddedLibraryGenre
{
[JsonProperty("tag")]
public string? Tag { 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.Models.Requests;
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using System.Collections.Generic;
public class GetRecentlyAddedLibraryMedia
{
[JsonProperty("id")]
public double? Id { get; set; }
[JsonProperty("duration")]
public double? Duration { get; set; }
[JsonProperty("bitrate")]
public double? Bitrate { get; set; }
[JsonProperty("width")]
public double? Width { get; set; }
[JsonProperty("height")]
public double? Height { get; set; }
[JsonProperty("aspectRatio")]
public double? AspectRatio { get; set; }
[JsonProperty("audioChannels")]
public double? AudioChannels { get; set; }
[JsonProperty("audioCodec")]
public string? AudioCodec { get; set; }
[JsonProperty("videoCodec")]
public string? VideoCodec { get; set; }
[JsonProperty("videoResolution")]
public double? VideoResolution { get; set; }
[JsonProperty("container")]
public string? Container { get; set; }
[JsonProperty("videoFrameRate")]
public string? VideoFrameRate { get; set; }
[JsonProperty("optimizedForStreaming")]
public double? OptimizedForStreaming { get; set; }
[JsonProperty("has64bitOffsets")]
public bool? Has64bitOffsets { get; set; }
[JsonProperty("videoProfile")]
public string? VideoProfile { get; set; }
[JsonProperty("Part")]
public List<GetRecentlyAddedLibraryPart>? Part { get; set; }
}
}

View File

@@ -0,0 +1,54 @@
//------------------------------------------------------------------------------
// <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;
/// <summary>
/// The Meta object is only included in the response if the `includeMeta` parameter is set to `1`.<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
public class GetRecentlyAddedLibraryMediaContainer
{
[JsonProperty("Type")]
public List<GetRecentlyAddedLibraryType>? Type { get; set; }
[JsonProperty("FieldType")]
public List<FieldType>? FieldType { get; set; }
[JsonProperty("size")]
public double? Size { get; set; }
[JsonProperty("allowSync")]
public bool? AllowSync { get; set; }
[JsonProperty("identifier")]
public string? Identifier { get; set; }
[JsonProperty("mediaTagPrefix")]
public string? MediaTagPrefix { get; set; }
[JsonProperty("mediaTagVersion")]
public double? MediaTagVersion { get; set; }
[JsonProperty("mixedParents")]
public bool? MixedParents { get; set; }
[JsonProperty("Metadata")]
public List<GetRecentlyAddedLibraryMetadata>? Metadata { get; set; }
}
}

View File

@@ -0,0 +1,117 @@
//------------------------------------------------------------------------------
// <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;
using System;
public class GetRecentlyAddedLibraryMetadata
{
[JsonProperty("allowSync")]
public bool? AllowSync { get; set; }
[JsonProperty("librarySectionID")]
public double? LibrarySectionID { get; set; }
[JsonProperty("librarySectionTitle")]
public string? LibrarySectionTitle { get; set; }
[JsonProperty("librarySectionUUID")]
public string? LibrarySectionUUID { get; set; }
[JsonProperty("ratingKey")]
public double? RatingKey { get; set; }
[JsonProperty("key")]
public string? Key { get; set; }
[JsonProperty("guid")]
public string? Guid { get; set; }
[JsonProperty("studio")]
public string? Studio { get; set; }
[JsonProperty("type")]
public string? Type { get; set; }
[JsonProperty("title")]
public string? Title { get; set; }
[JsonProperty("contentRating")]
public string? ContentRating { get; set; }
[JsonProperty("summary")]
public string? Summary { get; set; }
[JsonProperty("rating")]
public double? Rating { get; set; }
[JsonProperty("audienceRating")]
public double? AudienceRating { get; set; }
[JsonProperty("year")]
public double? Year { get; set; }
[JsonProperty("tagline")]
public string? Tagline { get; set; }
[JsonProperty("thumb")]
public string? Thumb { get; set; }
[JsonProperty("art")]
public string? Art { get; set; }
[JsonProperty("duration")]
public double? Duration { get; set; }
[JsonProperty("originallyAvailableAt")]
public DateTime? OriginallyAvailableAt { get; set; }
[JsonProperty("addedAt")]
public double? AddedAt { get; set; }
[JsonProperty("updatedAt")]
public double? UpdatedAt { get; set; }
[JsonProperty("audienceRatingImage")]
public string? AudienceRatingImage { get; set; }
[JsonProperty("chapterSource")]
public string? ChapterSource { get; set; }
[JsonProperty("primaryExtraKey")]
public string? PrimaryExtraKey { get; set; }
[JsonProperty("ratingImage")]
public string? RatingImage { get; set; }
[JsonProperty("Media")]
public List<GetRecentlyAddedLibraryMedia>? Media { get; set; }
[JsonProperty("Genre")]
public List<GetRecentlyAddedLibraryGenre>? Genre { get; set; }
[JsonProperty("Director")]
public List<GetRecentlyAddedLibraryDirector>? Director { get; set; }
[JsonProperty("Writer")]
public List<GetRecentlyAddedLibraryWriter>? Writer { get; set; }
[JsonProperty("Country")]
public List<GetRecentlyAddedLibraryCountry>? Country { get; set; }
[JsonProperty("Role")]
public List<GetRecentlyAddedLibraryRole>? Role { get; set; }
}
}

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 GetRecentlyAddedLibraryPart
{
[JsonProperty("id")]
public double? Id { get; set; }
[JsonProperty("key")]
public string? Key { get; set; }
[JsonProperty("duration")]
public double? Duration { get; set; }
[JsonProperty("file")]
public string? File { get; set; }
[JsonProperty("size")]
public double? Size { get; set; }
[JsonProperty("container")]
public string? Container { get; set; }
[JsonProperty("has64bitOffsets")]
public bool? Has64bitOffsets { get; set; }
[JsonProperty("hasThumbnail")]
public double? HasThumbnail { get; set; }
[JsonProperty("optimizedForStreaming")]
public bool? OptimizedForStreaming { get; set; }
[JsonProperty("videoProfile")]
public string? VideoProfile { get; set; }
}
}

View File

@@ -0,0 +1,80 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Models.Requests;
using LukeHagar.PlexAPI.SDK.Utils;
using System.Collections.Generic;
public class GetRecentlyAddedLibraryRequest
{
/// <summary>
/// The type of media to retrieve.<br/>
///
/// <remarks>
/// 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/>
///
/// </remarks>
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=type")]
public QueryParamType Type { get; set; } = default!;
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=contentDirectoryID")]
public long? ContentDirectoryID { get; set; }
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=pinnedContentDirectoryID")]
public List<long>? PinnedContentDirectoryID { get; set; }
/// <summary>
/// The library section ID for filtering content.
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=sectionID")]
public long? SectionID { get; set; }
/// <summary>
/// Adds the Meta object to the response<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=includeMeta")]
public QueryParamIncludeMeta? IncludeMeta { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.QueryParamIncludeMeta.Disable;
/// <summary>
/// The index of the first item to return. If not specified, the first item will be returned.<br/>
///
/// <remarks>
/// If the number of items exceeds the limit, the response will be paginated.<br/>
/// By default this is 0<br/>
///
/// </remarks>
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=X-Plex-Container-Start")]
public int? XPlexContainerStart { get; set; } = 0;
/// <summary>
/// The number of items to return. If not specified, all items will be returned.<br/>
///
/// <remarks>
/// If the number of items exceeds the limit, the response will be paginated.<br/>
/// By default this is 50<br/>
///
/// </remarks>
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=X-Plex-Container-Size")]
public int? XPlexContainerSize { get; set; } = 50;
}
}

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.Net.Http;
using System;
public class GetRecentlyAddedLibraryResponse
{
/// <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 recently added content
/// </summary>
public GetRecentlyAddedLibraryResponseBody? 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 recently added content
/// </summary>
public class GetRecentlyAddedLibraryResponseBody
{
[JsonProperty("MediaContainer")]
public GetRecentlyAddedLibraryMediaContainer? MediaContainer { get; set; }
}
}

View File

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

View File

@@ -0,0 +1,41 @@
//------------------------------------------------------------------------------
// <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 GetRecentlyAddedLibraryType
{
[JsonProperty("key")]
public string Key { get; set; } = default!;
[JsonProperty("type")]
public string Type { get; set; } = default!;
[JsonProperty("title")]
public string Title { get; set; } = default!;
[JsonProperty("active")]
public bool Active { get; set; } = default!;
[JsonProperty("Filter")]
public List<GetRecentlyAddedLibraryFilter>? Filter { get; set; }
[JsonProperty("Sort")]
public List<Sort>? Sort { get; set; }
[JsonProperty("Field")]
public List<Field>? Field { get; set; }
}
}

View File

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

View File

@@ -18,22 +18,29 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
[JsonProperty("size")]
public double? Size { get; set; }
public double Size { get; set; } = default!;
[JsonProperty("allowSync")]
public bool? AllowSync { get; set; }
[JsonProperty("offset")]
public int? Offset { get; set; }
[JsonProperty("totalSize")]
public int? TotalSize { get; set; }
[JsonProperty("identifier")]
public string? Identifier { get; set; }
[JsonProperty("mediaTagPrefix")]
public string? MediaTagPrefix { get; set; }
[JsonProperty("allowSync")]
public bool? AllowSync { get; set; }
[JsonProperty("mediaTagVersion")]
public double? MediaTagVersion { get; set; }
[JsonProperty("mixedParents")]
public bool? MixedParents { get; set; }
/// <summary>
/// The Meta object is only included in the response if the `includeMeta` parameter is set to `1`.<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
[JsonProperty("Meta")]
public Meta? Meta { get; set; }
[JsonProperty("Metadata")]
public List<GetRecentlyAddedMetadata>? Metadata { get; set; }

View File

@@ -12,47 +12,65 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
using LukeHagar.PlexAPI.SDK.Models.Requests;
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using NodaTime;
using System.Collections.Generic;
using System;
public class GetRecentlyAddedMetadata
{
[JsonProperty("allowSync")]
public bool? AllowSync { get; set; }
[JsonProperty("librarySectionID")]
public double? LibrarySectionID { get; set; }
[JsonProperty("librarySectionTitle")]
public string? LibrarySectionTitle { get; set; }
[JsonProperty("librarySectionUUID")]
public string? LibrarySectionUUID { get; set; }
/// <summary>
/// The rating key (Media ID) of this media item.<br/>
///
/// <remarks>
/// Note: This is always an integer, but is represented as a string in the API.<br/>
///
/// </remarks>
/// </summary>
[JsonProperty("ratingKey")]
public double? RatingKey { get; set; }
public string RatingKey { get; set; } = default!;
[JsonProperty("key")]
public string? Key { get; set; }
public string Key { get; set; } = default!;
[JsonProperty("guid")]
public string? Guid { get; set; }
public string Guid { get; set; } = default!;
[JsonProperty("studio")]
public string? Studio { get; set; }
[JsonProperty("skipChildren")]
public bool? SkipChildren { get; set; }
[JsonProperty("librarySectionID")]
public long? LibrarySectionID { get; set; }
[JsonProperty("librarySectionTitle")]
public string? LibrarySectionTitle { get; set; }
[JsonProperty("librarySectionKey")]
public string? LibrarySectionKey { get; set; }
/// <summary>
/// The type of media content<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
[JsonProperty("type")]
public string? Type { get; set; }
public GetRecentlyAddedHubsType Type { get; set; } = default!;
[JsonProperty("title")]
public string? Title { get; set; }
public string Title { get; set; } = default!;
[JsonProperty("slug")]
public string? Slug { get; set; }
[JsonProperty("contentRating")]
public string? ContentRating { get; set; }
[JsonProperty("summary")]
public string? Summary { get; set; }
public string Summary { get; set; } = default!;
[JsonProperty("rating")]
public double? Rating { get; set; }
@@ -61,28 +79,58 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
public double? AudienceRating { get; set; }
[JsonProperty("year")]
public double? Year { get; set; }
public int? Year { get; set; }
[JsonProperty("seasonCount")]
public int? SeasonCount { get; set; }
[JsonProperty("tagline")]
public string? Tagline { get; set; }
[JsonProperty("flattenSeasons")]
public FlattenSeasons? FlattenSeasons { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.FlattenSeasons.False;
/// <summary>
/// Setting that indicates the episode ordering for the show <br/>
///
/// <remarks>
/// None = Library default, <br/>
/// tmdbAiring = The Movie Database (Aired), <br/>
/// aired = TheTVDB (Aired), <br/>
/// dvd = TheTVDB (DVD), <br/>
/// absolute = TheTVDB (Absolute)).<br/>
///
/// </remarks>
/// </summary>
[JsonProperty("showOrdering")]
public ShowOrdering? ShowOrdering { get; set; }
[JsonProperty("thumb")]
public string? Thumb { get; set; }
[JsonProperty("art")]
public string? Art { get; set; }
[JsonProperty("banner")]
public string? Banner { get; set; }
[JsonProperty("duration")]
public double? Duration { get; set; }
public int? Duration { get; set; }
[JsonProperty("originallyAvailableAt")]
public DateTime? OriginallyAvailableAt { get; set; }
public LocalDate? OriginallyAvailableAt { get; set; }
/// <summary>
/// Unix epoch datetime in seconds
/// </summary>
[JsonProperty("addedAt")]
public double? AddedAt { get; set; }
public long AddedAt { get; set; } = default!;
/// <summary>
/// Unix epoch datetime in seconds
/// </summary>
[JsonProperty("updatedAt")]
public double? UpdatedAt { get; set; }
public long? UpdatedAt { get; set; }
[JsonProperty("audienceRatingImage")]
public string? AudienceRatingImage { get; set; }
@@ -96,22 +144,151 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
[JsonProperty("ratingImage")]
public string? RatingImage { get; set; }
[JsonProperty("grandparentRatingKey")]
public string? GrandparentRatingKey { get; set; }
[JsonProperty("grandparentGuid")]
public string? GrandparentGuid { get; set; }
[JsonProperty("grandparentKey")]
public string? GrandparentKey { get; set; }
[JsonProperty("grandparentTitle")]
public string? GrandparentTitle { get; set; }
[JsonProperty("grandparentThumb")]
public string? GrandparentThumb { get; set; }
[JsonProperty("parentSlug")]
public string? ParentSlug { get; set; }
[JsonProperty("grandparentSlug")]
public string? GrandparentSlug { get; set; }
[JsonProperty("grandparentArt")]
public string? GrandparentArt { get; set; }
[JsonProperty("grandparentTheme")]
public string? GrandparentTheme { get; set; }
/// <summary>
/// The Media object is only included when type query is `4` or higher.<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
[JsonProperty("Media")]
public List<Models.Requests.Media>? Media { get; set; }
[JsonProperty("Genre")]
public List<Genre>? Genre { get; set; }
[JsonProperty("Country")]
public List<Country>? Country { get; set; }
[JsonProperty("Director")]
public List<Director>? Director { get; set; }
[JsonProperty("Writer")]
public List<Writer>? Writer { get; set; }
[JsonProperty("Country")]
public List<Country>? Country { get; set; }
[JsonProperty("Collection")]
public List<Collection>? Collection { get; set; }
[JsonProperty("Role")]
public List<Role>? Role { get; set; }
/// <summary>
/// The Guid object is only included in the response if the `includeGuids` parameter is set to `1`.<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
[JsonProperty("Guid")]
public List<MediaGuid>? MediaGuid { get; set; }
[JsonProperty("UltraBlurColors")]
public UltraBlurColors? UltraBlurColors { get; set; }
[JsonProperty("Rating")]
public List<MetaDataRating>? MetaDataRating { get; set; }
[JsonProperty("Image")]
public List<GetRecentlyAddedImage>? Image { get; set; }
[JsonProperty("titleSort")]
public string? TitleSort { get; set; }
[JsonProperty("viewCount")]
public int? ViewCount { get; set; }
[JsonProperty("lastViewedAt")]
public int? LastViewedAt { get; set; }
[JsonProperty("originalTitle")]
public string? OriginalTitle { get; set; }
[JsonProperty("viewOffset")]
public int? ViewOffset { get; set; }
[JsonProperty("skipCount")]
public int? SkipCount { get; set; }
[JsonProperty("index")]
public int? Index { get; set; }
[JsonProperty("theme")]
public string? Theme { get; set; }
[JsonProperty("leafCount")]
public int? LeafCount { get; set; }
[JsonProperty("viewedLeafCount")]
public int? ViewedLeafCount { get; set; }
[JsonProperty("childCount")]
public int? ChildCount { get; set; }
[JsonProperty("hasPremiumExtras")]
public string? HasPremiumExtras { get; set; }
[JsonProperty("hasPremiumPrimaryExtra")]
public string? HasPremiumPrimaryExtra { get; set; }
/// <summary>
/// The rating key of the parent item.<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
[JsonProperty("parentRatingKey")]
public string? ParentRatingKey { get; set; }
[JsonProperty("parentGuid")]
public string? ParentGuid { get; set; }
[JsonProperty("parentStudio")]
public string? ParentStudio { get; set; }
[JsonProperty("parentKey")]
public string? ParentKey { get; set; }
[JsonProperty("parentTitle")]
public string? ParentTitle { get; set; }
[JsonProperty("parentIndex")]
public int? ParentIndex { get; set; }
[JsonProperty("parentYear")]
public int? ParentYear { get; set; }
[JsonProperty("parentThumb")]
public string? ParentThumb { get; set; }
[JsonProperty("parentTheme")]
public string? ParentTheme { get; set; }
}
}

View File

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

View File

@@ -9,11 +9,55 @@
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Models.Requests;
using LukeHagar.PlexAPI.SDK.Utils;
public class GetRecentlyAddedRequest
{
/// <summary>
/// The content directory ID.
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=contentDirectoryID")]
public long ContentDirectoryID { get; set; } = default!;
/// <summary>
/// The type of media to retrieve.<br/>
///
/// <remarks>
/// 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/>
///
/// </remarks>
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=type")]
public Models.Requests.Type Type { get; set; } = default!;
/// <summary>
/// Comma-separated list of pinned content directory IDs.
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=pinnedContentDirectoryID")]
public string? PinnedContentDirectoryID { get; set; }
/// <summary>
/// The library section ID for filtering content.
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=sectionID")]
public long? SectionID { get; set; }
/// <summary>
/// Adds the Meta object to the response<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=includeMeta")]
public IncludeMeta? IncludeMeta { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.IncludeMeta.Disable;
/// <summary>
/// The index of the first item to return. If not specified, the first item will be returned.<br/>
///

View File

@@ -33,7 +33,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
public HttpResponseMessage RawResponse { get; set; } = default!;
/// <summary>
/// The recently added content
/// A successful response with recently added content.
/// </summary>
public GetRecentlyAddedResponseBody? Object { get; set; }
}

View File

@@ -14,7 +14,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
using Newtonsoft.Json;
/// <summary>
/// The recently added content
/// A successful response with recently added content.
/// </summary>
public class GetRecentlyAddedResponseBody
{

View File

@@ -0,0 +1,57 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Models.Requests;
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
public class GetRecentlyAddedSort
{
[JsonProperty("default")]
public string? Default { get; set; }
[JsonProperty("active")]
public bool? Active { get; set; }
/// <summary>
/// The direction of the sort. Can be either `asc` or `desc`.<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
[JsonProperty("activeDirection")]
public GetRecentlyAddedActiveDirection? ActiveDirection { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.GetRecentlyAddedActiveDirection.Ascending;
/// <summary>
/// The direction of the sort. Can be either `asc` or `desc`.<br/>
///
/// <remarks>
///
/// </remarks>
/// </summary>
[JsonProperty("defaultDirection")]
public GetRecentlyAddedDefaultDirection? DefaultDirection { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.GetRecentlyAddedDefaultDirection.Ascending;
[JsonProperty("descKey")]
public string? DescKey { get; set; }
[JsonProperty("firstCharacterKey")]
public string? FirstCharacterKey { get; set; }
[JsonProperty("key")]
public string Key { get; set; } = default!;
[JsonProperty("title")]
public string Title { get; set; } = default!;
}
}

View File

@@ -0,0 +1,41 @@
//------------------------------------------------------------------------------
// <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 GetRecentlyAddedType
{
[JsonProperty("key")]
public string Key { get; set; } = default!;
[JsonProperty("type")]
public string Type { get; set; } = default!;
[JsonProperty("title")]
public string Title { get; set; } = default!;
[JsonProperty("active")]
public bool Active { get; set; } = default!;
[JsonProperty("Filter")]
public List<GetRecentlyAddedFilter>? Filter { get; set; }
[JsonProperty("Sort")]
public List<GetRecentlyAddedSort>? Sort { get; set; }
[JsonProperty("Field")]
public List<GetRecentlyAddedField>? Field { 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;
/// <summary>
/// The type of media to retrieve.<br/>
///
/// <remarks>
/// 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/>
///
/// </remarks>
/// </summary>
public enum GetSearchLibraryQueryParamType
{
Movie = 1,
TvShow = 2,
Season = 3,
Episode = 4,
}
}

View File

@@ -39,6 +39,6 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
/// </remarks>
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=type")]
public QueryParamType Type { get; set; } = default!;
public GetSearchLibraryQueryParamType Type { get; set; } = default!;
}
}

View File

@@ -37,5 +37,17 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=includeIPv6")]
public IncludeIPv6? IncludeIPv6 { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.IncludeIPv6.Disable;
/// <summary>
/// The unique identifier for the client application<br/>
///
/// <remarks>
/// This is used to track the client application and its usage<br/>
/// (UUID, serial number, or other number unique per device)<br/>
///
/// </remarks>
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=X-Plex-Client-Identifier")]
public string? ClientID { get; set; }
}
}

View File

@@ -19,5 +19,29 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
/// </summary>
[SpeakeasyMetadata("pathParam:style=simple,explode=false,name=pinID")]
public long PinID { get; set; } = default!;
/// <summary>
/// The unique identifier for the client application<br/>
///
/// <remarks>
/// This is used to track the client application and its usage<br/>
/// (UUID, serial number, or other number unique per device)<br/>
///
/// </remarks>
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=X-Plex-Client-Identifier")]
public string? ClientID { get; set; }
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=X-Plex-Product")]
public string? ClientName { get; set; }
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=X-Plex-Device")]
public string? DeviceName { get; set; }
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=X-Plex-Version")]
public string? ClientVersion { get; set; }
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=X-Plex-Platform")]
public string? ClientPlatform { get; set; }
}
}

View File

@@ -29,6 +29,10 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
AdCountdownTimer,
[JsonProperty("adaptive_bitrate")]
AdaptiveBitrate,
[JsonProperty("album-types")]
AlbumTypes,
[JsonProperty("allow_dvr")]
AllowDvr,
[JsonProperty("amazon-loop-debug")]
AmazonLoopDebug,
[JsonProperty("avod-ad-analysis")]
@@ -37,10 +41,16 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
AvodNewMedia,
[JsonProperty("blacklist_get_signin")]
BlacklistGetSignin,
[JsonProperty("boost-voices")]
BoostVoices,
[JsonProperty("camera_upload")]
CameraUpload,
[JsonProperty("client-radio-stations")]
ClientRadioStations,
[JsonProperty("cloudflare-turnstile-required")]
CloudflareTurnstileRequired,
[JsonProperty("cloudsync")]
Cloudsync,
[JsonProperty("collections")]
Collections,
[JsonProperty("comments_and_replies_push_notifications")]
@@ -49,30 +59,50 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
CommunityAccessPlexTv,
[JsonProperty("companions_sonos")]
CompanionsSonos,
[JsonProperty("content_filter")]
ContentFilter,
[JsonProperty("custom-home-removal")]
CustomHomeRemoval,
[JsonProperty("disable_home_user_friendships")]
DisableHomeUserFriendships,
[JsonProperty("disable_sharing_friendships")]
DisableSharingFriendships,
[JsonProperty("downloads-gating")]
DownloadsGating,
[JsonProperty("drm_support")]
DrmSupport,
[JsonProperty("dvr")]
Dvr,
[JsonProperty("dvr-block-unsupported-countries")]
DvrBlockUnsupportedCountries,
[JsonProperty("epg-recent-channels")]
EpgRecentChannels,
[JsonProperty("exclude restrictions")]
ExcludeRestrictions,
[JsonProperty("federated-auth")]
FederatedAuth,
[JsonProperty("friend_request_push_notifications")]
FriendRequestPushNotifications,
[JsonProperty("grandfather-sync")]
GrandfatherSync,
[JsonProperty("guided-upgrade")]
GuidedUpgrade,
[JsonProperty("hardware_transcoding")]
HardwareTranscoding,
[JsonProperty("home")]
Home,
[JsonProperty("hwtranscode")]
Hwtranscode,
[JsonProperty("imagga-v2")]
ImaggaV2,
[JsonProperty("increase-password-complexity")]
IncreasePasswordComplexity,
[JsonProperty("ios14-privacy-banner")]
Ios14PrivacyBanner,
[JsonProperty("iterable-notification-tokens")]
IterableNotificationTokens,
[JsonProperty("item_clusters")]
ItemClusters,
[JsonProperty("keep-payment-method")]
KeepPaymentMethod,
[JsonProperty("kevin-bacon")]
@@ -89,34 +119,68 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
LiveTvSupportIncompleteSegments,
[JsonProperty("livetv")]
Livetv,
[JsonProperty("lyrics")]
Lyrics,
[JsonProperty("metadata_search")]
MetadataSearch,
[JsonProperty("music-analysis")]
MusicAnalysis,
[JsonProperty("music_videos")]
MusicVideos,
[JsonProperty("new_plex_pass_prices")]
NewPlexPassPrices,
[JsonProperty("news-provider-sunset-modal")]
NewsProviderSunsetModal,
[JsonProperty("nominatim")]
Nominatim,
[JsonProperty("pass")]
Pass,
[JsonProperty("photos-favorites")]
PhotosFavorites,
[JsonProperty("photos-metadata-edition")]
PhotosMetadataEdition,
[JsonProperty("photosV6-edit")]
PhotosV6Edit,
[JsonProperty("photosV6-tv-albums")]
PhotosV6TvAlbums,
[JsonProperty("pms_health")]
PmsHealth,
[JsonProperty("premium-dashboard")]
PremiumDashboard,
[JsonProperty("premium_music_metadata")]
PremiumMusicMetadata,
[JsonProperty("radio")]
Radio,
[JsonProperty("rate-limit-client-token")]
RateLimitClientToken,
[JsonProperty("scrobbling-service-plex-tv")]
ScrobblingServicePlexTv,
[JsonProperty("session_bandwidth_restrictions")]
SessionBandwidthRestrictions,
[JsonProperty("session_kick")]
SessionKick,
[JsonProperty("shared_server_notification")]
SharedServerNotification,
[JsonProperty("shared_source_notification")]
SharedSourceNotification,
[JsonProperty("signin_notification")]
SigninNotification,
[JsonProperty("signin_with_apple")]
SigninWithApple,
[JsonProperty("silence-removal")]
SilenceRemoval,
[JsonProperty("sleep-timer")]
SleepTimer,
[JsonProperty("spring_serve_ad_provider")]
SpringServeAdProvider,
[JsonProperty("sync")]
Sync,
[JsonProperty("sweet-fades")]
SweetFades,
[JsonProperty("transcoder_cache")]
TranscoderCache,
[JsonProperty("trailers")]
Trailers,
[JsonProperty("tuner-sharing")]
TunerSharing,
[JsonProperty("two-factor-authentication")]
@@ -125,14 +189,22 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
Unsupportedtuners,
[JsonProperty("upgrade-3ds2")]
Upgrade3ds2,
[JsonProperty("visualizers")]
Visualizers,
[JsonProperty("vod-schema")]
VodSchema,
[JsonProperty("vod_cloudflare")]
VodCloudflare,
[JsonProperty("volume-leveling")]
VolumeLeveling,
[JsonProperty("watch-together-invite")]
WatchTogetherInvite,
[JsonProperty("watchlist-rss")]
WatchlistRss,
[JsonProperty("web_server_dashboard")]
WebServerDashboard,
[JsonProperty("webhooks")]
Webhooks,
}
public static class GetTokenDetailsFeaturesExtension

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