provider/zone_tag_filter.go
func (f ZoneTagFilter) Match(tagsMap map[string]string) bool {
	for _, tagFilter := range f.zoneTags {
		filterParts := strings.SplitN(tagFilter, "=", 2)
		switch len(filterParts) {
		case 1:
			if _, hasTag := tagsMap[filterParts[0]]; !hasTag {
				return false
			}
		case 2:
			if value, hasTag := tagsMap[filterParts[0]]; !hasTag || value != filterParts[1] {
				return false
			}
		}
	}
	return true
}
func (f ZoneTagFilter) Match(tagsMap map[string]string) bool {
	for _, tagFilter := range f.zoneTags {
		filterParts := strings.SplitN(tagFilter, "=", 2)
		switch len(filterParts) {
		case 1:
			if _, hasTag := tagsMap[filterParts[0]]; !hasTag {
				return false
			}
		case 2:
			if value, hasTag := tagsMap[filterParts[0]]; !hasTag || value != filterParts[1] {
				return false
			}
		}
	}
	return true
}
// Match checks whether a zone's set of tags matches the provided tag values