code: func (d *DNSProvider) Present(domain, token, keyAuth string) error {
  	fqdn, value := dns01.GetRecord(domain, keyAuth)
  
  	zone, err := d.getHostedZone(fqdn)
  	if err != nil {
  		return fmt.Errorf("ns1: %v", err)
  	}
  
  	record, _, err := d.client.Records.Get(zone.Zone, dns01.UnFqdn(fqdn), "TXT")
  
  	// Create a new record
  	if err == rest.ErrRecordMissing || record == nil {
  		log.Infof("Create a new record for [zone: %s, fqdn: %s, domain: %s]", zone.Zone, fqdn)
  
  		record = dns.NewRecord(zone.Zone, dns01.UnFqdn(fqdn), "TXT")
  		record.TTL = d.config.TTL
  		record.Answers = []*dns.Answer{{Rdata: []string{value}}}
  
  		_, err = d.client.Records.Create(record)
  		if err != nil {
  			return fmt.Errorf("ns1: failed to create record [zone: %q, fqdn: %q]: %v", zone.Zone, fqdn, err)
  		}
  
  		return nil
  	}
  
  	if err != nil {
  		return fmt.Errorf("ns1: failed to get the existing record: %v", err)
  	}
  
  	// Update the existing records
  	record.Answers = append(record.Answers, &dns.Answer{Rdata: []string{value}})
  
  	log.Infof("Update an existing record for [zone: %s, fqdn: %s, domain: %s]", zone.Zone, fqdn, domain)
  
  	_, err = d.client.Records.Update(record)
  	if err != nil {
  		return fmt.Errorf("ns1: failed to update record [zone: %q, fqdn: %q]: %v", zone.Zone, fqdn, err)
  	}
  
  	return nil
  }
docs: // Present creates a TXT record to fulfill the dns-01 challenge.