package tfconfig // Module is the top-level type representing a parsed and processed Terraform // module. type Module struct { // Path is the local filesystem directory where the module was loaded from. Path string `json:"path"` Variables map[string]*Variable `json:"variables"` Outputs map[string]*Output `json:"outputs"` RequiredCore []string `json:"required_core,omitempty"` RequiredProviders map[string][]string `json:"required_providers"` ManagedResources map[string]*Resource `json:"managed_resources"` DataResources map[string]*Resource `json:"data_resources"` ModuleCalls map[string]*ModuleCall `json:"module_calls"` // Diagnostics records any errors and warnings that were detected during // loading, primarily for inclusion in serialized forms of the module // since this slice is also returned as a second argument from LoadModule. Diagnostics Diagnostics `json:"diagnostics,omitempty"` } func newModule(path string) *Module { return &Module{ Path: path, Variables: make(map[string]*Variable), Outputs: make(map[string]*Output), RequiredProviders: make(map[string][]string), ManagedResources: make(map[string]*Resource), DataResources: make(map[string]*Resource), ModuleCalls: make(map[string]*ModuleCall), } }