package com.hubspot.singularity.smtp; import com.google.common.base.Optional; import com.hubspot.singularity.ExtendedTaskState; import com.hubspot.singularity.SingularityDisastersData; import com.hubspot.singularity.SingularityRequest; import com.hubspot.singularity.SingularityTask; import com.hubspot.singularity.SingularityTaskHistory; import com.hubspot.singularity.SingularityTaskId; import com.hubspot.singularity.api.SingularityPauseRequest; import com.hubspot.singularity.api.SingularityScaleRequest; public interface SingularityMailer { void sendTaskOverdueMail(final Optional<SingularityTask> task, final SingularityTaskId taskId, final SingularityRequest request, final long runTime, final long expectedRuntime); void queueTaskCompletedMail(final Optional<SingularityTask> task, final SingularityTaskId taskId, final SingularityRequest request, final ExtendedTaskState taskState); void sendTaskCompletedMail(SingularityTaskHistory taskHistory, SingularityRequest request); void sendRequestPausedMail(SingularityRequest request, Optional<SingularityPauseRequest> pauseRequest, Optional<String> user); void sendRequestUnpausedMail(SingularityRequest request, Optional<String> user, Optional<String> message); void sendRequestScaledMail(SingularityRequest request, Optional<SingularityScaleRequest> newScaleRequest, Optional<Integer> formerInstances, Optional<String> user); void sendRequestRemovedMail(SingularityRequest request, Optional<String> user, Optional<String> message); void sendRequestInCooldownMail(final SingularityRequest request); void sendDisasterMail(final SingularityDisastersData disastersData); }