public ProgressEvent handleRequest()

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