Documentation
¶
Index ¶
- Constants
- func ExtractResourcesFromPlan(plan *PlanRepresentation) ([]*core.Resource, error)
- func UnmarshalTF(tf []byte, v interface{}) error
- type BlockExpressionRepresentation
- type ChangeRepresentation
- type ChildModuleRepresentation
- type ConfigurationRepresentation
- type ExpressionRepresentation
- type ModuleCallsConfigRepresentation
- type ModuleConfigRepresentation
- type ModuleRepresentation
- type PlanRepresentation
- type ProviderConfigRepresentation
- type ResourceChangeRepresentation
- type ResourceRepresentation
- type StateRepresentation
- type TFResource
- type ValueRepresentation
- type ValuesRepresentation
Constants ¶
View Source
const Platform = "terraform"
Platform that relates to this functionality
Variables ¶
This section is empty.
Functions ¶
func ExtractResourcesFromPlan ¶
func ExtractResourcesFromPlan(plan *PlanRepresentation) ([]*core.Resource, error)
ExtractResourcesFromPlan analysis a plan and returns a collection of resources
func UnmarshalTF ¶
UnmarshalTF - unmarshals .tf files by recursively removing unsupported HCL lines, for eg. terraform functions. The theory being that we'll only be interested in policing values we can directly support
Types ¶
type BlockExpressionRepresentation ¶
type BlockExpressionRepresentation struct {
AMI *ExpressionRepresentation `json:"ami"`
InstanceType *ExpressionRepresentation `json:"instance_type"`
RootBlockDevice *ExpressionRepresentation `json:"root_block_device"`
EBSBlockDevice []*ExpressionRepresentation `json:"ebs_block_device"`
}
type ChangeRepresentation ¶
type ChangeRepresentation struct {
Actions []string `json:"actions"`
Before *ValuesRepresentation `json:"before"`
After *ValuesRepresentation `json:"after"`
}
type ChildModuleRepresentation ¶
type ChildModuleRepresentation struct {
Address string `json:"address"`
Resources []*ResourceRepresentation `json:"resources"`
ChildModules []*ChildModuleRepresentation `json:"child_modules"`
}
func (ChildModuleRepresentation) ToModule ¶
func (m ChildModuleRepresentation) ToModule() *ModuleRepresentation
type ConfigurationRepresentation ¶
type ConfigurationRepresentation struct {
ProviderConfigs *ProviderConfigRepresentation `json:"provider_configs"`
RootModule *ModuleConfigRepresentation `json:"root_module"`
ModuleCalls map[string]*ModuleCallsConfigRepresentation `json:"module_calls"`
}
type ModuleCallsConfigRepresentation ¶
type ModuleCallsConfigRepresentation struct {
ResolvedSource string `json:"resolved_source"`
Expressions *BlockExpressionRepresentation `json:"expressions"`
CountExpression *ExpressionRepresentation `json:"count_expression"`
ForEachExpression *ExpressionRepresentation `json:"for_each_expression"`
Module *ModuleConfigRepresentation `json:"module"`
}
type ModuleConfigRepresentation ¶
type ModuleConfigRepresentation struct {
Outputs map[string]struct {
Expression *ExpressionRepresentation `json:"expression"`
Sensitive bool `json:"sensitive"`
} `json:"outputs"`
Resources []struct {
Address string `json:"address"`
Mode string `json:"mode"`
Type string `json:"type"`
Name string `json:"name"`
ProviderConfigKey string `json:"provider_config_key"`
Expressions *BlockExpressionRepresentation `json:"expressions"`
SchemaVersion int `json:"schema_version"`
CountExpression *ExpressionRepresentation `json:"count_expression"`
ForEachExpression *ExpressionRepresentation `json:"for_each_expression"`
Provisioners []struct {
Type string `json:"type"`
Expressions *BlockExpressionRepresentation `json:"expressions"`
} `json:"provisioners"`
} `json:"resources"`
}
type ModuleRepresentation ¶
type ModuleRepresentation struct {
Resources []*ResourceRepresentation `json:"resources"`
ChildModules []*ChildModuleRepresentation `json:"child_modules"`
}
type PlanRepresentation ¶
type PlanRepresentation struct {
FormatVersion string `json:"format_version"`
PriorState *StateRepresentation `json:"prior_state"`
Configuration *ConfigurationRepresentation `json:"configuration"`
PlannedValues *ValuesRepresentation `json:"planned_values"`
Variables map[string]map[string]string `json:"variables"`
ResourceChanges []*ResourceChangeRepresentation `json:"resource_changes"`
OutputChanges map[string]*ChangeRepresentation `json:"output_changes"`
}
PlanRepresentation document
type ProviderConfigRepresentation ¶
type ProviderConfigRepresentation struct {
Name string `json:"name"`
Alias string `json:"alias"`
ModuleAddress string `json:"module_address"`
Expressions *BlockExpressionRepresentation `json:"expressions"`
}
type ResourceChangeRepresentation ¶
type ResourceChangeRepresentation struct {
Address string `json:"address"`
ModuleAddress string `json:"module_address"`
Mode string `json:"mode"`
Type string `json:"type"`
Name string `json:"name"`
Index int `json:"index"`
Deposed string `json:"deposed"`
Change *ChangeRepresentation `json:"change"`
}
type ResourceRepresentation ¶
type ResourceRepresentation struct {
Address string `json:"address"`
Mode string `json:"mode"`
Type string `json:"type"`
Name string `json:"name"`
Index int `json:"index"`
ProviderName string `json:"provider_name"`
SchemaVersion int `json:"schema_version"`
Values map[string]interface{} `json:"values"`
}
type StateRepresentation ¶
type StateRepresentation struct {
TerraformVersion string `json:"terraform_version"`
Values *ValuesRepresentation `json:"value"`
}
type TFResource ¶
type TFResource struct {
Label string `json:"label"`
Type string `json:"type"`
Values map[string]interface{} `json:"values"`
}
TFResource -type used to create resource input for .tf file scanning
type ValueRepresentation ¶
type ValuesRepresentation ¶
type ValuesRepresentation struct {
Outputs map[string]*ValueRepresentation `json:"outputs"`
RootModule *ModuleRepresentation `json:"root_module"`
}
Click to show internal directories.
Click to hide internal directories.