ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.484.1

This commit is contained in:
speakeasybot
2025-02-06 00:22:53 +00:00
parent c431cee288
commit b10d5f7023
72 changed files with 1385 additions and 54 deletions

View File

@@ -1,12 +1,12 @@
lockVersion: 2.0.0
id: 5a8dbcbc-e0ee-41f0-9d84-b8b50567d1e9
management:
docChecksum: 14b35829d4be91a88269761c3ed01426
docChecksum: 7dec92ab9151a1b5a35df5faa81811ba
docVersion: 0.0.3
speakeasyVersion: 1.484.1
generationVersion: 2.503.2
releaseVersion: 0.13.4
configChecksum: c05208ba767db4b6c55bb4346c69baba
releaseVersion: 0.13.5
configChecksum: cc3898066032221fc1785594193e0056
repoURL: https://github.com/LukeHagar/plexcsharp.git
repoSubDirectory: .
published: true
@@ -279,6 +279,10 @@ generatedFiles:
- LukeHagar/PlexAPI/SDK/Models/Errors/GetUserFriendsErrors.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetUserFriendsPlexErrors.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetUserFriendsUnauthorized.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetUsersBadRequest.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetUsersErrors.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetUsersUnauthorized.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetUsersUsersErrors.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetWatchListBadRequest.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetWatchListErrors.cs
- LukeHagar/PlexAPI/SDK/Models/Errors/GetWatchListUnauthorized.cs
@@ -357,6 +361,12 @@ generatedFiles:
- LukeHagar/PlexAPI/SDK/Models/Requests/AddPlaylistContentsRequest.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/AddPlaylistContentsResponse.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/AddPlaylistContentsResponseBody.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/AllLibraries.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/AllowCameraUpload.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/AllowChannels.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/AllowSubtitleAdmin.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/AllowSync.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/AllowTuners.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/ApplyUpdatesRequest.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/ApplyUpdatesResponse.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/AutoSelectSubtitle.cs
@@ -719,6 +729,7 @@ generatedFiles:
- LukeHagar/PlexAPI/SDK/Models/Requests/GetTopWatchedContentResponse.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetTopWatchedContentResponseBody.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetTopWatchedContentRole.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetTopWatchedContentUser.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetTranscodeSessionsMediaContainer.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetTranscodeSessionsResponse.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetTranscodeSessionsResponseBody.cs
@@ -729,11 +740,17 @@ generatedFiles:
- LukeHagar/PlexAPI/SDK/Models/Requests/GetUpdateStatusResponse.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetUpdateStatusResponseBody.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetUserFriendsResponse.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetUsersMediaContainer.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetUsersRequest.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetUsersResponse.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetUsersResponseBody.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetUsersServer.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetWatchListRequest.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetWatchListResponse.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/GetWatchListResponseBody.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Guids.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/HasThumbnail.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Home.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Hub.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Image.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/IncludeCollections.cs
@@ -769,9 +786,11 @@ generatedFiles:
- LukeHagar/PlexAPI/SDK/Models/Requests/OnlyTransient.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Operator.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/OptimizedForStreaming.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Owned.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Part.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/PastSubscription.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/PathParamTaskName.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Pending.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/PerformSearchRequest.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/PerformSearchResponse.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/PerformVoiceSearchRequest.cs
@@ -799,6 +818,7 @@ generatedFiles:
- LukeHagar/PlexAPI/SDK/Models/Requests/PostUsersSignInDataUserProfile.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/PostUsersSignInDataWatchedIndicator.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Producer.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Protected.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Protocol.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Provider.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/QueryParamFilter.cs
@@ -812,6 +832,7 @@ generatedFiles:
- LukeHagar/PlexAPI/SDK/Models/Requests/Ratings.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Release.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/ResponseBody.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Restricted.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Role.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/Scope.cs
- LukeHagar/PlexAPI/SDK/Models/Requests/SearchResult.cs
@@ -869,6 +890,7 @@ generatedFiles:
- LukeHagar/PlexAPI/SDK/Sessions.cs
- LukeHagar/PlexAPI/SDK/Statistics.cs
- LukeHagar/PlexAPI/SDK/Updater.cs
- LukeHagar/PlexAPI/SDK/Users.cs
- LukeHagar/PlexAPI/SDK/Utils/AnyDeserializer.cs
- LukeHagar/PlexAPI/SDK/Utils/BigIntStrConverter.cs
- LukeHagar/PlexAPI/SDK/Utils/DecimalStrConverter.cs
@@ -1126,6 +1148,10 @@ generatedFiles:
- docs/Models/Errors/GetUserFriendsErrors.md
- docs/Models/Errors/GetUserFriendsPlexErrors.md
- docs/Models/Errors/GetUserFriendsUnauthorized.md
- docs/Models/Errors/GetUsersBadRequest.md
- docs/Models/Errors/GetUsersErrors.md
- docs/Models/Errors/GetUsersUnauthorized.md
- docs/Models/Errors/GetUsersUsersErrors.md
- docs/Models/Errors/GetWatchListBadRequest.md
- docs/Models/Errors/GetWatchListErrors.md
- docs/Models/Errors/GetWatchListUnauthorized.md
@@ -1203,6 +1229,12 @@ generatedFiles:
- docs/Models/Requests/AddPlaylistContentsRequest.md
- docs/Models/Requests/AddPlaylistContentsResponse.md
- docs/Models/Requests/AddPlaylistContentsResponseBody.md
- docs/Models/Requests/AllLibraries.md
- docs/Models/Requests/AllowCameraUpload.md
- docs/Models/Requests/AllowChannels.md
- docs/Models/Requests/AllowSubtitleAdmin.md
- docs/Models/Requests/AllowSync.md
- docs/Models/Requests/AllowTuners.md
- docs/Models/Requests/ApplyUpdatesRequest.md
- docs/Models/Requests/ApplyUpdatesResponse.md
- docs/Models/Requests/AutoSelectSubtitle.md
@@ -1565,6 +1597,7 @@ generatedFiles:
- docs/Models/Requests/GetTopWatchedContentResponse.md
- docs/Models/Requests/GetTopWatchedContentResponseBody.md
- docs/Models/Requests/GetTopWatchedContentRole.md
- docs/Models/Requests/GetTopWatchedContentUser.md
- docs/Models/Requests/GetTranscodeSessionsMediaContainer.md
- docs/Models/Requests/GetTranscodeSessionsResponse.md
- docs/Models/Requests/GetTranscodeSessionsResponseBody.md
@@ -1575,11 +1608,17 @@ generatedFiles:
- docs/Models/Requests/GetUpdateStatusResponse.md
- docs/Models/Requests/GetUpdateStatusResponseBody.md
- docs/Models/Requests/GetUserFriendsResponse.md
- docs/Models/Requests/GetUsersMediaContainer.md
- docs/Models/Requests/GetUsersRequest.md
- docs/Models/Requests/GetUsersResponse.md
- docs/Models/Requests/GetUsersResponseBody.md
- docs/Models/Requests/GetUsersServer.md
- docs/Models/Requests/GetWatchListRequest.md
- docs/Models/Requests/GetWatchListResponse.md
- docs/Models/Requests/GetWatchListResponseBody.md
- docs/Models/Requests/Guids.md
- docs/Models/Requests/HasThumbnail.md
- docs/Models/Requests/Home.md
- docs/Models/Requests/Hub.md
- docs/Models/Requests/Image.md
- docs/Models/Requests/IncludeCollections.md
@@ -1615,9 +1654,11 @@ generatedFiles:
- docs/Models/Requests/OnlyTransient.md
- docs/Models/Requests/Operator.md
- docs/Models/Requests/OptimizedForStreaming.md
- docs/Models/Requests/Owned.md
- docs/Models/Requests/Part.md
- docs/Models/Requests/PastSubscription.md
- docs/Models/Requests/PathParamTaskName.md
- docs/Models/Requests/Pending.md
- docs/Models/Requests/PerformSearchRequest.md
- docs/Models/Requests/PerformSearchResponse.md
- docs/Models/Requests/PerformVoiceSearchRequest.md
@@ -1645,6 +1686,7 @@ generatedFiles:
- docs/Models/Requests/PostUsersSignInDataUserProfile.md
- docs/Models/Requests/PostUsersSignInDataWatchedIndicator.md
- docs/Models/Requests/Producer.md
- docs/Models/Requests/Protected.md
- docs/Models/Requests/Protocol.md
- docs/Models/Requests/Provider.md
- docs/Models/Requests/QueryParamFilter.md
@@ -1658,6 +1700,7 @@ generatedFiles:
- docs/Models/Requests/Ratings.md
- docs/Models/Requests/Release.md
- docs/Models/Requests/ResponseBody.md
- docs/Models/Requests/Restricted.md
- docs/Models/Requests/Role.md
- docs/Models/Requests/Scope.md
- docs/Models/Requests/SearchResult.md
@@ -1722,6 +1765,7 @@ generatedFiles:
- docs/sdks/sessions/README.md
- docs/sdks/statistics/README.md
- docs/sdks/updater/README.md
- docs/sdks/users/README.md
- docs/sdks/video/README.md
- docs/sdks/watchlist/README.md
- global.json
@@ -2735,5 +2779,29 @@ examples:
application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]}
"401":
application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]}
get-users:
"":
parameters:
header:
X-Plex-Client-Identifier: "3381b62b-9ab7-4e37-827b-203e9809eb58"
X-Plex-Product: "Plex for Roku"
X-Plex-Device: "Roku 3"
X-Plex-Device-Name: "Chrome"
X-Plex-Device-Screen-Resolution: "1487x1165,2560x1440"
X-Plex-Version: "2.4.1"
X-Plex-Platform: "Roku"
X-Plex-Features: "external-media,indirect-media,hub-style-list"
X-Plex-Model: "4200X"
X-Plex-Session-Id: "97e136ef-4ddd-4ff3-89a7-a5820c96c2ca"
X-Plex-Language: "en"
X-Plex-Platform-Version: "4.3 build 1057"
X-Plex-Token: "CV5xoxjTpFKUzBTShsaf"
responses:
"200":
application/xml: "0xa9CdebeF9E"
"400":
application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]}
"401":
application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]}
examplesVersion: 1.0.0
generatedTests: {}

