private void Run()
        {
            // StorageProfile
            if (this.Image.StorageProfile == null)
            {
                this.Image.StorageProfile = new ImageStorageProfile();
            }

            // DataDisks
            if (this.Image.StorageProfile.DataDisks == null)
            {
                this.Image.StorageProfile.DataDisks = new List <ImageDataDisk>();
            }

            var vDataDisks = new ImageDataDisk();

            vDataDisks.Lun                = this.Lun;
            vDataDisks.BlobUri            = this.IsParameterBound(c => c.BlobUri) ? this.BlobUri : null;
            vDataDisks.Caching            = this.IsParameterBound(c => c.Caching) ? this.Caching : (CachingTypes?)null;
            vDataDisks.DiskSizeGB         = this.IsParameterBound(c => c.DiskSizeGB) ? this.DiskSizeGB : (int?)null;
            vDataDisks.StorageAccountType = this.IsParameterBound(c => c.StorageAccountType) ? this.StorageAccountType : null;
            if (this.IsParameterBound(c => c.SnapshotId))
            {
                // Snapshot
                vDataDisks.Snapshot    = new SubResource();
                vDataDisks.Snapshot.Id = this.SnapshotId;
            }
            if (this.IsParameterBound(c => c.ManagedDiskId))
            {
                // ManagedDisk
                vDataDisks.ManagedDisk    = new SubResource();
                vDataDisks.ManagedDisk.Id = this.ManagedDiskId;
            }
            if (this.IsParameterBound(c => c.DiskEncryptionSetId))
            {
                // DiskEncryptionSet
                vDataDisks.DiskEncryptionSet    = new DiskEncryptionSetParameters();
                vDataDisks.DiskEncryptionSet.Id = this.DiskEncryptionSetId;
            }
            this.Image.StorageProfile.DataDisks.Add(vDataDisks);
            WriteObject(this.Image);
        }
        private void Run()
        {
            // StorageProfile
            if (this.Image.StorageProfile == null)
            {
                this.Image.StorageProfile = new ImageStorageProfile();
            }

            // DataDisks
            if (this.Image.StorageProfile.DataDisks == null)
            {
                this.Image.StorageProfile.DataDisks = new List <ImageDataDisk>();
            }

            var vDataDisks = new ImageDataDisk();

            vDataDisks.Lun                = this.Lun;
            vDataDisks.BlobUri            = this.MyInvocation.BoundParameters.ContainsKey("BlobUri") ? this.BlobUri : null;
            vDataDisks.Caching            = this.MyInvocation.BoundParameters.ContainsKey("Caching") ? this.Caching : (CachingTypes?)null;
            vDataDisks.DiskSizeGB         = this.MyInvocation.BoundParameters.ContainsKey("DiskSizeGB") ? this.DiskSizeGB : (int?)null;
            vDataDisks.StorageAccountType = this.MyInvocation.BoundParameters.ContainsKey("StorageAccountType") ? this.StorageAccountType : null;
            if (this.MyInvocation.BoundParameters.ContainsKey("SnapshotId"))
            {
                // Snapshot
                vDataDisks.Snapshot    = new SubResource();
                vDataDisks.Snapshot.Id = this.SnapshotId;
            }
            if (this.MyInvocation.BoundParameters.ContainsKey("ManagedDiskId"))
            {
                // ManagedDisk
                vDataDisks.ManagedDisk    = new SubResource();
                vDataDisks.ManagedDisk.Id = this.ManagedDiskId;
            }
            this.Image.StorageProfile.DataDisks.Add(vDataDisks);
            WriteObject(this.Image);
        }