/// <summary>
 /// Initializes a new instance of the VirtualMachineImageInner class.
 /// </summary>
 /// <param name="name">The name of the resource.</param>
 /// <param name="location">The supported Azure location of the
 /// resource.</param>
 /// <param name="tags">Specifies the tags that are assigned to the
 /// virtual machine. For more information about using tags, see [Using
 /// tags to organize your Azure
 /// resources](https://docs.microsoft.com/azure/azure-resource-manager/resource-group-using-tags.md).</param>
 public VirtualMachineImageInner(string name, string location, string id = default(string), IDictionary <string, string> tags = default(IDictionary <string, string>), PurchasePlan plan = default(PurchasePlan), OSDiskImage osDiskImage = default(OSDiskImage), IList <DataDiskImage> dataDiskImages = default(IList <DataDiskImage>), AutomaticOSUpgradeProperties automaticOSUpgradeProperties = default(AutomaticOSUpgradeProperties))
     : base(name, location, id, tags)
 {
     Plan           = plan;
     OsDiskImage    = osDiskImage;
     DataDiskImages = dataDiskImages;
     AutomaticOSUpgradeProperties = automaticOSUpgradeProperties;
     CustomInit();
 }
 /// <summary>
 /// Initializes a new instance of the VirtualMachineImageInner class.
 /// </summary>
 /// <param name="name">The name of the resource.</param>
 /// <param name="location">The supported Azure location of the
 /// resource.</param>
 /// <param name="tags">Specifies the tags that are assigned to the
 /// virtual machine. For more information about using tags, see [Using
 /// tags to organize your Azure
 /// resources](https://docs.microsoft.com/azure/azure-resource-manager/resource-group-using-tags.md).</param>
 /// <param name="hyperVGeneration">Possible values include: 'V1',
 /// 'V2'</param>
 /// <param name="disallowed">Specifies disallowed configuration for the
 /// VirtualMachine created from the image</param>
 public VirtualMachineImageInner(string name, string location, string id = default(string), IDictionary <string, string> tags = default(IDictionary <string, string>), PurchasePlan plan = default(PurchasePlan), OSDiskImage osDiskImage = default(OSDiskImage), IList <DataDiskImage> dataDiskImages = default(IList <DataDiskImage>), AutomaticOSUpgradeProperties automaticOSUpgradeProperties = default(AutomaticOSUpgradeProperties), HyperVGenerationTypes hyperVGeneration = default(HyperVGenerationTypes), DisallowedConfiguration disallowed = default(DisallowedConfiguration))
     : base(name, location, id, tags)
 {
     Plan           = plan;
     OsDiskImage    = osDiskImage;
     DataDiskImages = dataDiskImages;
     AutomaticOSUpgradeProperties = automaticOSUpgradeProperties;
     HyperVGeneration             = hyperVGeneration;
     Disallowed = disallowed;
     CustomInit();
 }
 /// <summary>
 /// Validate the object.
 /// </summary>
 /// <exception cref="ValidationException">
 /// Thrown if validation fails
 /// </exception>
 public override void Validate()
 {
     base.Validate();
     if (Plan != null)
     {
         Plan.Validate();
     }
     if (OsDiskImage != null)
     {
         OsDiskImage.Validate();
     }
     if (AutomaticOSUpgradeProperties != null)
     {
         AutomaticOSUpgradeProperties.Validate();
     }
 }