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;
}