in rules/resource_block.go [119:142]
func (b *ResourceBlock) buildNestedBlock(nestedBlock *hclsyntax.Block) *NestedBlock {
nestedBlockName := nestedBlock.Type
sortField := nestedBlock.Type
if nestedBlock.Type == "dynamic" {
nestedBlockName = nestedBlock.Labels[0]
sortField = strings.Join(nestedBlock.Labels, "")
}
parentBlockNames := append(b.ParentBlockNames, nestedBlockName)
if b.Block.Type == "dynamic" && nestedBlockName == "content" {
parentBlockNames = b.ParentBlockNames
}
nb := &NestedBlock{
Name: nestedBlockName,
SortField: sortField,
Range: nestedBlock.Range(),
Block: nestedBlock,
ParentBlockNames: parentBlockNames,
File: b.File,
emit: b.emit,
}
nb.buildAttributes(nestedBlock.Body.Attributes)
nb.buildNestedBlocks(nestedBlock.Body.Blocks)
return nb
}