Resolved Outputs entry from the template’s top-level Outputs block.
value is the post-resolution string; export_name is set when the
output declares Export.Name.
Walk every Fn::ImportValue site in the parsed template (Resources +
Outputs) and collect the static export names it references. Names that
can only be resolved at runtime (e.g. { "Fn::Sub": "${Env}-arn" })
resolve against parameters first; if they still aren’t strings,
they’re skipped — the runtime resolver will surface the gap then.
Compute a provisioning order for resource_defs such that every resource is
provisioned after the resources it references — via an explicit
DependsOn or an implicit Ref / Fn::GetAtt / Fn::Sub to another
resource’s logical id.
Parse the template’s Outputs block into resolved entries. Each
Value is fully resolved (Ref / GetAtt / Sub / Join / Fn::ImportValue)
to a string. Imports use imports for cross-stack lookups.
Parse a CloudFormation template, resolving Ref via resource_physical_ids
and Fn::GetAtt via resource_attributes (keyed by logical id, then
attribute name).