class CheckpointProperties implements Serializable {

	@VisibleForTesting
	CheckpointProperties(
			boolean forced,
			CheckpointType checkpointType,
			boolean discardSubsumed,
			boolean discardFinished,
			boolean discardCancelled,
			boolean discardFailed,
			boolean discardSuspended) {

		this.forced = forced;
		this.checkpointType = checkNotNull(checkpointType);
		this.discardSubsumed = discardSubsumed;
		this.discardFinished = discardFinished;
		this.discardCancelled = discardCancelled;
		this.discardFailed = discardFailed;
		this.discardSuspended = discardSuspended;
	}

	@VisibleForTesting  CheckpointProperties(
			boolean forced,
			CheckpointType checkpointType,
			boolean discardSubsumed,
			boolean discardFinished,
			boolean discardCancelled,
			boolean discardFailed,
			boolean discardSuspended);

}