code: func (c *sioClient) AttachVolume(id sioVolumeID, multipleMappings bool) error {
  	if err := c.init(); err != nil {
  		klog.Error(log("failed to init'd client in attach volume: %v", err))
  		return err
  	}
  
  	iid, err := c.IID()
  	if err != nil {
  		klog.Error(log("failed to get instanceIID for attach volume: %v", err))
  		return err
  	}
  
  	params := &siotypes.MapVolumeSdcParam{
  		SdcID:                 iid,
  		AllowMultipleMappings: strconv.FormatBool(multipleMappings),
  		AllSdcs:               "",
  	}
  	volClient := sio.NewVolume(c.client)
  	volClient.Volume = &siotypes.Volume{ID: string(id)}
  
  	if err := volClient.MapVolumeSdc(params); err != nil {
  		klog.Error(log("failed to attach volume id %s: %v", id, err))
  		return err
  	}
  
  	klog.V(4).Info(log("volume %s attached successfully", id))
  	return nil
  }
docs: // AttachVolume maps the scaleio volume to an sdc node.  If the multipleMappings flag
  // is true, ScaleIO will allow other SDC to map to that volume.