public ProgressEvent handleRequest()

in aws-logs-querydefinition/src/main/java/software/amazon/logs/querydefinition/ReadHandler.java [21:53]


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

        final ResourceModel model = request.getDesiredResourceState();

        DescribeQueryDefinitionsResponse describeQueryDefinitionsResponse;
        String nextToken = null;
        do {
            try {
                describeQueryDefinitionsResponse = proxy.injectCredentialsAndInvokeV2(Translator.translateToReadRequest(model, nextToken),
                        ClientBuilder.getLogsClient()::describeQueryDefinitions);
                nextToken = describeQueryDefinitionsResponse.nextToken();
                Optional<QueryDefinition> queryDefinition = describeQueryDefinitionsResponse.queryDefinitions().stream()
                        .filter(qd -> qd.queryDefinitionId().equals(model.getQueryDefinitionId()))
                        .findAny();
                if (queryDefinition.isPresent()) {
                    return ProgressEvent.<ResourceModel, CallbackContext>builder()
                            .resourceModel(model)
                            .status(OperationStatus.SUCCESS)
                            .build();
                }
            } catch (InvalidParameterException ex) {
                throw new CfnInvalidRequestException(ResourceModel.TYPE_NAME, ex);
            } catch (ServiceUnavailableException ex) {
                throw new CfnServiceInternalErrorException(ResourceModel.TYPE_NAME, ex);
            }
        } while (nextToken != null);

        throw new CfnNotFoundException(ResourceModel.TYPE_NAME, model.getPrimaryIdentifier().toString());
    }