def METHOD_NAME(
    self, configuration: Optional[ExpectationConfiguration]
) -> None:
    """
    Validates that a configuration has been set, and sets a configuration if it has yet to be set. Ensures that
    necessary configuration arguments have been provided for the validation of the expectation.
    Args:
        configuration (OPTIONAL[ExpectationConfiguration]): \
            An optional Expectation Configuration entry that will be used to configure the expectation
    Returns:
        None. Raises InvalidExpectationConfigurationError if the config is not validated successfully
    """
    super().METHOD_NAME(configuration)
    configuration = configuration or self.configuration
    start_datetime = configuration.kwargs["start_datetime"]
    end_datetime = configuration.kwargs["end_datetime"]
    gap = configuration.kwargs["gap"]
    column_list = configuration.kwargs["column_list"]
    # # Check other things in configuration.kwargs and raise Exceptions if needed
    try:
        # parameter cannot be less than zero,
        assert start_datetime is None or isinstance(start_datetime, str)
        assert end_datetime is None or isinstance(end_datetime, str)
        assert gap is None or isinstance(gap, str)
        assert gap in column_list
        assert start_datetime in column_list
        assert end_datetime in column_list
    except AssertionError as e:
        raise InvalidExpectationConfigurationError(str(e))