def fromApiData()

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
    )
  }