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