Get :class:`rtcclient.project_area.ProjectArea` object by its name

        :param projectarea_name: the project area name
        :param archived: (default is False) whether the project area
            is archived
        :param returned_properties: the returned properties that you want.
            Refer to :class:`rtcclient.client.RTCClient` for more explanations
        :return: the :class:`rtcclient.project_area.ProjectArea` object
        :rtype: rtcclient.project_area.ProjectArea

def getProjectArea(self, projectarea_name, archived=False,
                       returned_properties=None):
        """Get :class:`rtcclient.project_area.ProjectArea` object by its name

        :param projectarea_name: the project area name
        :param archived: (default is False) whether the project area
            is archived
        :param returned_properties: the returned properties that you want.
            Refer to :class:`rtcclient.client.RTCClient` for more explanations
        :return: the :class:`rtcclient.project_area.ProjectArea` object
        :rtype: rtcclient.project_area.ProjectArea
        """

        if not isinstance(projectarea_name,
                          six.string_types) or not projectarea_name:
            excp_msg = "Please specify a valid ProjectArea name"
            self.log.error(excp_msg)
            raise exception.BadValue(excp_msg)

        self.log.debug("Try to get <ProjectArea %s>", projectarea_name)
        rp = returned_properties
        proj_areas = self._getProjectAreas(archived=archived,
                                           returned_properties=rp,
                                           projectarea_name=projectarea_name)

        if proj_areas is not None:
            proj_area = proj_areas[0]
            self.log.info("Find <ProjectArea %s>", proj_area)
            return proj_area

        self.log.error("No ProjectArea named %s", projectarea_name)
        raise exception.NotFound("No ProjectArea named %s" % projectarea_name)