public ProgressEvent handleRequest()

in aws-ssm-maintenancewindowtarget/src/main/java/software/amazon/ssm/maintenancewindowtarget/DeleteHandler.java [44:89]


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

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

        final ResourceModel model = request.getDesiredResourceState();

        final ProgressEvent<ResourceModel, CallbackContext> progressEvent =
                ProgressEvent.<ResourceModel, CallbackContext>builder()
                .resourceModel(model)
                .build();

        progressEvent.setStatus(OperationStatus.FAILED);

        final Optional<DeregisterTargetFromMaintenanceWindowRequest.Builder> optionalRequestBuilder = initializeRequestBuilder(model);

        if (!optionalRequestBuilder.isPresent()) {
            progressEvent.setErrorCode(HandlerErrorCode.InvalidRequest);
            progressEvent.setMessage(
                "Both WindowId and WindowTargetId must be specified to delete a maintenance window target.");
            return progressEvent;
        }

        final DeregisterTargetFromMaintenanceWindowRequest deregisterTargetFromMaintenanceWindowRequest = optionalRequestBuilder.get().build();

        try {
            proxy.injectCredentialsAndInvokeV2(deregisterTargetFromMaintenanceWindowRequest, SSM_CLIENT::deregisterTargetFromMaintenanceWindow);
            progressEvent.setStatus(OperationStatus.SUCCESS);
        } catch (Exception e) {
            final BaseHandlerException cfnException = exceptionTranslator
                .translateFromServiceException(e, deregisterTargetFromMaintenanceWindowRequest, request.getDesiredResourceState());

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

            throw cfnException;
        }

        if (progressEvent.isSuccess()) {
            // nullify the model if delete succeeded
            progressEvent.setResourceModel(null);
        }
        return progressEvent;
    }