Documentation
¶
Index ¶
- type BlastRadius
- type DependencyGraph
- func (dg *DependencyGraph) BuildFromState(state *state.TerraformState) error
- func (dg *DependencyGraph) CalculateBlastRadius(resourceID string) *BlastRadius
- func (dg *DependencyGraph) DetectCycles() [][]string
- func (dg *DependencyGraph) Edges() map[string][]string
- func (dg *DependencyGraph) GetBlastRadius(address string) []string
- func (dg *DependencyGraph) GetCriticalPath() []string
- func (dg *DependencyGraph) GetDependencies(resourceID string) []string
- func (dg *DependencyGraph) GetDependents(address string) []string
- func (dg *DependencyGraph) GetEdges() []Edge
- func (dg *DependencyGraph) GetLeafNodes() []string
- func (dg *DependencyGraph) GetNode(address string) (*ResourceNode, bool)
- func (dg *DependencyGraph) GetNodes() map[string]*ResourceNode
- func (dg *DependencyGraph) GetOrphanedResources() []string
- func (dg *DependencyGraph) GetResource(id string) *ResourceNode
- func (dg *DependencyGraph) GetRootNodes() []string
- func (dg *DependencyGraph) GetTransitiveDependencies(address string) []string
- func (dg *DependencyGraph) GetTransitiveDependents(address string) []string
- func (dg *DependencyGraph) Nodes() map[string]*ResourceNode
- func (dg *DependencyGraph) TopologicalSort() ([]string, error)
- type DependencyGraphBuilder
- type Edge
- type Node
- type ResourceNode
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BlastRadius ¶
type BlastRadius struct {
ResourceID string `json:"resource_id"`
DirectImpact []string `json:"direct_impact"`
IndirectImpact []string `json:"indirect_impact"`
TotalImpact int `json:"total_impact"`
TotalAffected int `json:"total_affected"`
MaxDepth int `json:"max_depth"`
}
BlastRadius represents the impact of removing a resource
type DependencyGraph ¶
type DependencyGraph struct {
// contains filtered or unexported fields
}
DependencyGraph represents a graph of resource dependencies
func NewDependencyGraph ¶
func NewDependencyGraph() *DependencyGraph
NewDependencyGraph creates a new dependency graph
func (*DependencyGraph) BuildFromState ¶
func (dg *DependencyGraph) BuildFromState(state *state.TerraformState) error
BuildFromState builds a dependency graph from a Terraform state
func (*DependencyGraph) CalculateBlastRadius ¶
func (dg *DependencyGraph) CalculateBlastRadius(resourceID string) *BlastRadius
CalculateBlastRadius calculates the impact of removing a resource
func (*DependencyGraph) DetectCycles ¶
func (dg *DependencyGraph) DetectCycles() [][]string
DetectCycles detects cycles in the dependency graph
func (*DependencyGraph) Edges ¶
func (dg *DependencyGraph) Edges() map[string][]string
Edges property for compatibility
func (*DependencyGraph) GetBlastRadius ¶
func (dg *DependencyGraph) GetBlastRadius(address string) []string
GetBlastRadius returns all resources affected by a change
func (*DependencyGraph) GetCriticalPath ¶
func (dg *DependencyGraph) GetCriticalPath() []string
GetCriticalPath returns the longest dependency chain
func (*DependencyGraph) GetDependencies ¶
func (dg *DependencyGraph) GetDependencies(resourceID string) []string
GetDependencies returns dependencies of a resource
func (*DependencyGraph) GetDependents ¶
func (dg *DependencyGraph) GetDependents(address string) []string
GetDependents returns all resources that depend on this resource
func (*DependencyGraph) GetEdges ¶
func (dg *DependencyGraph) GetEdges() []Edge
GetEdges returns all edges
func (*DependencyGraph) GetLeafNodes ¶
func (dg *DependencyGraph) GetLeafNodes() []string
GetLeafNodes returns nodes with no dependents
func (*DependencyGraph) GetNode ¶
func (dg *DependencyGraph) GetNode(address string) (*ResourceNode, bool)
GetNode returns a node by address
func (*DependencyGraph) GetNodes ¶
func (dg *DependencyGraph) GetNodes() map[string]*ResourceNode
GetNodes returns all nodes
func (*DependencyGraph) GetOrphanedResources ¶
func (dg *DependencyGraph) GetOrphanedResources() []string
GetOrphanedResources returns resources with no dependencies or dependents
func (*DependencyGraph) GetResource ¶
func (dg *DependencyGraph) GetResource(id string) *ResourceNode
GetResource returns a resource node by ID (alias for GetNode)
func (*DependencyGraph) GetRootNodes ¶
func (dg *DependencyGraph) GetRootNodes() []string
GetRootNodes returns nodes with no dependencies
func (*DependencyGraph) GetTransitiveDependencies ¶
func (dg *DependencyGraph) GetTransitiveDependencies(address string) []string
GetTransitiveDependencies returns all transitive dependencies
func (*DependencyGraph) GetTransitiveDependents ¶
func (dg *DependencyGraph) GetTransitiveDependents(address string) []string
GetTransitiveDependents returns all transitive dependents
func (*DependencyGraph) Nodes ¶
func (dg *DependencyGraph) Nodes() map[string]*ResourceNode
Nodes property for compatibility
func (*DependencyGraph) TopologicalSort ¶
func (dg *DependencyGraph) TopologicalSort() ([]string, error)
TopologicalSort returns nodes in topological order
type DependencyGraphBuilder ¶
type DependencyGraphBuilder struct {
// contains filtered or unexported fields
}
DependencyGraphBuilder builds dependency graphs from state
func NewDependencyGraphBuilder ¶
func NewDependencyGraphBuilder(state *state.TerraformState) *DependencyGraphBuilder
NewDependencyGraphBuilder creates a new dependency graph builder
func (*DependencyGraphBuilder) Build ¶
func (b *DependencyGraphBuilder) Build() (*DependencyGraph, error)
Build builds the dependency graph
type Edge ¶
type Edge struct {
From string `json:"from"`
To string `json:"to"`
Type string `json:"type"` // explicit, implicit, or data
}
Edge represents a dependency relationship
type ResourceNode ¶
type ResourceNode struct {
Address string `json:"address"`
Type string `json:"type"`
Name string `json:"name"`
Provider string `json:"provider"`
Module string `json:"module,omitempty"`
Attributes map[string]interface{} `json:"attributes,omitempty"`
Dependencies []string `json:"dependencies"`
Dependents []string `json:"dependents"`
Level int `json:"level"` // Topological level
}
ResourceNode represents a node in the dependency graph
func (*ResourceNode) GetDependencies ¶
func (n *ResourceNode) GetDependencies() []string
GetDependencies returns the dependencies of this resource
func (*ResourceNode) GetDependents ¶
func (n *ResourceNode) GetDependents() []string
GetDependents returns the dependents of this resource