public ProgressEvent handleRequest()

in anomalysubscription/src/main/java/software/amazon/ce/anomalysubscription/ReadHandler.java [21:61]


    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> subscriptionArns = Stream.of(model.getSubscriptionArn()).collect(Collectors.toList());
            GetAnomalySubscriptionsResponse response = proxy.injectCredentialsAndInvokeV2(
                    RequestBuilder.buildGetAnomalySubscriptionsRequest(subscriptionArns, null),
                    costExplorerClient::getAnomalySubscriptions
            );
            if (response.anomalySubscriptions().isEmpty()) {
                return ProgressEvent.<ResourceModel, CallbackContext>builder()
                        .resourceModel(model)
                        .status(OperationStatus.FAILED)
                        .errorCode(HandlerErrorCode.NotFound)
                        .build();
            }
            AnomalySubscription anomalySubscription = response.anomalySubscriptions().get(0);
            model.setSubscriptionName(anomalySubscription.subscriptionName());
            model.setAccountId(anomalySubscription.accountId());
            model.setMonitorArnList(anomalySubscription.monitorArnList());
            model.setSubscribers(ResourceModelTranslator.toSubscribers(anomalySubscription.subscribers()));
            model.setThreshold(anomalySubscription.threshold());
            model.setFrequency(anomalySubscription.frequency().toString());
        } catch (UnknownSubscriptionException 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();
    }