//------------------------------------------------------------------------------
//
// 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.
//
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Components
{
using LukeHagar.PlexAPI.SDK.Models.Components;
using LukeHagar.PlexAPI.SDK.Utils;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
public class UserPlexAccount
{
///
/// Unknown
///
[JsonProperty("adsConsent")]
public bool? AdsConsent { get; set; } = null;
[JsonProperty("adsConsentReminderAt")]
public long? AdsConsentReminderAt { get; set; } = null;
[JsonProperty("adsConsentSetAt")]
public long? AdsConsentSetAt { get; set; } = null;
///
/// Unknown
///
[JsonProperty("anonymous")]
public bool? Anonymous { get; set; } = false;
///
/// The account token
///
[JsonProperty("authToken")]
public string AuthToken { get; set; } = default!;
///
/// If the two-factor authentication backup codes have been created
///
[JsonProperty("backupCodesCreated")]
public bool? BackupCodesCreated { get; set; } = false;
///
/// If the account has been confirmed
///
[JsonProperty("confirmed")]
public bool? Confirmed { get; set; } = false;
///
/// The account country
///
[JsonProperty("country")]
public string? Country { get; set; }
///
/// The account email address
///
[JsonProperty("email")]
public string Email { get; set; } = default!;
///
/// If login with email only is enabled
///
[JsonProperty("emailOnlyAuth")]
public bool? EmailOnlyAuth { get; set; } = false;
///
/// If experimental features are enabled
///
[JsonProperty("experimentalFeatures")]
public bool? ExperimentalFeatures { get; set; } = false;
///
/// Your account full name
///
[JsonProperty("friendlyName")]
public string FriendlyName { get; set; } = default!;
///
/// List of devices your allowed to use with this account
///
[JsonProperty("entitlements")]
public List? Entitlements { get; set; }
///
/// If the account is a Plex Home guest user
///
[JsonProperty("guest")]
public bool? Guest { get; set; } = false;
///
/// If the account has a password
///
[JsonProperty("hasPassword")]
public bool? HasPassword { get; set; } = true;
///
/// If the account is a Plex Home user
///
[JsonProperty("home")]
public bool? Home { get; set; } = false;
///
/// If the account is the Plex Home admin
///
[JsonProperty("homeAdmin")]
public bool? HomeAdmin { get; set; } = false;
///
/// The number of accounts in the Plex Home
///
[JsonProperty("homeSize")]
public int? HomeSize { get; set; }
///
/// The Plex account ID
///
[JsonProperty("id")]
public int Id { get; set; } = default!;
///
/// Unix epoch datetime in seconds
///
[JsonProperty("joinedAt")]
public long JoinedAt { get; set; } = default!;
///
/// The account locale
///
[JsonProperty("locale")]
public string? Locale { get; set; } = null;
///
/// If you are subscribed to the Plex newsletter
///
[JsonProperty("mailingListActive")]
public bool? MailingListActive { get; set; } = false;
///
/// Your current mailing list status
///
[JsonProperty("mailingListStatus")]
public Models.Components.MailingListStatus? MailingListStatus { get; set; }
///
/// The maximum number of accounts allowed in the Plex Home
///
[JsonProperty("maxHomeSize")]
public int? MaxHomeSize { get; set; }
///
/// [Might be removed] The hashed Plex Home PIN
///
[Obsolete("This field will be removed in a future release, please migrate away from it as soon as possible")]
[JsonProperty("pin")]
public string? Pin { get; set; }
[JsonProperty("profile")]
public UserProfile? Profile { get; set; }
///
/// If the account has a Plex Home PIN enabled
///
[JsonProperty("protected")]
public bool? Protected { get; set; } = false;
///
/// Unix epoch datetime in seconds
///
[JsonProperty("rememberExpiresAt")]
public long? RememberExpiresAt { get; set; }
///
/// If the account is a Plex Home managed user
///
[JsonProperty("restricted")]
public bool? Restricted { get; set; } = false;
///
/// [Might be removed] List of account roles. Plexpass membership listed here
///
[JsonProperty("roles")]
public List? Roles { get; set; }
///
/// Unknown
///
[JsonProperty("scrobbleTypes")]
public string? ScrobbleTypes { get; set; }
[JsonProperty("services")]
public List? Services { get; set; }
///
/// If the account's Plex Pass subscription is active
///
[JsonProperty("subscription")]
public Models.Components.Subscription? Subscription { get; set; }
///
/// Description of the Plex Pass subscription
///
[JsonProperty("subscriptionDescription")]
public string? SubscriptionDescription { get; set; } = null;
[JsonProperty("subscriptions")]
public List? Subscriptions { get; set; }
///
/// URL of the account thumbnail
///
[JsonProperty("thumb")]
public string? Thumb { get; set; }
///
/// The title of the account (username or friendly name)
///
[JsonProperty("title")]
public string Title { get; set; } = default!;
///
/// If two-factor authentication is enabled
///
[JsonProperty("twoFactorEnabled")]
public bool? TwoFactorEnabled { get; set; } = false;
///
/// The account username
///
[JsonProperty("username")]
public string Username { get; set; } = default!;
///
/// The account UUID
///
[JsonProperty("uuid")]
public string Uuid { get; set; } = default!;
[JsonProperty("attributionPartner")]
public string? AttributionPartner { get; set; } = null;
}
}