in aws-transfer-workflow/src/main/java/software/amazon/transfer/workflow/CreateHandler.java [36:88]
public ProgressEvent<ResourceModel, CallbackContext> handleRequest(
final AmazonWebServicesClientProxy proxy,
final ResourceHandlerRequest<ResourceModel> request,
final CallbackContext callbackContext,
final Logger logger) {
if (this.client == null){
this.client = ClientBuilder.getClient();
}
ResourceModel model = request.getDesiredResourceState();
model.setTags(Converter.TagConverter.translateTagfromMap(request.getDesiredResourceTags()));
CreateWorkflowRequest createWorkflowRequest = CreateWorkflowRequest.builder()
.description(model.getDescription())
.onExceptionSteps((CollectionUtils.isNullOrEmpty(model.getOnExceptionSteps())) ?
null : model.getOnExceptionSteps()
.stream()
.map(Converter.WorkflowStepConverter::toSdk)
.collect(Collectors.toList()))
.steps((CollectionUtils.isNullOrEmpty(model.getSteps())) ?
null : model.getSteps()
.stream()
.map(Converter.WorkflowStepConverter::toSdk)
.collect(Collectors.toList()))
.tags((CollectionUtils.isNullOrEmpty(model.getTags())) ?
null : model.getTags()
.stream()
.map(Converter.TagConverter::toSdk)
.collect(Collectors.toList()))
.build();
try {
CreateWorkflowResponse response =
proxy.injectCredentialsAndInvokeV2(createWorkflowRequest, client::createWorkflow);
model.setWorkflowId(response.workflowId());
logger.log(String.format("%s created successfully", ResourceModel.TYPE_NAME));
} catch (InvalidRequestException e) {
throw new CfnInvalidRequestException(createWorkflowRequest.toString(), e);
} catch (InternalServiceErrorException e) {
throw new CfnServiceInternalErrorException("createWorkflow", e);
} catch (ResourceExistsException e) {
throw new CfnAlreadyExistsException(ResourceModel.TYPE_NAME,
model.getPrimaryIdentifier().toString());
} catch (ThrottlingException e) {
throw new CfnThrottlingException("createWorkflow", e);
} catch (TransferException e) {
throw new CfnGeneralServiceException(e.getMessage(), e);
}
return ProgressEvent.<ResourceModel, CallbackContext>builder()
.resourceModel(model)
.status(OperationStatus.SUCCESS)
.build();
}