code: func (r *CdromSubresource) Create(l object.VirtualDeviceList) ([]types.BaseVirtualDeviceConfigSpec, error) {
  	log.Printf("[DEBUG] %s: Running create", r)
  	var spec []types.BaseVirtualDeviceConfigSpec
  	var ctlr types.BaseVirtualController
  	ctlr, err := r.ControllerForCreateUpdate(l, SubresourceControllerTypeIDE, 0)
  	if err != nil {
  		return nil, err
  	}
  
  	// We now have the controller on which we can create our device on.
  	device, err := l.CreateCdrom(ctlr.(*types.VirtualIDEController))
  	if err != nil {
  		return nil, err
  	}
  	// Map the CDROM to the correct device
  	r.mapCdrom(device, l)
  	// Done here. Save IDs, push the device to the new device list and return.
  	if err := r.SaveDevIDs(device, ctlr); err != nil {
  		return nil, err
  	}
  	dspec, err := object.VirtualDeviceList{device}.ConfigSpec(types.VirtualDeviceConfigSpecOperationAdd)
  	if err != nil {
  		return nil, err
  	}
  	spec = append(spec, dspec...)
  	log.Printf("[DEBUG] %s: Device config operations from create: %s", r, DeviceChangeString(spec))
  	log.Printf("[DEBUG] %s: Create finished", r)
  	return spec, nil
  }
docs: // Create creates a vsphere_virtual_machine cdrom sub-resource.