in aws-iot-securityprofile/src/main/java/com/amazonaws/iot/securityprofile/Translator.java [134:164]
static MetricValue translateMetricValueFromIotToCfn(
software.amazon.awssdk.services.iot.model.MetricValue iotMetricValue) {
if (iotMetricValue == null) {
return null;
}
MetricValue.MetricValueBuilder metricValueBuilder = MetricValue.builder();
if (iotMetricValue.count() != null) {
metricValueBuilder.count(iotMetricValue.count().toString());
}
if (iotMetricValue.number() != null) {
metricValueBuilder.number(iotMetricValue.number());
}
// For lists, we're using the .has* methods to differentiate between null and empty lists
// from DescribeSecurityProfileResponse.
// SDK converts nulls from Describe API to empty DefaultSdkAutoConstructLists,
// so if we simply translate without the .has* check, nulls will turn into empty lists.
if (iotMetricValue.hasCidrs()) {
metricValueBuilder.cidrs(new HashSet<>(iotMetricValue.cidrs()));
}
if (iotMetricValue.hasPorts()) {
metricValueBuilder.ports(new HashSet<>(iotMetricValue.ports()));
}
if (iotMetricValue.hasNumbers()) {
metricValueBuilder.numbers(new HashSet<>(iotMetricValue.numbers()));
}
if (iotMetricValue.hasStrings()) {
metricValueBuilder.strings(new HashSet<>(iotMetricValue.strings()));
}
return metricValueBuilder.build();
}