public ProgressEvent handleRequest()

in aws-ssm-maintenancewindowtarget/src/main/java/software/amazon/ssm/maintenancewindowtarget/ReadHandler.java [50:101]


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

        logger.log(String.format("Processing ReadHandler request: %s", requestToStringConverter.convert(request)));

        final ResourceModel model = request.getDesiredResourceState();

        final ProgressEvent<ResourceModel, CallbackContext> progressEvent = new ProgressEvent<>();
        progressEvent.setResourceModel(request.getPreviousResourceState());
        progressEvent.setStatus(OperationStatus.FAILED);

        // Ensure that both windowId and windowTargetId are required
        final String windowId = model.getWindowId();
        final String windowTargetId = model.getWindowTargetId();

        if (StringUtils.isNullOrEmpty(windowId) || StringUtils.isNullOrEmpty(windowTargetId)) {
            progressEvent.setErrorCode(HandlerErrorCode.InvalidRequest);
            progressEvent.setMessage("" +
                    "Both WindowId and WindowTargetId must be present to get an existing maintenance window target.");
            return progressEvent;
        }

        // Create a DescribeMaintenanceWindowTargetsRequest, using windowId and windowTargetId in the filter
        final DescribeMaintenanceWindowTargetsRequest describeMaintenanceWindowTargetsRequest =
                getMaintenanceWindowTargetTranslator.resourceModelToRequest(model);

        final DescribeMaintenanceWindowTargetsResponse response;

        try {
            response = proxy.injectCredentialsAndInvokeV2(describeMaintenanceWindowTargetsRequest,
                    SSM_CLIENT::describeMaintenanceWindowTargets);

            final ResourceModel readModel =
                    getMaintenanceWindowTargetTranslator.responseToResourceModel(response);

            progressEvent.setStatus(OperationStatus.SUCCESS);
            progressEvent.setResourceModel(readModel);

        } catch (Exception e) {
            final BaseHandlerException cfnException = exceptionTranslator
                    .translateFromServiceException(e, describeMaintenanceWindowTargetsRequest, request.getDesiredResourceState());

            logger.log(cfnException.getCause().getMessage());

            throw cfnException;
        }

        return progressEvent;
    }