evalchecks

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Aug 24, 2026 License: MPL-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Copyright (c) The OpenTofu Authors SPDX-License-Identifier: MPL-2.0 Copyright (c) 2023 HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0

Copyright (c) The OpenTofu Authors SPDX-License-Identifier: MPL-2.0 Copyright (c) 2023 HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0

Copyright (c) The OpenTofu Authors SPDX-License-Identifier: MPL-2.0 Copyright (c) 2023 HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func EvaluateCountExpression

func EvaluateCountExpression(expr hcl.Expression, ctx EvaluateFunc, excludableAddr addrs.Targetable) (int, tfdiags.Diagnostics)

EvaluateCountExpression is our standard mechanism for interpreting an expression given for a "count" argument on a resource or a module. This should be called during expansion in order to determine the final count value.

EvaluateCountExpression differs from EvaluateCountExpressionValue by returning an error if the count value is not known, and converting the cty.Value to an integer.

If excludableAddr is non-nil then the unknown value error will include an additional idea to exclude that address using the -exclude planning option to converge over multiple plan/apply rounds.

func EvaluateCountExpressionValue

func EvaluateCountExpressionValue(expr hcl.Expression, ctx EvaluateFunc) (cty.Value, tfdiags.Diagnostics)

EvaluateCountExpressionValue is like EvaluateCountExpression except that it returns a cty.Value which must be a cty.Number and can be unknown.

func EvaluateEnabledExpression

func EvaluateEnabledExpression(expr hcl.Expression, hclCtxFunc ContextFunc) (bool, tfdiags.Diagnostics)

EvaluateEnabledExpression evaluates an expression assigned to an "enabled" meta-argument and returns either its boolean result or errors describing why such a result cannot be evaluated.

func EvaluateForEachExpression

func EvaluateForEachExpression(expr hcl.Expression, ctx ContextFunc, excludableAddr addrs.Targetable) (map[string]cty.Value, tfdiags.Diagnostics)

EvaluateForEachExpression is our standard mechanism for interpreting an expression given for a "for_each" argument on a resource or a module. This should be called during expansion in order to determine the final keys and values.

EvaluateForEachExpression differs from EvaluateForEachExpressionValue by returning an error if the count value is not known, and converting the cty.Value to a map[string]cty.Value for compatibility with other calls.

If excludableAddr is non-nil then the unknown value error will include an additional idea to exclude that address using the -exclude planning option to converge over multiple plan/apply rounds.

func EvaluateForEachExpressionValue

func EvaluateForEachExpressionValue(expr hcl.Expression, hclCtxFunc ContextFunc, allowUnknown bool, allowTuple bool, excludableAddr addrs.Targetable) (cty.Value, tfdiags.Diagnostics)

EvaluateForEachExpressionValue is like EvaluateForEachExpression except that it returns a cty.Value map or set which can be unknown. The 'allowTuple' argument is used to support evaluating for_each from tuple values, and is currently supported when using for_each in import blocks.

If excludableAddr is non-nil then any unknown-value-related error will include an additional idea to exclude that address using the -exclude planning option to converge over multiple plan/apply rounds.

Types

type ContextFunc

type ContextFunc func(refs []*addrs.Reference) (*hcl.EvalContext, tfdiags.Diagnostics)

type DiagnosticCausedByConfidentialValues

type DiagnosticCausedByConfidentialValues bool

DiagnosticCausedByConfidentialValues is an implementation of tfdiags.DiagnosticExtraBecauseConfidentialValues which we can use in the "Extra" field of a diagnostic to indicate that the problem was caused by confidential values being involved in an expression evaluation.

When using this, set the Extra to DiagnosticCausedByConfidentialValues(true) and also populate the EvalContext and Expression fields of the diagnostic so that the diagnostic renderer can use all of that information together to assist the user in understanding what was confidential.

func (DiagnosticCausedByConfidentialValues) DiagnosticCausedByConfidentialValues

func (e DiagnosticCausedByConfidentialValues) DiagnosticCausedByConfidentialValues() bool

type DiagnosticCausedByUnknown

type DiagnosticCausedByUnknown bool

diagnosticCausedByUnknown is an implementation of tfdiags.DiagnosticExtraBecauseUnknown which we can use in the "Extra" field of a diagnostic to indicate that the problem was caused by unknown values being involved in an expression evaluation.

When using this, set the Extra to diagnosticCausedByUnknown(true) and also populate the EvalContext and Expression fields of the diagnostic so that the diagnostic renderer can use all of that information together to assist the user in understanding what was unknown.

func (DiagnosticCausedByUnknown) DiagnosticCausedByUnknown

func (e DiagnosticCausedByUnknown) DiagnosticCausedByUnknown() bool

type EvaluateFunc

type EvaluateFunc func(expr hcl.Expression) (cty.Value, tfdiags.Diagnostics)

Jump to

Keyboard shortcuts

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