With Terraform as it exists today, this sort of use-case is typically met by decomposing the problem into two configurations and then applying them in sequence:
- Apply configuration 1
- Do whatever you need to do to decide whether to apply configuration 2
- Apply configuration 2
In this situation configuration 1 will typically publish some of its results in a location where configuration 2 can subsequently retrieve them using data sources.
Teams with this sort of requirement will then typically run Terraform in automation in order to help orchestrate the process and make sure it is followed correctly each time.
Since your variant of the problem involves an interactive approval step, that suggests you’d either use a local script that can prompt interactively in a shell, or to use a workflow automation system that has the possibility of interactively prompting for more data in the middle of a pipeline. There are a number of automation systems with that capability, but just as an example of what I mean see Jenkins’s “Input Step”.