in aws-ssm-document/src/main/java/com/amazonaws/ssm/document/CreateHandler.java [62:105]
public ProgressEvent<ResourceModel, CallbackContext> handleRequest(
final AmazonWebServicesClientProxy proxy,
final ResourceHandlerRequest<ResourceModel> request,
final CallbackContext callbackContext,
final Logger logger) {
final CallbackContext context = callbackContext == null ? CallbackContext.builder().build() : callbackContext;
final ResourceModel model = request.getDesiredResourceState();
safeLogger.safeLogDocumentInformation(model, callbackContext, request.getAwsAccountId(),request.getSystemTags(), logger);
if (context.getCreateDocumentStarted() != null) {
return updateProgress(model, context, ssmClient, proxy, logger);
}
final CreateDocumentRequest createDocumentRequest;
try {
createDocumentRequest =
documentModelTranslator.generateCreateDocumentRequest(model, request.getLogicalResourceIdentifier(),
request.getSystemTags(), request.getDesiredResourceTags(), request.getClientRequestToken());
} catch (final InvalidDocumentContentException e) {
throw new CfnInvalidRequestException(e.getMessage(), e);
}
model.setName(createDocumentRequest.name());
try {
final CreateDocumentResponse response = createDocument(createDocumentRequest, model, proxy, logger);
context.setCreateDocumentStarted(true);
context.setStabilizationRetriesRemaining(NUMBER_OF_DOCUMENT_CREATE_POLL_RETRIES);
return ProgressEvent.<ResourceModel, CallbackContext>builder()
.resourceModel(model)
.status(OperationStatus.IN_PROGRESS)
.message(response.documentDescription().statusInformation())
.callbackContext(context)
.callbackDelaySeconds(CALLBACK_DELAY_SECONDS)
.build();
} catch (final SsmException e) {
throw exceptionTranslator.getCfnException(e, model.getName(), OPERATION_NAME, logger);
}
}