<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def list(self, resource, url_prefix, auth, session, send_opts):
 """List all resources of the same type as the given resource. Args: resource (intern.resource.boss.BossResource):
 List resources of the same type as this.. url_prefix (string):
 Protocol + host such as https://api.theboss.io auth (string):
 Token to send in the request header. session (requests.Session):
 HTTP session to use for request. send_opts (dictionary):
 Additional arguments to pass to session.send(). Returns: (list):
 List of resources. Each resource is a dictionary. Raises: requests.HTTPError on failure. """

        req = self.get_request(
            resource, 'GET', 'application/json', url_prefix, auth,
            proj_list_req=True)

        prep = session.prepare_request(req)
        resp = session.send(prep, **send_opts)
        if resp.status_code == 200:
            return self._get_resource_list(resp.json())

        err = ('List failed on {}, got HTTP response: ({}) - {}'.format(
            resource.name, resp.status_code, resp.text))
        raise HTTPError(err, request = req, response = resp)