Compare commits

...

1 Commits

Author SHA1 Message Date
speakeasybot
c54e27d618 ci: regenerated with OpenAPI Doc 0.0.3, Speakeasy CLI 1.150.0 2024-01-23 20:47:41 +00:00
44 changed files with 618 additions and 138 deletions

View File

@@ -1,12 +1,12 @@
lockVersion: 2.0.0
id: 5a8dbcbc-e0ee-41f0-9d84-b8b50567d1e9
management:
docChecksum: 7aba498c024534142941d65a7c2e649c
docChecksum: 49e77b550f057eb568502dc74fee7cce
docVersion: 0.0.3
speakeasyVersion: internal
generationVersion: 2.237.3
releaseVersion: 0.1.5
configChecksum: 112f7d72fae8408e2dd1ef59ee88fb3a
releaseVersion: 0.1.6
configChecksum: 8549aba85bd2407d4a0508d2553b1239
repoURL: https://github.com/LukeHagar/plexcsharp.git
repoSubDirectory: .
published: true
@@ -243,6 +243,12 @@ generatedFiles:
- PlexAPI/Models/Requests/RefreshLibraryErrors.cs
- PlexAPI/Models/Requests/RefreshLibraryResponseBody.cs
- PlexAPI/Models/Requests/RefreshLibraryResponse.cs
- PlexAPI/Models/Requests/Type.cs
- PlexAPI/Models/Requests/SearchLibraryRequest.cs
- PlexAPI/Models/Requests/SearchLibraryMetadata.cs
- PlexAPI/Models/Requests/SearchLibraryMediaContainer.cs
- PlexAPI/Models/Requests/SearchLibraryResponseBody.cs
- PlexAPI/Models/Requests/SearchLibraryResponse.cs
- PlexAPI/Models/Requests/GetMetadataRequest.cs
- PlexAPI/Models/Requests/GetMetadataErrors.cs
- PlexAPI/Models/Requests/GetMetadataLibraryResponseBody.cs
@@ -290,7 +296,7 @@ generatedFiles:
- PlexAPI/Models/Requests/EnablePaperTrailErrors.cs
- PlexAPI/Models/Requests/EnablePaperTrailResponseBody.cs
- PlexAPI/Models/Requests/EnablePaperTrailResponse.cs
- PlexAPI/Models/Requests/Type.cs
- PlexAPI/Models/Requests/QueryParamType.cs
- PlexAPI/Models/Requests/Smart.cs
- PlexAPI/Models/Requests/CreatePlaylistRequest.cs
- PlexAPI/Models/Requests/CreatePlaylistErrors.cs
@@ -353,7 +359,7 @@ generatedFiles:
- PlexAPI/Models/Requests/UploadPlaylistErrors.cs
- PlexAPI/Models/Requests/UploadPlaylistResponseBody.cs
- PlexAPI/Models/Requests/UploadPlaylistResponse.cs
- PlexAPI/Models/Requests/QueryParamType.cs
- PlexAPI/Models/Requests/GetTransientTokenQueryParamType.cs
- PlexAPI/Models/Requests/Scope.cs
- PlexAPI/Models/Requests/GetTransientTokenRequest.cs
- PlexAPI/Models/Requests/GetTransientTokenErrors.cs
@@ -615,6 +621,12 @@ generatedFiles:
- docs/Models/Requests/RefreshLibraryErrors.md
- docs/Models/Requests/RefreshLibraryResponseBody.md
- docs/Models/Requests/RefreshLibraryResponse.md
- docs/Models/Requests/Type.md
- docs/Models/Requests/SearchLibraryRequest.md
- docs/Models/Requests/SearchLibraryMetadata.md
- docs/Models/Requests/SearchLibraryMediaContainer.md
- docs/Models/Requests/SearchLibraryResponseBody.md
- docs/Models/Requests/SearchLibraryResponse.md
- docs/Models/Requests/GetMetadataRequest.md
- docs/Models/Requests/GetMetadataErrors.md
- docs/Models/Requests/GetMetadataLibraryResponseBody.md
@@ -662,7 +674,7 @@ generatedFiles:
- docs/Models/Requests/EnablePaperTrailErrors.md
- docs/Models/Requests/EnablePaperTrailResponseBody.md
- docs/Models/Requests/EnablePaperTrailResponse.md
- docs/Models/Requests/Type.md
- docs/Models/Requests/QueryParamType.md
- docs/Models/Requests/Smart.md
- docs/Models/Requests/CreatePlaylistRequest.md
- docs/Models/Requests/CreatePlaylistErrors.md
@@ -725,7 +737,7 @@ generatedFiles:
- docs/Models/Requests/UploadPlaylistErrors.md
- docs/Models/Requests/UploadPlaylistResponseBody.md
- docs/Models/Requests/UploadPlaylistResponse.md
- docs/Models/Requests/QueryParamType.md
- docs/Models/Requests/GetTransientTokenQueryParamType.md
- docs/Models/Requests/Scope.md
- docs/Models/Requests/GetTransientTokenRequest.md
- docs/Models/Requests/GetTransientTokenErrors.md

