modconfig

package
v0.16.0-rc.7 Latest Latest
Warning

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

Go to latest
Published: Aug 5, 2022 License: AGPL-3.0 Imports: 33 Imported by: 0

Documentation

Index

Constants

View Source
const (
	BlockTypeMod            = "mod"
	BlockTypeQuery          = "query"
	BlockTypeControl        = "control"
	BlockTypeBenchmark      = "benchmark"
	BlockTypeDashboard      = "dashboard"
	BlockTypeContainer      = "container"
	BlockTypeChart          = "chart"
	BlockTypeCard           = "card"
	BlockTypeFlow           = "flow"
	BlockTypeHierarchy      = "hierarchy"
	BlockTypeImage          = "image"
	BlockTypeInput          = "input"
	BlockTypeTable          = "table"
	BlockTypeText           = "text"
	BlockTypeLocals         = "locals"
	BlockTypeVariable       = "variable"
	BlockTypeParam          = "param"
	BlockTypeRequire        = "require"
	BlockTypeLegacyRequires = "requires"
)
View Source
const (
	ConnectionTypeAggregator = "aggregator"
)

Variables

QueryProviderBlocks is a list of block types which implement QueryProvider

ReferenceBlockTypes is a list of block types we store references for

View Source
var ResourceTypeMap = map[string]factoryFunc{
	constants.SqlExtension: func(modPath, filePath string, mod *Mod) (MappableResource, []byte, error) {
		return QueryFromFile(modPath, filePath, mod)
	},
}

Functions

func BuildModResourceName

func BuildModResourceName(blockType string, name string) string

func GetCtyTypes

func GetCtyTypes(item interface{}) map[string]cty.Type

GetCtyTypes builds a map of cty types for all tagged properties. It is used to convert the struct to a cty value

func GetMonotonicVersionString

func GetMonotonicVersionString(v *semver.Version) string

func ModVersionFullName

func ModVersionFullName(name string, version *semver.Version) string

func ParseModFullName

func ParseModFullName(fullName string) (modName string, modVersion *semver.Version, err error)

func PseudoResourceNameFromPath

func PseudoResourceNameFromPath(modPath, filePath string) (string, error)

PseudoResourceNameFromPath converts a filepath into a resource name

It operates as follows:

  1. get filename
  2. remove extension
  3. sluggify, with '_' as the divider

func QueryProviderIsParameterised

func QueryProviderIsParameterised(queryProvider QueryProvider) bool

QueryProviderIsParameterised returns whether the query provider has a parameterised query the query is parameterised if either there are any param defintions, or any positional arguments passed, or it has runtime dependencies (which must be args)

func RegisteredFileExtensions

func RegisteredFileExtensions() []string

func ResolveArgsAsString

func ResolveArgsAsString(source QueryProvider, runtimeArgs *QueryArgs) (string, []string, error)

ResolveArgsAsString resolves the argument values, falling back on defaults from param definitions in the source (if present) it returns the arg values as a csv string which can be used in a prepared statement invocation (the arg values and param defaults will already have been converted to postgres format)

func UnqualifiedResourceName

func UnqualifiedResourceName(fullName string) string

UnqualifiedResourceName removes the mod prefix from the given name

Types

type Benchmark

type Benchmark struct {
	ResourceWithMetadataBase

	ShortName       string `json:"-"`
	FullName        string `cty:"name" json:"-"`
	UnqualifiedName string `json:"-"`

	// child names as NamedItem structs - used to allow setting children via the 'children' property
	ChildNames NamedItemList `cty:"child_names" json:"-"`
	// used for introspection tables
	ChildNameStrings []string `cty:"child_name_strings" column:"children,jsonb" json:"-"`
	// the actual children
	Children      []ModTreeItem     `json:"-"`
	Description   *string           `cty:"description" hcl:"description" column:"description,text" json:"-"`
	Documentation *string           `cty:"documentation" hcl:"documentation" column:"documentation,text" json:"-"`
	Tags          map[string]string `cty:"tags" hcl:"tags,optional" column:"tags,jsonb" json:"-"`
	Title         *string           `cty:"title" hcl:"title" column:"title,text" json:"-"`

	// dashboard specific properties
	Base    *Benchmark `hcl:"base" json:"-"`
	Width   *int       `cty:"width" hcl:"width" column:"width,text" json:"-"`
	Type    *string    `cty:"type" hcl:"type" column:"type,text" json:"-"`
	Display *string    `cty:"display" hcl:"display" json:"-"`

	References []*ResourceReference `json:"-"`
	Mod        *Mod                 `cty:"mod" json:"-"`
	DeclRange  hcl.Range            `json:"-"`
	Paths      []NodePath           `column:"path,jsonb" json:"-"`

	Parents []ModTreeItem `json:"-"`
}

Benchmark is a struct representing the Benchmark resource

func NewBenchmark

func NewBenchmark(block *hcl.Block, mod *Mod, shortName string) *Benchmark

func (*Benchmark) AddParent

func (b *Benchmark) AddParent(parent ModTreeItem) error

AddParent implements ModTreeItem

func (*Benchmark) AddReference

func (b *Benchmark) AddReference(ref *ResourceReference)

AddReference implements HclResource

func (*Benchmark) CtyValue

func (b *Benchmark) CtyValue() (cty.Value, error)

CtyValue implements HclResource

func (*Benchmark) Diff

func (b *Benchmark) Diff(other *Benchmark) *DashboardTreeItemDiffs

func (*Benchmark) Equals

func (b *Benchmark) Equals(other *Benchmark) bool

func (*Benchmark) GetChildControls

func (b *Benchmark) GetChildControls() []*Control

GetChildControls return a flat list of controls underneath the benchmark in the tree

func (*Benchmark) GetChildren

func (b *Benchmark) GetChildren() []ModTreeItem

GetChildren implements ModTreeItem

func (*Benchmark) GetDeclRange

func (b *Benchmark) GetDeclRange() *hcl.Range

GetDeclRange implements HclResource

func (*Benchmark) GetDescription

func (b *Benchmark) GetDescription() string

GetDescription implements ModTreeItem, DashboardLeafNode

func (*Benchmark) GetDisplay

func (b *Benchmark) GetDisplay() string

GetDisplay implements DashboardLeafNode

func (*Benchmark) GetDocumentation

func (b *Benchmark) GetDocumentation() string

GetDocumentation implements DashboardLeafNode

func (*Benchmark) GetMod

func (b *Benchmark) GetMod() *Mod

GetMod implements HclResource

func (*Benchmark) GetParents

func (b *Benchmark) GetParents() []ModTreeItem

GetParents implements ModTreeItem

func (*Benchmark) GetPaths

func (b *Benchmark) GetPaths() []NodePath

GetPaths implements ModTreeItem

func (*Benchmark) GetReferences

func (b *Benchmark) GetReferences() []*ResourceReference

GetReferences implements HclResource

func (*Benchmark) GetTags

func (b *Benchmark) GetTags() map[string]string

GetTags implements ModTreeItem, DashboardLeafNode

func (*Benchmark) GetTitle

func (b *Benchmark) GetTitle() string

GetTitle implements ModTreeItem

func (*Benchmark) GetType

func (b *Benchmark) GetType() string

GetType implements DashboardLeafNode

func (*Benchmark) GetUnqualifiedName

func (b *Benchmark) GetUnqualifiedName() string

GetUnqualifiedName implements DashboardLeafNode, ModTreeItem

func (*Benchmark) GetWidth

func (b *Benchmark) GetWidth() int

GetWidth implements DashboardLeafNode

func (*Benchmark) Name

func (b *Benchmark) Name() string

Name implements ModTreeItem, HclResource, ResourceWithMetadata return name in format: '<modname>.control.<shortName>'

func (*Benchmark) OnDecoded

func (b *Benchmark) OnDecoded(block *hcl.Block, resourceMapProvider ModResourcesProvider) hcl.Diagnostics

OnDecoded implements HclResource

func (*Benchmark) SetPaths

func (b *Benchmark) SetPaths()

SetPaths implements ModTreeItem

func (*Benchmark) String

func (b *Benchmark) String() string

func (*Benchmark) WalkResources added in v0.16.0

func (b *Benchmark) WalkResources(resourceFunc func(resource ModTreeItem) (bool, error)) error

type Connection

type Connection struct {
	// connection name
	Name string `json:"name,omitempty"`
	// The name of plugin as mentioned in config
	PluginShortName string `json:"plugin_short_name,omitempty"`
	// The fully qualified name of the plugin. derived from the short name
	Plugin string `json:"plugin,omitempty"`
	// Type - supported values: "aggregator"
	Type string `json:"type,omitempty"`
	// this is a list of names or wildcards which are resolved to connections
	// (only valid for "aggregator" type)
	ConnectionNames []string `json:"connections,omitempty"`
	// a list of the resolved child connections
	// (only valid for "aggregator" type)
	Connections map[string]*Connection `json:"-"`
	// unparsed HCL of plugin specific connection config
	Config string `json:"config,omitempty"`

	// options
	Options   *options.Connection `json:"options,omitempty"`
	DeclRange Range               `json:"decl_range,omitempty"`

	// legacy properties included for backwards compatibility with v0.13
	LegacyName            string              `json:"Name,omitempty"`
	LegacyPluginShortName string              `json:"PluginShortName,omitempty"`
	LegacyPlugin          string              `json:"Plugin,omitempty"`
	LegacyType            string              `json:"Type,omitempty"`
	LegacyConnectionNames []string            `json:"Connections,omitempty"`
	LegacyConfig          string              `json:"Config,omitempty"`
	LegacyOptions         *options.Connection `json:"Options,omitempty"`
	LegacyDeclRange       hcl.Range           `json:"DeclRange,omitempty"`
}

Connection is a struct representing the partially parsed connection

(Partial as the connection config, which is plugin specific, is stored as raw HCL. This will be parsed by the plugin) json tags needed as this is stored in the connection state file

func NewConnection

func NewConnection(block *hcl.Block) *Connection

func (*Connection) Equals

func (c *Connection) Equals(other *Connection) bool

func (*Connection) FirstChild

func (c *Connection) FirstChild() *Connection

FirstChild returns our first child (if we are an aggregator) as children are stored in a map we first sort the map keys then return the first

func (*Connection) GetResolveConnectionNames added in v0.16.0

func (c *Connection) GetResolveConnectionNames() []string

GetResolveConnectionNames return the names of all child connections (will only be non-empty for aggregator connections)

func (*Connection) MaintainLegacy

func (c *Connection) MaintainLegacy()

MaintainLegacy keeps the values of the legacy properties intact while refreshing connections

func (*Connection) MigrateLegacy

func (c *Connection) MigrateLegacy()

MigrateLegacy migrates the legacy properties into new properties

func (*Connection) PopulateChildren

func (c *Connection) PopulateChildren(connectionMap map[string]*Connection)

func (*Connection) SetOptions

func (c *Connection) SetOptions(opts options.Options, block *hcl.Block) hcl.Diagnostics

SetOptions sets the options on the connection verify the options object is a valid options type (only options.Connection currently supported)

func (*Connection) String

func (c *Connection) String() string

func (*Connection) Validate

func (c *Connection) Validate(connectionMap map[string]*Connection) []string

Validate verifies the Type property is valid, if this is an aggregator connection, there must be at least one child, and no duplicates if this is NOT an aggregator, there must be no children

func (*Connection) ValidateAggregatorConnection

func (c *Connection) ValidateAggregatorConnection(connectionMap map[string]*Connection) []string

type Control

type Control struct {
	ResourceWithMetadataBase
	QueryProviderBase

	// required to allow partial decoding
	Remain hcl.Body `hcl:",remain" json:"-"`

	ShortName        string            `json:"-"`
	FullName         string            `cty:"name" json:"-"`
	Description      *string           `cty:"description" hcl:"description" column:"description,text" json:"-"`
	Documentation    *string           `cty:"documentation" hcl:"documentation"  column:"documentation,text" json:"-"`
	SearchPath       *string           `cty:"search_path" hcl:"search_path"  column:"search_path,text" json:"search_path,omitempty"`
	SearchPathPrefix *string           `cty:"search_path_prefix" hcl:"search_path_prefix"  column:"search_path_prefix,text" json:"search_path_prefix,omitempty"`
	Severity         *string           `cty:"severity" hcl:"severity"  column:"severity,text" json:"severity,omitempty"`
	Tags             map[string]string `cty:"tags" hcl:"tags,optional"  column:"tags,jsonb" json:"-"`
	Title            *string           `cty:"title" hcl:"title"  column:"title,text" json:"-"`

	// QueryProvider
	SQL                   *string     `cty:"sql" hcl:"sql" column:"sql,text" json:"sql,omitempty"`
	Query                 *Query      `hcl:"query" json:"query,omitempty"`
	PreparedStatementName string      `column:"prepared_statement_name,text" json:"-"`
	Args                  *QueryArgs  `cty:"args" column:"args,jsonb" json:"-"`
	Params                []*ParamDef `cty:"params" column:"params,jsonb" json:"-"`

	References      []*ResourceReference ` json:"-"`
	Mod             *Mod                 `cty:"mod" json:"-"`
	DeclRange       hcl.Range            `json:"-"`
	UnqualifiedName string               `json:"-"`
	Paths           []NodePath           `json:"-"`

	// dashboard specific properties
	Base    *Control `hcl:"base" json:"-"`
	Width   *int     `cty:"width" hcl:"width" column:"width,text" json:"-"`
	Type    *string  `cty:"type" hcl:"type" column:"type,text" json:"-"`
	Display *string  `cty:"display" hcl:"display" json:"-"`
	// contains filtered or unexported fields
}

Control is a struct representing the Control resource

func NewControl

func NewControl(block *hcl.Block, mod *Mod, shortName string) *Control

func (*Control) AddParent

func (c *Control) AddParent(parent ModTreeItem) error

AddParent implements ModTreeItem

func (*Control) AddReference

func (c *Control) AddReference(ref *ResourceReference)

AddReference implements HclResource

func (*Control) CtyValue

func (c *Control) CtyValue() (cty.Value, error)

CtyValue implements HclResource

func (*Control) Diff

func (c *Control) Diff(other *Control) *DashboardTreeItemDiffs

func (*Control) Equals

func (c *Control) Equals(other *Control) bool

func (*Control) GetArgs

func (c *Control) GetArgs() *QueryArgs

GetArgs implements QueryProvider

func (*Control) GetChildren

func (c *Control) GetChildren() []ModTreeItem

GetChildren implements ModTreeItem

func (*Control) GetDeclRange

func (c *Control) GetDeclRange() *hcl.Range

GetDeclRange implements HclResource

func (*Control) GetDescription

func (c *Control) GetDescription() string

GetDescription implements ModTreeItem

func (*Control) GetDisplay

func (c *Control) GetDisplay() string

GetDisplay implements DashboardLeafNode

func (*Control) GetDocumentation

func (c *Control) GetDocumentation() string

GetDocumentation implements DashboardLeafNode

func (*Control) GetMod

func (c *Control) GetMod() *Mod

