in app/collectors/zone.scala [63:96]
def fromApiData(
zone: HostedZone,
awsRecordSets: Iterable[ResourceRecordSet],
origin: AmazonOrigin
): Route53Zone = {
val recordSets: List[Route53Record] = awsRecordSets.map { record =>
val alias = Option(record.aliasTarget).map(at =>
Route53Alias(at.dnsName, at.hostedZoneId, at.evaluateTargetHealth)
)
val maybeTtl: Option[Long] = Option(record.ttl).map(_.longValue)
val records = record.resourceRecords.asScala.map(_.value).toList
Route53Record(
record.name,
if (alias.nonEmpty) "ALIAS" else record.typeAsString,
maybeTtl,
if (records.isEmpty) None else Some(records),
alias
)
}.toList
val nameServers = recordSets
.filter(rs => rs.name == zone.name && rs.recordType == "NS")
.flatMap(_.records.getOrElse(Nil))
Route53Zone(
arn = s"arn:aws:route53:::hostedzone/${zone.id}",
name = zone.name,
id = zone.id,
callerReference = zone.callerReference,
comment = Option(zone.config.comment),
isPrivateZone = zone.config.privateZone,
resourceRecordSetCount = zone.resourceRecordSetCount,
nameServers = nameServers,
records = recordSets
)
}