code: func (d *DNSProvider) Present(domain, token, keyAuth string) error {
  	fqdn, value := dns01.GetRecord(domain, keyAuth)
  
  	authZone, err := dns01.FindZoneByFqdn(fqdn)
  	if err != nil {
  		return err
  	}
  
  	domainName := dns01.UnFqdn(authZone)
  
  	// get the subDomain
  	subDomain := strings.TrimSuffix(dns01.UnFqdn(fqdn), "."+domainName)
  
  	// use mutex to prevent race condition from GetInfo until SetDNSEntries
  	d.dnsEntriesMu.Lock()
  	defer d.dnsEntriesMu.Unlock()
  
  	// get all DNS entries
  	info, err := transipdomain.GetInfo(d.client, domainName)
  	if err != nil {
  		return fmt.Errorf("transip: error for %s in Present: %v", domain, err)
  	}
  
  	// include the new DNS entry
  	dnsEntries := append(info.DNSEntries, transipdomain.DNSEntry{
  		Name:    subDomain,
  		TTL:     d.config.TTL,
  		Type:    transipdomain.DNSEntryTypeTXT,
  		Content: value,
  	})
  
  	// set the updated DNS entries
  	err = transipdomain.SetDNSEntries(d.client, domainName, dnsEntries)
  	if err != nil {
  		return fmt.Errorf("transip: %v", err)
  	}
  	return nil
  }
docs: // Present creates a TXT record to fulfill the dns-01 challenge