package main
import (
"fmt"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/aws/awsutil"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/route53"
)
func main() {
svc := route53.New(session.New())
input := &route53.ListResourceRecordSetsInput{
HostedZoneId: aws.String("CHANGEME"),
}
pageNum := 0
err := svc.ListResourceRecordSetsPages(input,
func(page *route53.ListResourceRecordSetsOutput, lastPage bool) bool {
pageNum++
for _, r := range page.ResourceRecordSets {
fmt.Println(awsutil.StringValue(r.Name))
fmt.Println(awsutil.StringValue(r.Type))
alias := r.AliasTarget
if alias != nil {
fmt.Println(awsutil.StringValue(alias.DNSName))
}
resourserecord := r.ResourceRecords
if len(resourserecord) != 0 {
fmt.Println(resourserecord)
}
fmt.Println("-----")
}
return pageNum <= 10
})
if err != nil {
if aerr, ok := err.(awserr.Error); ok {
switch aerr.Code() {
case route53.ErrCodeNoSuchHostedZone:
fmt.Println(route53.ErrCodeNoSuchHostedZone, aerr.Error())
case route53.ErrCodeInvalidInput:
fmt.Println(route53.ErrCodeInvalidInput, aerr.Error())
default:
fmt.Println(aerr.Error())
}
} else {
fmt.Println(err.Error())
}
return
}
}