func Types(include []string, exclude []string) []resource.ResourceType {
	filteredListers := Listers(include, exclude)
	typeMap := make(map[resource.ResourceType]struct{})
	for _, v := range filteredListers {
		for _, l := range lister.AllListers() {
			if v == ListerName(reflect.TypeOf(l).Name()) {
				for _, t := range l.Types() {
					typeMap[t] = struct{}{}
				}
			}
		}
	}
	ret := make([]resource.ResourceType, 0)
	for k := range typeMap {
		ret = append(ret, k)
	}
	return ret
}
Types applies a filter to all supported AWS resources types and returns a
slice of the ones that match. It first builds a list of all resources types
that match any of the prefixes defined in `include`, and then removes any
resource types that match any of the prefixes defined in `exclude`
package awsets
import (
	ctx2 "context"
	"fmt"
	"reflect"
	"runtime/debug"
	"strings"
	"sync"
	"github.com/aws/aws-sdk-go-v2/aws"
	"github.com/aws/aws-sdk-go-v2/service/ec2"
	"github.com/trek10inc/awsets/context"
	"github.com/trek10inc/awsets/lister"
	"github.com/trek10inc/awsets/resource"
)
type ListerName string