tfmodules

package
v1.7.1-gamma Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 7, 2026 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DetectModuleSourceType

func DetectModuleSourceType(source string) (string, string)

nolint:gocritic

func GetProviderFromResourceType

func GetProviderFromResourceType(resourceType string) (string, error)

GetProviderFromResourceType extracts the provider name from a Terraform resource type. For example: "aws_s3_bucket" → "aws", "azurerm_network_interface" → "azurerm"

func IsUnresolved added in v1.7.2

func IsUnresolved(err error) bool

IsUnresolved reports whether err wraps an UnresolvedError.

func LooksLikeLocalModuleSource

func LooksLikeLocalModuleSource(source string) bool

LooksLikeLocalModuleSource uses heuristics to determine if the resolved source string is likely local

func ParseTerraformModules

func ParseTerraformModules(ctx context.Context, fsys vfs.FS, files model.FileMetadatas, numWorkers int) (map[string]ParsedModule, error)

ParseTerraformModules parses HCL content and extracts module source/version. numWorkers: 0 means auto-detect (GOMAXPROCS).

Types

type ListModuleEntry added in v1.7.2

type ListModuleEntry struct {
	Name          string `json:"name"`
	Source        string `json:"source"`
	Version       string `json:"version,omitempty"`
	SourceType    string `json:"source_type"`
	RegistryScope string `json:"registry_scope,omitempty"`
	FileName      string `json:"file_name"`
	DefLine       int    `json:"def_line"`
}

ListModuleEntry is the JSON shape emitted by `datadog-iac-scanner list-modules`. Field names are stable integration contracts for hosted scan orchestration.

func ListModuleEntries added in v1.7.2

func ListModuleEntries(modules map[string]ParsedModule, includeLocal bool) []ListModuleEntry

ListModuleEntries converts parsed modules to list-modules JSON rows.

type ModuleAttributesInfo

type ModuleAttributesInfo struct {
	Resources []string          `json:"resources"`
	Inputs    map[string]string `json:"inputs"`
}

type ParsedModule

type ParsedModule struct {
	Name           string
	AbsSource      string
	Source         string
	Version        string
	IsLocal        bool
	SourceType     string // local, git, registry, etc.
	RegistryScope  string // public, private, or "" (non-registry)
	AttributesData map[string]ModuleAttributesInfo
	FileName       string
	DefLine        int
}

func ParseAllModuleVariables

func ParseAllModuleVariables(ctx context.Context, fsys vfs.FS, modules map[string]ParsedModule, rootDir string) ([]ParsedModule, error)

type UnresolvedError added in v1.7.2

type UnresolvedError struct {
	Reason string
}

UnresolvedError is returned by a Resolver when a module source cannot be mapped to a local directory.

func (*UnresolvedError) Error added in v1.7.2

func (e *UnresolvedError) Error() string

Directories

Path Synopsis
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL