github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/terraform/aws/kinesis/adapt.go (about) 1 package kinesis 2 3 import ( 4 "github.com/khulnasoft-lab/defsec/pkg/providers/aws/kinesis" 5 "github.com/khulnasoft-lab/defsec/pkg/terraform" 6 "github.com/khulnasoft-lab/defsec/pkg/types" 7 ) 8 9 func Adapt(modules terraform.Modules) kinesis.Kinesis { 10 return kinesis.Kinesis{ 11 Streams: adaptStreams(modules), 12 } 13 } 14 15 func adaptStreams(modules terraform.Modules) []kinesis.Stream { 16 var streams []kinesis.Stream 17 for _, module := range modules { 18 for _, resource := range module.GetResourcesByType("aws_kinesis_stream") { 19 streams = append(streams, adaptStream(resource)) 20 } 21 } 22 return streams 23 } 24 25 func adaptStream(resource *terraform.Block) kinesis.Stream { 26 27 stream := kinesis.Stream{ 28 Metadata: resource.GetMetadata(), 29 Encryption: kinesis.Encryption{ 30 Metadata: resource.GetMetadata(), 31 Type: types.StringDefault("NONE", resource.GetMetadata()), 32 KMSKeyID: types.StringDefault("", resource.GetMetadata()), 33 }, 34 } 35 36 encryptionTypeAttr := resource.GetAttribute("encryption_type") 37 stream.Encryption.Type = encryptionTypeAttr.AsStringValueOrDefault("NONE", resource) 38 KMSKeyIDAttr := resource.GetAttribute("kms_key_id") 39 stream.Encryption.KMSKeyID = KMSKeyIDAttr.AsStringValueOrDefault("", resource) 40 return stream 41 }