package com.scopely.infrastructure.kinesis; import java.util.Map; import java.util.concurrent.TimeUnit; public class VcrConfiguration { String sourceStream; String targetStream; String bucket; long bufferSizeBytes = 1_024l * 1_024l * 100l; long bufferTimeMillis = TimeUnit.SECONDS.toMillis(60); public VcrConfiguration(Map<String, String> getenv) { this.sourceStream = getenv.get("VCR_SOURCE_STREAM_NAME"); this.targetStream = getenv.get("VCR_TARGET_STREAM_NAME"); this.bucket = getenv.get("VCR_BUCKET_NAME"); this.bufferSizeBytes = Long.parseLong(getenv.getOrDefault("VCR_BUFFER_SIZE_BYTES", String.valueOf(bufferSizeBytes))); this.bufferTimeMillis = Long.parseLong(getenv.getOrDefault("VCR_BUFFER_TIME_MILLIS", String.valueOf(bufferTimeMillis))); } public VcrConfiguration(String sourceStream, String targetStream, String bucket, long bufferSizeBytes, long bufferTimeMillis) { this.sourceStream = sourceStream; this.targetStream = targetStream; this.bucket = bucket; this.bufferSizeBytes = bufferSizeBytes; this.bufferTimeMillis = bufferTimeMillis; } public void validateConfiguration() { if (sourceStream == null && targetStream == null) { throw new IllegalArgumentException("VCR_SOURCE_STREAM_NAME or VCR_TARGET_STREAM_NAME must be set"); } if (bucket == null) { throw new IllegalArgumentException("VCR_BUCKET_NAME must be set"); } } }