docs: def itemData(self, f=None, savePath=None):
          """ returns data for an item on agol/portal
  
          Inputs:
             f - output format either zip of json
             savePath - location to save the file
          Output:
             either JSON/text or filepath
          """
  
          params = {
          }
          if f is not None and \
             f.lower() in ['zip', 'json']:
              params['f'] = f
          url = "%s/data" % self.root
          if self.type in ["Shapefile", "CityEngine Web Scene", "Web Scene", "KML",
                           "Code Sample",
                           "Code Attachment", "Operations Dashboard Add In",
                           "CSV", "CSV Collection", "CAD Drawing", "Service Definition",
                           "Microsoft Word", "Microsoft Powerpoint",
                           "Microsoft Excel", "PDF", "Image",
                           "Visio Document", "iWork Keynote", "iWork Pages",
                           "iWork Numbers", "Map Document", "Map Package",
                           "Basemap Package", "Tile Package", "Project Package",
                           "Task File", "ArcPad Package", "Explorer Map",
                           "Globe Document", "Scene Document", "Published Map",
                           "Map Template", "Windows Mobile Package", "Pro Map",
                           "Layout", "Layer", "Layer Package", "File Geodatabase",
                           "Explorer Layer", "Geoprocessing Package", "Geoprocessing Sample",
                           "Locator Package", "Rule Package", "Workflow Manager Package",
                           "Desktop Application", "Desktop Application Template",
                           "Code Sample", "Desktop Add In", "Explorer Add In",
                           "ArcGIS Desktop Add-In", "ArcGIS Explorer Add-In",
                           "ArcGIS Explorer application configuration", "ArcGIS Explorer document",
                           ]:
              if savePath is None:
                  raise AttributeError('savePath must be provided for a item of type: %s' % self.type)
              if os.path.isdir(savePath) == False:
                  os.makedirs(savePath)
              result = self._get(url=url,
                                 param_dict=params,
                                 securityHandler=self._securityHandler,
                                 proxy_url=self._proxy_url,
                                 proxy_port=self._proxy_port,
                                 out_folder=savePath,
                                 file_name=self.name)
              return result
          else:
              results =  self._get(url, params,
                                   proxy_port=self._proxy_port,
                                   securityHandler=self._securityHandler,
                                   proxy_url=self._proxy_url)
              return results