GetMod implements HclResource

func (*Control) GetParams

func (c *Control) GetParams() []*ParamDef

GetParams implements QueryProvider

func (*Control) GetParentNames

func (c *Control) GetParentNames() []string

func (*Control) GetParents

func (c *Control) GetParents() []ModTreeItem

GetParents implements ModTreeItem

func (*Control) GetPaths

func (c *Control) GetPaths() []NodePath

GetPaths implements ModTreeItem

func (*Control) GetPreparedStatementExecuteSQL

func (c *Control) GetPreparedStatementExecuteSQL(runtimeArgs *QueryArgs) (*ResolvedQuery, error)

GetPreparedStatementExecuteSQL implements QueryProvider

func (*Control) GetPreparedStatementName

func (c *Control) GetPreparedStatementName() string

GetPreparedStatementName implements QueryProvider

func (*Control) GetQuery

func (c *Control) GetQuery() *Query

GetQuery implements QueryProvider

func (*Control) GetReferences

func (c *Control) GetReferences() []*ResourceReference

GetReferences implements HclResource

func (*Control) GetSQL

func (c *Control) GetSQL() *string

GetSQL implements QueryProvider

func (*Control) GetTags

func (c *Control) GetTags() map[string]string

GetTags implements ModTreeItem

func (*Control) GetTitle

func (c *Control) GetTitle() string

GetTitle implements ModTreeItem

func (*Control) GetType

func (c *Control) GetType() string

GetType implements DashboardLeafNode

func (*Control) GetUnqualifiedName

func (c *Control) GetUnqualifiedName() string

GetUnqualifiedName implements DashboardLeafNode, ModTreeItem

func (*Control) GetWidth

func (c *Control) GetWidth() int

GetWidth implements DashboardLeafNode

func (*Control) Name

func (c *Control) Name() string

Name implements ModTreeItem, HclResource return name in format: 'control.<shortName>'

func (*Control) OnDecoded

func (c *Control) OnDecoded(block *hcl.Block, resourceMapProvider ModResourcesProvider) hcl.Diagnostics

OnDecoded implements HclResource

func (*Control) QualifiedNameWithVersion

func (c *Control) QualifiedNameWithVersion() string

QualifiedNameWithVersion returns the name in format: '<modName>@version.control.<shortName>'

func (*Control) SetArgs

func (c *Control) SetArgs(args *QueryArgs)

SetArgs implements QueryProvider

func (*Control) SetParams

func (c *Control) SetParams(params []*ParamDef)

SetParams implements QueryProvider

func (*Control) SetPaths

func (c *Control) SetPaths()

SetPaths implements ModTreeItem

func (*Control) String

func (c *Control) String() string

type Dashboard

type Dashboard struct {
	ResourceWithMetadataBase

	// required to allow partial decoding
	Remain hcl.Body `hcl:",remain"`

	ShortName       string
	FullName        string            `cty:"name"`
	UnqualifiedName string            `cty:"unqualified_name"`
	Title           *string           `cty:"title" hcl:"title" column:"title,text"`
	Width           *int              `cty:"width" hcl:"width"  column:"width,text"`
	Display         *string           `cty:"display" hcl:"display" column:"display,text"`
	Inputs          []*DashboardInput `cty:"inputs" column:"inputs,jsonb"`
	Description     *string           `cty:"description" hcl:"description" column:"description,text"`
	Documentation   *string           `cty:"documentation" hcl:"documentation" column:"documentation,text"`
	Tags            map[string]string `cty:"tags" hcl:"tags,optional"  column:"tags,jsonb"`
	UrlPath         string            `cty:"url_path"  column:"url_path,jsonb"`

	Base *Dashboard `hcl:"base"`

	References []*ResourceReference
	Mod        *Mod `cty:"mod"`
	DeclRange  hcl.Range

	Paths []NodePath `column:"path,jsonb"`
	// store children in a way which can be serialised via cty
	ChildNames []string `cty:"children" column:"children,jsonb"`

	HclType string
	// contains filtered or unexported fields
}

Dashboard is a struct representing the Dashboard resource

func NewDashboard

func NewDashboard(block *hcl.Block, mod *Mod, shortName string) *Dashboard

func (*Dashboard) AddChild

func (d *Dashboard) AddChild(child ModTreeItem)

func (*Dashboard) AddParent

func (d *Dashboard) AddParent(parent ModTreeItem) error

AddParent implements ModTreeItem

func (*Dashboard) AddReference

func (d *Dashboard) AddReference(ref *ResourceReference)

AddReference implements HclResource

func (*Dashboard) BuildRuntimeDependencyTree

func (d *Dashboard) BuildRuntimeDependencyTree(workspace ModResourcesProvider) error

func (*Dashboard) CtyValue

func (d *Dashboard) CtyValue() (cty.Value, error)

CtyValue implements HclResource

func (*Dashboard) Diff

func (d *Dashboard) Diff(other *Dashboard) *DashboardTreeItemDiffs

func (*Dashboard) Equals

func (d *Dashboard) Equals(other *Dashboard) bool

func (*Dashboard) GetChildren

func (d *Dashboard) GetChildren() []ModTreeItem

GetChildren implements ModTreeItem

func (*Dashboard) GetDeclRange

func (d *Dashboard) GetDeclRange() *hcl.Range

GetDeclRange implements HclResource

func (*Dashboard) GetDescription

func (d *Dashboard) GetDescription() string

GetDescription implements ModTreeItem

func (*Dashboard) GetInput

func (d *Dashboard) GetInput(name string) (*DashboardInput, bool)

func (*Dashboard) GetMod

func (d *Dashboard) GetMod() *Mod

GetMod implements HclResource

func (*Dashboard) GetParents

func (d *Dashboard) GetParents() []ModTreeItem

GetParents implements ModTreeItem

func (*Dashboard) GetPaths

func (d *Dashboard) GetPaths() []NodePath

GetPaths implements ModTreeItem

func (*Dashboard) GetReferences

func (d *Dashboard) GetReferences() []*ResourceReference

GetReferences implements HclResource

func (*Dashboard) GetTags

func (d *Dashboard) GetTags() map[string]string

GetTags implements ModTreeItem

func (*Dashboard) GetTitle

func (d *Dashboard) GetTitle() string

GetTitle implements ModTreeItem

func (*Dashboard) GetUnqualifiedName

func (d *Dashboard) GetUnqualifiedName() string

GetUnqualifiedName implements DashboardLeafNode, ModTreeItem

func (*Dashboard) Name

func (d *Dashboard) Name() string

Name implements HclResource, ModTreeItem

func (*Dashboard) OnDecoded

func (d *Dashboard) OnDecoded(block *hcl.Block, resourceMapProvider ModResourcesProvider) hcl.Diagnostics

OnDecoded implements HclResource

func (*Dashboard) SetChildren

func (d *Dashboard) SetChildren(children []ModTreeItem)

func (*Dashboard) SetInputs

func (d *Dashboard) SetInputs(inputs []*DashboardInput) hcl.Diagnostics

func (*Dashboard) SetPaths

func (d *Dashboard) SetPaths()

SetPaths implements ModTreeItem

func (*Dashboard) WalkResources

func (d *Dashboard) WalkResources(resourceFunc func(resource HclResource) (bool, error)) error

type DashboardCard

type DashboardCard struct {
	ResourceWithMetadataBase
	QueryProviderBase

	FullName        string `cty:"name" json:"-"`
	ShortName       string `json:"-"`
	UnqualifiedName string `json:"-"`

	Label *string `cty:"label" hcl:"label" column:"label,text" json:"label,omitempty"`
	Value *string `cty:"value" hcl:"value" column:"value,text" json:"value,omitempty"`
	Icon  *string `cty:"icon" hcl:"icon" column:"icon,text" json:"icon,omitempty"`
	HREF  *string `cty:"href" hcl:"href" json:"href,omitempty"`

	// these properties are JSON serialised by the parent LeafRun
	Title   *string `cty:"title" hcl:"title" column:"title,text" json:"-"`
	Width   *int    `cty:"width" hcl:"width" column:"width,text" json:"-"`
	Type    *string `cty:"type" hcl:"type" column:"type,text" json:"-"`
	Display *string `cty:"display" hcl:"display" json:"-"`

	// QueryProvider
	SQL                   *string     `cty:"sql" hcl:"sql" column:"sql,text" json:"-"`
	Query                 *Query      `hcl:"query" json:"-"`
	PreparedStatementName string      `column:"prepared_statement_name,text" json:"-"`
	Args                  *QueryArgs  `cty:"args" column:"args,jsonb" json:"-"`
	Params                []*ParamDef `cty:"params" column:"params,jsonb" json:"-"`

	Base       *DashboardCard       `hcl:"base" json:"-"`
	DeclRange  hcl.Range            `json:"-"`
	References []*ResourceReference `json:"-"`
	Mod        *Mod                 `cty:"mod" json:"-"`
	Paths      []NodePath           `column:"path,jsonb" json:"-"`
	// contains filtered or unexported fields
}

DashboardCard is a struct representing a leaf dashboard node

func NewDashboardCard

func NewDashboardCard(block *hcl.Block, mod *Mod, shortName string) *DashboardCard

func (*DashboardCard) AddParent

func (c *DashboardCard) AddParent(parent ModTreeItem) error

AddParent implements ModTreeItem

func (*DashboardCard) AddReference

func (c *DashboardCard) AddReference(ref *ResourceReference)

AddReference implements HclResource

func (*DashboardCard) CtyValue

func (c *DashboardCard) CtyValue() (cty.Value, error)

CtyValue implements HclResource

func (*DashboardCard) Diff

func (*DashboardCard) Equals

func (c *DashboardCard) Equals(other *DashboardCard) bool

func (*DashboardCard) GetArgs

func (c *DashboardCard) GetArgs() *QueryArgs

GetArgs implements QueryProvider

func (*DashboardCard) GetChildren

func (c *DashboardCard) GetChildren() []ModTreeItem

GetChildren implements ModTreeItem

func (*DashboardCard) GetDeclRange

func (c *DashboardCard) GetDeclRange() *hcl.Range

GetDeclRange implements HclResource

func (*DashboardCard) GetDescription

func (c *DashboardCard) GetDescription() string

GetDescription implements ModTreeItem

func (*DashboardCard) GetDisplay

func (c *DashboardCard) GetDisplay() string

GetDisplay implements DashboardLeafNode

func (*DashboardCard) GetDocumentation

func (c *DashboardCard) GetDocumentation() string

GetDocumentation implements DashboardLeafNode

func (*DashboardCard) GetMod

func (c *DashboardCard) GetMod() *Mod

GetMod implements HclResource

func (*DashboardCard) GetParams

func (c *DashboardCard) GetParams() []*ParamDef

GetParams implements QueryProvider

func (*DashboardCard) GetParents

func (c *DashboardCard) GetParents() []ModTreeItem

GetParents implements ModTreeItem

func (*DashboardCard) GetPaths

func (c *DashboardCard) GetPaths() []NodePath

GetPaths implements ModTreeItem

func (*DashboardCard) GetPreparedStatementExecuteSQL

func (c *DashboardCard) GetPreparedStatementExecuteSQL(runtimeArgs *QueryArgs) (*ResolvedQuery, error)

GetPreparedStatementExecuteSQL implements QueryProvider

func (*DashboardCard) GetPreparedStatementName

func (c *DashboardCard) GetPreparedStatementName() string

GetPreparedStatementName implements QueryProvider

func (*DashboardCard) GetQuery

func (c *DashboardCard) GetQuery() *Query

GetQuery implements QueryProvider

func (*DashboardCard) GetReferences

func (c *DashboardCard) GetReferences() []*ResourceReference

GetReferences implements HclResource

func (*DashboardCard) GetSQL

func (c *DashboardCard) GetSQL() *string

GetSQL implements QueryProvider

func (*DashboardCard) GetTags

func (c *DashboardCard) GetTags() map[string]string

GetTags implements ModTreeItem

func (*DashboardCard) GetTitle

func (c *DashboardCard) GetTitle() string

GetTitle implements ModTreeItem

func (*DashboardCard) GetType

func (c *DashboardCard) GetType() string

GetType implements DashboardLeafNode

func (*DashboardCard) GetUnqualifiedName

func (c *DashboardCard) GetUnqualifiedName() string

GetUnqualifiedName implements DashboardLeafNode

func (*DashboardCard) GetWidth

func (c *DashboardCard) GetWidth() int

GetWidth implements DashboardLeafNode

func (*DashboardCard) Name

func (c *DashboardCard) Name() string

Name implements HclResource, ModTreeItem return name in format: 'card.<shortName>'

func (*DashboardCard) OnDecoded

func (c *DashboardCard) OnDecoded(block *hcl.Block, resourceMapProvider ModResourcesProvider) hcl.Diagnostics

OnDecoded implements HclResource

func (*DashboardCard) SetArgs

func (c *DashboardCard) SetArgs(args *QueryArgs)

SetArgs implements QueryProvider

func (*DashboardCard) SetParams

func (c *DashboardCard) SetParams(params []*ParamDef)

SetParams implements QueryProvider

func (*DashboardCard) SetPaths

func (c *DashboardCard) SetPaths()

SetPaths implements ModTreeItem

func (*DashboardCard) VerifyQuery

func (c *DashboardCard) VerifyQuery(QueryProvider) error

VerifyQuery implements QueryProvider

type DashboardChart

type DashboardChart struct {
	ResourceWithMetadataBase
	QueryProviderBase

	// required to allow partial decoding
	Remain hcl.Body `hcl:",remain" json:"-"`

	FullName        string `cty:"name" json:"-"`
	ShortName       string `json:"-"`
	UnqualifiedName string `json:"-"`

	// these properties are JSON serialised by the parent LeafRun
	Title   *string `cty:"title" hcl:"title" column:"title,text" json:"-"`
	Width   *int    `cty:"width" hcl:"width" column:"width,text" json:"-"`
	Type    *string `cty:"type" hcl:"type" column:"type,text" json:"-"`
	Display *string `cty:"display" hcl:"display" json:"-"`

	Legend     *DashboardChartLegend            `cty:"legend" hcl:"legend,block" column:"legend,jsonb" json:"legend,omitempty"`
	SeriesList DashboardChartSeriesList         `cty:"series_list" hcl:"series,block" column:"series,jsonb" json:"-"`
	Axes       *DashboardChartAxes              `cty:"axes" hcl:"axes,block" column:"axes,jsonb" json:"axes,omitempty"`
	Grouping   *string                          `cty:"grouping" hcl:"grouping" json:"grouping,omitempty"`
	Transform  *string                          `cty:"transform" hcl:"transform" json:"transform,omitempty"`
	Series     map[string]*DashboardChartSeries `cty:"series" json:"series,omitempty"`

	// QueryProvider
	SQL                   *string     `cty:"sql" hcl:"sql" column:"sql,text" json:"-"`
	Query                 *Query      `hcl:"query" json:"-"`
	PreparedStatementName string      `column:"prepared_statement_name,text" json:"-"`
	Args                  *QueryArgs  `cty:"args" column:"args,jsonb" json:"-"`
	Params                []*ParamDef `cty:"params" column:"params,jsonb" json:"-"`

	Base       *DashboardChart      `hcl:"base" json:"-"`
	DeclRange  hcl.Range            `json:"-"`
	References []*ResourceReference `json:"-"`
	Mod        *Mod                 `cty:"mod" json:"-"`
	Paths      []NodePath           `column:"path,jsonb" json:"-"`
	// contains filtered or unexported fields
}

