code: func (pm *Manager) Disable(refOrID string, config *types.PluginDisableConfig) error {
  	p, err := pm.config.Store.GetV2Plugin(refOrID)
  	if err != nil {
  		return err
  	}
  	pm.mu.RLock()
  	c := pm.cMap[p]
  	pm.mu.RUnlock()
  
  	if !config.ForceDisable && p.GetRefCount() > 0 {
  		return errors.WithStack(inUseError(p.Name()))
  	}
  
  	for _, typ := range p.GetTypes() {
  		if typ.Capability == authorization.AuthZApiImplements {
  			pm.config.AuthzMiddleware.RemovePlugin(p.Name())
  		}
  	}
  
  	if err := pm.disable(p, c); err != nil {
  		return err
  	}
  	pm.publisher.Publish(EventDisable{Plugin: p.PluginObj})
  	pm.config.LogPluginEvent(p.GetID(), refOrID, "disable")
  	return nil
  }
docs: // Disable deactivates a plugin. This means resources (volumes, networks) cant use them.