<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def scan_list(self, start_time=None, end_time=None, **kwargs):
 """List scans stored in Security Center in a given time range. Time is given in UNIX timestamps, assumed to be UTC. If a `datetime` is passed it is converted. If `end_time` is not specified it is NOW. If `start_time` is not specified it is 30 days previous from `end_time`. :param start_time: start of range to filter :type start_time: date, datetime, int :param end_time: end of range to filter :type start_time: date, datetime, int :return: list of dictionaries representing scans """


        try:
            end_time = datetime.utcfromtimestamp(int(end_time))
        except TypeError:
            if end_time is None:
                end_time = datetime.utcnow()

        try:
            start_time = datetime.utcfromtimestamp(int(start_time))
        except TypeError:
            if start_time is None:
                start_time = end_time - timedelta(days=30)

        data = {"startTime": calendar.timegm(start_time.utctimetuple()),
                "endTime": calendar.timegm(end_time.utctimetuple())}
        data.update(kwargs)

        result = self.raw_query("scanResult", "getRange", data=data)
        return result["scanResults"]