//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
//
// Changes to this file may cause incorrect behavior and will be lost when
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#nullable enable
namespace LukeHagar.PlexAPI.SDK.Models.Requests
{
    using LukeHagar.PlexAPI.SDK.Models.Requests;
    using LukeHagar.PlexAPI.SDK.Utils;
    using System.Collections.Generic;
    
    public class User
    {

        /// <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!;
    }
}