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  }