code: func (a *API) UpdateMetric(cfg *Metric) (*Metric, error) {
  	if cfg == nil {
  		return nil, fmt.Errorf("Invalid metric config [nil]")
  	}
  
  	metricCID := string(cfg.CID)
  
  	matched, err := regexp.MatchString(config.MetricCIDRegex, metricCID)
  	if err != nil {
  		return nil, err
  	}
  	if !matched {
  		return nil, fmt.Errorf("Invalid metric CID [%s]", metricCID)
  	}
  
  	jsonCfg, err := json.Marshal(cfg)
  	if err != nil {
  		return nil, err
  	}
  
  	if a.Debug {
  		a.Log.Printf("[DEBUG] update metric, sending JSON: %s", string(jsonCfg))
  	}
  
  	result, err := a.Put(metricCID, jsonCfg)
  	if err != nil {
  		return nil, err
  	}
  
  	metric := &Metric{}
  	if err := json.Unmarshal(result, metric); err != nil {
  		return nil, err
  	}
  
  	return metric, nil
  }
docs: // UpdateMetric updates passed metric.