package com.linkedin.thirdeye.anomalydetection.model.data; import java.util.List; import java.util.Properties; import org.joda.time.Interval; public interface DataModel { /** * Initializes this model with the given properties. * @param properties the given properties. */ void init(Properties properties); /** * Returns properties of this model. */ Properties getProperties(); /** * Given the interval of the observed (current) time series, returns all intervals of time series * that are used by this anomaly detection. * @param monitoringWindowStartTime inclusive milliseconds * @param monitoringWindowEndTime exclusive milliseconds * @return all intervals of time series that are used by this anomaly detection. */ List<Interval> getAllDataIntervals(long monitoringWindowStartTime, long monitoringWindowEndTime); /** * Given the interval of the observed (current) time series, returns the intervals of time series * that are used by this prediction model for training purpose. * * @param monitoringWindowStartTime inclusive milliseconds * @param monitoringWindowEndTime exclusive milliseconds * * @return intervals of time series that are used for training. */ List<Interval> getTrainingDataIntervals(long monitoringWindowStartTime, long monitoringWindowEndTime); }