View File

@@ -70,10 +70,10 @@ namespace PlexAPI
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.1.5";
private const string _sdkVersion = "0.1.6";
private const string _sdkGenVersion = "2.237.3";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.5 2.237.3 0.0.3 Plex-API";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.6 2.237.3 0.0.3 Plex-API";
private string _serverUrl = "";
private ISpeakeasyHttpClient _defaultClient;
private ISpeakeasyHttpClient _securityClient;

View File

@@ -97,10 +97,10 @@ namespace PlexAPI
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.1.5";
private const string _sdkVersion = "0.1.6";
private const string _sdkGenVersion = "2.237.3";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.5 2.237.3 0.0.3 Plex-API";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.6 2.237.3 0.0.3 Plex-API";
private string _serverUrl = "";
private ISpeakeasyHttpClient _defaultClient;
private ISpeakeasyHttpClient _securityClient;

View File

@@ -59,10 +59,10 @@ namespace PlexAPI
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.1.5";
private const string _sdkVersion = "0.1.6";
private const string _sdkGenVersion = "2.237.3";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.5 2.237.3 0.0.3 Plex-API";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.6 2.237.3 0.0.3 Plex-API";
private string _serverUrl = "";
private ISpeakeasyHttpClient _defaultClient;
private ISpeakeasyHttpClient _securityClient;

View File

