code: func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
  	fqdn, value := dns01.GetRecord(domain, keyAuth)
  
  	// search to TXT record's hash to delete
  	getRequest := dns.GetDomainRecordsRequest{
  		ZoneNameOrId:  common.String(domain),
  		Domain:        common.String(dns01.UnFqdn(fqdn)),
  		CompartmentId: common.String(d.config.CompartmentID),
  		Rtype:         common.String("TXT"),
  	}
  
  	ctx := context.Background()
  
  	domainRecords, err := d.client.GetDomainRecords(ctx, getRequest)
  	if err != nil {
  		return fmt.Errorf("oraclecloud: %v", err)
  	}
  
  	if *domainRecords.OpcTotalItems == 0 {
  		return fmt.Errorf("oraclecloud: no record to CleanUp")
  	}
  
  	var deleteHash *string
  	for _, record := range domainRecords.RecordCollection.Items {
  		if record.Rdata != nil && *record.Rdata == `"`+value+`"` {
  			deleteHash = record.RecordHash
  			break
  		}
  	}
  
  	if deleteHash == nil {
  		return fmt.Errorf("oraclecloud: no record to CleanUp")
  	}
  
  	recordOperation := dns.RecordOperation{
  		RecordHash: deleteHash,
  		Operation:  dns.RecordOperationOperationRemove,
  	}
  
  	patchRequest := dns.PatchDomainRecordsRequest{
  		ZoneNameOrId: common.String(domain),
  		Domain:       common.String(dns01.UnFqdn(fqdn)),
  		PatchDomainRecordsDetails: dns.PatchDomainRecordsDetails{
  			Items: []dns.RecordOperation{recordOperation},
  		},
  		CompartmentId: common.String(d.config.CompartmentID),
  	}
  
  	_, err = d.client.PatchDomainRecords(ctx, patchRequest)
  	if err != nil {
  		return fmt.Errorf("oraclecloud: %v", err)
  	}
  
  	return nil
  }
docs: // CleanUp removes the TXT record matching the specified parameters