package terraform // GraphNodeDynamicExpandable is an interface that nodes can implement // to signal that they can be expanded at eval-time (hence dynamic). // These nodes are given the eval context and are expected to return // a new subgraph. type GraphNodeDynamicExpandable interface { // DynamicExpand returns a new graph which will be treated as the dynamic // subgraph of the receiving node. // // The second return value is of type error for historical reasons; // it's valid (and most ideal) for DynamicExpand to return the result // of calling ErrWithWarnings on a tfdiags.Diagnostics value instead, // in which case the caller will unwrap it and gather the individual // diagnostics. DynamicExpand(EvalContext) (*Graph, error) }