@@ -143,7 +143,6 @@ namespace PlexAPI
/// - `resolution`: Items categorized by resolution.<br/>
/// - `firstCharacter`: Items categorized by the first letter.<br/>
/// - `folder`: Items categorized by folder.<br/>
/// - `search?type=1`: Search functionality within the section.<br/>
///
/// </remarks>
/// </summary>
@@ -159,6 +158,33 @@ namespace PlexAPI
/// </summary>
Task<RefreshLibraryResponse> RefreshLibraryAsync(double sectionId);
/// <summary>
/// Search Library
///
/// <remarks>
/// Search for content within a specific section of the library.<br/>
/// <br/>
/// ### Types<br/>
/// Each type in the library comes with a set of filters and sorts, aiding in building dynamic media controls:<br/>
/// <br/>
/// - **Type Object Attributes**:<br/>
/// - `type`: Metadata type (if standard Plex type). <br/>
/// - `title`: Title for this content type (e.g., &quot;Movies&quot;).<br/>
/// <br/>
/// - **Filter Objects**:<br/>
/// - Subset of the media query language.<br/>
/// - Attributes include `filter` (name), `filterType` (data type), `key` (endpoint for value range), and `title`.<br/>
/// <br/>
/// - **Sort Objects**:<br/>
/// - Description of sort fields.<br/>
/// - Attributes include `defaultDirection` (asc/desc), `descKey` and `key` (sort parameters), and `title`.<br/>
/// <br/>
/// &gt; **Note**: Filters and sorts are optional; without them, no filtering controls are rendered.<br/>
///
/// </remarks>
/// </summary>
Task<SearchLibraryResponse> SearchLibraryAsync(long sectionId, Type type);
/// <summary>
/// Get Items Metadata
///
@@ -201,10 +227,10 @@ namespace PlexAPI
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.1.5";
private const string _sdkVersion = "0.1.6";
private const string _sdkGenVersion = "2.237.3";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.5 2.237.3 0.0.3 Plex-API";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.6 2.237.3 0.0.3 Plex-API";
private string _serverUrl = "";
private ISpeakeasyHttpClient _defaultClient;
private ISpeakeasyHttpClient _securityClient;
@@ -543,6 +569,46 @@ namespace PlexAPI
}
public async Task<SearchLibraryResponse> SearchLibraryAsync(long sectionId, Type type)
{
var request = new SearchLibraryRequest()
{
SectionId = sectionId,
Type = type,
};
string baseUrl = this.SDKConfiguration.GetTemplatedServerDetails();
var urlString = URLBuilder.Build(baseUrl, "/library/sections/{sectionId}/search", request);
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
httpRequest.Headers.Add("user-agent", _userAgent);
var client = _securityClient;
var httpResponse = await client.SendAsync(httpRequest);
var contentType = httpResponse.Content.Headers.ContentType?.MediaType;
var response = new SearchLibraryResponse
{
StatusCode = (int)httpResponse.StatusCode,
ContentType = contentType,
RawResponse = httpResponse
};
if((response.StatusCode == 200))
{
if(Utilities.IsContentTypeMatch("application/json",response.ContentType))
{
response.Object = JsonConvert.DeserializeObject<SearchLibraryResponseBody>(await httpResponse.Content.ReadAsStringAsync(), new JsonSerializerSettings(){ NullValueHandling = NullValueHandling.Ignore, Converters = new JsonConverter[] { new FlexibleObjectDeserializer(), new EnumSerializer() }});
}
return response;
}
return response;
}
public async Task<GetMetadataResponse> GetMetadataAsync(double ratingKey)
{
var request = new GetMetadataRequest()

View File

@@ -90,10 +90,10 @@ namespace PlexAPI
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.1.5";
private const string _sdkVersion = "0.1.6";
private const string _sdkGenVersion = "2.237.3";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.5 2.237.3 0.0.3 Plex-API";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.6 2.237.3 0.0.3 Plex-API";
private string _serverUrl = "";
private ISpeakeasyHttpClient _defaultClient;
private ISpeakeasyHttpClient _securityClient;

View File

@@ -68,10 +68,10 @@ namespace PlexAPI
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.1.5";
private const string _sdkVersion = "0.1.6";
private const string _sdkGenVersion = "2.237.3";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.5 2.237.3 0.0.3 Plex-API";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.6 2.237.3 0.0.3 Plex-API";
private string _serverUrl = "";
private ISpeakeasyHttpClient _defaultClient;
private ISpeakeasyHttpClient _securityClient;

View File

@@ -25,7 +25,7 @@ namespace PlexAPI.Models.Requests
/// type of playlist to create
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=type")]
public Type Type { get; set; } = default!;
public QueryParamType Type { get; set; } = default!;
/// <summary>
/// whether the playlist is smart or not

View File

@@ -0,0 +1,58 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace PlexAPI.Models.Requests
{
using Newtonsoft.Json;
using System;
/// <summary>
/// `delegation` - This is the only supported `type` parameter.
/// </summary>
public enum GetTransientTokenQueryParamType
{
[JsonProperty("delegation")]
Delegation,
}
public static class GetTransientTokenQueryParamTypeExtension
{
public static string Value(this GetTransientTokenQueryParamType value)
{
return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString();
}
public static GetTransientTokenQueryParamType ToEnum(this string value)
{
foreach(var field in typeof(GetTransientTokenQueryParamType).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 GetTransientTokenQueryParamType)
{
return (GetTransientTokenQueryParamType)enumVal;
}
}
}
throw new Exception($"Unknown value {value} for enum GetTransientTokenQueryParamType");
}
}
}

View File

@@ -19,7 +19,7 @@ namespace PlexAPI.Models.Requests
/// `delegation` - This is the only supported `type` parameter.
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=type")]
public QueryParamType Type { get; set; } = default!;
public GetTransientTokenQueryParamType Type { get; set; } = default!;
/// <summary>
/// `all` - This is the only supported `scope` parameter.

View File

@@ -14,12 +14,16 @@ namespace PlexAPI.Models.Requests
using System;
/// <summary>
/// `delegation` - This is the only supported `type` parameter.
/// type of playlist to create
/// </summary>
public enum QueryParamType
{
[JsonProperty("delegation")]
Delegation,
[JsonProperty("audio")]
Audio,
[JsonProperty("video")]
Video,
[JsonProperty("photo")]
Photo,
}
public static class QueryParamTypeExtension

View File

