code: func NewForbidden(qualifiedResource schema.GroupResource, name string, err error) *StatusError {
  	var message string
  	if qualifiedResource.Empty() {
  		message = fmt.Sprintf("forbidden: %v", err)
  	} else if name == "" {
  		message = fmt.Sprintf("%s is forbidden: %v", qualifiedResource.String(), err)
  	} else {
  		message = fmt.Sprintf("%s %q is forbidden: %v", qualifiedResource.String(), name, err)
  	}
  	return &StatusError{metav1.Status{
  		Status: metav1.StatusFailure,
  		Code:   http.StatusForbidden,
  		Reason: metav1.StatusReasonForbidden,
  		Details: &metav1.StatusDetails{
  			Group: qualifiedResource.Group,
  			Kind:  qualifiedResource.Resource,
  			Name:  name,
  		},
  		Message: message,
  	}}
  }
docs: // NewForbidden returns an error indicating the requested action was forbidden