code: func (m VirtualDiskManager) ShrinkVirtualDisk(ctx context.Context, name string, dc *Datacenter, copy *bool) (*Task, error) {
  	req := types.ShrinkVirtualDisk_Task{
  		This: m.Reference(),
  		Name: name,
  		Copy: copy,
  	}
  
  	if dc != nil {
  		ref := dc.Reference()
  		req.Datacenter = &ref
  	}
  
  	res, err := methods.ShrinkVirtualDisk_Task(ctx, m.c, &req)
  	if err != nil {
  		return nil, err
  	}
  
  	return NewTask(m.c, res.Returnval), nil
  }
docs: // ShrinkVirtualDisk shrinks a virtual disk.