class SLAEnforcer {

	public int enforceSLAMin(int activeJobsCount, int acceptedJobsCount) {
		Preconditions.checkArgument(activeJobsCount >=0, "Invalid activeJobsCount " + activeJobsCount);
		Preconditions.checkArgument(acceptedJobsCount >=0, "Invalid acceptedJobsCount " + activeJobsCount);
		// if no min sla defined
		if(!sla.isPresent() || sla.get().getMin() == 0) {
			logger.debug("SLA min not set nothing to enforce");
			return 0;
		}
		int jobsInActiveOrSubmittedState = activeJobsCount + acceptedJobsCount;
		if(jobsInActiveOrSubmittedState < sla.get().getMin()) {
			int jobsToLaunch = sla.get().getMin()-jobsInActiveOrSubmittedState;
			logger.info("Submit {} jobs per sla min of {}", jobsToLaunch, sla.get().getMin());
			return jobsToLaunch;
		}	
		logger.debug("SLA min already satisfied");
		return 0;
	}

	public  SLAEnforcer(SLA sla);

}