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 }