code: func (d *DNSProvider) setHosts(sld, tld string, hosts []Record) error {
  	req, err := d.newRequestPost("namecheap.domains.dns.setHosts",
  		addParam("SLD", sld),
  		addParam("TLD", tld),
  		func(values url.Values) {
  			for i, h := range hosts {
  				ind := fmt.Sprintf("%d", i+1)
  				values.Add("HostName"+ind, h.Name)
  				values.Add("RecordType"+ind, h.Type)
  				values.Add("Address"+ind, h.Address)
  				values.Add("MXPref"+ind, h.MXPref)
  				values.Add("TTL"+ind, h.TTL)
  			}
  		},
  	)
  	if err != nil {
  		return err
  	}
  
  	var shr setHostsResponse
  	err = d.do(req, &shr)
  	if err != nil {
  		return err
  	}
  
  	if len(shr.Errors) > 0 {
  		return fmt.Errorf("%s [%d]", shr.Errors[0].Description, shr.Errors[0].Number)
  	}
  	if shr.Result.IsSuccess != "true" {
  		return fmt.Errorf("setHosts failed")
  	}
  
  	return nil
  }
docs: // setHosts writes the full list of DNS host records .
  // https://www.namecheap.com/support/api/methods/domains-dns/set-hosts.aspx