func GetTagValue(key string, tags interface{}) string {
	switch v := tags.(type) {
	case []*ec2.Tag:
		for _, tag := range v {
			if aws.StringValue(tag.Key) == key {
				return aws.StringValue(tag.Value)
			}
		}
	case []*elb.Tag:
		for _, tag := range v {
			if aws.StringValue(tag.Key) == key {
				return aws.StringValue(tag.Value)
			}
		}
	case []*autoscaling.TagDescription:
		for _, tag := range v {
			if aws.StringValue(tag.Key) == key {
				return aws.StringValue(tag.Value)
			}
		}
	}
	return ""
}
GetTagValue returns the tag with the given key if available.
package aws
import (
	"errors"
	"github.com/aws/aws-sdk-go/aws"
	"github.com/aws/aws-sdk-go/aws/awserr"
	"github.com/aws/aws-sdk-go/aws/session"
	"github.com/aws/aws-sdk-go/service/autoscaling"
	"github.com/aws/aws-sdk-go/service/ec2"
	"github.com/aws/aws-sdk-go/service/elb"
)