DashboardChart is a struct representing a leaf dashboard node

func NewDashboardChart

func NewDashboardChart(block *hcl.Block, mod *Mod, shortName string) *DashboardChart

func (*DashboardChart) AddParent

func (c *DashboardChart) AddParent(parent ModTreeItem) error

AddParent implements ModTreeItem

func (*DashboardChart) AddReference

func (c *DashboardChart) AddReference(ref *ResourceReference)

AddReference implements HclResource

func (*DashboardChart) CtyValue

func (c *DashboardChart) CtyValue() (cty.Value, error)

CtyValue implements HclResource

func (*DashboardChart) Diff

func (*DashboardChart) Equals

func (c *DashboardChart) Equals(other *DashboardChart) bool

func (*DashboardChart) GetArgs

func (c *DashboardChart) GetArgs() *QueryArgs

GetArgs implements QueryProvider

func (*DashboardChart) GetChildren

func (c *DashboardChart) GetChildren() []ModTreeItem

GetChildren implements ModTreeItem

func (*DashboardChart) GetDeclRange

func (c *DashboardChart) GetDeclRange() *hcl.Range

GetDeclRange implements HclResource

func (*DashboardChart) GetDescription

func (c *DashboardChart) GetDescription() string

GetDescription implements ModTreeItem

func (*DashboardChart) GetDisplay

func (c *DashboardChart) GetDisplay() string

GetDisplay implements DashboardLeafNode

func (*DashboardChart) GetDocumentation

func (c *DashboardChart) GetDocumentation() string

GetDocumentation implements DashboardLeafNode

func (*DashboardChart) GetMod

func (c *DashboardChart) GetMod() *Mod

GetMod implements HclResource

func (*DashboardChart) GetParams

func (c *DashboardChart) GetParams() []*ParamDef

GetParams implements QueryProvider

func (*DashboardChart) GetParents

func (c *DashboardChart) GetParents() []ModTreeItem

GetParents implements ModTreeItem

func (*DashboardChart) GetPaths

func (c *DashboardChart) GetPaths() []NodePath

GetPaths implements ModTreeItem

func (*DashboardChart) GetPreparedStatementExecuteSQL

func (c *DashboardChart) GetPreparedStatementExecuteSQL(runtimeArgs *QueryArgs) (*ResolvedQuery, error)

GetPreparedStatementExecuteSQL implements QueryProvider

func (*DashboardChart) GetPreparedStatementName

func (c *DashboardChart) GetPreparedStatementName() string

GetPreparedStatementName implements QueryProvider

func (*DashboardChart) GetQuery

func (c *DashboardChart) GetQuery() *Query

GetQuery implements QueryProvider

func (*DashboardChart) GetReferences

func (c *DashboardChart) GetReferences() []*ResourceReference

GetReferences implements HclResource

func (*DashboardChart) GetSQL

func (c *DashboardChart) GetSQL() *string

GetSQL implements QueryProvider

func (*DashboardChart) GetTags

func (c *DashboardChart) GetTags() map[string]string

GetTags implements ModTreeItem

func (*DashboardChart) GetTitle

func (c *DashboardChart) GetTitle() string

GetTitle implements ModTreeItem

func (*DashboardChart) GetType

func (c *DashboardChart) GetType() string

GetType implements DashboardLeafNode

func (*DashboardChart) GetUnqualifiedName

func (c *DashboardChart) GetUnqualifiedName() string

GetUnqualifiedName implements DashboardLeafNode, ModTreeItem

func (*DashboardChart) GetWidth

func (c *DashboardChart) GetWidth() int

GetWidth implements DashboardLeafNode

func (*DashboardChart) Name

func (c *DashboardChart) Name() string

Name implements HclResource, ModTreeItem return name in format: 'chart.<shortName>'

func (*DashboardChart) OnDecoded

func (c *DashboardChart) OnDecoded(block *hcl.Block, resourceMapProvider ModResourcesProvider) hcl.Diagnostics

OnDecoded implements HclResource

func (*DashboardChart) SetArgs

func (c *DashboardChart) SetArgs(args *QueryArgs)

SetArgs implements QueryProvider

func (*DashboardChart) SetParams

func (c *DashboardChart) SetParams(params []*ParamDef)

SetParams implements QueryProvider

func (*DashboardChart) SetPaths

func (c *DashboardChart) SetPaths()

SetPaths implements ModTreeItem

type DashboardChartAxes

type DashboardChartAxes struct {
	X *DashboardChartAxesX `cty:"x" hcl:"x,block" json:"x,omitempty"`
	Y *DashboardChartAxesY `cty:"y" hcl:"y,block" json:"y,omitempty"`
}

func (*DashboardChartAxes) Equals

func (a *DashboardChartAxes) Equals(other *DashboardChartAxes) bool

func (*DashboardChartAxes) Merge

func (a *DashboardChartAxes) Merge(other *DashboardChartAxes)

type DashboardChartAxesX

type DashboardChartAxesX struct {
	Title  *DashboardChartAxisTitle `cty:"title" hcl:"title,block" json:"title,omitempty"`
	Labels *DashboardChartLabels    `cty:"labels" hcl:"labels,block" json:"labels,omitempty"`
	Min    *int                     `cty:"min" hcl:"min" json:"min,omitempty"`
	Max    *int                     `cty:"max" hcl:"max" json:"max,omitempty"`
}

func (*DashboardChartAxesX) Equals

func (x *DashboardChartAxesX) Equals(other *DashboardChartAxesX) bool

func (*DashboardChartAxesX) Merge

func (x *DashboardChartAxesX) Merge(other *DashboardChartAxesX)

type DashboardChartAxesY

type DashboardChartAxesY struct {
	Title  *DashboardChartAxisTitle `cty:"title" hcl:"title,block" json:"title,omitempty"`
	Labels *DashboardChartLabels    `cty:"labels" hcl:"labels,block" json:"labels,omitempty"`
	Min    *int                     `cty:"min" hcl:"min" json:"min,omitempty"`
	Max    *int                     `cty:"max" hcl:"max" json:"max,omitempty"`
}

func (*DashboardChartAxesY) Equals

func (y *DashboardChartAxesY) Equals(other *DashboardChartAxesY) bool

func (*DashboardChartAxesY) Merge

func (y *DashboardChartAxesY) Merge(other *DashboardChartAxesY)

type DashboardChartAxisTitle

type DashboardChartAxisTitle struct {
	Display *string `cty:"display" hcl:"display" json:"display,omitempty"`
	Align   *string `cty:"align" hcl:"align" json:"align,omitempty"`
	Value   *string `cty:"value" hcl:"value" json:"value,omitempty"`
}

func (*DashboardChartAxisTitle) Equals

func (*DashboardChartAxisTitle) Merge

type DashboardChartLabels

type DashboardChartLabels struct {
	Display *string `cty:"display" hcl:"display" json:"display,omitempty"`
	Format  *string `cty:"format" hcl:"format" json:"format,omitempty"`
}

func (*DashboardChartLabels) Equals

func (*DashboardChartLabels) Merge

func (l *DashboardChartLabels) Merge(other *DashboardChartLabels)

type DashboardChartLegend

type DashboardChartLegend struct {
	Display  *string `cty:"display" hcl:"display" json:"display,omitempty"`
	Position *string `cty:"position" hcl:"position" json:"position,omitempty"`
}

func (*DashboardChartLegend) Equals

func (*DashboardChartLegend) Merge

func (l *DashboardChartLegend) Merge(other *DashboardChartLegend)

type DashboardChartSeries

type DashboardChartSeries struct {
	Name       string                                `hcl:"name,label" json:"name"`
	Title      *string                               `cty:"title" hcl:"title" json:"title,omitempty"`
	Color      *string                               `cty:"color" hcl:"color" json:"color,omitempty"`
	Points     map[string]*DashboardChartSeriesPoint `cty:"points" json:"points,omitempty"`
	PointsList []*DashboardChartSeriesPoint          `hcl:"point,block" json:"-"`
}

func (DashboardChartSeries) Equals

func (*DashboardChartSeries) OnDecoded

func (s *DashboardChartSeries) OnDecoded()

type DashboardChartSeriesList

type DashboardChartSeriesList []*DashboardChartSeries

func (*DashboardChartSeriesList) Merge

type DashboardChartSeriesPoint

type DashboardChartSeriesPoint struct {
	Name  string  `hcl:"name,label" json:"-"`
	Color *string `cty:"color" hcl:"color" json:"color,omitempty"`
}

func (DashboardChartSeriesPoint) Equals

type DashboardContainer

type DashboardContainer struct {
	ResourceWithMetadataBase

	// required to allow partial decoding
	Remain hcl.Body `hcl:",remain"`

	ShortName       string
	FullName        string            `cty:"name"`
	UnqualifiedName string            `cty:"unqualified_name"`
	Title           *string           `cty:"title" hcl:"title" column:"title,text"`
	Width           *int              `cty:"width" hcl:"width"  column:"width,text"`
	Display         *string           `cty:"display" hcl:"display"`
	Inputs          []*DashboardInput `cty:"inputs" column:"inputs,jsonb"`

	References []*ResourceReference
	Mod        *Mod `cty:"mod"`
	DeclRange  hcl.Range
	Paths      []NodePath `column:"path,jsonb"`
	// store children in a way which can be serialised via cty
	ChildNames []string `cty:"children" column:"children,jsonb"`
	// contains filtered or unexported fields
}

DashboardContainer is a struct representing the Dashboard and Container resource

func NewDashboardContainer

func NewDashboardContainer(block *hcl.Block, mod *Mod, shortName string) *DashboardContainer

func (*DashboardContainer) AddChild

func (c *DashboardContainer) AddChild(child ModTreeItem)

func (*DashboardContainer) AddParent

func (c *DashboardContainer) AddParent(parent ModTreeItem) error

AddParent implements ModTreeItem

func (*DashboardContainer) AddReference

func (c *DashboardContainer) AddReference(ref *ResourceReference)

AddReference implements HclResource

func (*DashboardContainer) CtyValue

func (c *DashboardContainer) CtyValue() (cty.Value, error)

CtyValue implements HclResource

func (*DashboardContainer) Diff

func (*DashboardContainer) Equals

func (c *DashboardContainer) Equals(other *DashboardContainer) bool

func (*DashboardContainer) GetChildren

func (c *DashboardContainer) GetChildren() []ModTreeItem

GetChildren implements ModTreeItem

func (*DashboardContainer) GetDeclRange

func (c *DashboardContainer) GetDeclRange() *hcl.Range

GetDeclRange implements HclResource

func (*DashboardContainer) GetDescription

func (c *DashboardContainer) GetDescription() string

GetDescription implements ModTreeItem

func (*DashboardContainer) GetMod

func (c *DashboardContainer) GetMod() *Mod

GetMod implements HclResource

func (*DashboardContainer) GetParents

func (c *DashboardContainer) GetParents() []ModTreeItem

GetParents implements ModTreeItem

func (*DashboardContainer) GetPaths

func (c *DashboardContainer) GetPaths() []NodePath

GetPaths implements ModTreeItem

func (*DashboardContainer) GetReferences

func (c *DashboardContainer) GetReferences() []*ResourceReference

GetReferences implements HclResource

func (*DashboardContainer) GetTags

func (c *DashboardContainer) GetTags() map[string]string

GetTags implements ModTreeItem

func (*DashboardContainer) GetTitle

func (c *DashboardContainer) GetTitle() string

GetTitle implements ModTreeItem

func (*DashboardContainer) GetUnqualifiedName

func (c *DashboardContainer) GetUnqualifiedName() string

GetUnqualifiedName implements DashboardLeafNode, ModTreeItem

func (*DashboardContainer) Name

func (c *DashboardContainer) Name() string

Name implements HclResource, ModTreeItem

func (*DashboardContainer) OnDecoded

func (c *DashboardContainer) OnDecoded(block *hcl.Block, resourceMapProvider ModResourcesProvider) hcl.Diagnostics

OnDecoded implements HclResource

func (*DashboardContainer) SetChildren

func (c *DashboardContainer) SetChildren(children []ModTreeItem)

func (*DashboardContainer) SetPaths

func (c *DashboardContainer) SetPaths()

SetPaths implements ModTreeItem

func (*DashboardContainer) WalkResources

func (c *DashboardContainer) WalkResources(resourceFunc func(resource HclResource) (bool, error)) error

type DashboardFlow

type DashboardFlow struct {
	ResourceWithMetadataBase
	QueryProviderBase

	// required to allow partial decoding
	Remain hcl.Body `hcl:",remain" json:"-"`

	FullName        string `cty:"name" json:"-"`
	ShortName       string `json:"-"`
	UnqualifiedName string `json:"-"`

	CategoryList DashboardFlowCategoryList         `cty:"category_list" hcl:"category,block" column:"category,jsonb" json:"-"`
	Categories   map[string]*DashboardFlowCategory `cty:"categories" json:"categories"`

	// these properties are JSON serialised by the parent LeafRun
	Title   *string `cty:"title" hcl:"title" column:"title,text" json:"-"`
	Width   *int    `cty:"width" hcl:"width" column:"width,text" json:"-"`
	Type    *string `cty:"type" hcl:"type" column:"type,text" json:"-"`
	Display *string `cty:"display" hcl:"display" json:"-"`

	// QueryProvider
	SQL                   *string     `cty:"sql" hcl:"sql" column:"sql,text" json:"-"`
	Query                 *Query      `hcl:"query" json:"-"`
	PreparedStatementName string      `column:"prepared_statement_name,text" json:"-"`
	Args                  *QueryArgs  `cty:"args" column:"args,jsonb" json:"-"`
	Params                []*ParamDef `cty:"params" column:"params,jsonb" json:"-"`

	Base       *DashboardFlow       `hcl:"base" json:"-"`
	DeclRange  hcl.Range            `json:"-"`
	References []*ResourceReference `json:"-"`
	Mod        *Mod                 `cty:"mod" json:"-"`
	Paths      []NodePath           `column:"path,jsonb" json:"-"`
	// contains filtered or unexported fields
}

DashboardFlow is a struct representing a leaf dashboard node

func NewDashboardFlow

func NewDashboardFlow(block *hcl.Block, mod *Mod, shortName string) *DashboardFlow

func (*DashboardFlow) AddParent

func (f *DashboardFlow) AddParent(parent ModTreeItem) error

AddParent implements ModTreeItem

func (*DashboardFlow) AddReference

func (f *DashboardFlow) AddReference(ref *ResourceReference)

AddReference implements HclResource

func (*DashboardFlow) CtyValue

