public ProgressEvent handleRequest()

in aws-databrew-dataset/src/main/java/software/amazon/databrew/dataset/CreateHandler.java [22:65]


    public ProgressEvent<ResourceModel, CallbackContext> handleRequest(
        final AmazonWebServicesClientProxy proxy,
        final ResourceHandlerRequest<ResourceModel> request,
        final CallbackContext callbackContext,
        final Logger logger) {

        final ResourceModel model = request.getDesiredResourceState();

        final String datasetName = model.getName();
        final DataBrewClient databrewClient = ClientBuilder.getClient();
        final CreateDatasetRequest createDatasetRequest = CreateDatasetRequest.builder()
                .name(datasetName)
                .format(model.getFormat())
                .formatOptions(ModelHelper.buildRequestFormatOptions(model.getFormatOptions()))
                .pathOptions(ModelHelper.buildRequestPathOptions(model.getPathOptions()))
                .input(ModelHelper.buildRequestInput(model.getInput()))
                .tags(ModelHelper.buildMapFromList(model.getTags(), tag -> tag.getKey(), tag -> tag.getValue()))
                .build();

        try {
            proxy.injectCredentialsAndInvokeV2(createDatasetRequest, databrewClient::createDataset);
            model.setTags(model.getTags() == null ? new ArrayList<>() : model.getTags());
            logger.log(String.format("%s [%s] Created Successfully", ResourceModel.TYPE_NAME, datasetName));
        } catch (AccessDeniedException ex) {
            logger.log(String.format("%s [%s] Access Denied", ResourceModel.TYPE_NAME, datasetName));
            return ProgressEvent.defaultFailureHandler(ex, HandlerErrorCode.AccessDenied);
        } catch (ConflictException ex) {
            logger.log(String.format("%s [%s] Already Exists", ResourceModel.TYPE_NAME, datasetName));
            return ProgressEvent.defaultFailureHandler(ex, HandlerErrorCode.AlreadyExists);
        } catch (ValidationException ex) {
            logger.log(String.format("%s [%s] Invalid Parameter", ResourceModel.TYPE_NAME, datasetName));
            return ProgressEvent.defaultFailureHandler(ex, HandlerErrorCode.InvalidRequest);
        } catch (ServiceQuotaExceededException ex) {
            logger.log(String.format("%s [%s] Limit Exceeded", ResourceModel.TYPE_NAME, datasetName));
            return ProgressEvent.defaultFailureHandler(ex, HandlerErrorCode.ServiceLimitExceeded);
        } catch (DataBrewException ex) {
            logger.log(String.format("%s [%s] Created Failed", ResourceModel.TYPE_NAME, datasetName));
            return ProgressEvent.defaultFailureHandler(ex, HandlerErrorCode.ServiceInternalError);
        }
        return ProgressEvent.<ResourceModel, CallbackContext>builder()
                .resourceModel(model)
                .status(OperationStatus.SUCCESS)
                .build();
    }