override fun generate()

in engine/src/main/kotlin/io/kotless/gen/factory/azure/route53/RecordFactory.kt [22:52]


    override fun generate(entity: Application.DNS, context: GenerationContext): GenerationFactory.GenerationResult<Output> {
        val lambda = context.output.get(context.schema.lambdas.all.first(), FunctionFactory)
        val dnsZone = context.output.get(entity, ZoneFactory)
        val resourceGroup = context.output.get(context.webapp, InfoFactory).resourceGroup
        val cnameRecord = dns_cname_record(context.names.tf(entity.zone)) {
            name = entity.alias
            zone_name = dnsZone.zone_name
            resource_group_name = resourceGroup::name.ref
            ttl = 300
            record = lambda.function::default_hostname.ref
        }

        val txtRecordAsuid = dns_txt_record("main") {
            name = "asuid.${cnameRecord::name.ref}"
            zone_name = dnsZone.zone_name
            resource_group_name = resourceGroup::name.ref
            ttl = 300
            record {
                value = "\${${lambda.function.hcl_ref}.custom_domain_verification_id}"
            }
        } 

        val hostnameBinding = app_service_custom_hostname_binding(context.names.tf("hostname-binding")) {
            hostname = "\${trim(\"${cnameRecord::fqdn.ref}\", \".\")}"
            app_service_name = lambda.function::name.ref
            resource_group_name = resourceGroup::name.ref
            depends_on = arrayOf(txtRecordAsuid.hcl_ref)
        }

        return GenerationFactory.GenerationResult(Output(hostnameBinding), cnameRecord, hostnameBinding, txtRecordAsuid)
    }