in aws-iot-jobtemplate/src/main/java/software/amazon/iot/jobtemplate/CreateHandler.java [51:114]
public ProgressEvent<ResourceModel, CallbackContext> handleRequest(
final AmazonWebServicesClientProxy proxy,
final ResourceHandlerRequest<ResourceModel> request,
final CallbackContext callbackContext,
final Logger logger) {
final ResourceModel model = request.getDesiredResourceState();
AbortConfig abortConfig = getAbortConfig(model);
JobExecutionsRolloutConfig rolloutConfig = getJobExecutionsRolloutConfig(model);
PresignedUrlConfig presignedUrlConfig = getPresignedUrlConfig(model);
TimeoutConfig timeoutConfig = getTimeoutConfig(model);
List<Tag> tags = getTags(model);
final CreateJobTemplateRequest createJobTemplateRequest = CreateJobTemplateRequest.builder()
.jobTemplateId(model.getJobTemplateId())
.abortConfig(abortConfig)
.description(model.getDescription())
.document(model.getDocument())
.documentSource(model.getDocumentSource())
.jobArn(model.getJobArn())
.jobExecutionsRolloutConfig(rolloutConfig)
.presignedUrlConfig(presignedUrlConfig)
.timeoutConfig(timeoutConfig)
.tags(tags)
.build();
try {
CreateJobTemplateResponse response = proxy.injectCredentialsAndInvokeV2(createJobTemplateRequest, iotClient::createJobTemplate);
logger.log(String.format("%s [%s] created successfully", ResourceModel.TYPE_NAME, model.getJobTemplateId()));
return ProgressEvent.defaultSuccessHandler(ResourceModel.builder()
.arn(response.jobTemplateArn())
.jobTemplateId(response.jobTemplateId())
.abortConfig(model.getAbortConfig())
.description(model.getDescription())
.document(model.getDocument())
.documentSource(model.getDocumentSource())
.jobExecutionsRolloutConfig(model.getJobExecutionsRolloutConfig())
.presignedUrlConfig(model.getPresignedUrlConfig())
.timeoutConfig(model.getTimeoutConfig())
.build());
} catch (final ConflictException e){
throw new CfnAlreadyExistsException(ResourceModel.TYPE_NAME, model.getJobTemplateId());
} catch (final ResourceNotFoundException e) {
throw new CfnNotFoundException(ResourceModel.TYPE_NAME, model.getJobArn());
} catch (final InvalidRequestException e) {
throw new CfnInvalidRequestException(e.getMessage(), e);
} catch (final LimitExceededException e) {
throw new CfnServiceLimitExceededException(ResourceModel.TYPE_NAME, e.getMessage());
} catch (final InternalFailureException e) {
throw new CfnServiceInternalErrorException(OPERATION, e);
} catch (final ThrottlingException e) {
throw new CfnThrottlingException(OPERATION, e);
} catch (final ServiceUnavailableException e) {
throw new CfnGeneralServiceException(OPERATION, e);
} catch (final UnauthorizedException e) {
throw new CfnAccessDeniedException(OPERATION, e);
} catch (final Exception e) {
throw new CfnInternalFailureException(e);
}
}