code: func (s *MacroService) UpdateMacro(ctx context.Context, id platform.ID, update *platform.MacroUpdate) (*platform.Macro, error) {
  	u, err := newURL(s.Addr, macroIDPath(id))
  	if err != nil {
  		return nil, err
  	}
  
  	octets, err := json.Marshal(update)
  	if err != nil {
  		return nil, err
  	}
  
  	req, err := http.NewRequest("PATCH", u.String(), bytes.NewReader(octets))
  	if err != nil {
  		return nil, err
  	}
  
  	req.Header.Set("Content-Type", "application/json")
  	SetToken(s.Token, req)
  
  	hc := newClient(u.Scheme, s.InsecureSkipVerify)
  
  	resp, err := hc.Do(req)
  	if err != nil {
  		return nil, err
  	}
  
  	if err := CheckError(resp, true); err != nil {
  		return nil, err
  	}
  
  	var m platform.Macro
  	if err := json.NewDecoder(resp.Body).Decode(&m); err != nil {
  		return nil, err
  	}
  	defer resp.Body.Close()
  
  	return &m, nil
  }
docs: // UpdateMacro updates a single macro with a changeset