using System.Runtime.Serialization;
using Vanara.Management;
namespace Vanara.IO;
/// Provides information about a VHD Set file.
[DataContract(Name = "Msvm_VHDSetInformation", Namespace = @"root\virtualization\v2")]
public class VirtualDiskSetInformation
{
///
/// A list of all files encompassed by the VHD Set file, including any unreferenced files and any parents of the root virtual hard
/// disk. All files listed after the root virtual hard disk are unmanaged by this VHD Set file. This field may be empty if this
/// information was not specifically requested.
///
public string[] AllPaths { get; internal set; }
/// The path of the VHD Set file.
public string Path { get; internal set; }
/// A list of GUIDs representing all of the snapshots contained by this VHD Set file.
[IgnoreDataMember]
public Guid[] SnapshotIdList => Array.ConvertAll(Ids, s => Guid.Parse(s));
[DataMember(Name = "SnapshotIdList")]
internal string[] Ids { get; set; }
internal static VirtualDiskSetInformation Parse(string embeddedInstance) => ManagementExtensions.Parse(embeddedInstance);
}