func (f *DashboardFlow) CtyValue() (cty.Value, error)

CtyValue implements HclResource

func (*DashboardFlow) Diff

func (*DashboardFlow) Equals

func (f *DashboardFlow) Equals(other *DashboardFlow) bool

func (*DashboardFlow) GetArgs

func (f *DashboardFlow) GetArgs() *QueryArgs

GetArgs implements QueryProvider

func (*DashboardFlow) GetChildren

func (f *DashboardFlow) GetChildren() []ModTreeItem

GetChildren implements ModTreeItem

func (*DashboardFlow) GetDeclRange

func (f *DashboardFlow) GetDeclRange() *hcl.Range

GetDeclRange implements HclResource

func (*DashboardFlow) GetDescription

func (f *DashboardFlow) GetDescription() string

GetDescription implements ModTreeItem

func (*DashboardFlow) GetDisplay

func (f *DashboardFlow) GetDisplay() string

GetDisplay implements DashboardLeafNode

func (*DashboardFlow) GetDocumentation

func (f *DashboardFlow) GetDocumentation() string

GetDocumentation implements DashboardLeafNode

func (*DashboardFlow) GetMod

func (f *DashboardFlow) GetMod() *Mod

GetMod implements HclResource

func (*DashboardFlow) GetParams

func (f *DashboardFlow) GetParams() []*ParamDef

GetParams implements QueryProvider

func (*DashboardFlow) GetParents

func (f *DashboardFlow) GetParents() []ModTreeItem

GetParents implements ModTreeItem

func (*DashboardFlow) GetPaths

func (f *DashboardFlow) GetPaths() []NodePath

GetPaths implements ModTreeItem

func (*DashboardFlow) GetPreparedStatementExecuteSQL

func (f *DashboardFlow) GetPreparedStatementExecuteSQL(runtimeArgs *QueryArgs) (*ResolvedQuery, error)

GetPreparedStatementExecuteSQL implements QueryProvider

func (*DashboardFlow) GetPreparedStatementName

func (f *DashboardFlow) GetPreparedStatementName() string

GetPreparedStatementName implements QueryProvider

func (*DashboardFlow) GetQuery

func (f *DashboardFlow) GetQuery() *Query

GetQuery implements QueryProvider

func (*DashboardFlow) GetReferences

func (f *DashboardFlow) GetReferences() []*ResourceReference

GetReferences implements HclResource

func (*DashboardFlow) GetSQL

func (f *DashboardFlow) GetSQL() *string

GetSQL implements QueryProvider

func (*DashboardFlow) GetTags

func (f *DashboardFlow) GetTags() map[string]string

GetTags implements ModTreeItem

func (*DashboardFlow) GetTitle

func (f *DashboardFlow) GetTitle() string

GetTitle implements ModTreeItem

func (*DashboardFlow) GetType

func (f *DashboardFlow) GetType() string

GetType implements DashboardLeafNode

func (*DashboardFlow) GetUnqualifiedName

func (f *DashboardFlow) GetUnqualifiedName() string

GetUnqualifiedName implements DashboardLeafNode, ModTreeItem

func (*DashboardFlow) GetWidth

func (f *DashboardFlow) GetWidth() int

GetWidth implements DashboardLeafNode

func (*DashboardFlow) Name

func (f *DashboardFlow) Name() string

Name implements HclResource, ModTreeItem return name in format: 'chart.<shortName>'

func (*DashboardFlow) OnDecoded

func (f *DashboardFlow) OnDecoded(block *hcl.Block, resourceMapProvider ModResourcesProvider) hcl.Diagnostics

OnDecoded implements HclResource

func (*DashboardFlow) SetArgs

func (f *DashboardFlow) SetArgs(args *QueryArgs)

SetArgs implements QueryProvider

func (*DashboardFlow) SetParams

func (f *DashboardFlow) SetParams(params []*ParamDef)

SetParams implements QueryProvider

func (*DashboardFlow) SetPaths

func (f *DashboardFlow) SetPaths()

SetPaths implements ModTreeItem

type DashboardFlowCategory

type DashboardFlowCategory struct {
	Name  string  `hcl:"name,label" json:"-"`
	Title *string `cty:"title" hcl:"title" json:"title,omitempty"`
	Color *string `cty:"color" hcl:"color" json:"color,omitempty"`
	Depth *int    `cty:"depth" hcl:"depth" json:"depth,omitempty"`
}

func (DashboardFlowCategory) Equals

type DashboardFlowCategoryList

type DashboardFlowCategoryList []*DashboardFlowCategory

func (DashboardFlowCategoryList) Merge

type DashboardHierarchy

type DashboardHierarchy struct {
	ResourceWithMetadataBase
	QueryProviderBase

	// required to allow partial decoding
	Remain hcl.Body `hcl:",remain" json:"-"`

	FullName        string `cty:"name" json:"-"`
	ShortName       string `json:"-"`
	UnqualifiedName string `json:"-"`

	CategoryList DashboardHierarchyCategoryList         `cty:"category_list" hcl:"category,block" column:"category,jsonb" json:"-"`
	Categories   map[string]*DashboardHierarchyCategory `cty:"categories" json:"categories"`

	// these properties are JSON serialised by the parent LeafRun
	Title   *string `cty:"title" hcl:"title" column:"title,text" json:"-"`
	Width   *int    `cty:"width" hcl:"width" column:"width,text" json:"-"`
	Type    *string `cty:"type" hcl:"type" column:"type,text" json:"-"`
	Display *string `cty:"display" hcl:"display" json:"-"`

	// QueryProvider
	SQL                   *string     `cty:"sql" hcl:"sql" column:"sql,text" json:"-"`
	Query                 *Query      `hcl:"query" json:"-"`
	PreparedStatementName string      `column:"prepared_statement_name,text" json:"-"`
	Args                  *QueryArgs  `cty:"args" column:"args,jsonb" json:"-"`
	Params                []*ParamDef `cty:"params" column:"params,jsonb" json:"-"`

	Base       *DashboardHierarchy  `hcl:"base" json:"-"`
	DeclRange  hcl.Range            `json:"-"`
	References []*ResourceReference `json:"-"`
	Mod        *Mod                 `cty:"mod" json:"-"`
	Paths      []NodePath           `column:"path,jsonb" json:"-"`
	// contains filtered or unexported fields
}

DashboardHierarchy is a struct representing a leaf dashboard node

func NewDashboardHierarchy

func NewDashboardHierarchy(block *hcl.Block, mod *Mod, shortName string) *DashboardHierarchy

func (*DashboardHierarchy) AddParent

func (h *DashboardHierarchy) AddParent(parent ModTreeItem) error

AddParent implements ModTreeItem

func (*DashboardHierarchy) AddReference

func (h *DashboardHierarchy) AddReference(ref *ResourceReference)

AddReference implements HclResource

func (*DashboardHierarchy) CtyValue

func (h *DashboardHierarchy) CtyValue() (cty.Value, error)

CtyValue implements HclResource

func (*DashboardHierarchy) Diff

func (*DashboardHierarchy) Equals

func (h *DashboardHierarchy) Equals(other *DashboardHierarchy) bool

func (*DashboardHierarchy) GetArgs

func (h *DashboardHierarchy) GetArgs() *QueryArgs

GetArgs implements QueryProvider

func (*DashboardHierarchy) GetChildren

func (h *DashboardHierarchy) GetChildren() []ModTreeItem

GetChildren implements ModTreeItem

func (*DashboardHierarchy) GetDeclRange

func (h *DashboardHierarchy) GetDeclRange() *hcl.Range

GetDeclRange implements HclResource

func (*DashboardHierarchy) GetDescription

func (h *DashboardHierarchy) GetDescription() string

GetDescription implements ModTreeItem

func (*DashboardHierarchy) GetDisplay

func (h *DashboardHierarchy) GetDisplay() string

GetDisplay implements DashboardLeafNode

func (*DashboardHierarchy) GetDocumentation

func (h *DashboardHierarchy) GetDocumentation() string

GetDocumentation implements DashboardLeafNode

func (*DashboardHierarchy) GetMod

func (h *DashboardHierarchy) GetMod() *Mod

GetMod implements HclResource

func (*DashboardHierarchy) GetParams

func (h *DashboardHierarchy) GetParams() []*ParamDef

GetParams implements QueryProvider

func (*DashboardHierarchy) GetParents

func (h *DashboardHierarchy) GetParents() []ModTreeItem

GetParents implements ModTreeItem

func (*DashboardHierarchy) GetPaths

func (h *DashboardHierarchy) GetPaths() []NodePath

GetPaths implements ModTreeItem

func (*DashboardHierarchy) GetPreparedStatementExecuteSQL

func (h *DashboardHierarchy) GetPreparedStatementExecuteSQL(runtimeArgs *QueryArgs) (*ResolvedQuery, error)

GetPreparedStatementExecuteSQL implements QueryProvider

func (*DashboardHierarchy) GetPreparedStatementName

func (h *DashboardHierarchy) GetPreparedStatementName() string

GetPreparedStatementName implements QueryProvider

func (*DashboardHierarchy) GetQuery

func (h *DashboardHierarchy) GetQuery() *Query

GetQuery implements QueryProvider

func (*DashboardHierarchy) GetReferences

func (h *DashboardHierarchy) GetReferences() []*ResourceReference

GetReferences implements HclResource

func (*DashboardHierarchy) GetSQL

func (h *DashboardHierarchy) GetSQL() *string

GetSQL implements QueryProvider

func (*DashboardHierarchy) GetTags

func (h *DashboardHierarchy) GetTags() map[string]string

GetTags implements ModTreeItem

func (*DashboardHierarchy) GetTitle

func (h *DashboardHierarchy) GetTitle() string

GetTitle implements ModTreeItem

func (*DashboardHierarchy) GetType

func (h *DashboardHierarchy) GetType() string

GetType implements DashboardLeafNode

func (*DashboardHierarchy) GetUnqualifiedName

func (h *DashboardHierarchy) GetUnqualifiedName() string

GetUnqualifiedName implements DashboardLeafNode, ModTreeItem

func (*DashboardHierarchy) GetWidth

func (h *DashboardHierarchy) GetWidth() int

GetWidth implements DashboardLeafNode

func (*DashboardHierarchy) Name

func (h *DashboardHierarchy) Name() string

Name implements HclResource, ModTreeItem return name in format: 'chart.<shortName>'

func (*DashboardHierarchy) OnDecoded

func (h *DashboardHierarchy) OnDecoded(block *hcl.Block, resourceMapProvider ModResourcesProvider) hcl.Diagnostics

OnDecoded implements HclResource

func (*DashboardHierarchy) SetArgs

func (h *DashboardHierarchy) SetArgs(args *QueryArgs)

SetArgs implements QueryProvider

func (*DashboardHierarchy) SetParams

func (h *DashboardHierarchy) SetParams(params []*ParamDef)

SetParams implements QueryProvider

func (*DashboardHierarchy) SetPaths

func (h *DashboardHierarchy) SetPaths()

SetPaths implements ModTreeItem

type DashboardHierarchyCategory

type DashboardHierarchyCategory struct {
	Name  string  `hcl:"name,label" json:"-"`
	Title *string `cty:"title" hcl:"title" json:"title,omitempty"`
	Color *string `cty:"color" hcl:"color" json:"color,omitempty"`
}

func (DashboardHierarchyCategory) Equals

type DashboardHierarchyCategoryList

type DashboardHierarchyCategoryList []*DashboardHierarchyCategory

func (DashboardHierarchyCategoryList) Merge

type DashboardImage

type DashboardImage struct {
	ResourceWithMetadataBase
	QueryProviderBase

	FullName        string `cty:"name" json:"-"`
	ShortName       string `json:"-"`
	UnqualifiedName string `json:"-"`

	Src *string `cty:"src" hcl:"src" column:"src,text" json:"src,omitempty"`
	Alt *string `cty:"alt" hcl:"alt" column:"alt,text" json:"alt,omitempty"`

	// these properties are JSON serialised by the parent LeafRun
	Title   *string `cty:"title" hcl:"title" column:"title,text" json:"-"`
	Width   *int    `cty:"width" hcl:"width" column:"width,text" json:"-"`
	Display *string `cty:"display" hcl:"display" json:"-"`

	// QueryProvider
	SQL                   *string     `cty:"sql" hcl:"sql" column:"sql,text" json:"-"`
	Query                 *Query      `hcl:"query" json:"-"`
	PreparedStatementName string      `column:"prepared_statement_name,text" json:"-"`
	Args                  *QueryArgs  `cty:"args" column:"args,jsonb" json:"-"`
	Params                []*ParamDef `cty:"params" column:"params,jsonb" json:"-"`

	Base       *DashboardImage      `hcl:"base" json:"-"`
	DeclRange  hcl.Range            `json:"-"`
	References []*ResourceReference `json:"-"`
	Mod        *Mod                 `cty:"mod" json:"-"`
	Paths      []NodePath           `column:"path,jsonb" json:"-"`
	// contains filtered or unexported fields
}

DashboardImage is a struct representing a leaf dashboard node

func NewDashboardImage

func NewDashboardImage(block *hcl.Block, mod *Mod, shortName string) *DashboardImage

func (*DashboardImage) AddParent

func (i *DashboardImage) AddParent(parent ModTreeItem) error

AddParent implements ModTreeItem

func (*DashboardImage) AddReference

func (i *DashboardImage) AddReference(ref *ResourceReference)

AddReference implements HclResource

func (*DashboardImage) CtyValue

func (i *DashboardImage) CtyValue() (cty.Value, error)

CtyValue implements HclResource

func (*DashboardImage) Diff

func (*DashboardImage) Equals

func (i *DashboardImage) Equals(other *DashboardImage) bool

func (*DashboardImage) GetArgs

func (i *DashboardImage) GetArgs() *QueryArgs

GetArgs implements QueryProvider

func (*DashboardImage) GetChildren

func (i *DashboardImage) GetChildren() []ModTreeItem

GetChildren implements ModTreeItem

func (*DashboardImage) GetDeclRange

func (i *DashboardImage) GetDeclRange() *hcl.Range

GetDeclRange implements HclResource

func (*DashboardImage) GetDescription

func (i *DashboardImage) GetDescription() string

GetDescription implements ModTreeItem

func (*DashboardImage) GetDisplay

func (i *DashboardImage) GetDisplay() string

GetDisplay implements DashboardLeafNode

func (*DashboardImage) GetDocumentation

func (*DashboardImage) GetDocumentation() string

GetDocumentation implements DashboardLeafNode

func (*DashboardImage) GetMod

func (i *DashboardImage) GetMod() *Mod

GetMod implements HclResource

func (*DashboardImage) GetParams

func (i *DashboardImage) GetParams() []*ParamDef

GetParams implements QueryProvider

func (*DashboardImage) GetParents

func (i *DashboardImage) GetParents() []ModTreeItem

GetParents implements ModTreeItem

func (*DashboardImage) GetPaths

func (i *DashboardImage) GetPaths() []NodePath

GetPaths implements ModTreeItem

