public T getSingleGreengrassV1Result()

in src/main/java/com/awslabs/iot/helpers/implementations/BasicGreengrassV1Helper.java [677:701]


    public <T extends GreengrassResponse> T getSingleGreengrassV1Result(String versionArn, String prefix, Class<? extends GreengrassRequest> greengrassRequest, Class<T> greengrassResponse) {
        if (versionArn == null) {
            // If no version ARN is available then we need to exit early
            return null;
        }

        AwsRequest.Builder builder = reflectionHelper.getNewRequestBuilder(greengrassRequest);

        builder = setDefinitionId(builder, prefix, greengrassV1IdExtractor.extractId(versionArn));
        builder = setDefinitionVersionId(builder, prefix, greengrassV1IdExtractor.extractVersionId(versionArn));

        AwsRequest request = builder.build();

        Option<Method> clientMethodReturningResultOption = reflectionHelper.getMethodWithParameterAndReturnType(greengrassClient.getClass(), greengrassRequest, greengrassResponse);

        if (clientMethodReturningResultOption.isEmpty()) {
            throw new UnsupportedOperationException("Failed to find a method returning the expected response type, this should never happen.");
        }

        Method clientMethodReturningResult = clientMethodReturningResultOption.get();

        // callMethod throws an exception if the definition does not exist
        return (T) Try.of(() -> callMethod(greengrassClient, clientMethodReturningResult, request))
                .getOrNull();
    }