static MetricValue translateMetricValueFromIotToCfn()

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();
    }