@@ -0,0 +1,58 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace PlexAPI.Models.Requests
{
using Newtonsoft.Json;
using System.Collections.Generic;
public class SearchLibraryMediaContainer
{
[JsonProperty("size")]
public int? Size { get; set; }
[JsonProperty("allowSync")]
public bool? AllowSync { get; set; }
[JsonProperty("art")]
public string? Art { get; set; }
[JsonProperty("identifier")]
public string? Identifier { get; set; }
[JsonProperty("mediaTagPrefix")]
public string? MediaTagPrefix { get; set; }
[JsonProperty("mediaTagVersion")]
public int? MediaTagVersion { get; set; }
[JsonProperty("nocache")]
public bool? Nocache { get; set; }
[JsonProperty("thumb")]
public string? Thumb { get; set; }
[JsonProperty("title1")]
public string? Title1 { get; set; }
[JsonProperty("title2")]
public string? Title2 { get; set; }
[JsonProperty("viewGroup")]
public string? ViewGroup { get; set; }
[JsonProperty("viewMode")]
public int? ViewMode { get; set; }
[JsonProperty("Metadata")]
public List<SearchLibraryMetadata>? Metadata { get; set; }
}
}

View File

@@ -0,0 +1,78 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace PlexAPI.Models.Requests
{
using Newtonsoft.Json;
public class SearchLibraryMetadata
{
[JsonProperty("ratingKey")]
public string? RatingKey { get; set; }
[JsonProperty("key")]
public string? Key { get; set; }
[JsonProperty("parentRatingKey")]
public string? ParentRatingKey { get; set; }
[JsonProperty("guid")]
public string? Guid { get; set; }
[JsonProperty("parentGuid")]
public string? ParentGuid { get; set; }
[JsonProperty("parentStudio")]
public string? ParentStudio { get; set; }
[JsonProperty("type")]
public string? Type { get; set; }
[JsonProperty("title")]
public string? Title { get; set; }
[JsonProperty("parentKey")]
public string? ParentKey { get; set; }
[JsonProperty("parentTitle")]
public string? ParentTitle { get; set; }
[JsonProperty("summary")]
public string? Summary { get; set; }
[JsonProperty("index")]
public int? Index { get; set; }
[JsonProperty("parentIndex")]
public int? ParentIndex { get; set; }
[JsonProperty("parentYear")]
public int? ParentYear { get; set; }
[JsonProperty("thumb")]
public string? Thumb { get; set; }
[JsonProperty("art")]
public string? Art { get; set; }
[JsonProperty("parentThumb")]
public string? ParentThumb { get; set; }
[JsonProperty("parentTheme")]
public string? ParentTheme { get; set; }
[JsonProperty("addedAt")]
public int? AddedAt { get; set; }
[JsonProperty("updatedAt")]
public int? UpdatedAt { get; set; }
}
}

View File

@@ -0,0 +1,30 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace PlexAPI.Models.Requests
{
using PlexAPI.Utils;
public class SearchLibraryRequest
{
/// <summary>
/// the Id of the library to query
/// </summary>
[SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sectionId")]
public long SectionId { get; set; } = default!;
/// <summary>
/// Plex content type to search for
/// </summary>
[SpeakeasyMetadata("queryParam:style=form,explode=true,name=type")]
public Type Type { get; set; } = default!;
}
}

View File

@@ -0,0 +1,39 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace PlexAPI.Models.Requests
{
using System.Net.Http;
using System;
public class SearchLibraryResponse
{
/// <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 contents of the library by section and type
/// </summary>
public SearchLibraryResponseBody? Object { get; set; }
}
}

View File

@@ -0,0 +1,24 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace PlexAPI.Models.Requests
{
using Newtonsoft.Json;
/// <summary>
/// The contents of the library by section and type
/// </summary>
public class SearchLibraryResponseBody
{
[JsonProperty("MediaContainer")]
public SearchLibraryMediaContainer? MediaContainer { get; set; }
}
}

View File

@@ -56,8 +56,6 @@ namespace PlexAPI.Models.Requests
FirstCharacter,
[JsonProperty("folder")]
Folder,
[JsonProperty("search?type=1")]
SearchTypeEqual1,
}
public static class TagExtension

View File

