code: func (s ClusterRoleBindingGeneratorV1) Generate(genericParams map[string]interface{}) (runtime.Object, error) {
  	err := generate.ValidateParams(s.ParamNames(), genericParams)
  	if err != nil {
  		return nil, err
  	}
  	delegate := &ClusterRoleBindingGeneratorV1{}
  	userStrings, found := genericParams["user"]
  	if found {
  		fromFileArray, isArray := userStrings.([]string)
  		if !isArray {
  			return nil, fmt.Errorf("expected []string, found :%v", userStrings)
  		}
  		delegate.Users = fromFileArray
  		delete(genericParams, "user")
  	}
  	groupStrings, found := genericParams["group"]
  	if found {
  		fromLiteralArray, isArray := groupStrings.([]string)
  		if !isArray {
  			return nil, fmt.Errorf("expected []string, found :%v", groupStrings)
  		}
  		delegate.Groups = fromLiteralArray
  		delete(genericParams, "group")
  	}
  	saStrings, found := genericParams["serviceaccount"]
  	if found {
  		fromLiteralArray, isArray := saStrings.([]string)
  		if !isArray {
  			return nil, fmt.Errorf("expected []string, found :%v", saStrings)
  		}
  		delegate.ServiceAccounts = fromLiteralArray
  		delete(genericParams, "serviceaccount")
  	}
  	params := map[string]string{}
  	for key, value := range genericParams {
  		strVal, isString := value.(string)
  		if !isString {
  			return nil, fmt.Errorf("expected string, saw %v for '%s'", value, key)
  		}
  		params[key] = strVal
  	}
  	delegate.Name = params["name"]
  	delegate.ClusterRole = params["clusterrole"]
  	return delegate.StructuredGenerate()
  }
docs: // Generate returns a clusterRoleBinding using the specified parameters.