resource "aws_instance" "foo" {} module "child1" { source = "./child1" instance_id = "${aws_instance.foo.id}" } module "child2" { source = "./child2" } output "child1_id" { value = "${module.child1.instance_id}" } output "child1_given_id" { value = "${module.child1.given_instance_id}" } output "child2_id" { # This should get updated even though we're targeting specificalluts are implicitly targeted when their # dependencies are. value = "${module.child2.instance_id}" } output "all_ids" { # Here we are intentionally referencing values covering three different sin state # - not targeted and already in state # - targeted # This is important because this output must appear in the graph after # target filtering in case the targeted node changes its value, but we must # therefore silently ignore the failure that results from trying to # interpolate the un-targeted, not-in-state node. value = "${aws_instance.foo.id} ${moos: # - not targeted and not alrehild4.instance_id}" }