func (*DashboardImage) GetPreparedStatementExecuteSQL

func (i *DashboardImage) GetPreparedStatementExecuteSQL(runtimeArgs *QueryArgs) (*ResolvedQuery, error)

GetPreparedStatementExecuteSQL implements QueryProvider

func (*DashboardImage) GetPreparedStatementName

func (i *DashboardImage) GetPreparedStatementName() string

GetPreparedStatementName implements QueryProvider

func (*DashboardImage) GetQuery

func (i *DashboardImage) GetQuery() *Query

GetQuery implements QueryProvider

func (*DashboardImage) GetReferences

func (i *DashboardImage) GetReferences() []*ResourceReference

GetReferences implements HclResource

func (*DashboardImage) GetSQL

func (i *DashboardImage) GetSQL() *string

GetSQL implements QueryProvider

func (*DashboardImage) GetTags

func (i *DashboardImage) GetTags() map[string]string

GetTags implements ModTreeItem

func (*DashboardImage) GetTitle

func (i *DashboardImage) GetTitle() string

GetTitle implements ModTreeItem

func (*DashboardImage) GetType

func (*DashboardImage) GetType() string

GetType implements DashboardLeafNode

func (*DashboardImage) GetUnqualifiedName

func (i *DashboardImage) GetUnqualifiedName() string

GetUnqualifiedName implements DashboardLeafNode, ModTreeItem

func (*DashboardImage) GetWidth

func (i *DashboardImage) GetWidth() int

GetWidth implements DashboardLeafNode

func (*DashboardImage) Name

func (i *DashboardImage) Name() string

Name implements HclResource, ModTreeItem return name in format: 'image.<shortName>'

func (*DashboardImage) OnDecoded

func (i *DashboardImage) OnDecoded(block *hcl.Block, resourceMapProvider ModResourcesProvider) hcl.Diagnostics

OnDecoded implements HclResource

func (*DashboardImage) SetArgs

func (i *DashboardImage) SetArgs(args *QueryArgs)

SetArgs implements QueryProvider

func (*DashboardImage) SetParams

func (i *DashboardImage) SetParams(params []*ParamDef)

SetParams implements QueryProvider

func (*DashboardImage) SetPaths

func (i *DashboardImage) SetPaths()

SetPaths implements ModTreeItem

func (*DashboardImage) VerifyQuery

func (i *DashboardImage) VerifyQuery(QueryProvider) error

VerifyQuery implements QueryProvider

type DashboardInput

type DashboardInput struct {
	ResourceWithMetadataBase
	QueryProviderBase

	FullName        string `cty:"name" json:"-"`
	ShortName       string `json:"-"`
	UnqualifiedName string `cty:"unqualified_name" json:"unqualified_name"`
	DashboardName   string `column:"dashboard,text" json:"-"`

	Label       *string                 `cty:"label" hcl:"label" column:"label,text" json:"label,omitempty"`
	Placeholder *string                 `cty:"placeholder" hcl:"placeholder" column:"placeholder,text" json:"placeholder,omitempty"`
	Options     []*DashboardInputOption `cty:"options" hcl:"option,block" json:"options,omitempty"`

	// these properties are JSON serialised by the parent LeafRun
	Title   *string `cty:"title" hcl:"title" column:"title,text" json:"-"`
	Width   *int    `cty:"width" hcl:"width" column:"width,text" json:"-"`
	Type    *string `cty:"type" hcl:"type" column:"type,text" json:"-"`
	Display *string `cty:"display" hcl:"display" json:"-"`

	// QueryProvider
	SQL                   *string     `cty:"sql" hcl:"sql" column:"sql,text" json:"-"`
	Query                 *Query      `hcl:"query" json:"-"`
	PreparedStatementName string      `column:"prepared_statement_name,text" json:"-"`
	Args                  *QueryArgs  `cty:"args" column:"args,jsonb"json:"-"`
	Params                []*ParamDef `cty:"params" column:"params,jsonb" json:"-"`

	Base       *DashboardInput      `hcl:"base" json:"-"`
	DeclRange  hcl.Range            `json:"-"`
	References []*ResourceReference `json:"-"`
	Mod        *Mod                 `cty:"mod" json:"-"`

	Paths []NodePath `column:"path,jsonb" json:"-"`
	// contains filtered or unexported fields
}

DashboardInput is a struct representing a leaf dashboard node

func GetDashboardInput

func GetDashboardInput(provider ModResourcesProvider, inputName, dashboardName string) (*DashboardInput, bool)

GetDashboardInput looks for an input with a given parent dashboard this is required as GetResource does not support Inputs

func NewDashboardInput

func NewDashboardInput(block *hcl.Block, mod *Mod, shortName string) *DashboardInput

func (*DashboardInput) AddParent

func (i *DashboardInput) AddParent(parent ModTreeItem) error

AddParent implements ModTreeItem

func (*DashboardInput) AddReference

func (i *DashboardInput) AddReference(ref *ResourceReference)

AddReference implements HclResource

func (*DashboardInput) Clone

func (i *DashboardInput) Clone() *DashboardInput

func (*DashboardInput) CtyValue

func (i *DashboardInput) CtyValue() (cty.Value, error)

CtyValue implements HclResource

func (*DashboardInput) DependsOnInput

func (i *DashboardInput) DependsOnInput(changedInputName string) bool

DependsOnInput returns whether this input has a runtime dependency on the given input

func (*DashboardInput) Diff

func (*DashboardInput) Equals

func (i *DashboardInput) Equals(other *DashboardInput) bool

func (*DashboardInput) GetArgs

func (i *DashboardInput) GetArgs() *QueryArgs

GetArgs implements QueryProvider

func (*DashboardInput) GetChildren

func (i *DashboardInput) GetChildren() []ModTreeItem

GetChildren implements ModTreeItem

func (*DashboardInput) GetDeclRange

func (i *DashboardInput) GetDeclRange() *hcl.Range

GetDeclRange implements HclResource

func (*DashboardInput) GetDescription

func (i *DashboardInput) GetDescription() string

GetDescription implements ModTreeItem

func (*DashboardInput) GetDisplay

func (i *DashboardInput) GetDisplay() string

GetDisplay implements DashboardLeafNode

func (*DashboardInput) GetDocumentation

func (*DashboardInput) GetDocumentation() string

GetDocumentation implements DashboardLeafNode

func (*DashboardInput) GetMod

func (i *DashboardInput) GetMod() *Mod

GetMod implements HclResource

func (*DashboardInput) GetParams

func (i *DashboardInput) GetParams() []*ParamDef

GetParams implements QueryProvider

func (*DashboardInput) GetParents

func (i *DashboardInput) GetParents() []ModTreeItem

GetParents implements ModTreeItem

func (*DashboardInput) GetPaths

func (i *DashboardInput) GetPaths() []NodePath

GetPaths implements ModTreeItem

func (*DashboardInput) GetPreparedStatementExecuteSQL

func (i *DashboardInput) GetPreparedStatementExecuteSQL(runtimeArgs *QueryArgs) (*ResolvedQuery, error)

GetPreparedStatementExecuteSQL implements QueryProvider

func (*DashboardInput) GetPreparedStatementName

func (i *DashboardInput) GetPreparedStatementName() string

GetPreparedStatementName implements QueryProvider

func (*DashboardInput) GetQuery

func (i *DashboardInput) GetQuery() *Query

GetQuery implements QueryProvider

func (*DashboardInput) GetReferences

func (i *DashboardInput) GetReferences() []*ResourceReference

GetReferences implements HclResource

func (*DashboardInput) GetSQL

func (i *DashboardInput) GetSQL() *string

GetSQL implements QueryProvider

func (*DashboardInput) GetTags

func (i *DashboardInput) GetTags() map[string]string

GetTags implements ModTreeItem

func (*DashboardInput) GetTitle

func (i *DashboardInput) GetTitle() string

GetTitle implements ModTreeItem

func (*DashboardInput) GetType

func (i *DashboardInput) GetType() string

GetType implements DashboardLeafNode

func (*DashboardInput) GetUnqualifiedName

func (i *DashboardInput) GetUnqualifiedName() string

GetUnqualifiedName implements DashboardLeafNode, ModTreeItem

func (*DashboardInput) GetWidth

func (i *DashboardInput) GetWidth() int

GetWidth implements DashboardLeafNode

func (*DashboardInput) IsSnapshotPanel

func (*DashboardInput) IsSnapshotPanel()

IsSnapshotPanel implements SnapshotPanel

func (*DashboardInput) Name

func (i *DashboardInput) Name() string

Name implements HclResource, ModTreeItem return name in format: 'chart.<shortName>'

func (*DashboardInput) OnDecoded

func (i *DashboardInput) OnDecoded(block *hcl.Block, resourceMapProvider ModResourcesProvider) hcl.Diagnostics

OnDecoded implements HclResource

func (*DashboardInput) SetArgs

func (i *DashboardInput) SetArgs(args *QueryArgs)

SetArgs implements QueryProvider

func (*DashboardInput) SetDashboard

func (i *DashboardInput) SetDashboard(dashboard *Dashboard)

SetDashboard sets the parent dashboard container

func (*DashboardInput) SetParams

func (i *DashboardInput) SetParams(params []*ParamDef)

SetParams implements QueryProvider

func (*DashboardInput) SetPaths

func (i *DashboardInput) SetPaths()

SetPaths implements ModTreeItem

func (*DashboardInput) VerifyQuery

func (i *DashboardInput) VerifyQuery(QueryProvider) error

VerifyQuery implements QueryProvider

type DashboardInputOption

type DashboardInputOption struct {
	Name  string  `hcl:"name,label" json:"name"`
	Label *string `cty:"label" hcl:"label" json:"label,omitempty"`
}

DashboardInputOption is a struct representing dashboard input option

func (DashboardInputOption) Equals

type DashboardLeafNode

type DashboardLeafNode interface {
	Name() string
	GetUnqualifiedName() string
	GetTitle() string
	GetDisplay() string
	GetDescription() string
	GetDocumentation() string
	GetType() string
	GetTags() map[string]string
	GetWidth() int
	GetPaths() []NodePath
	GetMetadata() *ResourceMetadata
}

DashboardLeafNode must be implemented by resources may be a leaf node in the dashboard execution tree

type DashboardTable

type DashboardTable struct {
	ResourceWithMetadataBase
	QueryProviderBase

	// required to allow partial decoding
	Remain hcl.Body `hcl:",remain" json:"-"`

	FullName        string `cty:"name" json:"-"`
	ShortName       string `json:"-"`
	UnqualifiedName string `json:"-"`

	Title      *string                          `cty:"title" hcl:"title" column:"title,text" json:"-"`
	Width      *int                             `cty:"width" hcl:"width" column:"width,text" json:"-"`
	Type       *string                          `cty:"type" hcl:"type" column:"type,text" json:"-"`
	ColumnList DashboardTableColumnList         `cty:"column_list" hcl:"column,block" column:"columns,jsonb" json:"-"`
	Columns    map[string]*DashboardTableColumn `cty:"columns" json:"columns,omitempty"`
	Display    *string                          `cty:"display" hcl:"display" json:"display,omitempty"`

	// QueryProvider
	SQL                   *string     `cty:"sql" hcl:"sql" column:"sql,text" json:"-"`
	Query                 *Query      `hcl:"query" json:"-"`
	PreparedStatementName string      `column:"prepared_statement_name,text" json:"-"`
	Args                  *QueryArgs  `cty:"args" column:"args,jsonb"json:"-"`
	Params                []*ParamDef `cty:"params" column:"params,jsonb" json:"-"`

	Base       *DashboardTable      `hcl:"base" json:"-"`
	DeclRange  hcl.Range            `json:"-"`
	References []*ResourceReference `json:"-"`
	Mod        *Mod                 `cty:"mod" json:"-"`
	Paths      []NodePath           `column:"path,jsonb" json:"-"`
	// contains filtered or unexported fields
}

DashboardTable is a struct representing a leaf dashboard node

func NewDashboardTable

func NewDashboardTable(block *hcl.Block, mod *Mod, shortName string) *DashboardTable

func (*DashboardTable) AddParent

func (t *DashboardTable) AddParent(parent ModTreeItem) error

AddParent implements ModTreeItem

func (*DashboardTable) AddReference

func (t *DashboardTable) AddReference(ref *ResourceReference)

AddReference implements HclResource

func (*DashboardTable) CtyValue

func (t *DashboardTable) CtyValue() (cty.Value, error)

CtyValue implements HclResource

func (*DashboardTable) Diff

func (*DashboardTable) Equals

func (t *DashboardTable) Equals(other *DashboardTable) bool

func (*DashboardTable) GetArgs

func (t *DashboardTable) GetArgs() *QueryArgs

GetArgs implements QueryProvider

func (*DashboardTable) GetChildren

func (t *DashboardTable) GetChildren() []ModTreeItem

GetChildren implements ModTreeItem

func (*DashboardTable) GetDeclRange

func (t *DashboardTable) GetDeclRange() *hcl.Range

GetDeclRange implements HclResource

func (*DashboardTable) GetDescription

func (t *DashboardTable) GetDescription() string

GetDescription implements ModTreeItem

func (*DashboardTable) GetDisplay

func (t *DashboardTable) GetDisplay() string

GetDisplay implements DashboardLeafNode

func (*DashboardTable) GetDocumentation

func (*DashboardTable) GetDocumentation() string

GetDocumentation implements DashboardLeafNode

func (*DashboardTable) GetMod

func (t *DashboardTable) GetMod() *Mod

GetMod implements HclResource

func (*DashboardTable) GetParams

func (t *DashboardTable) GetParams() []*ParamDef

GetParams implements QueryProvider

func (*DashboardTable) GetParents

func (t *DashboardTable) GetParents() []ModTreeItem

GetParents implements ModTreeItem

func (*DashboardTable) GetPaths

func (t *DashboardTable) GetPaths() []NodePath

GetPaths implements ModTreeItem

func (*DashboardTable) GetPreparedStatementExecuteSQL

func (t *DashboardTable) GetPreparedStatementExecuteSQL(runtimeArgs *QueryArgs) (*ResolvedQuery, error)

GetPreparedStatementExecuteSQL implements QueryProvider

func (*DashboardTable) GetPreparedStatementName

func (t *DashboardTable) GetPreparedStatementName() string

GetPreparedStatementName implements QueryProvider

func (*DashboardTable) GetQuery

func (t *DashboardTable) GetQuery() *Query

GetQuery implements QueryProvider

func (*DashboardTable) GetReferences

func (t *DashboardTable) GetReferences() []*ResourceReference

GetReferences implements HclResource

func (*DashboardTable) GetSQL

func (t *DashboardTable) GetSQL() *string

GetSQL implements QueryProvider

func (*DashboardTable) GetTags

func (t *DashboardTable) GetTags() map[string]string

GetTags implements ModTreeItem

func (*DashboardTable) GetTitle

func (t *DashboardTable) GetTitle() string

GetTitle implements ModTreeItem, DashboardLeafNode

func (*DashboardTable) GetType

