in src/main/java/com/google/gcs/sdrs/controller/RetentionRulesController.java [225:272]
private Collection<ValidationResult> validateCompositeKey(
String retentionRuleType, String projectId, String dataStorageName) {
Collection<ValidationResult> partialValidations = new HashSet<>();
boolean validateDataStorageName = false;
if (retentionRuleType == null) {
partialValidations.add(
ValidationResult.fromString(
String.format(
"type, one of [%s, %s, %s], must be provided.",
RetentionRuleType.GLOBAL.toString(),
RetentionRuleType.DATASET.toString(),
RetentionRuleType.DEFAULT.toString())));
} else {
switch (retentionRuleType.toUpperCase()) {
case ValidationConstants.GLOBAL_JSON_VALUE:
break;
case ValidationConstants.DATASET_JSON_VALUE:
validateDataStorageName = true;
break;
case ValidationConstants.DEFAULT_JSON_VALUE:
validateDataStorageName = true;
break;
default:
partialValidations.add(
ValidationResult.fromString(
String.format(
"type, one of [%s, %s, %s], must be provided.",
RetentionRuleType.GLOBAL.toString(),
RetentionRuleType.DATASET.toString(),
RetentionRuleType.DEFAULT.toString())));
}
if (validateDataStorageName) {
partialValidations.add(
FieldValidations.validateFieldFollowsBucketNamingStructure(
"dataStorageName", dataStorageName));
if (projectId == null) {
partialValidations.add(
ValidationResult.fromString(
String.format(
"projectId must be provided if type is %s or %s",
RetentionRuleType.DATASET.toString(), RetentionRuleType.DEFAULT.toString())));
}
}
}
return partialValidations;
}