func cleanupDomain(r53 *route53.Route53, id string) { // delete all non-default SOA/NS records rrsets, err := cli53.ListAllRecordSets(r53, id) fatalIfErr(err) changes := []*route53.Change{} for _, rrset := range rrsets { if *rrset.Type != "NS" && *rrset.Type != "SOA" { change := &route53.Change{ Action: aws.String("DELETE"), ResourceRecordSet: rrset, } changes = append(changes, change) } } if len(changes) > 0 { req2 := route53.ChangeResourceRecordSetsInput{ HostedZoneId: &id, ChangeBatch: &route53.ChangeBatch{ Changes: changes, }, } _, err = r53.ChangeResourceRecordSets(&req2) if err != nil { fmt.Printf("Warning: cleanup failed - %s\n", err) } } req3 := route53.DeleteHostedZoneInput{Id: &id} _, err = r53.DeleteHostedZone(&req3) if err != nil { fmt.Printf("Warning: cleanup failed - %s\n", err) } }