using MediaBrowser.Model.Updates;
namespace MediaBrowser.Model.System
{
    /// 
    /// Class SystemInfo
    /// 
    public class SystemInfo
    {
        /// 
        /// Gets or sets the version.
        /// 
        /// The version.
        public string Version { get; set; }
        /// 
        /// Gets or sets a value indicating whether this instance has pending restart.
        /// 
        /// true if this instance has pending restart; otherwise, false.
        public bool HasPendingRestart { get; set; }
        /// 
        /// Gets or sets a value indicating whether this instance is network deployed.
        /// 
        /// true if this instance is network deployed; otherwise, false.
        public bool IsNetworkDeployed { get; set; }
        /// 
        /// Gets or sets the in progress installations.
        /// 
        /// The in progress installations.
        public InstallationInfo[] InProgressInstallations { get; set; }
        /// 
        /// Gets or sets the web socket port number.
        /// 
        /// The web socket port number.
        public int WebSocketPortNumber { get; set; }
        /// 
        /// Gets or sets the completed installations.
        /// 
        /// The completed installations.
        public InstallationInfo[] CompletedInstallations { get; set; }
        /// 
        /// Gets or sets a value indicating whether [supports native web socket].
        /// 
        /// true if [supports native web socket]; otherwise, false.
        public bool SupportsNativeWebSocket { get; set; }
        /// 
        /// Gets or sets plugin assemblies that failed to load.
        /// 
        /// The failed assembly loads.
        public string[] FailedPluginAssemblies { get; set; }
        /// 
        /// Gets or sets the id.
        /// 
        /// The id.
        public string Id { get; set; }
        /// 
        /// Gets or sets the program data path.
        /// 
        /// The program data path.
        public string ProgramDataPath { get; set; }
        
        /// 
        /// Initializes a new instance of the  class.
        /// 
        public SystemInfo()
        {
            InProgressInstallations = new InstallationInfo[] { };
            CompletedInstallations = new InstallationInfo[] { };
            FailedPluginAssemblies = new string[] { };
        }
    }
}