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

hcl2helper

package
v0.6.13 Latest Latest
Warning

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

Go to latest
Published: Oct 22, 2026 License: MPL-2.0 Imports: 7 Imported by: 47

Documentation

Overview

Package hcl2helper provides helper functions for parsing or getting hcl2 types to and from a Packer plugin config.

Index

Constants

View Source
const UnknownVariableValue = "74D93920-ED26-11E3-AC10-0800200C9A66"

UnknownVariableValue is a sentinel value that can be used to denote that the value of a variable is unknown at this time. RawConfig uses this information to build up data about unknown keys.

Variables

This section is empty.

Functions

func HCL2ValueFromConfig

func HCL2ValueFromConfig(conf interface{}, configSpec map[string]hcldec.Spec) cty.Value

HCL2ValueFromConfig takes a struct with it's map of hcldec.Spec, and turns it into a cty.Value so it can be used as, for example, a Datasource value.

func HCL2ValueFromConfigValue

func HCL2ValueFromConfigValue(v interface{}) cty.Value

HCL2ValueFromConfigValue takes a value turns it into a cty.Value so it can be used within, for example, an HCL2 EvalContext.

Types

type FlatMockConfig

type FlatMockConfig struct {
	NotSquashed          *string                `mapstructure:"not_squashed" cty:"not_squashed" hcl:"not_squashed"`
	String               *string                `mapstructure:"string" cty:"string" hcl:"string"`
	Int                  *int                   `mapstructure:"int" cty:"int" hcl:"int"`
	Int64                *int64                 `mapstructure:"int64" cty:"int64" hcl:"int64"`
	Bool                 *bool                  `mapstructure:"bool" cty:"bool" hcl:"bool"`
	Trilean              *bool                  `mapstructure:"trilean" cty:"trilean" hcl:"trilean"`
	Duration             *string                `mapstructure:"duration" cty:"duration" hcl:"duration"`
	MapStringString      map[string]string      `mapstructure:"map_string_string" cty:"map_string_string" hcl:"map_string_string"`
	SliceString          []string               `mapstructure:"slice_string" cty:"slice_string" hcl:"slice_string"`
	SliceSliceString     [][]string             `mapstructure:"slice_slice_string" cty:"slice_slice_string" hcl:"slice_slice_string"`
	NamedMapStringString NamedMapStringString   `mapstructure:"named_map_string_string" cty:"named_map_string_string" hcl:"named_map_string_string"`
	NamedString          *NamedString           `mapstructure:"named_string" cty:"named_string" hcl:"named_string"`
	Tags                 []FlatMockTag          `mapstructure:"tag" cty:"tag" hcl:"tag"`
	Datasource           *string                `mapstructure:"data_source" cty:"data_source" hcl:"data_source"`
	Nested               *FlatNestedMockConfig  `mapstructure:"nested" cty:"nested" hcl:"nested"`
	NestedSlice          []FlatNestedMockConfig `mapstructure:"nested_slice" cty:"nested_slice" hcl:"nested_slice"`
}

FlatMockConfig is an auto-generated flat version of MockConfig. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.

func (*FlatMockConfig) HCL2Spec

func (*FlatMockConfig) HCL2Spec() map[string]hcldec.Spec

HCL2Spec returns the hcl spec of a MockConfig. This spec is used by HCL to read the fields of MockConfig. The decoded values from this spec will then be applied to a FlatMockConfig.

type FlatMockTag

type FlatMockTag struct {
	Key   *string `mapstructure:"key" cty:"key" hcl:"key"`
	Value *string `mapstructure:"value" cty:"value" hcl:"value"`
}

FlatMockTag is an auto-generated flat version of MockTag. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.

func (*FlatMockTag) HCL2Spec

func (*FlatMockTag) HCL2Spec() map[string]hcldec.Spec

HCL2Spec returns the hcl spec of a MockTag. This spec is used by HCL to read the fields of MockTag. The decoded values from this spec will then be applied to a FlatMockTag.

type FlatNestedMockConfig

