protected abstract ProgressEvent handleRequest()

in aws-logs-destination/src/main/java/software/amazon/logs/destination/BaseHandlerStd.java [31:62]


    protected abstract ProgressEvent<ResourceModel, CallbackContext> handleRequest(
            final AmazonWebServicesClientProxy proxy, final ResourceHandlerRequest<ResourceModel> request,
            final CallbackContext callbackContext, final ProxyClient<CloudWatchLogsClient> proxyClient,
            final Logger logger);

    protected CallChain.Completed<DescribeDestinationsRequest, DescribeDestinationsResponse, CloudWatchLogsClient, ResourceModel, CallbackContext> preCreateCheck(
            final AmazonWebServicesClientProxy proxy, final CallbackContext callbackContext,
            final ProxyClient<CloudWatchLogsClient> proxyClient, final ResourceModel model) {
        return proxy.initiate("AWS-Logs-Destination::Create::PreExistenceCheck", proxyClient, model, callbackContext)
                .translateToServiceRequest(Translator::translateToReadRequest)
                .makeServiceCall((awsRequest, sdkProxyClient) -> sdkProxyClient.injectCredentialsAndInvokeV2(awsRequest,
                        sdkProxyClient.client()::describeDestinations))
                .handleError((request, exception, client, model1, context1) -> {
                    ProgressEvent<ResourceModel, CallbackContext> progress;
                    if (exception instanceof InvalidParameterException) {
                        progress = ProgressEvent.failed(model, callbackContext, HandlerErrorCode.InvalidRequest,
                                exception.getMessage());
                    } else if (exception instanceof ServiceUnavailableException) {
                        progress = ProgressEvent.failed(model, callbackContext, HandlerErrorCode.ServiceInternalError,
                                exception.getMessage());
                    } else if (exception instanceof ResourceNotFoundException) {
                        progress = ProgressEvent.progress(model, callbackContext);
                    } else if (exception instanceof CloudWatchLogsException) {
                        progress =
                                ProgressEvent.failed(model, callbackContext, HandlerErrorCode.GeneralServiceException,
                                        exception.getMessage());
                    } else {
                        throw exception;
                    }
                    return progress;
                });
    }