public ProgressEvent handleRequest()

in aws-transfer-workflow/src/main/java/software/amazon/transfer/workflow/ReadHandler.java [35:91]


    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();
        DescribeWorkflowRequest describeWorkflowRequest = DescribeWorkflowRequest.builder()
                .workflowId(model.getWorkflowId())
                .build();
        try {
            DescribeWorkflowResponse response = proxy
                    .injectCredentialsAndInvokeV2(describeWorkflowRequest, client::describeWorkflow);
            logger.log(String.format("%s %s described successfully",
                    ResourceModel.TYPE_NAME, model.getPrimaryIdentifier()));
            DescribedWorkflow describedWorkflow = response.workflow();

            ResourceModel resourceModel = ResourceModel.builder()
                    .arn(describedWorkflow.arn())
                    .description(describedWorkflow.description())
                    .onExceptionSteps((CollectionUtils.isNullOrEmpty(describedWorkflow.onExceptionSteps())) ?
                            null : describedWorkflow.onExceptionSteps()
                            .stream()
                            .map(Converter.WorkflowStepConverter::fromSdk)
                            .collect(Collectors.toList()))
                    .steps((CollectionUtils.isNullOrEmpty(describedWorkflow.steps())) ?
                            null : describedWorkflow.steps()
                            .stream()
                            .map(Converter.WorkflowStepConverter::fromSdk)
                            .collect(Collectors.toList()))
                    .tags((CollectionUtils.isNullOrEmpty(describedWorkflow.tags())) ?
                            null : describedWorkflow.tags()
                            .stream()
                            .map(Converter.TagConverter::fromSdk)
                            .collect(Collectors.toSet()))
                    .workflowId(model.getWorkflowId())
                    .build();

            return ProgressEvent.<ResourceModel, CallbackContext>builder()
                    .resourceModel(resourceModel)
                    .status(OperationStatus.SUCCESS)
                    .build();
        } catch (InvalidRequestException e) {
            throw new CfnInvalidRequestException(describeWorkflowRequest.toString(), e);
        } catch (InternalServiceErrorException e) {
            throw new CfnServiceInternalErrorException("describeWorkflow", e);
        } catch (ResourceNotFoundException e) {
            throw new CfnNotFoundException(ResourceModel.TYPE_NAME,
                    model.getPrimaryIdentifier().toString());
        } catch (TransferException e) {
            throw new CfnGeneralServiceException(e.getMessage(), e);
        }
    }