code: func PrintModelDescription(inModel string, fieldsPath []string, w io.Writer, swaggerSchema *swagger.ApiDeclaration, r bool) error {
  	recursive = r // this is global for convenience
  	apiVer := apiutil.GetVersion(swaggerSchema.ApiVersion) + "."
  
  	var pointedModel *swagger.NamedModel
  	for i := range swaggerSchema.Models.List {
  		name := swaggerSchema.Models.List[i].Name
  
  		allModels[name] = &swaggerSchema.Models.List[i]
  		if strings.ToLower(name) == strings.ToLower(apiVer+inModel) {
  			pointedModel = &swaggerSchema.Models.List[i]
  		}
  	}
  	if pointedModel == nil {
  		return fmt.Errorf("requested resource %q is not defined", inModel)
  	}
  
  	if len(fieldsPath) == 0 {
  		return printTopLevelResourceInfo(w, pointedModel)
  	}
  
  	var pointedModelAsProp *swagger.NamedModelProperty
  	for _, field := range fieldsPath {
  		if prop, nextModel, isModel := getField(pointedModel, field); prop != nil {
  			if isModel {
  				pointedModelAsProp = prop
  				pointedModel = allModels[nextModel]
  			} else {
  				return printPrimitive(w, prop)
  			}
  		} else {
  			return fmt.Errorf("field %q does not exist", field)
  		}
  	}
  	return printModelInfo(w, pointedModel, pointedModelAsProp)
  }
docs: // PrintModelDescription prints the description of a specific model or dot path