from datetime import datetime


def validate_date_string(date_string):
    """
    Validates the date string is a valid date in the YYYY-MM-DD format.

    If the string is valid, it returns the string.  Otherwise, it raises either
    a ValueError or TypeError.

    :param date_string: The string to validate

    :return:  a valid date string
    :raises:  A ValueError if the date string is not a valid date or
        doesn't conform to the specified format.
    """
    datetime.strptime(date_string, '%Y-%m-%d')
    return date_string