View File

@@ -13,7 +13,7 @@ generation:
oAuth2ClientCredentialsEnabled: true
oAuth2PasswordEnabled: false
csharp:
version: 0.13.4
version: 0.13.5
additionalDependencies: []
author: LukeHagar
clientServerStatusCodesAsErrors: true

View File

@@ -16,19 +16,19 @@ sources:
- main
plexapi:
sourceNamespace: plexapi
sourceRevisionDigest: sha256:0b88c8bfc41def63e19e91fdd4d51bab07cb947cc3d39d2b44e8523a209cec10
sourceBlobDigest: sha256:89d5b8427d4fb61b25751aebbaf71f9613958e9e91073fc084fed2c2ec62ce55
sourceRevisionDigest: sha256:e6ab335dd91a4165f4510e4a3af8a55819c6310b7e66251266d2384376f3ccae
sourceBlobDigest: sha256:89d1b1133e400c89f0d06efe5e5168f5ba25a413e1ab8380d442d6b233e2e5a9
tags:
- latest
- speakeasy-sdk-regen-1738714877
- speakeasy-sdk-regen-1738801293
targets:
plexcsharp:
source: plexapi
sourceNamespace: plexapi
sourceRevisionDigest: sha256:0b88c8bfc41def63e19e91fdd4d51bab07cb947cc3d39d2b44e8523a209cec10
sourceBlobDigest: sha256:89d5b8427d4fb61b25751aebbaf71f9613958e9e91073fc084fed2c2ec62ce55
sourceRevisionDigest: sha256:e6ab335dd91a4165f4510e4a3af8a55819c6310b7e66251266d2384376f3ccae
sourceBlobDigest: sha256:89d1b1133e400c89f0d06efe5e5168f5ba25a413e1ab8380d442d6b233e2e5a9
codeSamplesNamespace: code-samples-csharp-plexcsharp
codeSamplesRevisionDigest: sha256:88936de014527ae45d25e2fb54ad227d5d6b173c4085c5b60daf42335a0b0305
codeSamplesRevisionDigest: sha256:1232a558efe5dbd1afae513f9cefdd61a9facee2c6072e50f7658c20b57bc303
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.13.4";
private const string _sdkVersion = "0.13.5";
private const string _sdkGenVersion = "2.503.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.4 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.5 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;

