public ProgressEvent handleRequest()

in reportdefinition/src/main/java/software/amazon/cur/reportdefinition/UpdateHandler.java [16:44]


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

        final ResourceModel model = request.getDesiredResourceState();
        final CostAndUsageReportClient curClient = getClient(request);

        // This will throw the exception needed if the report doesn't exist - we don't need the ReportDefinition it returns
        getReport(model.getReportName(), proxy, logger, curClient);
        final ReportDefinition updatedReportDefinition = Translator.toReportDefinition(model);

        try {
            proxy.injectCredentialsAndInvokeV2(
                ModifyReportDefinitionRequest.builder()
                    .reportName(model.getReportName())
                    .reportDefinition(updatedReportDefinition)
                .build(),
                curClient::modifyReportDefinition
            );

            return ProgressEvent.<ResourceModel, CallbackContext>builder()
                .resourceModel(Translator.toResourceModel(updatedReportDefinition))
                .callbackContext(callbackContext)
                .status(OperationStatus.SUCCESS)
                .build();
        } catch (CostAndUsageReportException e) {
            throw ExceptionTranslator.toCfnException(e, model.getReportName());
        }
    }