public ProgressEvent handleRequest()

in aws-servicecatalog-serviceactionassociation/src/main/java/software/amazon/servicecatalog/serviceactionassociation/ReadHandler.java [16:49]


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

        final ActionAssociationController controller = ActionAssociationController
                .builder()
                .logger(logger)
                .proxy(proxy)
                .scClient(SCClientBuilder.getClient())
                .build();

        try {
            final ResourceModel desiredModel = request.getDesiredResourceState();
            final String serviceActionId = desiredModel.getServiceActionId();
            final String productId = desiredModel.getProductId();
            final String provisioningArtifactId = desiredModel.getProvisioningArtifactId();
            final boolean isMatch = controller.isServiceActionAssociatedToPA(productId, provisioningArtifactId, serviceActionId);
            if(isMatch){
                ResourceModel resourceModel = ResourceModel
                        .builder()
                        .serviceActionId(serviceActionId)
                        .provisioningArtifactId(provisioningArtifactId)
                        .productId(productId)
                        .build();
                return ProgressEvent.defaultSuccessHandler(resourceModel);
            } else {
                throw ResourceNotFoundException.builder().message(String.format(RESOURCE_NOT_FOUND_EXCEPTION, serviceActionId, productId, provisioningArtifactId)).build();
            }
        } catch (SdkException e) {
            throw ExceptionTranslator.translateToCfnException(e);
        }
    }