func Filter()

in pkg/fake/utils.go [122:158]


func Filter(filters []ec2types.Filter, id, name, owner, state string, tags []ec2types.Tag) bool {
	return lo.EveryBy(filters, func(filter ec2types.Filter) bool {
		switch filterName := aws.ToString(filter.Name); {
		case filterName == "state":
			for _, val := range filter.Values {
				if state == val {
					return true
				}
			}
		case filterName == "subnet-id" || filterName == "group-id" || filterName == "image-id":
			for _, val := range filter.Values {
				if id == val {
					return true
				}
			}
		case filterName == "group-name" || filterName == "name":
			for _, val := range filter.Values {
				if name == val {
					return true
				}
			}
		case filterName == "owner-id":
			for _, val := range filter.Values {
				if owner == val {
					return true
				}
			}
		case strings.HasPrefix(filterName, "tag"):
			if matchTags(tags, filter) {
				return true
			}
		default:
			panic(fmt.Sprintf("Unsupported mock filter %v", filter))
		}
		return false
	})
}