func ValidateExactlyOneOfStringFlagNotEmpty(flagKeyValues map[string]string) error {
	var notEmpty []string
	for k, v := range flagKeyValues {
		if v != "" {
			notEmpty = append(notEmpty, k)
		}
	}
	if len(notEmpty) != 1 {
		return daisy.Errf(fmt.Sprintf("Exactly one of -%v flags should be provided", strings.Join(notEmpty, ",-")))
	}
	return nil
}
ValidateExactlyOneOfStringFlagNotEmpty returns error with error message stating one of fields must be provided if
value is empty string. Returns nil otherwise.
package validation
import (
	"errors"
	"fmt"
	"reflect"
	"regexp"
	"strings"
	"github.com/go-playground/validator/v10"
	"github.com/GoogleCloudPlatform/compute-image-tools/daisy"
)
const (
	rfc1035LabelRegexpStr = "[A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9]"
	imageNameStr          = "^[a-z]([-a-z0-9]{0,61}[a-z0-9])?$"
	projectIDStr = "^(google\\.com\\:)?[a-z][-a-z0-9]{4,28}[a-z0-9]$"  
)
var (
	rfc1035LabelRegexp = regexp.MustCompile(rfc1035LabelRegexpStr)
	fqdnRegexp         = regexp.MustCompile(fmt.Sprintf("^((%v)\\.)+(%v)$", rfc1035LabelRegexpStr, rfc1035LabelRegexpStr))
	imageNameRegexp    = regexp.MustCompile(imageNameStr)
	projectIDRegexp    = regexp.MustCompile(projectIDStr)
)
func ValidateStringFlagNotEmpty(flagValue string, flagKey string) error {
	if flagValue == "" {
		return daisy.Errf(fmt.Sprintf("The flag -%v must be provided", flagKey))
	}
	return nil
}