docs: def getProjectAreaIDs(self, projectarea_name=None, archived=False):
          """Get all :class:`rtcclient.project_area.ProjectArea` id(s)
          by project area name
  
          If `projectarea_name` is `None`, all the
          :class:`rtcclient.project_area.ProjectArea` id(s) will be returned.
  
          :param projectarea_name: the project area name
          :param archived: (default is False) whether the project area
              is archived
          :return: a :class:`list` that contains all the :class:`ProjectArea` ids
          :rtype: list
          """
  
          projectarea_ids = list()
          if projectarea_name and isinstance(projectarea_name,
                                             six.string_types):
              projectarea_id = self.getProjectAreaID(projectarea_name,
                                                     archived=archived)
              projectarea_ids.append(projectarea_id)
          elif projectarea_name is None:
              projectareas = self.getProjectAreas(archived=archived)
              if projectareas is None:
                  return None
              projectarea_ids = [proj_area.id for proj_area in projectareas]
          else:
              error_msg = "Invalid ProjectArea name: [%s]" % projectarea_name
              self.log.error(error_msg)
              raise exception.BadValue(error_msg)
  
          return projectarea_ids