func (t *DashboardTable) GetType() string

GetType implements DashboardLeafNode

func (*DashboardTable) GetUnqualifiedName

func (t *DashboardTable) GetUnqualifiedName() string

GetUnqualifiedName implements DashboardLeafNode, ModTreeItem

func (*DashboardTable) GetWidth

func (t *DashboardTable) GetWidth() int

GetWidth implements DashboardLeafNode

func (*DashboardTable) Name

func (t *DashboardTable) Name() string

Name implements HclResource, ModTreeItem return name in format: 'table.<shortName>'

func (*DashboardTable) OnDecoded

func (t *DashboardTable) OnDecoded(_ *hcl.Block, resourceMapProvider ModResourcesProvider) hcl.Diagnostics

OnDecoded implements HclResource

func (*DashboardTable) SetArgs

func (t *DashboardTable) SetArgs(args *QueryArgs)

SetArgs implements QueryProvider

func (*DashboardTable) SetParams

func (t *DashboardTable) SetParams(params []*ParamDef)

SetParams implements QueryProvider

func (*DashboardTable) SetPaths

func (t *DashboardTable) SetPaths()

SetPaths implements ModTreeItem

type DashboardTableColumn

type DashboardTableColumn struct {
	Name    string  `hcl:"name,label" json:"name"`
	Display *string `cty:"display" hcl:"display" json:"display,omitempty"`
	Wrap    *string `cty:"wrap" hcl:"wrap" json:"wrap,omitempty"`
	HREF    *string `cty:"href" hcl:"href" json:"href,omitempty"`
}

func (DashboardTableColumn) Equals

type DashboardTableColumnList

type DashboardTableColumnList []*DashboardTableColumn

func (DashboardTableColumnList) Merge

type DashboardText

type DashboardText struct {
	ResourceWithMetadataBase

	FullName        string  `cty:"name" json:"-"`
	ShortName       string  `json:"-"`
	UnqualifiedName string  `json:"-"`
	Value           *string `cty:"value" hcl:"value" column:"value,text" json:"value,omitempty"`

	// these properties are JSON serialised by the parent LeafRun
	Title   *string `cty:"title" hcl:"title" column:"title,text" json:"-"`
	Width   *int    `cty:"width" hcl:"width" column:"width,text" json:"-"`
	Type    *string `cty:"type" hcl:"type" column:"type,text" json:"-"`
	Display *string `cty:"display" hcl:"display" json:"-"`

	Base       *DashboardText       `hcl:"base" json:"-"`
	DeclRange  hcl.Range            `json:"-"`
	References []*ResourceReference `json:"-"`
	Mod        *Mod                 `cty:"mod" json:"-"`
	Paths      []NodePath           `column:"path,jsonb" json:"-"`
	// contains filtered or unexported fields
}

DashboardText is a struct representing a leaf dashboard node

func NewDashboardText

func NewDashboardText(block *hcl.Block, mod *Mod, shortName string) *DashboardText

func (*DashboardText) AddParent

func (t *DashboardText) AddParent(parent ModTreeItem) error

AddParent implements ModTreeItem

func (*DashboardText) AddReference

func (t *DashboardText) AddReference(ref *ResourceReference)

AddReference implements HclResource

func (*DashboardText) CtyValue

func (t *DashboardText) CtyValue() (cty.Value, error)

CtyValue implements HclResource

func (*DashboardText) Diff

func (*DashboardText) Equals

func (t *DashboardText) Equals(other *DashboardText) bool

func (*DashboardText) GetChildren

func (t *DashboardText) GetChildren() []ModTreeItem

GetChildren implements ModTreeItem

func (*DashboardText) GetDeclRange

func (t *DashboardText) GetDeclRange() *hcl.Range

GetDeclRange implements HclResource

func (*DashboardText) GetDescription

func (t *DashboardText) GetDescription() string

GetDescription implements ModTreeItem

func (*DashboardText) GetDisplay

func (t *DashboardText) GetDisplay() string

GetDisplay implements DashboardLeafNode

func (*DashboardText) GetDocumentation

func (*DashboardText) GetDocumentation() string

GetDocumentation implements DashboardLeafNode

func (*DashboardText) GetMod

func (t *DashboardText) GetMod() *Mod

GetMod implements HclResource

func (*DashboardText) GetParents

func (t *DashboardText) GetParents() []ModTreeItem

GetParents implements ModTreeItem

func (*DashboardText) GetPaths

func (t *DashboardText) GetPaths() []NodePath

GetPaths implements ModTreeItem

func (*DashboardText) GetReferences

func (t *DashboardText) GetReferences() []*ResourceReference

GetReferences implements HclResource

func (*DashboardText) GetTags

func (t *DashboardText) GetTags() map[string]string

GetTags implements ModTreeItem

func (*DashboardText) GetTitle

func (t *DashboardText) GetTitle() string

GetTitle implements ModTreeItem

func (*DashboardText) GetType

func (t *DashboardText) GetType() string

GetType implements DashboardLeafNode

func (*DashboardText) GetUnqualifiedName

func (t *DashboardText) GetUnqualifiedName() string

GetUnqualifiedName implements DashboardLeafNode, ModTreeItem

func (*DashboardText) GetWidth

func (t *DashboardText) GetWidth() int

GetWidth implements DashboardLeafNode

func (*DashboardText) Name

func (t *DashboardText) Name() string

Name implements HclResource, ModTreeItem, DashboardLeafNode return name in format: 'text.<shortName>'

func (*DashboardText) OnDecoded

func (t *DashboardText) OnDecoded(*hcl.Block, ModResourcesProvider) hcl.Diagnostics

OnDecoded implements HclResource

func (*DashboardText) SetPaths

func (t *DashboardText) SetPaths()

SetPaths implements ModTreeItem

type DashboardTreeItemDiffs

type DashboardTreeItemDiffs struct {
	Name              string
	Item              ModTreeItem
	ChangedProperties []string
	AddedItems        []string
	RemovedItems      []string
}

DashboardTreeItemDiffs is a struct representing the differences between 2 DashboardTreeItems (of same type)

func (*DashboardTreeItemDiffs) AddAddedItem

func (d *DashboardTreeItemDiffs) AddAddedItem(name string)

func (*DashboardTreeItemDiffs) AddPropertyDiff

func (d *DashboardTreeItemDiffs) AddPropertyDiff(propertyName string)

func (*DashboardTreeItemDiffs) AddRemovedItem

func (d *DashboardTreeItemDiffs) AddRemovedItem(name string)

func (*DashboardTreeItemDiffs) HasChanges

func (d *DashboardTreeItemDiffs) HasChanges() bool

type HclResource

type HclResource interface {
	Name() string
	GetUnqualifiedName() string
	CtyValue() (cty.Value, error)
	OnDecoded(*hcl.Block, ModResourcesProvider) hcl.Diagnostics
	AddReference(ref *ResourceReference)
	GetReferences() []*ResourceReference
	GetDeclRange() *hcl.Range
}

HclResource must be implemented by resources defined in HCL

func GetResource

func GetResource(provider ModResourcesProvider, parsedName *ParsedResourceName) (resource HclResource, found bool)

GetResource tries to find a resource with the given name in the ModResourcesProvider NOTE: this does NOT support inputs, which are NOT uniquely named in a mod

type Local

type Local struct {
	ShortName       string
	FullName        string `cty:"name"`
	UnqualifiedName string

	Value     cty.Value
	DeclRange hcl.Range
	Mod       *Mod `cty:"mod"`

	Paths []NodePath `column:"path,jsonb"`
	// contains filtered or unexported fields
}

Local is a struct representing a Local resource

func NewLocal

func NewLocal(name string, val cty.Value, declRange hcl.Range, mod *Mod) *Local

func (*Local) AddParent

func (l *Local) AddParent(parent ModTreeItem) error

AddParent implements ModTreeItem

func (*Local) AddReference

func (l *Local) AddReference(*ResourceReference)

AddReference implements HclResource

func (*Local) CtyValue

func (l *Local) CtyValue() (cty.Value, error)

CtyValue implements HclResource

func (*Local) Diff

func (l *Local) Diff(other *Local) *DashboardTreeItemDiffs

func (*Local) GetChildren

func (l *Local) GetChildren() []ModTreeItem

GetChildren implements ModTreeItem

func (*Local) GetDeclRange

func (l *Local) GetDeclRange() *hcl.Range

GetDeclRange implements HclResource

func (*Local) GetDescription

func (l *Local) GetDescription() string

GetDescription implements ModTreeItem

func (*Local) GetMod

func (l *Local) GetMod() *Mod

GetMod implements HclResource

func (*Local) GetParents

func (l *Local) GetParents() []ModTreeItem

GetParents implements ModTreeItem

func (*Local) GetPaths

func (l *Local) GetPaths() []NodePath

GetPaths implements ModTreeItem

func (*Local) GetReferences

func (l *Local) GetReferences() []*ResourceReference

GetReferences implements HclResource

func (*Local) GetTags

func (l *Local) GetTags() map[string]string

GetTags implements ModTreeItem

func (*Local) GetTitle

func (l *Local) GetTitle() string

GetTitle implements ModTreeItem

func (*Local) GetUnqualifiedName

func (l *Local) GetUnqualifiedName() string

GetUnqualifiedName implements DashboardLeafNode, ModTreeItem

func (*Local) Name

func (l *Local) Name() string

Name implements HclResource, ResourceWithMetadata

func (*Local) OnDecoded

func (l *Local) OnDecoded(block *hcl.Block, resourceMapProvider ModResourcesProvider) hcl.Diagnostics

OnDecoded implements HclResource

func (*Local) SetPaths

func (l *Local) SetPaths()

SetPaths implements ModTreeItem

type MappableResource

type MappableResource interface {
	// InitialiseFromFile creates a mappable resource from a file path
	// It returns the resource, and the raw file data
	InitialiseFromFile(modPath, filePath string) (MappableResource, []byte, error)
	Name() string
	GetUnqualifiedName() string
	GetMetadata() *ResourceMetadata
	SetMetadata(*ResourceMetadata)
	GetDeclRange() *hcl.Range
}

MappableResource must be implemented by resources which can be created directly from a content file (e.g. sql, markdown)

func QueryFromFile

func QueryFromFile(modPath, filePath string, mod *Mod) (MappableResource, []byte, error)

type MissingVariableError

type MissingVariableError struct {
	MissingVariables []*Variable
}

func (MissingVariableError) Error

func (m MissingVariableError) Error() string

type Mod

type Mod struct {
	ResourceWithMetadataBase

	// ShortName is the mod name, e.g. azure_thrifty
	ShortName string `cty:"short_name" hcl:"name,label"`
	// FullName is the mod name prefixed with 'mod', e.g. mod.azure_thrifty
	FullName string `cty:"name"`
	// ModDependencyPath is the fully qualified mod name, which can be used to 'require'  the mod,
	// e.g. github.com/turbot/steampipe-mod-azure-thrifty
	// This is only set if the mod is installed as a dependency
	ModDependencyPath string `cty:"mod_dependency_path"`

	// attributes
	Categories    []string          `cty:"categories" hcl:"categories,optional" column:"categories,jsonb"`
	Color         *string           `cty:"color" hcl:"color" column:"color,text"`
	Description   *string           `cty:"description" hcl:"description" column:"description,text"`
	Documentation *string           `cty:"documentation" hcl:"documentation" column:"documentation,text"`
	Icon          *string           `cty:"icon" hcl:"icon" column:"icon,text"`
	Tags          map[string]string `cty:"tags" hcl:"tags,optional" column:"tags,jsonb"`
	Title         *string           `cty:"title" hcl:"title" column:"title,text"`

	// blocks
	Require       *Require
	LegacyRequire *Require   `hcl:"requires,block"`
	OpenGraph     *OpenGraph `hcl:"opengraph,block" column:"open_graph,jsonb"`

	VersionString string `cty:"version"`
	Version       *semver.Version

	// ModPath is the installation location of the mod
	ModPath   string
	DeclRange hcl.Range

	// convenient aggregation of all resources
	// NOTE: this resource map object references the same set of resources
	ResourceMaps *ModResources
	// contains filtered or unexported fields
}

Mod is a struct representing a Mod resource

func CreateDefaultMod

func CreateDefaultMod(modPath string) *Mod

CreateDefaultMod creates a default mod created for a workspace with no mod definition

func NewMod

func NewMod(shortName, modPath string, defRange hcl.Range) *Mod

func (*Mod) AddChild

func (m *Mod) AddChild(child ModTreeItem) error

AddChild implements ModTreeItem

func (*Mod) AddModDependencies

func (m *Mod) AddModDependencies(modVersions map[string]*ModVersionConstraint)

func (*Mod) AddParent

func (m *Mod) AddParent(ModTreeItem) error

AddParent implements ModTreeItem

func (*Mod) AddReference

func (m *Mod) AddReference(ref *ResourceReference)

AddReference implements HclResource

func (*Mod) AddResource

func (m *Mod) AddResource(item HclResource) hcl.Diagnostics

func (*Mod) BuildResourceTree

func (m *Mod) BuildResourceTree(loadedDependencyMods ModMap) (err error)

BuildResourceTree builds the control tree structure by setting the parent property for each control and benchmark NOTE: this also builds the sorted benchmark list

func (*Mod) CtyValue

func (m *Mod) CtyValue() (cty.Value, error)

CtyValue implements HclResource

func (*Mod) Equals

func (m *Mod) Equals(other *Mod) bool

func (*Mod) GetChildren

func (m *Mod) GetChildren() []ModTreeItem

GetChildren implements ModTreeItem

func (*Mod) GetDeclRange

func (m *Mod) GetDeclRange() *hcl.Range

GetDeclRange implements HclResource

func (*Mod) GetDescription

func (m *Mod) GetDescription() string

GetDescription implements ModTreeItem

func (*Mod) GetMod

func (m *Mod) GetMod() *Mod

GetMod implements HclResource

func (*Mod) GetModDependency

func (m *Mod) GetModDependency(modName string) *ModVersionConstraint

func (*Mod) GetModDependencyPath

func (m *Mod) GetModDependencyPath() string

GetModDependencyPath ModDependencyPath if it is set. If not it returns NameWithVersion()

func (*Mod) GetParents

func (m *Mod) GetParents() []ModTreeItem

GetParents implements ModTreeItem

func (*Mod) GetPaths

func (m *Mod) GetPaths() []NodePath

GetPaths implements ModTreeItem

func (*Mod) GetReferences

func (m *Mod) GetReferences() []*ResourceReference

GetReferences implements HclResource

func (*Mod) GetResourceMaps

func (m *Mod) GetResourceMaps() *ModResources

GetResourceMaps implements ModResourcesProvider

func (*Mod) GetTags

func (m *Mod) GetTags() map[string]string

GetTags implements ModTreeItem

func (*Mod) GetTitle

func (m *Mod) GetTitle() string

GetTitle implements ModTreeItem

func (*Mod) GetUnqualifiedName

func (m *Mod) GetUnqualifiedName() string

