/// <summary>
 /// Initializes a new instance of the DiskInner class.
 /// </summary>
 /// <param name="creationData">Disk source information. CreationData
 /// information cannot be changed after the disk has been
 /// created.</param>
 /// <param name="managedBy">A relative URI containing the ID of the VM
 /// that has the disk attached.</param>
 /// <param name="managedByExtended">List of relative URIs containing
 /// the IDs of the VMs that have the disk attached. maxShares should be
 /// set to a value greater than one for disks to allow attaching them
 /// to multiple VMs.</param>
 /// <param name="zones">The Logical zone list for Disk.</param>
 /// <param name="timeCreated">The time when the disk was
 /// created.</param>
 /// <param name="osType">The Operating System type. Possible values
 /// include: 'Windows', 'Linux'</param>
 /// <param name="hyperVGeneration">The hypervisor generation of the
 /// Virtual Machine. Applicable to OS disks only. Possible values
 /// include: 'V1', 'V2'</param>
 /// <param name="diskSizeGB">If creationData.createOption is Empty,
 /// this field is mandatory and it indicates the size of the disk to
 /// create. If this field is present for updates or creation with other
 /// options, it indicates a resize. Resizes are only allowed if the
 /// disk is not attached to a running VM, and can only increase the
 /// disk's size.</param>
 /// <param name="diskSizeBytes">The size of the disk in bytes. This
 /// field is read only.</param>
 /// <param name="uniqueId">Unique Guid identifying the
 /// resource.</param>
 /// <param name="encryptionSettingsCollection">Encryption settings
 /// collection used for Azure Disk Encryption, can contain multiple
 /// encryption settings per disk or snapshot.</param>
 /// <param name="provisioningState">The disk provisioning
 /// state.</param>
 /// <param name="diskIOPSReadWrite">The number of IOPS allowed for this
 /// disk; only settable for UltraSSD disks. One operation can transfer
 /// between 4k and 256k bytes.</param>
 /// <param name="diskMBpsReadWrite">The bandwidth allowed for this
 /// disk; only settable for UltraSSD disks. MBps means millions of
 /// bytes per second - MB here uses the ISO notation, of powers of
 /// 10.</param>
 /// <param name="diskIOPSReadOnly">The total number of IOPS that will
 /// be allowed across all VMs mounting the shared disk as ReadOnly. One
 /// operation can transfer between 4k and 256k bytes.</param>
 /// <param name="diskMBpsReadOnly">The total throughput (MBps) that
 /// will be allowed across all VMs mounting the shared disk as
 /// ReadOnly. MBps means millions of bytes per second - MB here uses
 /// the ISO notation, of powers of 10.</param>
 /// <param name="diskState">The state of the disk. Possible values
 /// include: 'Unattached', 'Attached', 'Reserved', 'ActiveSAS',
 /// 'ReadyToUpload', 'ActiveUpload'</param>
 /// <param name="encryption">Encryption property can be used to encrypt
 /// data at rest with customer managed keys or platform managed
 /// keys.</param>
 /// <param name="maxShares">The maximum number of VMs that can attach
 /// to the disk at the same time. Value greater than one indicates a
 /// disk that can be mounted on multiple VMs at the same time.</param>
 /// <param name="shareInfo">Details of the list of all VMs that have
 /// the disk attached. maxShares should be set to a value greater than
 /// one for disks to allow attaching them to multiple VMs.</param>
 /// <param name="networkAccessPolicy">Possible values include:
 /// 'AllowAll', 'AllowPrivate', 'DenyAll'</param>
 /// <param name="diskAccessId">ARM id of the DiskAccess resource for
 /// using private endpoints on disks.</param>
 /// <param name="tier">Performance tier of the disk (e.g, P4, S10) as
 /// described here:
 /// https://azure.microsoft.com/en-us/pricing/details/managed-disks/.
 /// Does not apply to Ultra disks.</param>
 public DiskInner(string location, CreationData creationData, string id = default(string), string name = default(string), string type = default(string), IDictionary <string, string> tags = default(IDictionary <string, string>), string managedBy = default(string), IList <string> managedByExtended = default(IList <string>), DiskSku sku = default(DiskSku), IList <string> zones = default(IList <string>), System.DateTime?timeCreated = default(System.DateTime?), OperatingSystemTypes?osType = default(OperatingSystemTypes?), HyperVGeneration hyperVGeneration = default(HyperVGeneration), int?diskSizeGB = default(int?), long?diskSizeBytes = default(long?), string uniqueId = default(string), EncryptionSettingsCollection encryptionSettingsCollection = default(EncryptionSettingsCollection), string provisioningState = default(string), long?diskIOPSReadWrite = default(long?), long?diskMBpsReadWrite = default(long?), long?diskIOPSReadOnly = default(long?), long?diskMBpsReadOnly = default(long?), DiskState diskState = default(DiskState), Encryption encryption = default(Encryption), int?maxShares = default(int?), IList <ShareInfoElement> shareInfo = default(IList <ShareInfoElement>), NetworkAccessPolicy networkAccessPolicy = default(NetworkAccessPolicy), string diskAccessId = default(string), string tier = default(string))
     : base(location, id, name, type, tags)
 {
     ManagedBy         = managedBy;
     ManagedByExtended = managedByExtended;
     Sku                          = sku;
     Zones                        = zones;
     TimeCreated                  = timeCreated;
     OsType                       = osType;
     HyperVGeneration             = hyperVGeneration;
     CreationData                 = creationData;
     DiskSizeGB                   = diskSizeGB;
     DiskSizeBytes                = diskSizeBytes;
     UniqueId                     = uniqueId;
     EncryptionSettingsCollection = encryptionSettingsCollection;
     ProvisioningState            = provisioningState;
     DiskIOPSReadWrite            = diskIOPSReadWrite;
     DiskMBpsReadWrite            = diskMBpsReadWrite;
     DiskIOPSReadOnly             = diskIOPSReadOnly;
     DiskMBpsReadOnly             = diskMBpsReadOnly;
     DiskState                    = diskState;
     Encryption                   = encryption;
     MaxShares                    = maxShares;
     ShareInfo                    = shareInfo;
     NetworkAccessPolicy          = networkAccessPolicy;
     DiskAccessId                 = diskAccessId;
     Tier                         = tier;
     CustomInit();
 }