in services/library/src/main/java/com/google/cloud/pso/bq_snapshot_manager/entities/backup_policy/BackupPolicy.java [194:282]
public static BackupPolicy fromMap(Map<String, String> fieldsMap) throws IllegalArgumentException {
// parse required fields
String cron = Utils.getOrFail(fieldsMap, BackupPolicyFields.backup_cron.toString());
BackupMethod method = BackupMethod.fromString(
Utils.getOrFail(fieldsMap, BackupPolicyFields.backup_method.toString())
);
TimeTravelOffsetDays timeTravelOffsetDays = TimeTravelOffsetDays.fromString(
Utils.getOrFail(fieldsMap, BackupPolicyFields.backup_time_travel_offset_days.toString())
);
String backupStorageProject = Utils.getOrFail(fieldsMap, BackupPolicyFields.backup_storage_project.toString());
// config source is not required in the fallback policies. It defaults to SYSTEM if not present
String configSourceStr = fieldsMap.getOrDefault(
BackupPolicyFields.config_source.toString(),
null);
BackupConfigSource configSource = configSourceStr == null ? BackupConfigSource.SYSTEM :
BackupConfigSource.fromString(configSourceStr);
BackupPolicyBuilder backupPolicyBuilder = new BackupPolicyBuilder(cron, method, timeTravelOffsetDays,
configSource, backupStorageProject);
// parse optional fields
// these fields might not exist in the attached tag template if not filled. Same for fallback policies
backupPolicyBuilder.setBackupOperationProject(
fieldsMap.getOrDefault(
BackupPolicyFields.backup_operation_project.toString(),
null
)
);
backupPolicyBuilder.setBigQuerySnapshotStorageDataset(
fieldsMap.getOrDefault(
BackupPolicyFields.bq_snapshot_storage_dataset.toString(),
null)
);
String bqSnapshotExpirationDaysStr = fieldsMap.getOrDefault(
BackupPolicyFields.bq_snapshot_expiration_days.toString(),
null);
backupPolicyBuilder.setBigQuerySnapshotExpirationDays(
bqSnapshotExpirationDaysStr == null ? null : Double.parseDouble(bqSnapshotExpirationDaysStr)
);
// parse optional GCS snapshot settings
backupPolicyBuilder.setGcsSnapshotStorageLocation(
fieldsMap.getOrDefault(
BackupPolicyFields.gcs_snapshot_storage_location.toString(),
null)
);
String gcsSnapshotFormatStr = fieldsMap.getOrDefault(
BackupPolicyFields.gcs_snapshot_format.toString(),
null);
backupPolicyBuilder.setGcsExportFormat(
gcsSnapshotFormatStr == null ? null : GCSSnapshotFormat.valueOf(gcsSnapshotFormatStr)
);
backupPolicyBuilder.setGcsCsvDelimiter(
fieldsMap.getOrDefault(
BackupPolicyFields.gcs_csv_delimiter.toString(),
null)
);
// if optional boolean values are not provided, set them to null and not false
String gcsCsvExportHeaderStr = fieldsMap.getOrDefault(
BackupPolicyFields.gcs_csv_export_header.toString(),
null);
backupPolicyBuilder.setGcsCsvExportHeader(
gcsCsvExportHeaderStr == null ? null : Boolean.valueOf(gcsCsvExportHeaderStr)
);
// if optional boolean values are not provided, set them to null and not false
String gcsAvroUseLogicalAvroTypeStr = fieldsMap.getOrDefault(
BackupPolicyFields.gcs_avro_use_logical_types.toString(),
null);
backupPolicyBuilder.setGcsUseAvroLogicalTypes(
gcsAvroUseLogicalAvroTypeStr == null ? null : Boolean.valueOf(gcsAvroUseLogicalAvroTypeStr)
);
return backupPolicyBuilder.build();
}