Expand description
In-memory intermediate representation.
This module is the contract every other phase consumes. Per 10-data-model.md, the shapes are stable for v0.1 — additive changes only, no renames or retypes.
Structs§
- Account
Id - AWS account id — exactly 12 ASCII digits.
- Address
- Terraform-style resource address.
- Assume
Role - Optional
assume_role { role_arn = "..." }sub-block of a provider. - Component
- An apply-able component (Terraform “root module”).
- Component
Id - Stable-within-a-run identifier for a
Component. - Conditional
- An HCL conditional
cond ? then : else. - Dependency
Block dependency "label" { config_path = "..."; mock_outputs = ... }block.- Edge
- One dependency edge.
- Environment
- A named environment (
staging,production, etc.). - ForExpr
- An HCL
forcomprehension — captured verbatim when the evaluator cannot reduce it (typically because the source collection is unresolved). - Func
Call - An HCL function call — used both for unevaluated calls (when the evaluator cannot reduce the call, e.g. due to unresolved arguments) and as an intermediate representation during evaluation.
- Generate
Block generate "label" { ... }block, captured verbatim. The parser does not write the file; consumers can synthesize it if needed.- Include
Path - One entry on the include load chain (deepest last).
- Local
- A
locals { ... }entry. - Module
- A reusable module body, addressed by
ModuleId. - Module
Call - A
module "name" { source = "..."; ... }call site. - Module
Id - Stable-within-a-run identifier for a referenced
Module. - Module
Segments - Iterator over the module name segments of an
Address. - Output
- An
output "name" {}declaration. - Provider
Block - A
provider "aws" {}declaration. - Provider
Ref - A resource-side reference to a provider via
provider = aws.<alias>. - Region
- AWS region — matches
^[a-z0-9-]{1,32}$. - Resource
- A
resourceordatablock, post-evaluator. Phase 1 only defines the shape; population happens in Phase 3 (loader → IR) and onwards. - Source
File - A single source file inside a
Component. - Span
- Byte-offset + line/column span into a source file.
- State
Backend - Terraform state backend description.
- Symbolic
- A symbolic reference left unresolved by the evaluator.
- Terragrunt
Config - Per-component Terragrunt configuration.
- Variable
- A
variable "name" {}declaration inside a component. - Workspace
- The fully-parsed workspace, ready for export.
Enums§
- Binary
Op - HCL binary operators.
- Block
Kind - Top-level HCL block kinds the loader distinguishes.
- Component
Kind - Whether a
Componentis an apply-able root or a reusable module body. - Edge
Kind - How an edge was discovered.
- Expression
- A possibly-resolved HCL expression.
- FileExt
- Recognised source-file extensions.
- Module
Source - Where a
module "x" { source = "..." }call points. - Resource
Kind - Whether an IR node was declared as
resourceordata. - Symbol
Kind - What an
Expression::Unresolvedrefers to syntactically. Used by the dependency-graph phase to derive edges and by the exporter to emit the__kind__discriminator in canonical JSON. - UnaryOp
- HCL unary operators.
- Value
- A fully-resolved HCL value.
Constants§
- ADDRESS_
MAX_ BYTES - Maximum byte length for any
Address. Per [70-security.md § 4]. - REGION_
MAX_ BYTES - Maximum byte length for any
Region. Per [70-security.md § 4].
Type Aliases§
- Attribute
Map - Insertion-ordered association list of attribute name → expression. Used for every HCL body that has attributes (resource bodies, provider configs, module inputs, etc.).
- Map
- Insertion-ordered map of string key →
Value.