type FlatNestedMockConfig struct {
	String               *string              `mapstructure:"string" cty:"string" hcl:"string"`
	Int                  *int                 `mapstructure:"int" cty:"int" hcl:"int"`
	Int64                *int64               `mapstructure:"int64" cty:"int64" hcl:"int64"`
	Bool                 *bool                `mapstructure:"bool" cty:"bool" hcl:"bool"`
	Trilean              *bool                `mapstructure:"trilean" cty:"trilean" hcl:"trilean"`
	Duration             *string              `mapstructure:"duration" cty:"duration" hcl:"duration"`
	MapStringString      map[string]string    `mapstructure:"map_string_string" cty:"map_string_string" hcl:"map_string_string"`
	SliceString          []string             `mapstructure:"slice_string" cty:"slice_string" hcl:"slice_string"`
	SliceSliceString     [][]string           `mapstructure:"slice_slice_string" cty:"slice_slice_string" hcl:"slice_slice_string"`
	NamedMapStringString NamedMapStringString `mapstructure:"named_map_string_string" cty:"named_map_string_string" hcl:"named_map_string_string"`
	NamedString          *NamedString         `mapstructure:"named_string" cty:"named_string" hcl:"named_string"`
	Tags                 []FlatMockTag        `mapstructure:"tag" cty:"tag" hcl:"tag"`
	Datasource           *string              `mapstructure:"data_source" cty:"data_source" hcl:"data_source"`
}

FlatNestedMockConfig is an auto-generated flat version of NestedMockConfig. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.

func (*FlatNestedMockConfig) HCL2Spec

func (*FlatNestedMockConfig) HCL2Spec() map[string]hcldec.Spec

HCL2Spec returns the hcl spec of a NestedMockConfig. This spec is used by HCL to read the fields of NestedMockConfig. The decoded values from this spec will then be applied to a FlatNestedMockConfig.

type MockConfig

type MockConfig struct {
	NotSquashed      string `mapstructure:"not_squashed"`
	NestedMockConfig `mapstructure:",squash"`
	Nested           NestedMockConfig   `mapstructure:"nested"`
	NestedSlice      []NestedMockConfig `mapstructure:"nested_slice"`
}

func (*MockConfig) FlatMapstructure

func (*MockConfig) FlatMapstructure() interface{ HCL2Spec() map[string]hcldec.Spec }

FlatMapstructure returns a new FlatMockConfig. FlatMockConfig is an auto-generated flat version of MockConfig. Where the contents a fields with a `mapstructure:,squash` tag are bubbled up.

type MockTag

type MockTag struct {
	Key   string `mapstructure:"key"`
	Value string `mapstructure:"value"`
}

func (*MockTag) FlatMapstructure

func (*MockTag) FlatMapstructure() interface{ HCL2Spec() map[string]hcldec.Spec }

FlatMapstructure returns a new FlatMockTag. FlatMockTag is an auto-generated flat version of MockTag. Where the contents a fields with a `mapstructure:,squash` tag are bubbled up.

type NamedMapStringString

type NamedMapStringString map[string]string

type NamedString

type NamedString string

type NestedMockConfig

type NestedMockConfig struct {
	String               string               `mapstructure:"string"`
	Int                  int                  `mapstructure:"int"`
	Int64                int64                `mapstructure:"int64"`
	Bool                 bool                 `mapstructure:"bool"`
	Trilean              config.Trilean       `mapstructure:"trilean"`
	Duration             time.Duration        `mapstructure:"duration"`
	MapStringString      map[string]string    `mapstructure:"map_string_string"`
	SliceString          []string             `mapstructure:"slice_string"`
	SliceSliceString     [][]string           `mapstructure:"slice_slice_string"`
	NamedMapStringString NamedMapStringString `mapstructure:"named_map_string_string"`
	NamedString          NamedString          `mapstructure:"named_string"`
	Tags                 []MockTag            `mapstructure:"tag"`
	Datasource           string               `mapstructure:"data_source"`
}

func (*NestedMockConfig) FlatMapstructure

func (*NestedMockConfig) FlatMapstructure() interface{ HCL2Spec() map[string]hcldec.Spec }

FlatMapstructure returns a new FlatNestedMockConfig. FlatNestedMockConfig is an auto-generated flat version of NestedMockConfig. Where the contents a fields with a `mapstructure:,squash` tag are bubbled up.

Jump to

Keyboard shortcuts

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