public ProgressEvent handleRequest()

in anomalymonitor/src/main/java/software/amazon/ce/anomalymonitor/ReadHandler.java [18:60]


    public ProgressEvent<ResourceModel, CallbackContext> handleRequest(
        final AmazonWebServicesClientProxy proxy,
        final ResourceHandlerRequest<ResourceModel> request,
        final CallbackContext callbackContext,
        final Logger logger) {

        final ResourceModel model = request.getDesiredResourceState();

        try {
            List<String> monitorArns = Stream.of(model.getMonitorArn()).collect(Collectors.toList());
            GetAnomalyMonitorsResponse response = proxy.injectCredentialsAndInvokeV2(
                RequestBuilder.buildGetAnomalyMonitorsRequest(monitorArns, null),
                costExplorerClient::getAnomalyMonitors
            );
            if (response.anomalyMonitors().isEmpty()) {
                return ProgressEvent.<ResourceModel, CallbackContext>builder()
                    .resourceModel(model)
                    .status(OperationStatus.FAILED)
                    .errorCode(HandlerErrorCode.NotFound)
                    .build();
            }
            AnomalyMonitor anomalyMonitor = response.anomalyMonitors().get(0);
            model.setMonitorName(anomalyMonitor.monitorName());
            model.setCreationDate(anomalyMonitor.creationDate());
            model.setLastUpdatedDate(anomalyMonitor.lastUpdatedDate());
            model.setLastEvaluatedDate(anomalyMonitor.lastEvaluatedDate());
            model.setMonitorType(anomalyMonitor.monitorType().toString());
            model.setMonitorDimension(anomalyMonitor.monitorDimension() != null ? anomalyMonitor.monitorDimension().toString() : null);
            model.setMonitorSpecification(anomalyMonitor.monitorSpecification() != null ? Utils.toJson(anomalyMonitor.monitorSpecification()) : null);
            model.setDimensionalValueCount(anomalyMonitor.dimensionalValueCount());
        } catch (UnknownMonitorException e) {
            return ProgressEvent.<ResourceModel, CallbackContext>builder()
                .resourceModel(model)
                .status(OperationStatus.FAILED)
                .errorCode(HandlerErrorCode.NotFound)
                .build();
        }

        return ProgressEvent.<ResourceModel, CallbackContext>builder()
            .resourceModel(model)
            .status(OperationStatus.SUCCESS)
            .build();
    }