Help us shape the future of Go! Take the 2026 Go Developer Survey

terraform

package
v1.20.3 Latest Latest
Warning

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

Go to latest
Published: Oct 28, 2026 License: Apache-2.0 Imports: 34 Imported by: 0

Documentation

Overview

* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. * * This product includes software developed at Datadog (https://www.datadoghq.com) Copyright 2024 Datadog, Inc.

* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. * * This product includes software developed at Datadog (https://www.datadoghq.com) Copyright 2024 Datadog, Inc.

* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. * * This product includes software developed at Datadog (https://www.datadoghq.com) Copyright 2024 Datadog, Inc.

* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. * * This product includes software developed at Datadog (https://www.datadoghq.com) Copyright 2024 Datadog, Inc.

Index

Constants

View Source
const (
	// RetriesDefaultValue is default number of times a parser will retry to execute
	RetriesDefaultValue = 50
)

Variables

This section is empty.

Functions

func BodyTraversals added in v1.20.3

func BodyTraversals(body hcl.Body) []hcl.Traversal

BodyTraversals returns the traversals a block body reads: those of its attributes and nested blocks, or, for a JSON body, of its attributes, which hold its nested blocks as objects.

func DataCycles added in v1.20.3

func DataCycles(reads, locals map[string][]hcl.Traversal) map[string]bool

DataCycles returns the data blocks, named by DataKey, that read their own result, directly or through other data blocks and locals. Terraform rejects such a cycle. Evaluating one anyway feeds the block its previous result on every pass, and a function such as jsonencode nests that result once more, so its size doubles with each pass. reads gives the traversals each block's configuration reads, locals those of each local. A constant type and name select one block. A constant type with no single name selects every block of that type, and a data reference that does not name a type selects every data block: evaluation reads that whole object, which includes the block being rendered. A local reference that does not name one local selects every local, for the same reason. Inside a dynamic block's content the iterator name shadows a local of that name.

func DataKey added in v1.20.3

func DataKey(typ, name string) string

DataKey names a data block in the graph DataCycles reads.

func LocalTraversalName added in v1.20.0

func LocalTraversalName(traversal hcl.Traversal) (string, bool)

LocalTraversalName returns the local a local.<name> or local["<name>"] traversal reads.

Types

type Converter

type Converter func(
	ctx context.Context,
	file *hcl.File,
	inputVariables converter.VariableMap,
	opts converter.Options,
) (model.Document, error)

Converter returns content json, error line, error

type Parser

type Parser struct {
	// contains filtered or unexported fields
}

Parser struct that contains the function to parse file and the number of retries if something goes wrong

func NewDefault

func NewDefault() *Parser

NewDefault initializes a parser with Parser default values

func NewDefaultWithParams

func NewDefaultWithParams(fsys vfs.FS, terraformVarsPath string, sciInfo model.SCIInfo) *Parser

nolint:gocritic

func (*Parser) GetCommentToken

func (p *Parser) GetCommentToken() string

GetCommentToken return the comment token of Terraform - #

func (*Parser) GetKind

func (p *Parser) GetKind() model.FileKind

GetKind returns Terraform kind parser

func (*Parser) Parse

func (p *Parser) Parse(ctx context.Context, fileContent []byte, path string,
	resolveReferences bool, maxResolverDepth int) (
	resolved []byte,
	documents []model.Document,
	ignoreLines []int,
	resolvedFiles map[string]model.ResolvedFile,
	err error)

Parse execute parser for the content in a file

func (*Parser) Resolve

func (p *Parser) Resolve(ctx context.Context,
	fileContent []byte,
	filename string, _ bool, _ int) (resolved []byte, vars converter.VariableMap, err error)

Resolve - replace or modifies in-memory content before parsing

func (*Parser) SetMergeAllow added in v1.15.0

func (p *Parser) SetMergeAllow(paths []string)

SetMergeAllow restricts OpenTofu twin-shadowing to inventory paths.

func (*Parser) StringifyContent

func (p *Parser) StringifyContent(content []byte) (string, error)

StringifyContent converts original content into string formatted version

func (*Parser) SupportedExtensions

func (p *Parser) SupportedExtensions() []string

SupportedExtensions returns Terraform/OpenTofu extensions.

func (*Parser) SupportedTypes

func (p *Parser) SupportedTypes() map[string]bool

SupportedTypes returns types supported by this parser, which are terraform

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.
* 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.
Package dynamicblock expands Terraform dynamic blocks into the nested blocks they generate.
Package dynamicblock expands Terraform dynamic blocks into the nested blocks they generate.
* 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.
Package instances resolves Terraform count and for_each expressions into bounded instance plans, without evaluating block bodies or charging budgets.
Package instances resolves Terraform count and for_each expressions into bounded instance plans, without evaluating block bodies or charging budgets.
Package localdata renders the data sources Terraform computes from their configuration alone, such as aws_iam_policy_document, into the attributes resources read from them.
Package localdata renders the data sources Terraform computes from their configuration alone, such as aws_iam_policy_document, into the attributes resources read from them.
* 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.
modulegraph
* 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.
moduleprepare
* 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.
resolver
* 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.
Package partial renders Terraform expressions evaluation cannot fully resolve into values rules can read.
Package partial renders Terraform expressions evaluation cannot fully resolve into values rules can read.
* 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.
Package tfeval evaluates local Terraform modules: bind inputs, resolve locals, recurse into nested modules, emit resource and data instances with concrete cty values where possible.
Package tfeval evaluates local Terraform modules: bind inputs, resolve locals, recurse into nested modules, emit resource and data instances with concrete cty values where possible.

Jump to

Keyboard shortcuts

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