github.com/aquasecurity/trivy-iac@v0.8.1-0.20240127024015-3d8e412cf0ab/pkg/scanners/cloudformation/parser/reference.go (about) 1 package parser 2 3 import ( 4 "fmt" 5 6 defsecTypes "github.com/aquasecurity/defsec/pkg/types" 7 ) 8 9 type CFReference struct { 10 logicalId string 11 resourceRange defsecTypes.Range 12 resolvedValue Property 13 } 14 15 func NewCFReference(id string, resourceRange defsecTypes.Range) CFReference { 16 return CFReference{ 17 logicalId: id, 18 resourceRange: resourceRange, 19 } 20 } 21 22 func NewCFReferenceWithValue(resourceRange defsecTypes.Range, resolvedValue Property, logicalId string) CFReference { 23 return CFReference{ 24 resourceRange: resourceRange, 25 resolvedValue: resolvedValue, 26 logicalId: logicalId, 27 } 28 } 29 30 func (cf CFReference) String() string { 31 return cf.resourceRange.String() 32 } 33 34 func (cf CFReference) LogicalID() string { 35 return cf.logicalId 36 } 37 38 func (cf CFReference) ResourceRange() defsecTypes.Range { 39 return cf.resourceRange 40 } 41 42 func (cf CFReference) PropertyRange() defsecTypes.Range { 43 if cf.resolvedValue.IsNotNil() { 44 return cf.resolvedValue.Range() 45 } 46 return defsecTypes.Range{} 47 } 48 49 func (cf CFReference) DisplayValue() string { 50 if cf.resolvedValue.IsNotNil() { 51 return fmt.Sprintf("%v", cf.resolvedValue.RawValue()) 52 } 53 return "" 54 } 55 56 func (cf *CFReference) Comment() string { 57 return cf.resolvedValue.Comment() 58 }