@@ -10,53 +10,16 @@
#nullable enable
namespace PlexAPI.Models.Requests
{
using Newtonsoft.Json;
using System;
/// <summary>
/// type of playlist to create
/// Plex content type to search for
/// </summary>
public enum Type
{
[JsonProperty("audio")]
Audio,
[JsonProperty("video")]
Video,
[JsonProperty("photo")]
Photo,
}
public static class TypeExtension
{
public static string Value(this Type value)
{
return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString();
}
public static Type ToEnum(this string value)
{
foreach(var field in typeof(Type).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 Type)
{
return (Type)enumVal;
}
}
}
throw new Exception($"Unknown value {value} for enum Type");
}
One = 1,
Two = 2,
Three = 3,
Four = 4,
}
}

View File

@@ -142,10 +142,10 @@ namespace PlexAPI
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.1.5";
private const string _sdkVersion = "0.1.6";
private const string _sdkGenVersion = "2.237.3";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.5 2.237.3 0.0.3 Plex-API";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.6 2.237.3 0.0.3 Plex-API";
private string _serverUrl = "";
private ISpeakeasyHttpClient _defaultClient;
private ISpeakeasyHttpClient _securityClient;

View File

@@ -2,7 +2,7 @@
<PropertyGroup>
<IsPackable>true</IsPackable>
<PackageId>Plex-API</PackageId>
<Version>0.1.5</Version>
<Version>0.1.6</Version>
<Authors>LukeHagar</Authors>
<TargetFramework>net5.0</TargetFramework>
<Nullable>enable</Nullable>

View File

@@ -235,10 +235,10 @@ namespace PlexAPI
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.1.5";
private const string _sdkVersion = "0.1.6";
private const string _sdkGenVersion = "2.237.3";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.5 2.237.3 0.0.3 Plex-API";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.6 2.237.3 0.0.3 Plex-API";
private string _serverUrl = "";
private ISpeakeasyHttpClient _defaultClient;
private ISpeakeasyHttpClient _securityClient;

View File

@@ -83,10 +83,10 @@ namespace PlexAPI
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.1.5";
private const string _sdkVersion = "0.1.6";
private const string _sdkGenVersion = "2.237.3";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.5 2.237.3 0.0.3 Plex-API";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.6 2.237.3 0.0.3 Plex-API";
private string _serverUrl = "";
private ISpeakeasyHttpClient _defaultClient;
private ISpeakeasyHttpClient _securityClient;

View File

