in engine/src/main/kotlin/io/kotless/gen/factory/aws/apigateway/DeploymentFactory.kt [22:44]
override fun generate(entity: Application.API.Deployment, context: GenerationContext): GenerationFactory.GenerationResult<Output> {
val api = context.output.get(context.webapp.api, RestAPIFactory)
val statics = context.webapp.api.statics.map { context.output.get(it, StaticRouteFactory).integration }
val dynamics = context.webapp.api.dynamics.map { context.output.get(it, DynamicRouteFactory).integration }
val deployment = api_gateway_deployment(context.names.tf(entity.name)) {
depends_on = (statics + dynamics).map { link(it) }.toTypedArray()
rest_api_id = api.rest_api_id
stage_name = entity.version
variables(mapOf("deployed_at" to eval(timestamp())))
lifecycle {
create_before_destroy = true
}
}
val url = context.webapp.dns?.fqdn?.let { "https://$it" } ?: deployment::invoke_url.ref
val output = TFOutput(context.names.tf("application", "url"), url)
return GenerationFactory.GenerationResult(Output(deployment::stage_name.ref), deployment, output)
}