public ProgressEvent handleRequest()

in aws-iot-fleetmetric/src/main/java/com/amazonaws/iot/fleetmetric/ListHandler.java [26:59]


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

        ListFleetMetricsRequest listFleetMetricsRequest = ListFleetMetricsRequest.builder()
                .nextToken(request.getNextToken())
                .build();

        ListFleetMetricsResponse listFleetMetricsResponse;
        try {
            listFleetMetricsResponse = proxy.injectCredentialsAndInvokeV2(
                    listFleetMetricsRequest, iotClient::listFleetMetrics);
        } catch (RuntimeException e) {
            return Translator.translateExceptionToProgressEvent(request.getDesiredResourceState(), e, logger);
        }

        List<ResourceModel> models = listFleetMetricsResponse.fleetMetrics().stream()
                .map(fleetMetricNameAndArn -> ResourceModel.builder()
                        .metricName(fleetMetricNameAndArn.metricName())
                        .metricArn(fleetMetricNameAndArn.metricArn())
                        .build())
                .collect(Collectors.toList());

        logger.log(String.format("Listed %s resources for accountId %s.",
                ResourceModel.TYPE_NAME, request.getAwsAccountId()));

        return ProgressEvent.<ResourceModel, CallbackContext>builder()
                .resourceModels(models)
                .nextToken(listFleetMetricsResponse.nextToken())
                .status(OperationStatus.SUCCESS)
                .build();
    }