code: func (d *DNSProvider) Present(domain, token, keyAuth string) error {
  	ctx := context.Background()
  	fqdn, value := dns01.GetRecord(domain, keyAuth)
  	zone, recordName, err := d.FindZoneAndRecordName(fqdn, domain)
  	if err != nil {
  		return err
  	}
  
  	recordID, err := d.FindExistingRecordID(zone, recordName)
  	if err != nil {
  		return err
  	}
  
  	if recordID == 0 {
  		record := egoscale.DNSRecord{
  			Name:       recordName,
  			TTL:        d.config.TTL,
  			Content:    value,
  			RecordType: "TXT",
  		}
  
  		_, err := d.client.CreateRecord(ctx, zone, record)
  		if err != nil {
  			return errors.New("Error while creating DNS record: " + err.Error())
  		}
  	} else {
  		record := egoscale.UpdateDNSRecord{
  			ID:         recordID,
  			Name:       recordName,
  			TTL:        d.config.TTL,
  			Content:    value,
  			RecordType: "TXT",
  		}
  
  		_, err := d.client.UpdateRecord(ctx, zone, record)
  		if err != nil {
  			return errors.New("Error while updating DNS record: " + err.Error())
  		}
  	}
  
  	return nil
  }
docs: // Present creates a TXT record to fulfill the dns-01 challenge.