class ResourceBudgetManager {

	public boolean release(final ResourceProfile reservation) {
		checkResourceProfileNotNullOrUnknown(reservation);
		ResourceProfile newAvailableBudget = availableBudget.merge(reservation);
		if (!totalBudget.isMatching(newAvailableBudget)) {
			return false;
		}

		availableBudget = newAvailableBudget;
		return true;
	}

	public  ResourceBudgetManager(final ResourceProfile totalBudget);

}