public ProgressEvent handleRequest()

in aws-acmpca-permission/src/main/java/software/amazon/acmpca/permission/CreateHandler.java [21:49]


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

        this.acmPcaClient = new AcmPcaClient(proxy);
        this.log = logger;

        val model = request.getDesiredResourceState();

        log.log("Create handler being invoked for Certificate Authority Arn: " + model.getCertificateAuthorityArn() + " and for Principal: " + model.getPrincipal());

        try {
            acmPcaClient.getPermission(model);

            val alreadyExistsException = AwsServiceException.builder()
                .awsErrorDetails(AwsErrorDetails.builder()
                        .errorCode("AlreadyExists")
                        .errorMessage("PermissionAlreadyExists")
                        .build())
                .build();

            return ProgressEvent.defaultFailureHandler(alreadyExistsException, HandlerErrorCode.AlreadyExists);
        } catch (NoSuchElementException ex) {
            acmPcaClient.createPermission(model);
            return ProgressEvent.defaultSuccessHandler(model);
        }
    }