View File

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

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.13.4";
private const string _sdkVersion = "0.13.5";
private const string _sdkGenVersion = "2.503.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.4 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.5 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;

View File

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

View File

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

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.13.4";
private const string _sdkVersion = "0.13.5";
private const string _sdkGenVersion = "2.503.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.4 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.5 2.503.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,7 +3,7 @@
<PropertyGroup>
<IsPackable>true</IsPackable>
<PackageId>LukeHagar.PlexAPI.SDK</PackageId>
<Version>0.13.4</Version>
<Version>0.13.5</Version>
<TargetFramework>net8.0</TargetFramework>
<Authors>LukeHagar</Authors>
<Copyright>Copyright (c) LukeHagar 2025</Copyright>

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.13.4";
private const string _sdkVersion = "0.13.5";
private const string _sdkGenVersion = "2.503.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.4 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.5 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;

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.Errors
{
using LukeHagar.PlexAPI.SDK.Models.Errors;
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Net.Http;
/// <summary>
/// Bad Request - A parameter was not specified, or was specified incorrectly.
/// </summary>
public class GetUsersBadRequest : Exception
{
[JsonProperty("errors")]
public List<GetUsersErrors>? Errors { get; set; }
/// <summary>
/// Raw HTTP response; suitable for custom response parsing
/// </summary>
[JsonProperty("-")]
public HttpResponseMessage? RawResponse { 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.Errors
{
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
public class GetUsersErrors
{
[JsonProperty("code")]
public int? Code { get; set; }
[JsonProperty("message")]
public string? Message { get; set; }
[JsonProperty("status")]
public int? Status { get; set; }
}
}

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.Errors
{
using LukeHagar.PlexAPI.SDK.Models.Errors;
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Net.Http;
/// <summary>
/// Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
/// </summary>
public class GetUsersUnauthorized : Exception
{
[JsonProperty("errors")]
public List<GetUsersUsersErrors>? Errors { get; set; }
/// <summary>
/// Raw HTTP response; suitable for custom response parsing
/// </summary>
[JsonProperty("-")]
public HttpResponseMessage? RawResponse { 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.Errors
{
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
public class GetUsersUsersErrors
{
[JsonProperty("code")]
public int? Code { get; set; }
[JsonProperty("message")]
public string? Message { get; set; }
[JsonProperty("status")]
public int? Status { get; set; }
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -112,6 +112,6 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests
public List<GetTopWatchedContentRole>? Role { get; set; }
[JsonProperty("User")]
public List<User>? User { get; set; }
public List<GetTopWatchedContentUser>? User { 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 GetTopWatchedContentUser
{
[JsonProperty("id")]
public int? Id { get; set; }
}
}

View File

@@ -0,0 +1,49 @@
//------------------------------------------------------------------------------
// <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;
/// <summary>
/// Container holding user and server details.
/// </summary>
public class GetUsersMediaContainer
{
/// <summary>
/// The friendly name of the Plex instance.
/// </summary>
public string FriendlyName { get; set; } = default!;
public string Identifier { get; set; } = default!;
/// <summary>
/// Unique Machine identifier of the Plex server.
/// </summary>
public string MachineIdentifier { get; set; } = default!;
/// <summary>
/// Total number of users.
/// </summary>
public long TotalSize { get; set; } = default!;
/// <summary>
/// Number of users in the current response.
/// </summary>
public long Size { get; set; } = default!;
/// <summary>
/// List of users with access to the Plex server.
/// </summary>
public List<User> User { get; set; } = default!;
}
}

View File

@@ -0,0 +1,95 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
using LukeHagar.PlexAPI.SDK.Utils;
public class GetUsersRequest
{
/// <summary>
/// An opaque identifier unique to the client (UUID, serial number, or other unique device ID)
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Client-Identifier")]
public string ClientID { get; set; } = default!;
/// <summary>
/// The name of the client application. (Plex Web, Plex Media Server, etc.)
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Product")]
public string? ClientName { get; set; }
/// <summary>
/// A relatively friendly name for the client device
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Device")]
public string? DeviceNickname { get; set; }
/// <summary>
/// The name of the device the client application is running on. This is used to track the client application and its usage. (Chrome, Safari, etc.)
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Device-Name")]
public string? DeviceName { get; set; }
/// <summary>
/// The resolution of the device the client application is running on. This is used to track the client application and its usage. (1487x1165,2560x1440)
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Device-Screen-Resolution")]
public string? DeviceScreenResolution { get; set; }
/// <summary>
/// The version of the client application.
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Version")]
public string? ClientVersion { get; set; }
/// <summary>
/// The platform of the client application.
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Platform")]
public string? Platform { get; set; }
/// <summary>
/// The features of the client application. This is used to track the client application and its usage. (external-media,indirect-media,hub-style-list)
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Features")]
public string? ClientFeatures { get; set; }
/// <summary>
/// A potentially less friendly identifier for the device model
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Model")]
public string? Model { get; set; }
/// <summary>
/// The session ID of the client application. This is used to track the client application and its usage. (97e136ef-4ddd-4ff3-89a7-a5820c96c2ca)
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Session-Id")]
public string? XPlexSessionId { get; set; }
/// <summary>
/// The language of the client application.
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Language")]
public string? XPlexLanguage { get; set; }
/// <summary>
/// The version of the platform
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Platform-Version")]
public string? PlatformVersion { get; set; }
/// <summary>
/// An authentication token, obtained from plex.tv
/// </summary>
[SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Token")]
public string XPlexToken { get; set; } = default!;
}
}

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 System;
using System.Net.Http;
public class GetUsersResponse
{
/// <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!;
public byte[]? Body { 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;
/// <summary>
/// Successful response with media container data in XML
/// </summary>
public class GetUsersResponseBody
{
/// <summary>
/// Container holding user and server details.
/// </summary>
public GetUsersMediaContainer? MediaContainer { get; set; }
}
}

View File

@@ -0,0 +1,51 @@
//------------------------------------------------------------------------------
// <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;
public class GetUsersServer
{
/// <summary>
/// Unique ID of the server of the connected user
/// </summary>
public long Id { get; set; } = default!;
/// <summary>
/// ID of the actual Plex server.
/// </summary>
public long ServerId { get; set; } = default!;
/// <summary>
/// Machine identifier of the Plex server.
/// </summary>
public string MachineIdentifier { get; set; } = default!;
/// <summary>
/// Name of the Plex server of the connected user.
/// </summary>
public string Name { get; set; } = default!;
public long LastSeenAt { get; set; } = default!;
/// <summary>
/// Number of libraries in the server this user has access to.
/// </summary>
public long NumLibraries { get; set; } = default!;
public AllLibraries? AllLibraries { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.AllLibraries.Disable;
public Owned? Owned { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.Owned.Disable;
public Pending? Pending { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.Pending.Disable;
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -9,13 +9,87 @@
#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 User
{
[JsonProperty("id")]
public int? Id { get; set; }
/// <summary>
/// User&apos;s unique ID.
/// </summary>
public long Id { get; set; } = default!;
/// <summary>
/// User&apos;s display name.
/// </summary>
public string Title { get; set; } = default!;
/// <summary>
/// User&apos;s username.
/// </summary>
public string Username { get; set; } = default!;
/// <summary>
/// User&apos;s email address.
/// </summary>
public string Email { get; set; } = default!;
/// <summary>
/// ID of the user&apos;s recommendation playlist.
/// </summary>
public string? RecommendationsPlaylistId { get; set; } = null;
/// <summary>
/// URL to the user&apos;s avatar image.
/// </summary>
public string Thumb { get; set; } = default!;
public Protected? Protected { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.Protected.Disable;
public Home? Home { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.Home.Disable;
public AllowTuners? AllowTuners { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.AllowTuners.Disable;
public AllowSync? AllowSync { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.AllowSync.Disable;
public AllowCameraUpload? AllowCameraUpload { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.AllowCameraUpload.Disable;
public AllowChannels? AllowChannels { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.AllowChannels.Disable;
public AllowSubtitleAdmin? AllowSubtitleAdmin { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.AllowSubtitleAdmin.Disable;
/// <summary>
/// Filters applied for all content.
/// </summary>
public string? FilterAll { get; set; } = null;
/// <summary>
/// Filters applied for movies.
/// </summary>
public string? FilterMovies { get; set; } = null;
/// <summary>
/// Filters applied for music.
/// </summary>
public string? FilterMusic { get; set; } = null;
/// <summary>
/// Filters applied for photos.
/// </summary>
public string? FilterPhotos { get; set; } = null;
/// <summary>
/// Filters applied for television.
/// </summary>
public string? FilterTelevision { get; set; }
public Restricted? Restricted { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.Restricted.Disable;
/// <summary>
/// List of servers owned by the user.
/// </summary>
public List<GetUsersServer> Server { get; set; } = default!;
}
}

View File

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

View File

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

View File

@@ -252,6 +252,7 @@ namespace LukeHagar.PlexAPI.SDK
/// </remarks>
/// </summary>
public IUpdater Updater { get; }
public IUsers Users { get; }
}
public class SDKConfig
@@ -326,10 +327,10 @@ namespace LukeHagar.PlexAPI.SDK
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.13.4";
private const string _sdkVersion = "0.13.5";
private const string _sdkGenVersion = "2.503.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.4 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.5 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private int _serverIndex = 0;
private ISpeakeasyHttpClient _client;
@@ -350,6 +351,7 @@ namespace LukeHagar.PlexAPI.SDK
public IStatistics Statistics { get; private set; }
public ISessions Sessions { get; private set; }
public IUpdater Updater { get; private set; }
public IUsers Users { get; private set; }
public PlexAPI(string? accessToken = null, Func<string>? accessTokenSource = null, int? serverIndex = null, ServerProtocol? protocol = null, string? ip = null, string? port = null, string? serverUrl = null, Dictionary<string, string>? urlParams = null, ISpeakeasyHttpClient? client = null, RetryConfig? retryConfig = null)
{
@@ -448,6 +450,9 @@ namespace LukeHagar.PlexAPI.SDK
Updater = new Updater(_client, _securitySource, _serverUrl, SDKConfiguration);
Users = new Users(_client, _securitySource, _serverUrl, SDKConfiguration);
}
}
}

View File

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

View File

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

View File

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

View File

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

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.13.4";
private const string _sdkVersion = "0.13.5";
private const string _sdkGenVersion = "2.503.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.4 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.5 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;

View File

@@ -0,0 +1,165 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK
{
using LukeHagar.PlexAPI.SDK.Hooks;
using LukeHagar.PlexAPI.SDK.Models.Components;
using LukeHagar.PlexAPI.SDK.Models.Errors;
using LukeHagar.PlexAPI.SDK.Models.Requests;
using LukeHagar.PlexAPI.SDK.Utils;
using LukeHagar.PlexAPI.SDK.Utils.Retries;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
public interface IUsers
{
/// <summary>
/// Get list of all connected users
///
/// <remarks>
/// Get list of all users that are friends and have library access with the provided Plex authentication token
/// </remarks>
/// </summary>
Task<GetUsersResponse> GetUsersAsync(GetUsersRequest request, string? serverUrl = null);
}
public class Users: IUsers
{
/// <summary>
/// List of server URLs available for the get-users operation.
/// </summary>
public static readonly string[] GetUsersServerList = {
"https://plex.tv/api",
};
public SDKConfig SDKConfiguration { get; private set; }
private const string _language = "csharp";
private const string _sdkVersion = "0.13.5";
private const string _sdkGenVersion = "2.503.2";
private const string _openapiDocVersion = "0.0.3";
private const string _userAgent = "speakeasy-sdk/csharp 0.13.5 2.503.2 0.0.3 LukeHagar.PlexAPI.SDK";
private string _serverUrl = "";
private ISpeakeasyHttpClient _client;
private Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? _securitySource;
public Users(ISpeakeasyHttpClient client, Func<LukeHagar.PlexAPI.SDK.Models.Components.Security>? securitySource, string serverUrl, SDKConfig config)
{
_client = client;
_securitySource = securitySource;
_serverUrl = serverUrl;
SDKConfiguration = config;
}
public async Task<GetUsersResponse> GetUsersAsync(GetUsersRequest request, string? serverUrl = null)
{
string baseUrl = Utilities.TemplateUrl(GetUsersServerList[0], new Dictionary<string, string>(){
});
if (serverUrl != null)
{
baseUrl = serverUrl;
}
var urlString = baseUrl + "/users";
var httpRequest = new HttpRequestMessage(HttpMethod.Get, urlString);
httpRequest.Headers.Add("user-agent", _userAgent);
HeaderSerializer.PopulateHeaders(ref httpRequest, request);
var hookCtx = new HookContext("get-users", null, null);
httpRequest = await this.SDKConfiguration.Hooks.BeforeRequestAsync(new BeforeRequestContext(hookCtx), httpRequest);
HttpResponseMessage httpResponse;
try
{
httpResponse = await _client.SendAsync(httpRequest);
int _statusCode = (int)httpResponse.StatusCode;
if (_statusCode == 400 || _statusCode == 401 || _statusCode >= 400 && _statusCode < 500 || _statusCode >= 500 && _statusCode < 600)
{
var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), httpResponse, null);
if (_httpResponse != null)
{
httpResponse = _httpResponse;
}
}
}
catch (Exception error)
{
var _httpResponse = await this.SDKConfiguration.Hooks.AfterErrorAsync(new AfterErrorContext(hookCtx), null, error);
if (_httpResponse != null)
{
httpResponse = _httpResponse;
}
else
{
throw;
}
}
httpResponse = await this.SDKConfiguration.Hooks.AfterSuccessAsync(new AfterSuccessContext(hookCtx), httpResponse);
var contentType = httpResponse.Content.Headers.ContentType?.MediaType;
int responseStatusCode = (int)httpResponse.StatusCode;
if(responseStatusCode == 200)
{
if(Utilities.IsContentTypeMatch("application/xml", contentType))
{
var response = new GetUsersResponse()
{
StatusCode = responseStatusCode,
ContentType = contentType,
RawResponse = httpResponse
};
response.Body = await httpResponse.Content.ReadAsByteArrayAsync();
return response;
}
throw new Models.Errors.SDKException("Unknown content type received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
else if(responseStatusCode == 400)
{
if(Utilities.IsContentTypeMatch("application/json", contentType))
{
var obj = ResponseBodyDeserializer.Deserialize<GetUsersBadRequest>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore);
obj!.RawResponse = httpResponse;
throw obj!;
}
throw new Models.Errors.SDKException("Unknown content type received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
else if(responseStatusCode == 401)
{
if(Utilities.IsContentTypeMatch("application/json", contentType))
{
var obj = ResponseBodyDeserializer.Deserialize<GetUsersUnauthorized>(await httpResponse.Content.ReadAsStringAsync(), NullValueHandling.Ignore);
obj!.RawResponse = httpResponse;
throw obj!;
}
throw new Models.Errors.SDKException("Unknown content type received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
else if(responseStatusCode >= 400 && responseStatusCode < 500)
{
throw new Models.Errors.SDKException("API error occurred", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
else if(responseStatusCode >= 500 && responseStatusCode < 600)
{
throw new Models.Errors.SDKException("API error occurred", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
throw new Models.Errors.SDKException("Unknown status code received", responseStatusCode, await httpResponse.Content.ReadAsStringAsync(), httpResponse);
}
}
}

View File

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

View File

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

View File

@@ -166,6 +166,10 @@ var res = await sdk.Server.GetServerCapabilitiesAsync();
* [CheckForUpdates](docs/sdks/updater/README.md#checkforupdates) - Checking for updates
* [ApplyUpdates](docs/sdks/updater/README.md#applyupdates) - Apply Updates
### [Users](docs/sdks/users/README.md)
* [GetUsers](docs/sdks/users/README.md#getusers) - Get list of all connected users
### [Video](docs/sdks/video/README.md)
* [GetTimeline](docs/sdks/video/README.md#gettimeline) - Get the timeline for a media item

View File

@@ -465,3 +465,13 @@ Based on:
- [csharp v0.13.4] .
### Releases
- [NuGet v0.13.4] https://www.nuget.org/packages/LukeHagar.PlexAPI.SDK/0.13.4 - .
## 2025-02-06 00:21:18
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.484.1 (2.503.2) https://github.com/speakeasy-api/speakeasy
### Generated
- [csharp v0.13.5] .
### Releases
- [NuGet v0.13.5] https://www.nuget.org/packages/LukeHagar.PlexAPI.SDK/0.13.5 - .

View File

@@ -1282,6 +1282,36 @@ actions:
var res = await sdk.Authentication.GetTokenDetailsAsync();
// handle response
- target: $["paths"]["/users"]["get"]
update:
x-codeSamples:
- lang: csharp
label: users
source: |-
using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Requests;
var sdk = new PlexAPI();
GetUsersRequest req = new GetUsersRequest() {
ClientID = "3381b62b-9ab7-4e37-827b-203e9809eb58",
ClientName = "Plex for Roku",
DeviceNickname = "Roku 3",
DeviceName = "Chrome",
DeviceScreenResolution = "1487x1165,2560x1440",
ClientVersion = "2.4.1",
Platform = "Roku",
ClientFeatures = "external-media,indirect-media,hub-style-list",
Model = "4200X",
XPlexSessionId = "97e136ef-4ddd-4ff3-89a7-a5820c96c2ca",
XPlexLanguage = "en",
PlatformVersion = "4.3 build 1057",
XPlexToken = "CV5xoxjTpFKUzBTShsaf",
};
var res = await sdk.Users.GetUsersAsync(req);
// handle response
- target: $["paths"]["/users/signin"]["post"]
update:

View File

@@ -0,0 +1,11 @@
# GetUsersBadRequest
Bad Request - A parameter was not specified, or was specified incorrectly.
## Fields
| Field | Type | Required | Description |
| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `Errors` | List<[GetUsersErrors](../../Models/Errors/GetUsersErrors.md)> | :heavy_minus_sign: | N/A |
| `RawResponse` | [HttpResponseMessage](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpresponsemessage?view=net-5.0) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -0,0 +1,10 @@
# GetUsersErrors
## Fields
| Field | Type | Required | Description | Example |
| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- |
| `Code` | *int* | :heavy_minus_sign: | N/A | 1000 |
| `Message` | *string* | :heavy_minus_sign: | N/A | X-Plex-Client-Identifier is missing |
| `Status` | *int* | :heavy_minus_sign: | N/A | 400 |

View File

@@ -0,0 +1,11 @@
# GetUsersUnauthorized
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
## Fields
| Field | Type | Required | Description |
| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `Errors` | List<[GetUsersUsersErrors](../../Models/Errors/GetUsersUsersErrors.md)> | :heavy_minus_sign: | N/A |
| `RawResponse` | [HttpResponseMessage](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpresponsemessage?view=net-5.0) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |

View File

@@ -0,0 +1,10 @@
# GetUsersUsersErrors
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
| `Code` | *int* | :heavy_minus_sign: | N/A | 1001 |
| `Message` | *string* | :heavy_minus_sign: | N/A | User could not be authenticated |
| `Status` | *int* | :heavy_minus_sign: | N/A | 401 |

View File

@@ -0,0 +1,11 @@
# AllLibraries
Indicates if the user has access to all libraries.
## Values
| Name | Value |
| --------- | --------- |
| `Disable` | 0 |
| `Enable` | 1 |

View File

@@ -0,0 +1,11 @@
# AllowCameraUpload
Indicates if the user is allowed to upload from a camera.
## Values
| Name | Value |
| --------- | --------- |
| `Disable` | 0 |
| `Enable` | 1 |

View File

@@ -0,0 +1,11 @@
# AllowChannels
Indicates if the user has access to channels.
## Values
| Name | Value |
| --------- | --------- |
| `Disable` | 0 |
| `Enable` | 1 |

View File

@@ -0,0 +1,11 @@
# AllowSubtitleAdmin
Indicates if the user can manage subtitles.
## Values
| Name | Value |
| --------- | --------- |
| `Disable` | 0 |
| `Enable` | 1 |

View File

@@ -0,0 +1,11 @@
# AllowSync
Indicates if the user is allowed to sync media.
## Values
| Name | Value |
| --------- | --------- |
| `Disable` | 0 |
| `Enable` | 1 |

View File

@@ -0,0 +1,11 @@
# AllowTuners
Indicates if the user is allowed to use tuners.
## Values
| Name | Value |
| --------- | --------- |
| `Disable` | 0 |
| `Enable` | 1 |

View File

@@ -36,4 +36,4 @@
| `Country` | List<[GetTopWatchedContentCountry](../../Models/Requests/GetTopWatchedContentCountry.md)> | :heavy_minus_sign: | N/A | |
| `Guids` | List<[GetTopWatchedContentGuids](../../Models/Requests/GetTopWatchedContentGuids.md)> | :heavy_minus_sign: | N/A | |
| `Role` | List<[GetTopWatchedContentRole](../../Models/Requests/GetTopWatchedContentRole.md)> | :heavy_minus_sign: | N/A | |
| `User` | List<[User](../../Models/Requests/User.md)> | :heavy_minus_sign: | N/A | |
| `User` | List<[GetTopWatchedContentUser](../../Models/Requests/GetTopWatchedContentUser.md)> | :heavy_minus_sign: | N/A | |

View File

@@ -0,0 +1,8 @@
# GetTopWatchedContentUser
## Fields
| Field | Type | Required | Description | Example |
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
| `Id` | *int* | :heavy_minus_sign: | N/A | 220 |

View File

@@ -0,0 +1,15 @@
# GetUsersMediaContainer
Container holding user and server details.
## Fields
| Field | Type | Required | Description | Example |
| --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- |
| `FriendlyName` | *string* | :heavy_check_mark: | The friendly name of the Plex instance. | myPlex |
| `Identifier` | *string* | :heavy_check_mark: | N/A | com.plexapp.plugins.myplex |
| `MachineIdentifier` | *string* | :heavy_check_mark: | Unique Machine identifier of the Plex server. | 3dff4c4da3b1229a649aa574a9e2b419a684a20e |
| `TotalSize` | *long* | :heavy_check_mark: | Total number of users. | 30 |
| `Size` | *long* | :heavy_check_mark: | Number of users in the current response. | 30 |
| `User` | List<[User](../../Models/Requests/User.md)> | :heavy_check_mark: | List of users with access to the Plex server. | |

View File

@@ -0,0 +1,20 @@
# GetUsersRequest
## Fields
| Field | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ClientID` | *string* | :heavy_check_mark: | An opaque identifier unique to the client (UUID, serial number, or other unique device ID) | 3381b62b-9ab7-4e37-827b-203e9809eb58 |
| `ClientName` | *string* | :heavy_minus_sign: | The name of the client application. (Plex Web, Plex Media Server, etc.) | Plex for Roku |
| `DeviceNickname` | *string* | :heavy_minus_sign: | A relatively friendly name for the client device | Roku 3 |
| `DeviceName` | *string* | :heavy_minus_sign: | The name of the device the client application is running on. This is used to track the client application and its usage. (Chrome, Safari, etc.) | Chrome |
| `DeviceScreenResolution` | *string* | :heavy_minus_sign: | The resolution of the device the client application is running on. This is used to track the client application and its usage. (1487x1165,2560x1440) | 1487x1165,2560x1440 |
| `ClientVersion` | *string* | :heavy_minus_sign: | The version of the client application. | 2.4.1 |
| `Platform` | *string* | :heavy_minus_sign: | The platform of the client application. | Roku |
| `ClientFeatures` | *string* | :heavy_minus_sign: | The features of the client application. This is used to track the client application and its usage. (external-media,indirect-media,hub-style-list) | external-media,indirect-media,hub-style-list |
| `Model` | *string* | :heavy_minus_sign: | A potentially less friendly identifier for the device model | 4200X |
| `XPlexSessionId` | *string* | :heavy_minus_sign: | The session ID of the client application. This is used to track the client application and its usage. (97e136ef-4ddd-4ff3-89a7-a5820c96c2ca) | 97e136ef-4ddd-4ff3-89a7-a5820c96c2ca |
| `XPlexLanguage` | *string* | :heavy_minus_sign: | The language of the client application. | en |
| `PlatformVersion` | *string* | :heavy_minus_sign: | The version of the platform | 4.3 build 1057 |
| `XPlexToken` | *string* | :heavy_check_mark: | An authentication token, obtained from plex.tv | CV5xoxjTpFKUzBTShsaf |

View File

@@ -0,0 +1,11 @@
# GetUsersResponse
## 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 |
| `Body` | *byte[]* | :heavy_minus_sign: | N/A |

View File

@@ -0,0 +1,10 @@
# GetUsersResponseBody
Successful response with media container data in XML
## Fields
| Field | Type | Required | Description |
| ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| `MediaContainer` | [GetUsersMediaContainer](../../Models/Requests/GetUsersMediaContainer.md) | :heavy_minus_sign: | Container holding user and server details. |

View File

@@ -0,0 +1,16 @@
# GetUsersServer
## Fields
| Field | Type | Required | Description | Example |
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
| `Id` | *long* | :heavy_check_mark: | Unique ID of the server of the connected user | 907759180 |
| `ServerId` | *long* | :heavy_check_mark: | ID of the actual Plex server. | 9999999 |
| `MachineIdentifier` | *string* | :heavy_check_mark: | Machine identifier of the Plex server. | fbb8aa6be6e0c997c6268bc2b4431c8807f70a3 |
| `Name` | *string* | :heavy_check_mark: | Name of the Plex server of the connected user. | ConnectedUserFlix |
| `LastSeenAt` | *long* | :heavy_check_mark: | N/A | 1556281940 |
| `NumLibraries` | *long* | :heavy_check_mark: | Number of libraries in the server this user has access to. | 16 |
| `AllLibraries` | [AllLibraries](../../Models/Requests/AllLibraries.md) | :heavy_minus_sign: | N/A | 1 |
| `Owned` | [Owned](../../Models/Requests/Owned.md) | :heavy_minus_sign: | N/A | 1 |
| `Pending` | [Pending](../../Models/Requests/Pending.md) | :heavy_minus_sign: | N/A | 1 |

View File

@@ -0,0 +1,11 @@
# Home
Indicates if the user is part of a home group.
## Values
| Name | Value |
| --------- | --------- |
| `Disable` | 0 |
| `Enable` | 1 |

View File

@@ -0,0 +1,11 @@
# Owned
Indicates if the user owns the server.
## Values
| Name | Value |
| --------- | --------- |
| `Disable` | 0 |
| `Enable` | 1 |

View File

@@ -0,0 +1,11 @@
# Pending
Indicates if the server is pending approval.
## Values
| Name | Value |
| --------- | --------- |
| `Disable` | 0 |
| `Enable` | 1 |

View File

@@ -0,0 +1,11 @@
# Protected
Indicates whether the account is protected.
## Values
| Name | Value |
| --------- | --------- |
| `Disable` | 0 |
| `Enable` | 1 |

View File

@@ -0,0 +1,11 @@
# Restricted
Indicates if the user has restricted access.
## Values
| Name | Value |
| --------- | --------- |
| `Disable` | 0 |
| `Enable` | 1 |

View File

@@ -4,5 +4,24 @@
## Fields
| Field | Type | Required | Description | Example |
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
| `Id` | *int* | :heavy_minus_sign: | N/A | 220 |
| ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- |
| `Id` | *long* | :heavy_check_mark: | User's unique ID. | 22526914 |
| `Title` | *string* | :heavy_check_mark: | User's display name. | Plex User |
| `Username` | *string* | :heavy_check_mark: | User's username. | zgfuc7krcqfimrmb9lsl5j |
| `Email` | *string* | :heavy_check_mark: | User's email address. | zgfuc7krcqfimrmb9lsl5j@protonmail.com |
| `RecommendationsPlaylistId` | *string* | :heavy_minus_sign: | ID of the user's recommendation playlist. | |
| `Thumb` | *string* | :heavy_check_mark: | URL to the user's avatar image. | https://plex.tv/users/3346028014e93acd/avatar?c=1731605021 |
| `Protected` | [Protected](../../Models/Requests/Protected.md) | :heavy_minus_sign: | N/A | 1 |
| `Home` | [Home](../../Models/Requests/Home.md) | :heavy_minus_sign: | N/A | 1 |
| `AllowTuners` | [AllowTuners](../../Models/Requests/AllowTuners.md) | :heavy_minus_sign: | N/A | 1 |
| `AllowSync` | [AllowSync](../../Models/Requests/AllowSync.md) | :heavy_minus_sign: | N/A | 1 |
| `AllowCameraUpload` | [AllowCameraUpload](../../Models/Requests/AllowCameraUpload.md) | :heavy_minus_sign: | N/A | 1 |
| `AllowChannels` | [AllowChannels](../../Models/Requests/AllowChannels.md) | :heavy_minus_sign: | N/A | 1 |
| `AllowSubtitleAdmin` | [AllowSubtitleAdmin](../../Models/Requests/AllowSubtitleAdmin.md) | :heavy_minus_sign: | N/A | 1 |
| `FilterAll` | *string* | :heavy_minus_sign: | Filters applied for all content. | |
| `FilterMovies` | *string* | :heavy_minus_sign: | Filters applied for movies. | |
| `FilterMusic` | *string* | :heavy_minus_sign: | Filters applied for music. | |
| `FilterPhotos` | *string* | :heavy_minus_sign: | Filters applied for photos. | |
| `FilterTelevision` | *string* | :heavy_minus_sign: | Filters applied for television. | |
| `Restricted` | [Restricted](../../Models/Requests/Restricted.md) | :heavy_minus_sign: | N/A | 1 |
| `Server` | List<[GetUsersServer](../../Models/Requests/GetUsersServer.md)> | :heavy_check_mark: | List of servers owned by the user. | |

60
docs/sdks/users/README.md Normal file
View File

@@ -0,0 +1,60 @@
# Users
(*Users*)
## Overview
### Available Operations
* [GetUsers](#getusers) - Get list of all connected users
## GetUsers
Get list of all users that are friends and have library access with the provided Plex authentication token
### Example Usage
```csharp
using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Requests;
var sdk = new PlexAPI();
GetUsersRequest req = new GetUsersRequest() {
ClientID = "3381b62b-9ab7-4e37-827b-203e9809eb58",
ClientName = "Plex for Roku",
DeviceNickname = "Roku 3",
DeviceName = "Chrome",
DeviceScreenResolution = "1487x1165,2560x1440",
ClientVersion = "2.4.1",
Platform = "Roku",
ClientFeatures = "external-media,indirect-media,hub-style-list",
Model = "4200X",
XPlexSessionId = "97e136ef-4ddd-4ff3-89a7-a5820c96c2ca",
XPlexLanguage = "en",
PlatformVersion = "4.3 build 1057",
XPlexToken = "CV5xoxjTpFKUzBTShsaf",
};
var res = await sdk.Users.GetUsersAsync(req);
// handle response
```
### Parameters
| Parameter | Type | Required | Description |
| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- |
| `request` | [GetUsersRequest](../../Models/Requests/GetUsersRequest.md) | :heavy_check_mark: | The request object to use for the request. |
| `serverURL` | *string* | :heavy_minus_sign: | An optional server URL to use. |
### Response
**[GetUsersResponse](../../Models/Requests/GetUsersResponse.md)**
### Errors
| Error Type | Status Code | Content Type |
| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- |
| LukeHagar.PlexAPI.SDK.Models.Errors.GetUsersBadRequest | 400 | application/json |
| LukeHagar.PlexAPI.SDK.Models.Errors.GetUsersUnauthorized | 401 | application/json |
| LukeHagar.PlexAPI.SDK.Models.Errors.SDKException | 4XX, 5XX | \*/\* |