Documentation ¶
Index ¶
- Constants
- Variables
- func BuildModResourceName(blockType ModBlockType, name string) string
- func GetCtyTypes(item interface{}) map[string]cty.Type
- func PropertyPathToResourceName(propertyPath string) (string, error)
- func PseudoResourceNameFromPath(modPath, filePath string) (string, error)
- func RegisteredFileExtensions() []string
- type Benchmark
- func (b *Benchmark) AddChild(child ModTreeItem) error
- func (b *Benchmark) AddParent(parent ModTreeItem) error
- func (b *Benchmark) AddReference(reference string)
- func (b *Benchmark) CtyValue() (cty.Value, error)
- func (b *Benchmark) GetChildControls() []*Control
- func (b *Benchmark) GetChildren() []ModTreeItem
- func (b *Benchmark) GetDescription() string
- func (b *Benchmark) GetMetadata() *ResourceMetadata
- func (b *Benchmark) GetParents() []ModTreeItem
- func (b *Benchmark) GetPaths() []NodePath
- func (b *Benchmark) GetTags() map[string]string
- func (b *Benchmark) GetTitle() string
- func (b *Benchmark) Name() string
- func (b *Benchmark) OnDecoded(block *hcl.Block) hcl.Diagnostics
- func (b *Benchmark) QualifiedName() string
- func (b *Benchmark) SetMetadata(metadata *ResourceMetadata)
- func (b *Benchmark) String() string
- type Connection
- func (c *Connection) PopulateChildren(connectionMap map[string]*Connection)
- func (c *Connection) SetOptions(opts options.Options, block *hcl.Block) hcl.Diagnostics
- func (c *Connection) String() string
- func (c *Connection) Validate(connectionMap map[string]*Connection) []string
- func (c *Connection) ValidateAggregatorConnection(connectionMap map[string]*Connection) []string
- type Control
- func (c *Control) AddChild(child ModTreeItem) error
- func (c *Control) AddParent(parent ModTreeItem) error
- func (c *Control) AddReference(reference string)
- func (c *Control) CtyValue() (cty.Value, error)
- func (c *Control) GetChildren() []ModTreeItem
- func (c *Control) GetDescription() string
- func (c *Control) GetMetadata() *ResourceMetadata
- func (c *Control) GetParentNames() []string
- func (c *Control) GetParents() []ModTreeItem
- func (c *Control) GetPaths() []NodePath
- func (c *Control) GetTags() map[string]string
- func (c *Control) GetTitle() string
- func (c *Control) Name() string
- func (c *Control) OnDecoded(*hcl.Block) hcl.Diagnostics
- func (c *Control) QualifiedName() string
- func (c *Control) SetMetadata(metadata *ResourceMetadata)
- func (c *Control) String() string
- type HclResource
- type Local
- type MappableResource
- type Mod
- func (m *Mod) AddChild(child ModTreeItem) error
- func (m *Mod) AddParent(ModTreeItem) error
- func (m *Mod) AddPseudoResource(resource MappableResource)
- func (m *Mod) AddReference(reference string)
- func (m *Mod) AddResource(item HclResource, block *hcl.Block) hcl.Diagnostics
- func (m *Mod) BuildResourceTree() error
- func (m *Mod) CtyValue() (cty.Value, error)
- func (m *Mod) GetChildControls() []*Control
- func (m *Mod) GetChildren() []ModTreeItem
- func (m *Mod) GetDescription() string
- func (m *Mod) GetMetadata() *ResourceMetadata
- func (m *Mod) GetParents() []ModTreeItem
- func (m *Mod) GetPaths() []NodePath
- func (m *Mod) GetTags() map[string]string
- func (m *Mod) GetTitle() string
- func (m *Mod) IsDefaultMod() bool
- func (m *Mod) Name() string
- func (m *Mod) OnDecoded(*hcl.Block) hcl.Diagnostics
- func (m *Mod) ParseRequiredPluginVersions() error
- func (m *Mod) SetMetadata(metadata *ResourceMetadata)
- func (m *Mod) String() string
- type ModBlockType
- type ModMap
- type ModTreeItem
- type ModVersion
- type NamedItem
- type NodePath
- type OpenGraph
- type Panel
- func (p *Panel) AddChild(child ModTreeItem) error
- func (p *Panel) AddParent(parent ModTreeItem) error
- func (p *Panel) AddReference(reference string)
- func (p *Panel) CtyValue() (cty.Value, error)
- func (p *Panel) Diff(new *Panel) *ReportTreeItemDiffs
- func (p *Panel) GetChildren() []ModTreeItem
- func (p *Panel) GetDescription() string
- func (p *Panel) GetMetadata() *ResourceMetadata
- func (p *Panel) GetParents() []ModTreeItem
- func (p *Panel) GetPaths() []NodePath
- func (p *Panel) GetTags() map[string]string
- func (p *Panel) GetTitle() string
- func (p *Panel) InitialiseFromFile(modPath, filePath string) (MappableResource, []byte, error)
- func (p *Panel) Name() string
- func (p *Panel) OnDecoded(*hcl.Block) hcl.Diagnostics
- func (p *Panel) QualifiedName() string
- func (p *Panel) SetMetadata(metadata *ResourceMetadata)
- type ParsedPropertyPath
- type ParsedResourceName
- type PluginVersion
- type Query
- func (q *Query) AddReference(reference string)
- func (q *Query) CtyValue() (cty.Value, error)
- func (q *Query) GetMetadata() *ResourceMetadata
- func (q *Query) InitialiseFromFile(modPath, filePath string) (MappableResource, []byte, error)
- func (q *Query) Name() string
- func (q *Query) OnDecoded(*hcl.Block) hcl.Diagnostics
- func (q *Query) QualifiedName() string
- func (q *Query) SetMetadata(metadata *ResourceMetadata)
- func (q *Query) String() string
- type Report
- func (r *Report) AddChild(child ModTreeItem) error
- func (r *Report) AddParent(parent ModTreeItem) error
- func (r *Report) AddReference(reference string)
- func (r *Report) CtyValue() (cty.Value, error)
- func (r *Report) Diff(new *Report) *ReportTreeItemDiffs
- func (r *Report) GetChildren() []ModTreeItem
- func (r *Report) GetDescription() string
- func (r *Report) GetMetadata() *ResourceMetadata
- func (r *Report) GetParents() []ModTreeItem
- func (r *Report) GetPaths() []NodePath
- func (r *Report) GetTags() map[string]string
- func (r *Report) GetTitle() string
- func (r *Report) Name() string
- func (r *Report) OnDecoded(*hcl.Block) hcl.Diagnostics
- func (r *Report) QualifiedName() string
- func (r *Report) SetMetadata(metadata *ResourceMetadata)
- type ReportTreeItemDiffs
- type Requires
- type ResourceMetadata
- type ResourceWithMetadata
- type WorkspaceResourceMaps
Constants ¶
const ( BlockTypeMod ModBlockType = "mod" BlockTypeQuery = "query" BlockTypeControl = "control" BlockTypeBenchmark = "benchmark" BlockTypeReport = "report" BlockTypePanel = "panel" BlockTypeLocals = "locals" )
const (
ConnectionTypeAggregator = "aggregator"
)
Variables ¶
var ResourceTypeMap = map[string]factoryFunc{ constants.SqlExtension: func(modPath, filePath string) (MappableResource, []byte, error) { return QueryFromFile(modPath, filePath) }, constants.MarkdownExtension: func(modPath, filePath string) (MappableResource, []byte, error) { return PanelFromFile(modPath, filePath) }, }
Functions ¶
func BuildModResourceName ¶ added in v0.5.0
func BuildModResourceName(blockType ModBlockType, name string) string
func GetCtyTypes ¶ added in v0.5.0
GetCtyTypes builds a map of cty types for all tagged properties. It is used to convert the struct to a cty value
func PropertyPathToResourceName ¶ added in v0.5.0
func PseudoResourceNameFromPath ¶
PseudoResourceNameFromPath converts a filepath into a resource name
It operates as follows:
- get filename
- remove extension
- sluggify, with '_' as the divider
func RegisteredFileExtensions ¶
func RegisteredFileExtensions() []string
Types ¶
type Benchmark ¶ added in v0.5.0
type Benchmark struct { ShortName string FullName string `cty:"name"` ChildNames *[]NamedItem `cty:"children" hcl:"children"` 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" column:"tags,jsonb"` Title *string `cty:"title" hcl:"title" column:"title,text"` // list of all block referenced by the resource References []string `column:"refs,jsonb"` ChildNameStrings []string `column:"children,jsonb"` DeclRange hcl.Range // contains filtered or unexported fields }
Benchmark is a struct representing the Benchmark resource
func NewBenchmark ¶ added in v0.5.0
func NewBenchmark(block *hcl.Block) *Benchmark
func (*Benchmark) AddChild ¶ added in v0.5.0
func (b *Benchmark) AddChild(child ModTreeItem) error
AddChild implements ModTreeItem
func (*Benchmark) AddParent ¶ added in v0.5.0
func (b *Benchmark) AddParent(parent ModTreeItem) error
AddParent implements ModTreeItem
func (*Benchmark) AddReference ¶ added in v0.5.0
AddReference implements HclResource
func (*Benchmark) GetChildControls ¶ added in v0.5.0
GetChildControls return a flat list of controls underneath the benchmark in the tree
func (*Benchmark) GetChildren ¶ added in v0.5.0
func (b *Benchmark) GetChildren() []ModTreeItem
GetChildren implements ModTreeItem
func (*Benchmark) GetDescription ¶ added in v0.5.0
GetDescription implements ModTreeItem
func (*Benchmark) GetMetadata ¶ added in v0.5.0
func (b *Benchmark) GetMetadata() *ResourceMetadata
GetMetadata implements ResourceWithMetadata
func (*Benchmark) GetParents ¶ added in v0.5.0
func (b *Benchmark) GetParents() []ModTreeItem
GetParents implements ModTreeItem
func (*Benchmark) Name ¶ added in v0.5.0
Name implements ModTreeItem, HclResource, ResourceWithMetadata return name in format: 'control.<shortName>'
func (*Benchmark) OnDecoded ¶ added in v0.5.0
func (b *Benchmark) OnDecoded(block *hcl.Block) hcl.Diagnostics
OnDecoded implements HclResource
func (*Benchmark) QualifiedName ¶ added in v0.5.0
QualifiedName returns the name in format: '<modName>.control.<shortName>'
func (*Benchmark) SetMetadata ¶ added in v0.5.0
func (b *Benchmark) SetMetadata(metadata *ResourceMetadata)
SetMetadata implements ResourceWithMetadata
type Connection ¶ added in v0.5.0
type Connection struct { // connection name Name string // Name of plugin Plugin string // Type - supported values: "aggregator" Type string // this is a list of names or wildcards which are resolved to connections // (only valid for "aggregator" type) ConnectionNames []string // a list of the resolved child connections // (only valid for "aggregator" type) Connections map[string]*Connection // unparsed HCL of plugin specific connection config Config string // options Options *options.Connection }
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)
func (*Connection) PopulateChildren ¶ added in v0.7.0
func (c *Connection) PopulateChildren(connectionMap map[string]*Connection)
func (*Connection) SetOptions ¶ added in v0.5.0
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 ¶ added in v0.5.0
func (c *Connection) String() string
func (*Connection) Validate ¶ added in v0.7.0
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 ¶ added in v0.7.0
func (c *Connection) ValidateAggregatorConnection(connectionMap map[string]*Connection) []string
type Control ¶ added in v0.5.0
type Control struct { ShortName string FullName string `cty:"name"` Description *string `cty:"description" hcl:"description" column:"description,text"` Documentation *string `cty:"documentation" hcl:"documentation" column:"documentation,text"` SearchPath *string `cty:"search_path" hcl:"search_path" column:"search_path,text"` SearchPathPrefix *string `cty:"search_path_prefix" hcl:"search_path_prefix" column:"search_path_prefix,text"` Severity *string `cty:"severity" hcl:"severity" column:"severity,text"` SQL *string `cty:"sql" hcl:"sql" column:"sql,text"` Tags *map[string]string `cty:"tags" hcl:"tags" column:"tags,jsonb"` Title *string `cty:"title" hcl:"title" column:"title,text"` // list of all block referenced by the resource References []string `column:"refs,jsonb"` DeclRange hcl.Range // contains filtered or unexported fields }
Control is a struct representing the Control resource
func NewControl ¶ added in v0.5.0
func NewControl(block *hcl.Block) *Control
func (*Control) AddChild ¶ added in v0.5.0
func (c *Control) AddChild(child ModTreeItem) error
AddChild implements ModTreeItem - controls cannot have children so just return error
func (*Control) AddParent ¶ added in v0.5.0
func (c *Control) AddParent(parent ModTreeItem) error
AddParent implements ModTreeItem
func (*Control) AddReference ¶ added in v0.5.0
AddReference implements HclResource
func (*Control) GetChildren ¶ added in v0.5.0
func (c *Control) GetChildren() []ModTreeItem
GetChildren implements ModTreeItem
func (*Control) GetDescription ¶ added in v0.5.0
GetDescription implements ModTreeItem
func (*Control) GetMetadata ¶ added in v0.5.0
func (c *Control) GetMetadata() *ResourceMetadata
GetMetadata implements ResourceWithMetadata
func (*Control) GetParentNames ¶ added in v0.5.0
func (*Control) GetParents ¶ added in v0.5.0
func (c *Control) GetParents() []ModTreeItem
GetParents implements ModTreeItem
func (*Control) Name ¶ added in v0.5.0
Name implements ModTreeItem, HclResource return name in format: 'control.<shortName>'
func (*Control) OnDecoded ¶ added in v0.5.0
func (c *Control) OnDecoded(*hcl.Block) hcl.Diagnostics
OnDecoded implements HclResource
func (*Control) QualifiedName ¶ added in v0.5.0
QualifiedName returns the name in format: '<modName>.control.<shortName>'
func (*Control) SetMetadata ¶ added in v0.5.0
func (c *Control) SetMetadata(metadata *ResourceMetadata)
SetMetadata implements ResourceWithMetadata
type HclResource ¶ added in v0.5.0
type HclResource interface { Name() string CtyValue() (cty.Value, error) OnDecoded(*hcl.Block) hcl.Diagnostics AddReference(reference string) }
HclResource must be implemented by resources defined in HCL
type Local ¶ added in v0.5.0
type Local struct { ShortName string FullName string `cty:"name"` Value cty.Value DeclRange hcl.Range // contains filtered or unexported fields }
Local is a struct representing a Local resource
func (*Local) AddReference ¶ added in v0.5.0
AddReference implements HclResource
func (*Local) GetMetadata ¶ added in v0.5.0
func (l *Local) GetMetadata() *ResourceMetadata
GetMetadata implements ResourceWithMetadata
func (*Local) OnDecoded ¶ added in v0.5.0
func (l *Local) OnDecoded(*hcl.Block) hcl.Diagnostics
OnDecoded implements HclResource
func (*Local) SetMetadata ¶ added in v0.5.0
func (l *Local) SetMetadata(metadata *ResourceMetadata)
SetMetadata implements ResourceWithMetadata
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 GetMetadata() *ResourceMetadata SetMetadata(*ResourceMetadata) }
MappableResource must be implemented by resources which can be created directly from a content file (e.g. sql, markdown)
func PanelFromFile ¶ added in v0.7.1
func PanelFromFile(modPath, filePath string) (MappableResource, []byte, error)
PanelFromFile :: factory function
func QueryFromFile ¶
func QueryFromFile(modPath, filePath string) (MappableResource, []byte, error)
QueryFromFile :: factory function
type Mod ¶
type Mod struct { ShortName string `hcl:"name,label"` FullName string `cty:"name"` // attributes Categories *[]string `cty:"categories" hcl:"categories" 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" column:"tags,jsonb"` Title *string `cty:"title" hcl:"title" column:"title,text"` // list of all block referenced by the resource References []string `column:"refs,jsonb"` // blocks Requires *Requires `hcl:"requires,block"` OpenGraph *OpenGraph `hcl:"opengraph,block" column:"open_graph,jsonb"` // TODO do we need this? Version *string Queries map[string]*Query Controls map[string]*Control Benchmarks map[string]*Benchmark Reports map[string]*Report Panels map[string]*Panel ModPath string DeclRange hcl.Range // contains filtered or unexported fields }
Mod is a struct representing a Mod resource
func CreateDefaultMod ¶ added in v0.5.0
CreateDefaultMod creates a default mod created for a workspace with no mod definition
func (*Mod) AddChild ¶ added in v0.5.0
func (m *Mod) AddChild(child ModTreeItem) error
AddChild implements ModTreeItem
func (*Mod) AddParent ¶ added in v0.5.0
func (m *Mod) AddParent(ModTreeItem) error
AddParent implements ModTreeItem
func (*Mod) AddPseudoResource ¶ added in v0.5.0
func (m *Mod) AddPseudoResource(resource MappableResource)
AddPseudoResource adds the pseudo resource to the mod, as long as there is no existing resource of same name
A pseudo resource ids a resource created by loading a content file (e.g. a SQL file), rather than parsing a HCL definition
func (*Mod) AddReference ¶ added in v0.5.0
AddReference implements HclResource
func (*Mod) AddResource ¶ added in v0.5.0
func (m *Mod) AddResource(item HclResource, block *hcl.Block) hcl.Diagnostics
func (*Mod) BuildResourceTree ¶ added in v0.7.1
BuildResourceTree builds the control tree structure by setting the parent property for each control and benchmar NOTE: this also builds the sorted benchmark list
func (*Mod) GetChildControls ¶ added in v0.5.0
GetChildControls return a flat list of controls underneath the mod
func (*Mod) GetChildren ¶ added in v0.5.0
func (m *Mod) GetChildren() []ModTreeItem
GetChildren implements ModTreeItem
func (*Mod) GetDescription ¶ added in v0.5.0
GetDescription implements ModTreeItem
func (*Mod) GetMetadata ¶ added in v0.5.0
func (m *Mod) GetMetadata() *ResourceMetadata
GetMetadata implements ResourceWithMetadata
func (*Mod) GetParents ¶ added in v0.5.0
func (m *Mod) GetParents() []ModTreeItem
GetParents implements ModTreeItem
func (*Mod) IsDefaultMod ¶ added in v0.5.0
IsDefaultMod returns whether this mod is a default mod created for a workspace with no mod definition
func (*Mod) OnDecoded ¶ added in v0.5.0
func (m *Mod) OnDecoded(*hcl.Block) hcl.Diagnostics
OnDecoded implements HclResource
func (*Mod) ParseRequiredPluginVersions ¶ added in v0.6.0
func (*Mod) SetMetadata ¶ added in v0.5.0
func (m *Mod) SetMetadata(metadata *ResourceMetadata)
SetMetadata implements ResourceWithMetadata
type ModBlockType ¶ added in v0.5.0
type ModBlockType string
type ModTreeItem ¶ added in v0.7.1
type ModTreeItem interface { AddParent(ModTreeItem) error AddChild(child ModTreeItem) error GetChildren() []ModTreeItem Name() string GetTitle() string GetDescription() string GetTags() map[string]string // GetPaths returns an array resource paths GetPaths() []NodePath }
ModTreeItem must be implemented by elements of the mod resource hierarchy i.e. Control, Benchmark, Report, Panel
type ModVersion ¶
type ModVersion struct { // the fully qualified mod name, e.g. github.com/turbot/mod1 // TODO THINK ABOUT NAMES ShortName string `hcl:"name,label"` FullName string `cty:"name"` Version string `cty:"version" hcl:"version"` Alias *string `cty:"alias" hcl:"alias,optional"` DeclRange hcl.Range `json:"-"` }
func (*ModVersion) HasVersion ¶
func (m *ModVersion) 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 (*ModVersion) String ¶
func (m *ModVersion) String() string
type NodePath ¶ added in v0.7.1
type NodePath []string
NodePath is a string array representing the parentage of a ModTreeItem
type OpenGraph ¶ added in v0.5.0
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 Panel ¶ added in v0.7.1
type Panel struct { FullName string `cty:"name"` ShortName string Title *string `hcl:"title"` Type *string `hcl:"type"` Width *int `hcl:"width"` Height *int `hcl:"height"` Source *string `hcl:"source"` SQL *string `hcl:"source"` Text *string `hcl:"text"` Reports []*Report Panels []*Panel DeclRange hcl.Range // contains filtered or unexported fields }
Panel is a struct representing the Report resource
func (*Panel) AddChild ¶ added in v0.7.1
func (p *Panel) AddChild(child ModTreeItem) error
AddChild implements ModTreeItem
func (*Panel) AddParent ¶ added in v0.7.1
func (p *Panel) AddParent(parent ModTreeItem) error
AddParent implements ModTreeItem
func (*Panel) AddReference ¶ added in v0.7.1
AddReference implements HclResource
func (*Panel) Diff ¶ added in v0.7.1
func (p *Panel) Diff(new *Panel) *ReportTreeItemDiffs
func (*Panel) GetChildren ¶ added in v0.7.1
func (p *Panel) GetChildren() []ModTreeItem
GetChildren implements ModTreeItem
func (*Panel) GetDescription ¶ added in v0.7.1
GetDescription implements ModTreeItem
func (*Panel) GetMetadata ¶ added in v0.7.1
func (p *Panel) GetMetadata() *ResourceMetadata
GetMetadata implements ResourceWithMetadata
func (*Panel) GetParents ¶ added in v0.7.1
func (p *Panel) GetParents() []ModTreeItem
GetParents implements ModTreeItem
func (*Panel) InitialiseFromFile ¶ added in v0.7.1
func (p *Panel) InitialiseFromFile(modPath, filePath string) (MappableResource, []byte, error)
InitialiseFromFile implements MappableResource
func (*Panel) Name ¶ added in v0.7.1
Name implements HclResource return name in format: 'panel.<shortName>'
func (*Panel) OnDecoded ¶ added in v0.7.1
func (p *Panel) OnDecoded(*hcl.Block) hcl.Diagnostics
OnDecoded implements HclResource
func (*Panel) QualifiedName ¶ added in v0.7.1
QualifiedName returns the name in format: '<modName>.panel.<shortName>'
func (*Panel) SetMetadata ¶ added in v0.7.1
func (p *Panel) SetMetadata(metadata *ResourceMetadata)
SetMetadata implements ResourceWithMetadata
type ParsedPropertyPath ¶ added in v0.5.0
type ParsedPropertyPath struct { Mod string ItemType ModBlockType Name string PropertyPath []string }
func ParseResourcePropertyPath ¶ added in v0.5.0
func ParseResourcePropertyPath(propertyPath string) (res *ParsedPropertyPath, err error)
type ParsedResourceName ¶ added in v0.5.0
type ParsedResourceName struct { Mod string ItemType ModBlockType Name string }
func ParseResourceName ¶ added in v0.5.0
func ParseResourceName(fullName string) (res *ParsedResourceName, err error)
func (*ParsedResourceName) TypeString ¶ added in v0.5.0
func (m *ParsedResourceName) TypeString() string
type PluginVersion ¶ added in v0.5.0
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 Version string `cty:"version" hcl:"version,optional"` ParsedVersion *version.Version `json:"-"` // the org and name which are parsed from the raw name Org string Name string DeclRange hcl.Range `json:"-"` }
func (*PluginVersion) FullName ¶ added in v0.5.0
func (p *PluginVersion) FullName() string
func (*PluginVersion) ShortName ¶ added in v0.6.0
func (p *PluginVersion) ShortName() string
func (*PluginVersion) String ¶ added in v0.5.0
func (p *PluginVersion) String() string
type Query ¶
type Query struct { ShortName string FullName string `cty:"name"` 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" column:"tags,jsonb"` SQL *string `cty:"sql" hcl:"sql" column:"sql,text"` SearchPath *string `cty:"search_path" hcl:"search_path" column:"search_path,text"` SearchPathPrefix *string `cty:"search_path_prefix" hcl:"search_path_prefix" column:"search_path_prefix,text"` Title *string `cty:"title" hcl:"title" column:"title,text"` // list of all block referenced by the resource References []string `column:"refs,jsonb"` DeclRange hcl.Range // contains filtered or unexported fields }
Query is a struct representing the Query resource
func (*Query) AddReference ¶ added in v0.5.0
AddReference implements HclResource
func (*Query) GetMetadata ¶ added in v0.5.0
func (q *Query) GetMetadata() *ResourceMetadata
GetMetadata implements ResourceWithMetadata
func (*Query) InitialiseFromFile ¶
func (q *Query) InitialiseFromFile(modPath, filePath string) (MappableResource, []byte, error)
InitialiseFromFile implements MappableResource
func (*Query) OnDecoded ¶ added in v0.5.0
func (q *Query) OnDecoded(*hcl.Block) hcl.Diagnostics
OnDecoded implements HclResource
func (*Query) QualifiedName ¶ added in v0.5.0
QualifiedName returns the name in format: '<modName>.control.<shortName>'
func (*Query) SetMetadata ¶ added in v0.5.0
func (q *Query) SetMetadata(metadata *ResourceMetadata)
SetMetadata implements ResourceWithMetadata
type Report ¶ added in v0.7.1
type Report struct { FullName string `cty:"name"` ShortName string Title *string Reports []*Report //`hcl:"report,block"` Panels []*Panel //`hcl:"panel,block"` DeclRange hcl.Range // contains filtered or unexported fields }
Report is a struct representing the Report resource
func (*Report) AddChild ¶ added in v0.7.1
func (r *Report) AddChild(child ModTreeItem) error
AddChild implements ModTreeItem
func (*Report) AddParent ¶ added in v0.7.1
func (r *Report) AddParent(parent ModTreeItem) error
AddParent implements ModTreeItem
func (*Report) AddReference ¶ added in v0.7.1
AddReference implements HclResource
func (*Report) Diff ¶ added in v0.7.1
func (r *Report) Diff(new *Report) *ReportTreeItemDiffs
func (*Report) GetChildren ¶ added in v0.7.1
func (r *Report) GetChildren() []ModTreeItem
GetChildren implements ModTreeItem
func (*Report) GetDescription ¶ added in v0.7.1
GetDescription implements ModTreeItem
func (*Report) GetMetadata ¶ added in v0.7.1
func (r *Report) GetMetadata() *ResourceMetadata
GetMetadata implements ResourceWithMetadata
func (*Report) GetParents ¶ added in v0.7.1
func (r *Report) GetParents() []ModTreeItem
GetParents implements ModTreeItem
func (*Report) Name ¶ added in v0.7.1
Name implements HclResource, ModTreeItem return name in format: 'report.<shortName>'
func (*Report) OnDecoded ¶ added in v0.7.1
func (r *Report) OnDecoded(*hcl.Block) hcl.Diagnostics
OnDecoded implements HclResource
func (*Report) QualifiedName ¶ added in v0.7.1
QualifiedName returns the name in format: '<modName>.report.<shortName>'
func (*Report) SetMetadata ¶ added in v0.7.1
func (r *Report) SetMetadata(metadata *ResourceMetadata)
SetMetadata implements ResourceWithMetadata
type ReportTreeItemDiffs ¶ added in v0.7.1
type ReportTreeItemDiffs struct { Name string Item ModTreeItem ChangedProperties []string AddedItems []string RemovedItems []string }
ReportTreeItemDiffs is a struct representing the differences between 2 ReportTreeItems (of same type)
func (*ReportTreeItemDiffs) AddAddedItem ¶ added in v0.7.1
func (d *ReportTreeItemDiffs) AddAddedItem(name string)
func (*ReportTreeItemDiffs) AddPropertyDiff ¶ added in v0.7.1
func (d *ReportTreeItemDiffs) AddPropertyDiff(propertyName string)
func (*ReportTreeItemDiffs) AddRemovedItem ¶ added in v0.7.1
func (d *ReportTreeItemDiffs) AddRemovedItem(name string)
func (*ReportTreeItemDiffs) HasChanges ¶ added in v0.7.1
func (d *ReportTreeItemDiffs) HasChanges() bool
type Requires ¶ added in v0.5.0
type Requires struct { Steampipe string `hcl:"steampipe,optional"` Plugins []*PluginVersion `hcl:"plugin,block"` Mods []*ModVersion `hcl:"mod,block"` DeclRange hcl.Range `json:"-"` }
Requires is a struct representing mod dependencies
type ResourceMetadata ¶ added in v0.5.0
type ResourceMetadata struct { ResourceName string `column:"resource_name,text"` // mod name in the format mod.<modName>@<version? 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"` // mod short name ModShortName string }
ResourceMetadata ius a struct containing additional data about each resource, used to populate the reflection tables
func (*ResourceMetadata) SetMod ¶ added in v0.5.0
func (m *ResourceMetadata) SetMod(mod *Mod)
SetMod sets the mod name and mod short name
type ResourceWithMetadata ¶ added in v0.5.0
type ResourceWithMetadata interface { Name() string GetMetadata() *ResourceMetadata SetMetadata(metadata *ResourceMetadata) }
ResourceWithMetadata must be implenented by resources which supports reflection metadata
type WorkspaceResourceMaps ¶ added in v0.5.0
type WorkspaceResourceMaps struct { ModMap map[string]*Mod QueryMap map[string]*Query ControlMap map[string]*Control BenchmarkMap map[string]*Benchmark }
WorkspaceResourceMaps is a struct containing maps of all mod resource types This is provided to avoid db needing to reference workspace package
Source Files ¶
- attributes.go
- benchmark.go
- connection.go
- control.go
- interfaces.go
- local.go
- mod.go
- mod_map.go
- mod_version.go
- nodepath.go
- open_graph.go
- panel.go
- parse_names.go
- plugin_version.go
- query.go
- report.go
- report_tree_item_diffs.go
- requires.go
- resource_metadata.go
- resource_type_map.go
- workspace_resource_maps.go