public ProgressEvent handleRequest()

in aws-lookoutvision-project/src/main/java/software/amazon/lookoutvision/project/CreateHandler.java [21:57]


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

        this.proxy = proxy;
        this.request = request;
        this.logger = logger;

        final ResourceModel model = request.getDesiredResourceState();

        // Make sure the user isn't trying to assign values to readOnly properties
        if (hasReadOnlyProperties(model)) {
            throw new CfnInvalidRequestException("Attempting to set a ReadOnly Property.");
        }

        CreateProjectResponse createProjectResponse = null;
        try {
            createProjectResponse = proxy.injectCredentialsAndInvokeV2(
                Translator.translateToCreateRequest(model),
                proxyClient.client()::createProject);
        } catch (final ConflictException e) {
            final ResourceAlreadyExistsException resourceAlreadyExistsException =
                new ResourceAlreadyExistsException(ResourceModel.TYPE_NAME, model.getProjectName(), e);

            logger.log(resourceAlreadyExistsException.getMessage());
            throw resourceAlreadyExistsException;
        }
        final String createMessage = String.format("%s successfully created.", ResourceModel.TYPE_NAME);
        logger.log(createMessage);

        final ResourceModel modelFromCreateResult = Translator.translateFromCreateResponse(createProjectResponse);

        return ProgressEvent.defaultSuccessHandler(modelFromCreateResult);
    }