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