protected ProgressEvent handleRequest()

in aws-route53recoverycontrol-routingcontrol/src/main/java/software/amazon/route53recoverycontrol/routingcontrol/CreateHandler.java [26:54]


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

        this.logger = logger;
        String clusterArn = request.getDesiredResourceState().getClusterArn();
        String controlPanelArn = request.getDesiredResourceState().getControlPanelArn();

        // Pre-Existence check - we don't care about the response, just that it exists
        getCluster(DescribeClusterRequest.builder()
                .clusterArn(clusterArn).build(), proxyClient);

        describeControlPanel(
                DescribeControlPanelRequest.builder().controlPanelArn(controlPanelArn).build(), proxyClient
        );

        return ProgressEvent.progress(request.getDesiredResourceState(), callbackContext)
            .then(progress ->
                proxy.initiate("AWS-Route53RecoveryControl-RoutingControl::Create", proxyClient,progress.getResourceModel(), progress.getCallbackContext())
                    .translateToServiceRequest(Translator::translateToCreateRequest)
                    .makeServiceCall(this::createRoutingControl)
                    .stabilize((awsRequest, awsResponse, client, model, context) -> isStabilized(awsResponse, client, model, context))
                    .progress()
                )
            .then(progress -> new ReadHandler().handleRequest(proxy, request, callbackContext, proxyClient, logger));
    }