Skip to main content

tfparser_core/ir/
mod.rs

1//! In-memory intermediate representation.
2//!
3//! This module is the contract every other phase consumes. Per
4//! [10-data-model.md], the shapes are **stable for v0.1** — additive
5//! changes only, no renames or retypes.
6//!
7//! [10-data-model.md]: ../../specs/10-data-model.md
8
9mod component;
10mod edge;
11mod environment;
12mod expression;
13mod files;
14mod ids;
15mod module;
16mod newtypes;
17pub(crate) mod path_serde;
18mod provider;
19mod resource;
20mod span;
21mod terragrunt;
22mod value;
23mod workspace;
24
25pub use component::{Component, ComponentBuilder, ComponentKind, Local, Output, Variable};
26pub use edge::{Edge, EdgeBuilder, EdgeKind};
27pub use environment::{Environment, EnvironmentBuilder};
28pub use expression::{
29    AttributeMap, BinaryOp, Conditional, Expression, ForExpr, FuncCall, SymbolKind, Symbolic,
30    UnaryOp,
31};
32pub use files::{FileExt, SourceFile};
33pub use ids::{ComponentId, ModuleId};
34pub use module::{Module, ModuleBuilder, ModuleCall, ModuleCallBuilder, ModuleSource};
35pub use newtypes::{
36    ADDRESS_MAX_BYTES, AccountId, Address, ModuleSegments, REGION_MAX_BYTES, Region,
37};
38pub use provider::{AssumeRole, ProviderBlock, ProviderBlockBuilder, ProviderRef};
39pub use resource::{BlockKind, Resource, ResourceBuilder, ResourceKind};
40pub use span::Span;
41pub use terragrunt::{
42    DependencyBlock, GenerateBlock, IncludePath, StateBackend, StateBackendBuilder,
43    TerragruntConfig, TerragruntConfigBuilder,
44};
45pub use value::{Map, Value};
46pub use workspace::{Workspace, WorkspaceBuilder};