code: func (m *DefaultRESTMapper) ResourceSingularizer(resourceType string) (string, error) {
  	partialResource := unversioned.GroupVersionResource{Resource: resourceType}
  	resource, err := m.ResourceFor(partialResource)
  	if err != nil {
  		return resourceType, err
  	}
  
  	singular, ok := m.pluralToSingular[resource]
  	if !ok {
  		return resourceType, fmt.Errorf("no singular of resource %v has been defined", resource)
  	}
  	return singular.Resource, nil
  }
docs: // ResourceSingularizer implements RESTMapper
  // It converts a resource name from plural to singular (e.g., from pods to pod)
  // It must have exactly one match and it must match case perfectly.  This is congruent with old functionality