<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def bulk_create_datetimes(date_start: DateTime, date_end: DateTime, **kwargs) -> List[DateTime]: """Bulk create datetime objects. This method creates list of datetime objects from ``date_start`` to ``date_end``. You can use the following keyword arguments: * ``days`` * ``hours`` * ``minutes`` * ``seconds`` * ``microseconds`` See datetime module documentation for more: https://docs.python.org/3.7/library/datetime.html#timedelta-objects :param date_start: Begin of the range. :param date_end: End of the range. :param kwargs: Keyword arguments for datetime.timedelta :return: List of datetime objects :raises: ValueError: When ``date_start``/``date_end`` not passed and when ``date_start`` larger than ``date_end``. """

        dt_objects = []

        if not date_start and not date_end:
            raise ValueError('You must pass date_start and date_end')

        if date_end < date_start:
            raise ValueError('date_start can not be larger than date_end')

        while date_start <= date_end:
            date_start += timedelta(**kwargs)
            dt_objects.append(date_start)

        return dt_objects