GetUnqualifiedName implements ModTreeItem

func (*Mod) HasDependentMods

func (m *Mod) HasDependentMods() bool

func (*Mod) IsDefaultMod

func (m *Mod) IsDefaultMod() bool

IsDefaultMod returns whether this mod is a default mod created for a workspace with no mod definition

func (*Mod) Name

func (m *Mod) Name() string

Name implements ModTreeItem, HclResource

func (*Mod) NameWithVersion

func (m *Mod) NameWithVersion() string

func (*Mod) OnDecoded

func (m *Mod) OnDecoded(block *hcl.Block, resourceMapProvider ModResourcesProvider) hcl.Diagnostics

OnDecoded implements HclResource

func (*Mod) RemoveAllModDependencies

func (m *Mod) RemoveAllModDependencies()

func (*Mod) RemoveModDependencies

func (m *Mod) RemoveModDependencies(modVersions map[string]*ModVersionConstraint)

func (*Mod) Save

func (m *Mod) Save() error

func (*Mod) SetFilePath

func (m *Mod) SetFilePath(modFilePath string)

func (*Mod) SetPaths

func (m *Mod) SetPaths()

SetPaths implements ModTreeItem

func (*Mod) ValidateSteampipeVersion

func (m *Mod) ValidateSteampipeVersion() error

func (*Mod) WalkResources

func (m *Mod) WalkResources(resourceFunc func(item HclResource) (bool, error)) error

type ModMap

type ModMap map[string]*Mod

ModMap is a map of mod name to mod

type ModResources

type ModResources struct {
	// the parent mod
	Mod *Mod
	// all mods (including deps)
	Mods                  map[string]*Mod
	Queries               map[string]*Query
	Controls              map[string]*Control
	Benchmarks            map[string]*Benchmark
	Variables             map[string]*Variable
	Dashboards            map[string]*Dashboard
	DashboardContainers   map[string]*DashboardContainer
	DashboardCards        map[string]*DashboardCard
	DashboardCharts       map[string]*DashboardChart
	DashboardFlows        map[string]*DashboardFlow
	DashboardHierarchies  map[string]*DashboardHierarchy
	DashboardImages       map[string]*DashboardImage
	DashboardInputs       map[string]map[string]*DashboardInput
	GlobalDashboardInputs map[string]*DashboardInput
	DashboardTables       map[string]*DashboardTable
	DashboardTexts        map[string]*DashboardText
	References            map[string]*ResourceReference

	Locals          map[string]*Local
	LocalQueries    map[string]*Query
	LocalControls   map[string]*Control
	LocalBenchmarks map[string]*Benchmark
}

ModResources is a struct containing maps of all mod resource types This is provided to avoid db needing to reference workspace package

func CreateWorkspaceResourceMapForQueries

func CreateWorkspaceResourceMapForQueries(queryProviders []QueryProvider, mod *Mod) *ModResources

func NewWorkspaceResourceMaps

func NewWorkspaceResourceMaps(mod *Mod) *ModResources

func (*ModResources) AddResource

func (m *ModResources) AddResource(item HclResource) hcl.Diagnostics

func (*ModResources) Empty

func (m *ModResources) Empty() bool

func (*ModResources) Equals

func (m *ModResources) Equals(other *ModResources) bool

func (*ModResources) Merge

func (m *ModResources) Merge(others []*ModResources) *ModResources

func (*ModResources) PopulateReferences

func (m *ModResources) PopulateReferences()

func (*ModResources) QueryProviders

func (m *ModResources) QueryProviders() []QueryProvider

func (*ModResources) WalkResources

func (m *ModResources) WalkResources(resourceFunc func(item HclResource) (bool, error)) error

WalkResources calls resourceFunc for every resource in the mod if any resourceFunc returns false or an error, return immediately

type ModResourcesProvider

type ModResourcesProvider interface {
	GetResourceMaps() *ModResources
}

type ModTreeItem

type ModTreeItem interface {
	AddParent(ModTreeItem) error
	GetParents() []ModTreeItem
	GetChildren() []ModTreeItem
	Name() string
	GetUnqualifiedName() string
	GetTitle() string
	GetDescription() string
	GetTags() map[string]string
	// GetPaths returns an array resource paths
	GetPaths() []NodePath
	SetPaths()
	GetMod() *Mod
}

ModTreeItem must be implemented by elements of the mod resource hierarchy i.e. Control, Benchmark, Dashboard

type ModVariableMap

type ModVariableMap struct {
	RootVariables       map[string]*Variable
	DependencyVariables map[string]map[string]*Variable
	// a map of top level AND dependency variables
	// used to set variable values from inputVariables
	AllVariables map[string]*Variable
	// the input variables evaluated in the parse
	VariableValues map[string]string
}

ModVariableMap is a struct containins maps of variable definitions

func NewModVariableMap

func NewModVariableMap(mod *Mod, dependencyMods ModMap) *ModVariableMap

NewModVariableMap builds a ModVariableMap using the variables from a mod and its dependencies

func (ModVariableMap) ToArray

func (m ModVariableMap) ToArray() []*Variable

type ModVersionConstraint

type ModVersionConstraint struct {
	// the fully qualified mod name, e.g. github.com/turbot/mod1
	Name          string `cty:"name" hcl:"name,label"`
	VersionString string `cty:"version" hcl:"version"`
	// variable values to be set on the dependency mod
	Args map[string]cty.Value `cty:"args"`
	// only one of Constraint, Branch and FilePath will be set
	Constraint *versionhelpers.Constraints
	// // NOTE: aliases will be supported in the future
	//Alias string `cty:"alias" hcl:"alias"`
	// the branch to use
	Branch string
	// the local file location to use
	FilePath  string
	DeclRange hcl.Range
}

func NewModVersionConstraint

func NewModVersionConstraint(modFullName string) (*ModVersionConstraint, error)

func (*ModVersionConstraint) Equals

func (*ModVersionConstraint) FullName

func (m *ModVersionConstraint) FullName() string

func (*ModVersionConstraint) HasVersion

func (m *ModVersionConstraint) HasVersion() bool

HasVersion returns whether the mod has a version specified, or is the latest if no version is specified, or the version is "latest", this is the latest version

func (*ModVersionConstraint) Initialise

func (m *ModVersionConstraint) Initialise() hcl.Diagnostics

Initialise parses the version and name properties

func (*ModVersionConstraint) String

func (m *ModVersionConstraint) String() string

type ModVersionConstraintCollection

type ModVersionConstraintCollection []*ModVersionConstraint

ModVersionConstraintCollection is a collection of ModVersionConstraint instances and implements the sort interface. See the sort package for more details. https://golang.org/pkg/sort/

func (ModVersionConstraintCollection) Len

Len returns the length of a collection. The number of Version instances on the slice.

func (ModVersionConstraintCollection) Less

Less is needed for the sort interface to compare two Version objects on the slice. If checks if one is less than the other.

func (ModVersionConstraintCollection) Swap

func (c ModVersionConstraintCollection) Swap(i, j int)

Swap is needed for the sort interface to replace the Version objects at two different positions in the slice.

type NamedItem

type NamedItem struct {
	Name string `cty:"name"`
}

NamedItem is a struct used by benchmark, container and dashboard to specify children of different types

func (NamedItem) String

func (c NamedItem) String() string

type NamedItemList

type NamedItemList []NamedItem

func (NamedItemList) StringList

func (l NamedItemList) StringList() []string

type NodePath

type NodePath []string

NodePath is a string array representing the parentage of a ModTreeItem

type OpenGraph

type OpenGraph struct {
	// The opengraph description (og:description) of the mod, for use in social media applications
	Description *string `cty:"description" hcl:"description" json:"description"`
	// The opengraph display title (og:title) of the mod, for use in social media applications.
	Title     *string   `cty:"title" hcl:"title" json:"title"`
	Image     *string   `cty:"image" hcl:"image" json:"image"`
	DeclRange hcl.Range `json:"-"`
}

OpenGraph is a struct representing the OpenGraph group mod resource

type ParamDef

type ParamDef struct {
	Name        string      `cty:"name" json:"name"`
	FullName    string      `cty:"full_name" json:"-"`
	Description *string     `cty:"description" json:"description"`
	RawDefault  interface{} `json:"-"`
	Default     *string     `cty:"default" json:"default"`

	// list of all blocks referenced by the resource
	References []*ResourceReference `json:"-"`
	DeclRange  hcl.Range            `json:"-"`
}

func NewParamDef

func NewParamDef(block *hcl.Block) *ParamDef

func (ParamDef) Equals

func (p ParamDef) Equals(other *ParamDef) bool

func (ParamDef) String

func (p ParamDef) String() string

type ParsedPropertyPath

type ParsedPropertyPath struct {
	Mod          string
	ItemType     string
	Name         string
	PropertyPath []string
	// optional scope of this property path ("root or parent")
	Scope string
	// contains filtered or unexported fields
}

func ParseResourcePropertyPath

func ParseResourcePropertyPath(propertyPath string) (res *ParsedPropertyPath, err error)

func (*ParsedPropertyPath) PropertyPathString

func (p *ParsedPropertyPath) PropertyPathString() string

func (*ParsedPropertyPath) String

func (p *ParsedPropertyPath) String() string

func (*ParsedPropertyPath) ToParsedResourceName

func (p *ParsedPropertyPath) ToParsedResourceName() *ParsedResourceName

func (*ParsedPropertyPath) ToResourceName

func (p *ParsedPropertyPath) ToResourceName() string

type ParsedResourceName

type ParsedResourceName struct {
	Mod      string
	ItemType string
	Name     string
}

func ParseResourceName

func ParseResourceName(fullName string) (res *ParsedResourceName, err error)

func (*ParsedResourceName) ToResourceName

func (p *ParsedResourceName) ToResourceName() string

type PluginVersion

type PluginVersion struct {
	// the plugin name, as specified in the mod requires block. , e.g. turbot/mod1, aws
	RawName string `cty:"name" hcl:"name,label"`
	// the version STREAM, can be either a major or minor version stream i.e. 1 or 1.1
	VersionString string `cty:"version" hcl:"version,optional"`
	Version       *semver.Version
	// the org and name which are parsed from the raw name
	Org       string
	Name      string
	DeclRange hcl.Range `json:"-"`
}

func (*PluginVersion) FullName

func (p *PluginVersion) FullName() string

func (*PluginVersion) Initialise

func (p *PluginVersion) Initialise() hcl.Diagnostics

Initialise parses the version and name properties

func (*PluginVersion) ShortName

func (p *PluginVersion) ShortName() string

func (*PluginVersion) String

func (p *PluginVersion) String() string

type Pos

type Pos struct {
	Line   int `json:"line"`
	Column int `json:"column"`
	Byte   int `json:"byte"`
}

Pos represents a single position in a source file This is a direct re-implementation of hcl.Pos, allowing us to control JSON serialization

func NewPos

func NewPos(sourcePos hcl.Pos) Pos

func (Pos) GetLegacy

func (r Pos) GetLegacy() hcl.Pos

type Query

type Query struct {
	ResourceWithMetadataBase
	QueryProviderBase

	// required to allow partial decoding
	Remain hcl.Body `hcl:",remain" json:"-"`

	ShortName string `cty:"short_name" json:"name"`
	FullName  string `cty:"name" json:"-"`

	Description           *string           `cty:"description" hcl:"description" column:"description,text" json:"description,omitempty"`
	Documentation         *string           `cty:"documentation" hcl:"documentation" column:"documentation,text" json:"documentation,omitempty"`
	SearchPath            *string           `cty:"search_path" hcl:"search_path" column:"search_path,text" json:"seatch_path,omitempty"`
	SearchPathPrefix      *string           `cty:"search_path_prefix" hcl:"search_path_prefix" column:"search_path_prefix,text" json:"search_path_prefix,omitempty"`
	Tags                  map[string]string `cty:"tags" hcl:"tags,optional" column:"tags,jsonb" json:"-"`
	Title                 *string           `cty:"title" hcl:"title" column:"title,text" json:"tags,omitempty"`
	PreparedStatementName string            `column:"prepared_statement_name,text" json:"-"`
	SQL                   *string           `cty:"sql" hcl:"sql" column:"sql,text" json:"sql"`

	Params []*ParamDef `cty:"params" column:"params,jsonb" json:"params,omitempty"`
	// list of all blocks referenced by the resource
	References []*ResourceReference ` json:"-"`

	Mod       *Mod      `cty:"mod" json:"-"`
	DeclRange hcl.Range `json:"-"`

	UnqualifiedName string     `json:"-"`
	Paths           []NodePath `column:"path,jsonb" json:"-"`
	// contains filtered or unexported fields
}

Query is a struct representing the Query resource

func NewQuery

func NewQuery(block *hcl.Block, mod *Mod, shortName string) *Query

func (*Query) AddParent

func (q *Query) AddParent(parent ModTreeItem) error

AddParent implements ModTreeItem

func (*Query) AddReference

func (q *Query) AddReference(ref *ResourceReference)

AddReference implements HclResource

func (*Query) CtyValue

func (q *Query) CtyValue() (cty.Value, error)

func (*Query) Diff

func (q *Query) Diff(other *Query) *DashboardTreeItemDiffs

func (*Query) Equals

func (q *Query) Equals(other *Query) bool

func (*Query) GetArgs

func (q *Query) GetArgs() *QueryArgs

GetArgs implements QueryProvider

func (*Query) GetChildren

func (q *Query) GetChildren() []ModTreeItem

GetChildren implements ModTreeItem

func (*Query) GetDeclRange

func (q *Query) GetDeclRange() *hcl.Range

GetDeclRange implements HclResource

func (*Query) GetDescription

func (q *Query) GetDescription() string

GetDescription implements ModTreeItem

func (*Query) GetMod

func (q *Query) GetMod() *Mod

GetMod implements HclResource

func (*Query) GetParams

func (q *Query) GetParams() []*ParamDef

GetParams implements QueryProvider

func (*Query) GetParents

func (q *Query) GetParents() []ModTreeItem

GetParents implements ModTreeItem

func (*Query) GetPaths

func (q *Query) GetPaths() []NodePath

GetPaths implements ModTreeItem

func (*Query) GetPreparedStatementExecuteSQL

func (q *Query) GetPreparedStatementExecuteSQL(runtimeArgs *QueryArgs) (*ResolvedQuery, error)

GetPreparedStatementExecuteSQL implements QueryProvider

func (*Query) GetPreparedStatementName

func (q *Query) GetPreparedStatementName() string

GetPreparedStatementName implements QueryProvider

func (*Query) GetQuery

func (q *Query) GetQuery() *Query

GetQuery implements QueryProvider

func (*Query) GetReferences

func (q *Query) GetReferences() []*ResourceReference

GetReferences implements HclResource

func (*Query) GetSQL

func (q *Query) GetSQL() *string

GetSQL implements QueryProvider

func (*Query) GetTags

func (q *Query) GetTags() map[string]string

GetTags implements ModTreeItem

func (*Query) GetTitle

func (q *Query) GetTitle() string

GetTitle implements ModTreeItem

