package com.xfestudio.xfeservermanager.api.policy;
import com.xfestudio.xfeservermanager.api.util.ApiChecks;
import java.time.Instant;
import java.util.List;
import java.util.Objects;
/** An immutable, publishable policy version. */
public record PolicySnapshot(
long version,
Instant createdAt,
String createdBy,
String description,
List<PolicyRule> rules,
String checksum
) {
public PolicySnapshot {
if (version < 0) {
throw new IllegalArgumentException("version must be non-negative");
}
Objects.requireNonNull(createdAt, "createdAt");
createdBy = ApiChecks.notBlank(createdBy, "createdBy");
description = ApiChecks.notBlank(description, "description");
rules = ApiChecks.immutableList(rules, "rules");
checksum = ApiChecks.notBlank(checksum, "checksum");
}
}
package com.xfestudio.xfeservermanager.api.policy;
import com.xfestudio.xfeservermanager.api.util.ApiChecks;
import java.time.Instant;
import java.util.List;
import java.util.Objects;
/** An immutable, publishable policy version. */
public record PolicySnapshot(
long version,
Instant createdAt,
String createdBy,
String description,
List<PolicyRule> rules,
String checksum
) {
public PolicySnapshot {
if (version < 0) {
throw new IllegalArgumentException("version must be non-negative");
}
Objects.requireNonNull(createdAt, "createdAt");
createdBy = ApiChecks.notBlank(createdBy, "createdBy");
description = ApiChecks.notBlank(description, "description");
rules = ApiChecks.immutableList(rules, "rules");
checksum = ApiChecks.notBlank(checksum, "checksum");
}
}