code: func (m VirtualDiskManager) CreateVirtualDisk(
  	ctx context.Context,
  	name string, datacenter *Datacenter,
  	spec types.BaseVirtualDiskSpec) (*Task, error) {
  
  	req := types.CreateVirtualDisk_Task{
  		This: m.Reference(),
  		Name: name,
  		Spec: spec,
  	}
  
  	if datacenter != nil {
  		ref := datacenter.Reference()
  		req.Datacenter = &ref
  	}
  
  	res, err := methods.CreateVirtualDisk_Task(ctx, m.c, &req)
  	if err != nil {
  		return nil, err
  	}
  
  	return NewTask(m.c, res.Returnval), nil
  }
docs: // CreateVirtualDisk creates a new virtual disk.