hclkit

package
v0.1.2 Latest Latest
Warning

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

Go to latest
Published: Feb 18, 2026 License: MIT Imports: 16 Imported by: 2

Documentation

Overview

Package hclkit is used to interpret OpenTofu/HCL configuration units.

Index

Constants

View Source
const (
	MetadataPrefix     = "confighub"
	BlockCategoryField = "block_category"
	BlockTypeField     = "block_type"
	BlockNameField     = "block_name"
	BlockNameSingleton = "singleton"
	BlockCategoryPath  = api.ResolvedPath(MetadataPrefix + "." + BlockCategoryField)
	BlockTypePath      = api.ResolvedPath(MetadataPrefix + "." + BlockTypeField)
	BlockNamePath      = api.ResolvedPath(MetadataPrefix + "." + BlockNameField)
)

Variables

View Source
var HclResourceProvider = &HclResourceProviderType{}

HclResourceProvider implements the ResourceProvider interface for OpenTofu/HCL.

Functions

func YAMLToHCL

func YAMLToHCL(yamlData []byte) ([]byte, error)

YAMLToHCL converts a list of YAML documents to OpenTofu HCL blocks

Types

type HCLToYAML

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

HCLToYAML converts HCL content to YAML

func NewHCLToYAML

func NewHCLToYAML() *HCLToYAML

NewHCLToYAML creates a new converter instance

func (*HCLToYAML) ConvertToYAML

func (h *HCLToYAML) ConvertToYAML(content []byte, name string) ([]byte, error)

ConvertToYAML converts the parsed HCL to YAML format

func (*HCLToYAML) ParseHCL

func (h *HCLToYAML) ParseHCL(content []byte, name string) ([]map[string]interface{}, error)

ParseHCL parses HCL

type HclResourceProviderType

type HclResourceProviderType struct{}

func (*HclResourceProviderType) ContextPath

func (*HclResourceProviderType) ContextPath(contextField string) string

TODO: is there a way to add extended attributes in OpenTofu?

func (*HclResourceProviderType) DataType

func (*HclResourceProviderType) DataType() api.DataType

func (*HclResourceProviderType) DefaultResourceCategory

func (*HclResourceProviderType) DefaultResourceCategory() api.ResourceCategory

DefaultResourceCategory returns the default resource category to asssume, which is Resource in this case.

func (*HclResourceProviderType) GetPathRegistry

func (*HclResourceProviderType) NameSeparator

func (*HclResourceProviderType) NameSeparator() string

func (*HclResourceProviderType) NativeToYAML

func (*HclResourceProviderType) NativeToYAML(data []byte) ([]byte, error)

func (*HclResourceProviderType) NormalizeName

func (*HclResourceProviderType) NormalizeName(name string) string

func (*HclResourceProviderType) RemoveScopeFromResourceName

func (*HclResourceProviderType) RemoveScopeFromResourceName(resourceName api.ResourceName) api.ResourceName

func (*HclResourceProviderType) ResourceAndCategoryTypeMaps

func (*HclResourceProviderType) ResourceAndCategoryTypeMaps(docs gaby.Container) (resourceMap yamlkit.ResourceNameToCategoryTypesMap, categoryTypeMap yamlkit.ResourceCategoryTypeToNamesMap, err error)

ResourceAndCategoryTypeMaps returns maps of all resources in the provided list of parsed YAML documents, from from names to categories+types and categories+types to names.

func (*HclResourceProviderType) ResourceCategoryGetter

func (*HclResourceProviderType) ResourceCategoryGetter(doc *gaby.YamlDoc) (api.ResourceCategory, error)

ResourceCategoryGetter just returns ResourceCategoryResource for Kubernetes documents.

func (*HclResourceProviderType) ResourceNameGetter

func (*HclResourceProviderType) ResourceNameGetter(doc *gaby.YamlDoc) (api.ResourceName, error)

ResourceNameGetter extracts the property configHub.configName, and returns NoName if not present.

func (*HclResourceProviderType) ResourceTypeGetter

func (*HclResourceProviderType) ResourceTypeGetter(doc *gaby.YamlDoc) (api.ResourceType, error)

ResourceTypeGetter extracts the property configHub.configSchema, and returns NoSchema if not present.

func (*HclResourceProviderType) ResourceTypesAreSimilar

func (*HclResourceProviderType) ResourceTypesAreSimilar(resourceTypeA, resourceTypeB api.ResourceType) bool

func (*HclResourceProviderType) ScopelessResourceNamePath

func (*HclResourceProviderType) ScopelessResourceNamePath() api.ResolvedPath

func (*HclResourceProviderType) SetResourceName

func (*HclResourceProviderType) SetResourceName(doc *gaby.YamlDoc, name string) error

func (*HclResourceProviderType) TypeDescription

func (*HclResourceProviderType) TypeDescription() string

func (*HclResourceProviderType) YAMLToNative

func (*HclResourceProviderType) YAMLToNative(yamlData []byte) ([]byte, error)

Jump to

Keyboard shortcuts

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