@@ -36,7 +36,7 @@ namespace PlexAPI
///
/// </remarks>
/// </summary>
Task<GetTransientTokenResponse> GetTransientTokenAsync(QueryParamType type, Scope scope);
Task<GetTransientTokenResponse> GetTransientTokenAsync(GetTransientTokenQueryParamType type, Scope scope);
/// <summary>
/// Get Source Connection Information
@@ -61,10 +61,10 @@ namespace PlexAPI
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.1.5";
private const string _sdkVersion = "0.1.6";
private const string _sdkGenVersion = "2.237.3";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.5 2.237.3 0.0.3 Plex-API";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.6 2.237.3 0.0.3 Plex-API";
private string _serverUrl = "";
private ISpeakeasyHttpClient _defaultClient;
private ISpeakeasyHttpClient _securityClient;
@@ -78,7 +78,7 @@ namespace PlexAPI
}
public async Task<GetTransientTokenResponse> GetTransientTokenAsync(QueryParamType type, Scope scope)
public async Task<GetTransientTokenResponse> GetTransientTokenAsync(GetTransientTokenQueryParamType type, Scope scope)
{
var request = new GetTransientTokenRequest()
{

View File

@@ -113,10 +113,10 @@ namespace PlexAPI
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.1.5";
private const string _sdkVersion = "0.1.6";
private const string _sdkGenVersion = "2.237.3";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.5 2.237.3 0.0.3 Plex-API";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.6 2.237.3 0.0.3 Plex-API";
private string _serverUrl = "";
private ISpeakeasyHttpClient _defaultClient;
private ISpeakeasyHttpClient _securityClient;

View File

@@ -76,10 +76,10 @@ namespace PlexAPI
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.1.5";
private const string _sdkVersion = "0.1.6";
private const string _sdkGenVersion = "2.237.3";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.5 2.237.3 0.0.3 Plex-API";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.6 2.237.3 0.0.3 Plex-API";
private string _serverUrl = "";
private ISpeakeasyHttpClient _defaultClient;
private ISpeakeasyHttpClient _securityClient;

View File

@@ -70,10 +70,10 @@ namespace PlexAPI
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.1.5";
private const string _sdkVersion = "0.1.6";
private const string _sdkGenVersion = "2.237.3";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.5 2.237.3 0.0.3 Plex-API";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.6 2.237.3 0.0.3 Plex-API";
private string _serverUrl = "";
private ISpeakeasyHttpClient _defaultClient;
private ISpeakeasyHttpClient _securityClient;

View File

@@ -58,10 +58,10 @@ namespace PlexAPI
{
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.1.5";
private const string _sdkVersion = "0.1.6";
private const string _sdkGenVersion = "2.237.3";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.5 2.237.3 0.0.3 Plex-API";
private const string _userAgent = "speakeasy-sdk/csharp 0.1.6 2.237.3 0.0.3 Plex-API";
private string _serverUrl = "";
private ISpeakeasyHttpClient _defaultClient;
private ISpeakeasyHttpClient _securityClient;

View File

@@ -90,6 +90,7 @@ var res = await sdk.Server.GetServerCapabilitiesAsync();
* [DeleteLibrary](docs/sdks/library/README.md#deletelibrary) - Delete Library Section
* [GetLibraryItems](docs/sdks/library/README.md#getlibraryitems) - Get Library Items
* [RefreshLibrary](docs/sdks/library/README.md#refreshlibrary) - Refresh Library
* [SearchLibrary](docs/sdks/library/README.md#searchlibrary) - Search Library
* [GetMetadata](docs/sdks/library/README.md#getmetadata) - Get Items Metadata
* [GetMetadataChildren](docs/sdks/library/README.md#getmetadatachildren) - Get Items Children
* [GetOnDeck](docs/sdks/library/README.md#getondeck) - Get On Deck

View File

@@ -55,3 +55,11 @@ Based on:
- Speakeasy CLI 1.148.0 (2.237.3) https://github.com/speakeasy-api/speakeasy
### Generated
- [csharp v0.1.5] .
## 2024-01-23 20:47:27
### Changes
Based on:
- OpenAPI Doc 0.0.3
- Speakeasy CLI 1.150.0 (2.237.3) https://github.com/speakeasy-api/speakeasy
### Generated
- [csharp v0.1.6] .

View File

@@ -4,9 +4,9 @@
## Fields
| Field | Type | Required | Description |
| --------------------------------------- | --------------------------------------- | --------------------------------------- | --------------------------------------- |
| --------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------- |
| `Title` | *string* | :heavy_check_mark: | name of the playlist |
| `Type` | [Type](../../Models/Requests/Type.md) | :heavy_check_mark: | type of playlist to create |
| `Type` | [QueryParamType](../../Models/Requests/QueryParamType.md) | :heavy_check_mark: | type of playlist to create |
| `Smart` | [Smart](../../Models/Requests/Smart.md) | :heavy_check_mark: | whether the playlist is smart or not |
| `Uri` | *string* | :heavy_check_mark: | the content URI for the playlist |
| `PlayQueueID` | *double* | :heavy_minus_sign: | the play queue to copy to a playlist |

View File

@@ -0,0 +1,10 @@
# GetTransientTokenQueryParamType
`delegation` - This is the only supported `type` parameter.
## Values
| Name | Value |
| ------------ | ------------ |
| `Delegation` | delegation |

View File

@@ -4,6 +4,6 @@
## Fields
| Field | Type | Required | Description |
| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- |
| `Type` | [QueryParamType](../../Models/Requests/QueryParamType.md) | :heavy_check_mark: | `delegation` - This is the only supported `type` parameter. |
| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| `Type` | [GetTransientTokenQueryParamType](../../Models/Requests/GetTransientTokenQueryParamType.md) | :heavy_check_mark: | `delegation` - This is the only supported `type` parameter. |
| `Scope` | [Scope](../../Models/Requests/Scope.md) | :heavy_check_mark: | `all` - This is the only supported `scope` parameter. |

View File

@@ -1,10 +1,12 @@
# QueryParamType
`delegation` - This is the only supported `type` parameter.
type of playlist to create
## Values
| Name | Value |
| ------------ | ------------ |
| `Delegation` | delegation |
| ------- | ------- |
| `Audio` | audio |
| `Video` | video |
| `Photo` | photo |

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,27 @@
# SearchLibraryMetadata
## Fields
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `RatingKey` | *string* | :heavy_minus_sign: | N/A | 2 |
| `Key` | *string* | :heavy_minus_sign: | N/A | /library/metadata/2/children |
| `ParentRatingKey` | *string* | :heavy_minus_sign: | N/A | 1 |
| `Guid` | *string* | :heavy_minus_sign: | N/A | plex://season/602e67e766dfdb002c0a1b5b |
| `ParentGuid` | *string* | :heavy_minus_sign: | N/A | plex://show/5d9c086c7d06d9001ffd27aa |
| `ParentStudio` | *string* | :heavy_minus_sign: | N/A | Mutant Enemy Productions |
| `Type` | *string* | :heavy_minus_sign: | N/A | season |
| `Title` | *string* | :heavy_minus_sign: | N/A | Season 1 |
| `ParentKey` | *string* | :heavy_minus_sign: | N/A | /library/metadata/1 |
| `ParentTitle` | *string* | :heavy_minus_sign: | N/A | Firefly |
| `Summary` | *string* | :heavy_minus_sign: | N/A | Captain Malcolm 'Mal' Reynolds is a former galactic war veteran who is the captain of the transport ship "Serenity". Mal and his crew, ensign Zoe Alleyne Washburne; Zoe's husband, pilot Hoban 'Wash' Washburne; muscular mercenary Jayne Cobb; young mechanic Kaylee Frye; former Alliance medical officer Simon Tam; his disturbed teenage sister River (both on the run from the interplanetary government "The Alliance"); the beautiful courtesan Inara Serra; and preacher Shepherd Book do any jobs, legal or illegal, they can find as the Serenity crew travels across the outskirts of outer space. |
| `Index` | *int* | :heavy_minus_sign: | N/A | 1 |
| `ParentIndex` | *int* | :heavy_minus_sign: | N/A | 1 |
| `ParentYear` | *int* | :heavy_minus_sign: | N/A | 2002 |
| `Thumb` | *string* | :heavy_minus_sign: | N/A | /library/metadata/2/thumb/1705636920 |
| `Art` | *string* | :heavy_minus_sign: | N/A | /library/metadata/1/art/1705636920 |
| `ParentThumb` | *string* | :heavy_minus_sign: | N/A | /library/metadata/1/thumb/1705636920 |
| `ParentTheme` | *string* | :heavy_minus_sign: | N/A | /library/metadata/1/theme/1705636920 |
| `AddedAt` | *int* | :heavy_minus_sign: | N/A | 1705636916 |
| `UpdatedAt` | *int* | :heavy_minus_sign: | N/A | 1705636920 |

View File

@@ -0,0 +1,9 @@
# SearchLibraryRequest
## Fields
| Field | Type | Required | Description |
| ------------------------------------- | ------------------------------------- | ------------------------------------- | ------------------------------------- |
| `SectionId` | *long* | :heavy_check_mark: | the Id of the library to query |
| `Type` | [Type](../../Models/Requests/Type.md) | :heavy_check_mark: | Plex content type to search for |

View File

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

View File

@@ -0,0 +1,10 @@
# SearchLibraryResponseBody
The contents of the library by section and type
## Fields
| Field | Type | Required | Description |
| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| `MediaContainer` | [SearchLibraryMediaContainer](../../Models/Requests/SearchLibraryMediaContainer.md) | :heavy_minus_sign: | N/A |

View File

@@ -6,7 +6,7 @@ A key representing a specific tag within the section.
## Values
| Name | Value |
| ------------------ | ------------------ |
| ---------------- | ---------------- |
| `All` | all |
| `Unwatched` | unwatched |
| `Newest` | newest |
@@ -26,4 +26,3 @@ A key representing a specific tag within the section.
| `Resolution` | resolution |
| `FirstCharacter` | firstCharacter |
| `Folder` | folder |
| `SearchTypeEqual1` | search?type=1 |

View File

@@ -1,12 +1,13 @@
# Type
type of playlist to create
Plex content type to search for
## Values
| Name | Value |
| ------- | ------- |
| `Audio` | audio |
| `Video` | video |
| `Photo` | photo |
| `One` | 1 |
| `Two` | 2 |
| `Three` | 3 |
| `Four` | 4 |

View File

@@ -15,6 +15,7 @@ API Calls interacting with Plex Media Server Libraries
* [DeleteLibrary](#deletelibrary) - Delete Library Section
* [GetLibraryItems](#getlibraryitems) - Get Library Items
* [RefreshLibrary](#refreshlibrary) - Refresh Library
* [SearchLibrary](#searchlibrary) - Search Library
* [GetMetadata](#getmetadata) - Get Items Metadata
* [GetMetadataChildren](#getmetadatachildren) - Get Items Children
* [GetOnDeck](#getondeck) - Get On Deck
@@ -240,7 +241,6 @@ Fetches details from a specific section of the library identified by a section k
- `resolution`: Items categorized by resolution.
- `firstCharacter`: Items categorized by the first letter.
- `folder`: Items categorized by folder.
- `search?type=1`: Search functionality within the section.
### Example Usage
@@ -307,6 +307,58 @@ var res = await sdk.Library.RefreshLibraryAsync(SectionId: 934.16D);
**[RefreshLibraryResponse](../../Models/Requests/RefreshLibraryResponse.md)**
## SearchLibrary
Search for content within a specific section of the library.
### Types
Each type in the library comes with a set of filters and sorts, aiding in building dynamic media controls:
- **Type Object Attributes**:
- `type`: Metadata type (if standard Plex type).
- `title`: Title for this content type (e.g., "Movies").
- **Filter Objects**:
- Subset of the media query language.
- Attributes include `filter` (name), `filterType` (data type), `key` (endpoint for value range), and `title`.
- **Sort Objects**:
- Description of sort fields.
- Attributes include `defaultDirection` (asc/desc), `descKey` and `key` (sort parameters), and `title`.
> **Note**: Filters and sorts are optional; without them, no filtering controls are rendered.
### Example Usage
```csharp
using PlexAPI;
using PlexAPI.Models.Components;
using PlexAPI.Models.Requests;
var sdk = new PlexAPISDK(
security: new Models.Components.Security() {
AccessToken = "<YOUR_API_KEY_HERE>",
});
var res = await sdk.Library.SearchLibraryAsync(SectionId: 933505, Type: Type.Four);
// handle response
```
### Parameters
| Parameter | Type | Required | Description |
| ------------------------------------- | ------------------------------------- | ------------------------------------- | ------------------------------------- |
| `SectionId` | *long* | :heavy_check_mark: | the Id of the library to query |
| `Type` | [Type](../../Models/Requests/Type.md) | :heavy_check_mark: | Plex content type to search for |
### Response
**[SearchLibraryResponse](../../Models/Requests/SearchLibraryResponse.md)**
## GetMetadata
This endpoint will return the metadata of a library item specified with the ratingKey.

View File

@@ -42,7 +42,7 @@ var sdk = new PlexAPISDK(
CreatePlaylistRequest req = new CreatePlaylistRequest() {
Title = "string",
Type = Type.Photo,
Type = QueryParamType.Photo,
Smart = Smart.One,
Uri = "https://inborn-brochure.biz",
};

View File

@@ -28,7 +28,7 @@ var sdk = new PlexAPISDK(
AccessToken = "<YOUR_API_KEY_HERE>",
});
var res = await sdk.Security.GetTransientTokenAsync(Type: QueryParamType.Delegation, Scope: Scope.All);
var res = await sdk.Security.GetTransientTokenAsync(Type: GetTransientTokenQueryParamType.Delegation, Scope: Scope.All);
// handle response
```
@@ -36,8 +36,8 @@ var res = await sdk.Security.GetTransientTokenAsync(Type: QueryParamType.Delegat
### Parameters
| Parameter | Type | Required | Description |
| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- |
| `Type` | [QueryParamType](../../Models/Requests/QueryParamType.md) | :heavy_check_mark: | `delegation` - This is the only supported `type` parameter. |
| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| `Type` | [GetTransientTokenQueryParamType](../../Models/Requests/GetTransientTokenQueryParamType.md) | :heavy_check_mark: | `delegation` - This is the only supported `type` parameter. |
| `Scope` | [Scope](../../Models/Requests/Scope.md) | :heavy_check_mark: | `all` - This is the only supported `scope` parameter. |

View File

@@ -8,7 +8,7 @@ generation:
fixes:
nameResolutionDec2023: false
csharp:
version: 0.1.5
version: 0.1.6
author: LukeHagar
dotnetVersion: net5.0
imports: