| 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) |
| } |