Get a list of Transactions pages that satisfy a time-based Transaction
        query.

        Args:
            accountID:
                Account Identifier
            fromTime:
                The starting time (inclusive) of the time range for the
                Transactions being queried.
            toTime:
                The ending time (inclusive) of the time range for the
                Transactions being queried.
            pageSize:
                The number of Transactions to include in each page of the
                results.
            type:
                A filter for restricting the types of Transactions to retreive.

        Returns:
            v20.response.Response containing the results from submitting the
            request

def list(
        self,
        accountID,
        **kwargs
    ):
        """
        Get a list of Transactions pages that satisfy a time-based Transaction
        query.

        Args:
            accountID:
                Account Identifier
            fromTime:
                The starting time (inclusive) of the time range for the
                Transactions being queried.
            toTime:
                The ending time (inclusive) of the time range for the
                Transactions being queried.
            pageSize:
                The number of Transactions to include in each page of the
                results.
            type:
                A filter for restricting the types of Transactions to retreive.

        Returns:
            v20.response.Response containing the results from submitting the
            request
        """

        request = Request(
            'GET',
            '/v3/accounts/{accountID}/transactions'
        )

        request.set_path_param(
            'accountID',
            accountID
        )

        request.set_param(
            'from',
            kwargs.get('fromTime')
        )

        request.set_param(
            'to',
            kwargs.get('toTime')
        )

        request.set_param(
            'pageSize',
            kwargs.get('pageSize')
        )

        request.set_param(
            'type',
            kwargs.get('type')
        )

        response = self.ctx.request(request)


        if response.content_type is None:
            return response

        if not response.content_type.startswith("application/json"):
            return response

        jbody = json.loads(response.raw_body)

        parsed_body = {}

        #
        # Parse responses as defined by the API specification
        #
        if str(response.status) == "200":
            if jbody.get('from') is not None:
                parsed_body['from'] = \
                    jbody.get('from')

            if jbody.get('to') is not None:
                parsed_body['to'] = \
                    jbody.get('to')

            if jbody.get('pageSize') is not None:
                parsed_body['pageSize'] = \
                    jbody.get('pageSize')

            if jbody.get('type') is not None:
                parsed_body['type'] = \
                    jbody.get('type')

            if jbody.get('count') is not None:
                parsed_body['count'] = \
                    jbody.get('count')

            if jbody.get('pages') is not None:
                parsed_body['pages'] = \
                    jbody.get('pages')

            if jbody.get('lastTransactionID') is not None:
                parsed_body['lastTransactionID'] = \
                    jbody.get('lastTransactionID')

        elif str(response.status) == "400":
            if jbody.get('errorCode') is not None:
                parsed_body['errorCode'] = \
                    jbody.get('errorCode')

            if jbody.get('errorMessage') is not None:
                parsed_body['errorMessage'] = \
                    jbody.get('errorMessage')

        elif str(response.status) == "401":
            if jbody.get('errorCode') is not None:
                parsed_body['errorCode'] = \
                    jbody.get('errorCode')

            if jbody.get('errorMessage') is not None:
                parsed_body['errorMessage'] = \
                    jbody.get('errorMessage')

        elif str(response.status) == "403":
            if jbody.get('errorCode') is not None:
                parsed_body['errorCode'] = \
                    jbody.get('errorCode')

            if jbody.get('errorMessage') is not None:
                parsed_body['errorMessage'] = \
                    jbody.get('errorMessage')

        elif str(response.status) == "404":
            if jbody.get('errorCode') is not None:
                parsed_body['errorCode'] = \
                    jbody.get('errorCode')

            if jbody.get('errorMessage') is not None:
                parsed_body['errorMessage'] = \
                    jbody.get('errorMessage')

        elif str(response.status) == "405":
            if jbody.get('errorCode') is not None:
                parsed_body['errorCode'] = \
                    jbody.get('errorCode')

            if jbody.get('errorMessage') is not None:
                parsed_body['errorMessage'] = \
                    jbody.get('errorMessage')

        elif str(response.status) == "416":
            if jbody.get('errorCode') is not None:
                parsed_body['errorCode'] = \
                    jbody.get('errorCode')

            if jbody.get('errorMessage') is not None:
                parsed_body['errorMessage'] = \
                    jbody.get('errorMessage')

        #
        # Unexpected response status
        #
        else:
            parsed_body = jbody

        response.body = parsed_body

        return response