func (*Query) GetUnqualifiedName

func (q *Query) GetUnqualifiedName() string

GetUnqualifiedName implements DashboardLeafNode, ModTreeItem

func (*Query) InitialiseFromFile

func (q *Query) InitialiseFromFile(modPath, filePath string) (MappableResource, []byte, error)

InitialiseFromFile implements MappableResource

func (*Query) Name

func (q *Query) Name() string

Name implements MappableResource, HclResource

func (*Query) OnDecoded

func (q *Query) OnDecoded(*hcl.Block, ModResourcesProvider) hcl.Diagnostics

OnDecoded implements HclResource

func (*Query) SetArgs

func (q *Query) SetArgs(args *QueryArgs)

SetArgs implements QueryProvider

func (*Query) SetParams

func (q *Query) SetParams(params []*ParamDef)

SetParams implements QueryProvider

func (*Query) SetPaths

func (q *Query) SetPaths()

SetPaths implements ModTreeItem

func (*Query) String

func (q *Query) String() string

type QueryArgs

type QueryArgs struct {
	ArgMap map[string]string `cty:"args" json:"args,omitempty"`
	// args list may be sparsely populated (in case of runtime dependencies)
	// so use *string
	ArgList    []*string            `cty:"args_list" json:"args_list"`
	References []*ResourceReference `cty:"refs" json:"refs"`
}

QueryArgs is a struct which contains the arguments used to invoke a prepared statement these may either be passed by name, in a map, or as a list of positional args NOTE: if both are present the named parameters are used

func MergeArgs

func MergeArgs(queryProvider QueryProvider, runtimeArgs *QueryArgs) (*QueryArgs, error)

MergeArgs ensures base and runtime args are non nil and merges them into single args

func NewQueryArgs

func NewQueryArgs() *QueryArgs

func (*QueryArgs) ArgsStringList

func (q *QueryArgs) ArgsStringList() []string

ArgsStringList convert ArgLists into list of strings

func (*QueryArgs) Empty

func (q *QueryArgs) Empty() bool

func (*QueryArgs) Equals

func (q *QueryArgs) Equals(other *QueryArgs) bool

func (*QueryArgs) Merge

func (q *QueryArgs) Merge(other *QueryArgs, source QueryProvider) (*QueryArgs, error)

Merge merges the other args with ourselves NOTE: other has precedence

func (*QueryArgs) String

func (q *QueryArgs) String() string

func (*QueryArgs) Validate

func (q *QueryArgs) Validate() error

type QueryProvider

type QueryProvider interface {
	Name() string
	GetArgs() *QueryArgs
	GetParams() []*ParamDef
	GetSQL() *string
	GetQuery() *Query
	SetArgs(*QueryArgs)
	SetParams([]*ParamDef)
	GetPreparedStatementName() string
	GetPreparedStatementExecuteSQL(*QueryArgs) (*ResolvedQuery, error)
	// implemented by QueryProviderBase
	AddRuntimeDependencies([]*RuntimeDependency)
	GetRuntimeDependencies() map[string]*RuntimeDependency
	RequiresExecution(QueryProvider) bool
	VerifyQuery(QueryProvider) error
}

QueryProvider must be implemented by resources which supports prepared statements, i.e. Control and Query

type QueryProviderBase

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

func (*QueryProviderBase) AddRuntimeDependencies

func (b *QueryProviderBase) AddRuntimeDependencies(dependencies []*RuntimeDependency)

func (*QueryProviderBase) GetRuntimeDependencies

func (b *QueryProviderBase) GetRuntimeDependencies() map[string]*RuntimeDependency

func (*QueryProviderBase) MergeRuntimeDependencies

func (b *QueryProviderBase) MergeRuntimeDependencies(other QueryProvider)

func (*QueryProviderBase) RequiresExecution

func (b *QueryProviderBase) RequiresExecution(queryProvider QueryProvider) bool

func (*QueryProviderBase) VerifyQuery

func (b *QueryProviderBase) VerifyQuery(queryProvider QueryProvider) error

VerifyQuery returns an error if neither sql or query are set it is overidden by resource types for which sql is optional

type Range

type Range struct {
	// Filename is the name of the file into which this range's positions point.
	Filename string `json:"filename,omitempty"`

	// Start and End represent the bounds of this range. Start is inclusive and End is exclusive.
	Start Pos `json:"start,omitempty"`
	End   Pos `json:"end,omitempty"`
}

Range represents a span of characters between two positions in a source file. This is a direct re-implementation of hcl.Range, allowing us to control JSON serialization

func NewRange

func NewRange(sourceRange hcl.Range) Range

func (Range) GetLegacy

func (r Range) GetLegacy() hcl.Range

type Require

type Require struct {
	SteampipeVersion       *semver.Version
	SteampipeVersionString string           `hcl:"steampipe,optional"`
	Plugins                []*PluginVersion `hcl:"plugin,block"`
	Mods                   []*ModVersionConstraint
	DeclRange              hcl.Range
	// contains filtered or unexported fields
}

Require is a struct representing mod dependencies

func NewRequire

func NewRequire() *Require

func (*Require) AddModDependencies

func (r *Require) AddModDependencies(newModVersions map[string]*ModVersionConstraint)

AddModDependencies adds all the mod in newModVersions to our list of mods, using the following logic - if a mod with same name, [alias] and constraint exists, it is not added - if a mod with same name [and alias] and different constraint exist, it is replaced

func (*Require) ContainsMod

func (r *Require) ContainsMod(requiredModVersion *ModVersionConstraint) bool

func (*Require) Empty

func (r *Require) Empty() bool

func (*Require) GetModDependency

func (r *Require) GetModDependency(name string) *ModVersionConstraint

func (*Require) RemoveAllModDependencies

func (r *Require) RemoveAllModDependencies()

func (*Require) RemoveModDependencies

func (r *Require) RemoveModDependencies(versions map[string]*ModVersionConstraint)

func (*Require) ValidateSteampipeVersion

func (r *Require) ValidateSteampipeVersion(modName string) error

type ResolvedQuery

type ResolvedQuery struct {
	ExecuteSQL string
	RawSQL     string
	Args       []string
	Params     []*ParamDef
}

ResolvedQuery contains the execute SQL, raw SQL and args string used to execute a query

type ResourceDependency

type ResourceDependency struct {
	Range      hcl.Range
	Traversals []hcl.Traversal
}

func (*ResourceDependency) IsRuntimeDependency

func (d *ResourceDependency) IsRuntimeDependency() bool

func (*ResourceDependency) String

func (d *ResourceDependency) String() string

type ResourceMetadata

type ResourceMetadata struct {
	ResourceName string `column:"resource_name,text"`
	// mod short name
	ModName          string `column:"mod_name,text"`
	FileName         string `column:"file_name,text"`
	StartLineNumber  int    `column:"start_line_number,integer"`
	EndLineNumber    int    `column:"end_line_number,integer"`
	IsAutoGenerated  bool   `column:"auto_generated,bool"`
	SourceDefinition string `column:"source_definition,text"`
	ModFullName      string
	Anonymous        bool `column:"is_anonymous,bool"`
}

ResourceMetadata ius a struct containing additional data about each resource, used to populate the introspection tables

func (*ResourceMetadata) SetMod

func (m *ResourceMetadata) SetMod(mod *Mod)

SetMod sets the mod name and mod short name

type ResourceReference

type ResourceReference struct {
	ResourceWithMetadataBase

	To        string `cty:"reference_to" column:"reference_to,text"`
	From      string `cty:"reference_from" column:"reference_from,text"`
	BlockType string `cty:"from_block_type" column:"from_block_type,text"`
	BlockName string `cty:"from_block_name" column:"from_block_name,text"`
	Attribute string `cty:"from_attribute" column:"from_attribute,text"`
}

func (*ResourceReference) Equals

func (r *ResourceReference) Equals(other *ResourceReference) bool

func (*ResourceReference) Name

func (r *ResourceReference) Name() string

Name implements ResourceWithMetadata the name must start with the 'resource type' as we parse it and use just the 'name' segment

func (*ResourceReference) String

func (r *ResourceReference) String() string

type ResourceReferenceMap

type ResourceReferenceMap map[string][]*ResourceReference

ResourceReferenceMap is a map of references keyed by 'ref' This is to handle the same reference being made more than once by a resource for example the reference var.v1 might be referenced several times

func (ResourceReferenceMap) Add

func (m ResourceReferenceMap) Add(reference *ResourceReference)

type ResourceWithMetadata

type ResourceWithMetadata interface {
	Name() string
	GetMetadata() *ResourceMetadata
	SetMetadata(metadata *ResourceMetadata)
	SetAnonymous(block *hcl.Block)
	IsAnonymous() bool
}

ResourceWithMetadata must be implemented by resources which supports reflection metadata

type ResourceWithMetadataBase

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

func (*ResourceWithMetadataBase) GetMetadata

func (b *ResourceWithMetadataBase) GetMetadata() *ResourceMetadata

GetMetadata implements ResourceWithMetadata

func (*ResourceWithMetadataBase) IsAnonymous

func (b *ResourceWithMetadataBase) IsAnonymous() bool

IsAnonymous implements ResourceWithMetadata

func (*ResourceWithMetadataBase) SetAnonymous

func (b *ResourceWithMetadataBase) SetAnonymous(block *hcl.Block)

SetAnonymous implements ResourceWithMetadata

func (*ResourceWithMetadataBase) SetMetadata

func (b *ResourceWithMetadataBase) SetMetadata(metadata *ResourceMetadata)

SetMetadata implements ResourceWithMetadata

type RuntimeDependency

type RuntimeDependency struct {
	PropertyPath   *ParsedPropertyPath
	SourceResource HclResource
	ArgName        *string
	ArgIndex       *int
}

func (*RuntimeDependency) Equals

func (d *RuntimeDependency) Equals(other *RuntimeDependency) bool

func (*RuntimeDependency) ResolveSource

func (d *RuntimeDependency) ResolveSource(dashboard *Dashboard, workspace ModResourcesProvider) error

func (*RuntimeDependency) String

func (d *RuntimeDependency) String() string

type Variable

type Variable struct {
	ResourceWithMetadataBase

	ShortName string `json:"name"`
	FullName  string `column:"name,text" json:"-"`

	Description    string    `column:"description,text" json:"description"`
	Default        cty.Value `column:"default_value,jsonb" json:"-"`
	Type           cty.Type  `column:"var_type,text" json:"-"`
	DescriptionSet bool      ` json:"-"`

	TypeString string      `json:"type"`
	DefaultGo  interface{} `json:"value_default"`
	ValueGo    interface{} `json:"value"`
	ModName    string      `json:"mod_name"`

	// set after value resolution `column:"value,jsonb"`
	Value                      cty.Value                      `column:"value,jsonb" json:"-"`
	ValueSourceType            string                         `column:"value_source,text" json:"-"`
	ValueSourceFileName        string                         `column:"value_source_file_name,text" json:"-"`
	ValueSourceStartLineNumber int                            `column:"value_source_start_line_number,integer" json:"-"`
	ValueSourceEndLineNumber   int                            `column:"value_source_end_line_number,integer" json:"-"`
	DeclRange                  hcl.Range                      `json:"-"`
	ParsingMode                var_config.VariableParsingMode `json:"-"`
	Mod                        *Mod                           `json:"-"`
	UnqualifiedName            string                         `json:"-"`
	Paths                      []NodePath                     `column:"path,jsonb" json:"-"`
	// contains filtered or unexported fields
}

Variable is a struct representing a Variable resource

func NewVariable

func NewVariable(v *var_config.Variable, mod *Mod) *Variable

func (*Variable) AddParent

func (v *Variable) AddParent(parent ModTreeItem) error

AddParent implements ModTreeItem

func (*Variable) AddReference

func (v *Variable) AddReference(*ResourceReference)

AddReference implements HclResource

func (*Variable) CtyValue

func (v *Variable) CtyValue() (cty.Value, error)

CtyValue implements HclResource

func (*Variable) Diff

func (v *Variable) Diff(other *Variable) *DashboardTreeItemDiffs

func (*Variable) Equals

func (v *Variable) Equals(other *Variable) bool

func (*Variable) GetChildren

func (v *Variable) GetChildren() []ModTreeItem

GetChildren implements ModTreeItem

func (*Variable) GetDeclRange

func (v *Variable) GetDeclRange() *hcl.Range

GetDeclRange implements HclResource

func (*Variable) GetDescription

func (v *Variable) GetDescription() string

GetDescription implements ModTreeItem

func (*Variable) GetMod

func (v *Variable) GetMod() *Mod

GetMod implements HclResource

func (*Variable) GetParents

func (v *Variable) GetParents() []ModTreeItem

GetParents implements ModTreeItem

func (*Variable) GetPaths

func (v *Variable) GetPaths() []NodePath

GetPaths implements ModTreeItem

func (*Variable) GetReferences

func (v *Variable) GetReferences() []*ResourceReference

GetReferences implements HclResource

func (*Variable) GetTags

func (v *Variable) GetTags() map[string]string

GetTags implements ModTreeItem

func (*Variable) GetTitle

func (v *Variable) GetTitle() string

GetTitle implements ModTreeItem

func (*Variable) GetUnqualifiedName

func (v *Variable) GetUnqualifiedName() string

GetUnqualifiedName implements DashboardLeafNode, ModTreeItem

func (*Variable) Name

func (v *Variable) Name() string

Name implements HclResource, ResourceWithMetadata

func (*Variable) OnDecoded

func (v *Variable) OnDecoded(block *hcl.Block, resourceMapProvider ModResourcesProvider) hcl.Diagnostics

OnDecoded implements HclResource

func (*Variable) Required

func (v *Variable) Required() bool

Required returns true if this variable is required to be set by the caller, or false if there is a default value that will be used when it isn't set.

func (*Variable) SetInputValue

func (v *Variable) SetInputValue(value cty.Value, sourceType string, sourceRange tfdiags.SourceRange)

func (*Variable) SetPaths

func (v *Variable) SetPaths()

SetPaths implements ModTreeItem

type VariableValidationFailedError

type VariableValidationFailedError struct {
}

func (VariableValidationFailedError) Error

type VersionConstrainCollection

type VersionConstrainCollection []*ModVersionConstraint

type WorkspaceResources

type WorkspaceResources struct {
	Query     map[string]bool
	Control   map[string]bool
	Benchmark map[string]bool
}

WorkspaceResources is used exclusively for the query/check command completeion TODO to be refactored

func NewWorkspaceResources

func NewWorkspaceResources() *WorkspaceResources

func (*WorkspaceResources) GetSortedBenchmarksAndControlNames

func (w *WorkspaceResources) GetSortedBenchmarksAndControlNames() []string

GetSortedBenchmarksAndControlNames gives back a list of the benchmarks and controls in the current workspace. The list is sorted alphabetically - with the benchmarks first

func (*WorkspaceResources) GetSortedNamedQueryNames

func (w *WorkspaceResources) GetSortedNamedQueryNames() []string

func (*WorkspaceResources) Merge

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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