github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/terraform/google/compute/metadata.go (about)

     1  package compute
     2  
     3  import (
     4  	"github.com/khulnasoft-lab/defsec/pkg/providers/google/compute"
     5  	"github.com/khulnasoft-lab/defsec/pkg/terraform"
     6  	defsecTypes "github.com/khulnasoft-lab/defsec/pkg/types"
     7  	"github.com/zclconf/go-cty/cty"
     8  )
     9  
    10  func adaptProjectMetadata(modules terraform.Modules) compute.ProjectMetadata {
    11  	metadata := compute.ProjectMetadata{
    12  		Metadata: defsecTypes.NewUnmanagedMetadata(),
    13  		EnableOSLogin: defsecTypes.BoolUnresolvable(
    14  			defsecTypes.NewUnmanagedMetadata(),
    15  		),
    16  	}
    17  	for _, metadataBlock := range modules.GetResourcesByType("google_compute_project_metadata") {
    18  		metadata.Metadata = metadataBlock.GetMetadata()
    19  		if metadataAttr := metadataBlock.GetAttribute("metadata"); metadataAttr.IsNotNil() {
    20  			if val := metadataAttr.MapValue("enable-oslogin"); val.Type() == cty.Bool {
    21  				metadata.EnableOSLogin = defsecTypes.BoolExplicit(val.True(), metadataAttr.GetMetadata())
    22  			}
    23  		}
    24  	}
    25  	return metadata
    26  }