package com.xfestudio.xfeservermanager.core.trigger;
import java.time.Instant;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.UUID;
/** Bounded opt-in event capture session and one redacted sample. */
public record TriggerEventCapture(
UUID captureId, String createdBy, Set<String> eventTypes, Instant expiresAt,
int maximumSamples, int sampleCount, Instant createdAt) {
public TriggerEventCapture {
Objects.requireNonNull(captureId, "captureId");
createdBy = Objects.requireNonNull(createdBy, "createdBy");
eventTypes = Set.copyOf(eventTypes == null ? Set.of() : eventTypes);
Objects.requireNonNull(expiresAt, "expiresAt");
Objects.requireNonNull(createdAt, "createdAt");
if (maximumSamples < 1 || maximumSamples > 500 || sampleCount < 0) {
throw new IllegalArgumentException("invalid capture sample limit/count");
}
}
public record Sample(UUID sampleId, UUID captureId, String eventType,
Map<String, Object> context, Instant capturedAt) {
public Sample {
Objects.requireNonNull(sampleId, "sampleId");
Objects.requireNonNull(captureId, "captureId");
eventType = Objects.requireNonNull(eventType, "eventType");
context = Map.copyOf(context == null ? Map.of() : context);
Objects.requireNonNull(capturedAt, "capturedAt");
}
}
}
package com.xfestudio.xfeservermanager.core.trigger;
import java.time.Instant;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.UUID;
/** Bounded opt-in event capture session and one redacted sample. */
public record TriggerEventCapture(
UUID captureId, String createdBy, Set<String> eventTypes, Instant expiresAt,
int maximumSamples, int sampleCount, Instant createdAt) {
public TriggerEventCapture {
Objects.requireNonNull(captureId, "captureId");
createdBy = Objects.requireNonNull(createdBy, "createdBy");
eventTypes = Set.copyOf(eventTypes == null ? Set.of() : eventTypes);
Objects.requireNonNull(expiresAt, "expiresAt");
Objects.requireNonNull(createdAt, "createdAt");
if (maximumSamples < 1 || maximumSamples > 500 || sampleCount < 0) {
throw new IllegalArgumentException("invalid capture sample limit/count");
}
}
public record Sample(UUID sampleId, UUID captureId, String eventType,
Map<String, Object> context, Instant capturedAt) {
public Sample {
Objects.requireNonNull(sampleId, "sampleId");
Objects.requireNonNull(captureId, "captureId");
eventType = Objects.requireNonNull(eventType, "eventType");
context = Map.copyOf(context == null ? Map.of() : context);
Objects.requireNonNull(capturedAt, "capturedAt");
}
}
}