func verifySelectorObject()

in internal/controller/utils.go [291:310]


func verifySelectorObject(selector acpv1.Selector) error {
	if selector.KeyFilter == nil && selector.SnapshotName == nil {
		return fmt.Errorf("a selector uses 'labelFilter' but misses the 'keyFilter', 'keyFilter' is required for key-label pair filtering")
	}

	if selector.SnapshotName != nil {
		if selector.KeyFilter != nil {
			return fmt.Errorf("set both 'keyFilter' and 'snapshotName' in one selector causes ambiguity, only one of them should be set")
		}
		if selector.LabelFilter != nil {
			return fmt.Errorf("'labelFilter' is not allowed when 'snapshotName' is set")
		}
	}

	if selector.LabelFilter != nil && hasNonEscapedValueInLabel(*selector.LabelFilter) {
		return fmt.Errorf("non-escaped reserved wildcard character '*' and multiple labels separator ',' are not supported in label filters")
	}

	return nil
}