code: func (b *Builder) ResourceTypeOrNameArgs(allowEmptySelector bool, args ...string) *Builder {
  	args = normalizeMultipleResourcesArgs(args)
  	if ok, err := hasCombinedTypeArgs(args); ok {
  		if err != nil {
  			b.errs = append(b.errs, err)
  			return b
  		}
  		for _, s := range args {
  			tuple, ok, err := splitResourceTypeName(s)
  			if err != nil {
  				b.errs = append(b.errs, err)
  				return b
  			}
  			if ok {
  				b.resourceTuples = append(b.resourceTuples, tuple)
  			}
  		}
  		return b
  	}
  	if len(args) > 0 {
  		// Try replacing aliases only in types
  		args[0] = b.replaceAliases(args[0])
  	}
  	switch {
  	case len(args) > 2:
  		b.names = append(b.names, args[1:]...)
  		b.ResourceTypes(SplitResourceArgument(args[0])...)
  	case len(args) == 2:
  		b.names = append(b.names, args[1])
  		b.ResourceTypes(SplitResourceArgument(args[0])...)
  	case len(args) == 1:
  		b.ResourceTypes(SplitResourceArgument(args[0])...)
  		if b.selector == nil && allowEmptySelector {
  			b.selector = labels.Everything()
  		}
  	case len(args) == 0:
  	default:
  		b.errs = append(b.errs, fmt.Errorf("when passing arguments, must be resource or resource and name"))
  	}
  	return b
  }
docs: // ResourceTypeOrNameArgs indicates that the builder should accept arguments
  // of the form `(<type1>[,<type2>,...]|<type> <name1>[,<name2>,...])`. When one argument is
  // received, the types provided will be retrieved from the server (and be comma delimited).
  // When two or more arguments are received, they must be a single type and resource name(s).
  // The allowEmptySelector permits to select all the resources (via Everything func).