class AWSLambdaStreamEntry implements RequestStreamHandler {

    protected void processAllResourcePools(SchedulerRequest request)
    {
        String endpointURL = getEnvironmentVar(ENV_ENDPOINT_URL);
        String rawLaunchLambdaList = getEnvironmentVar(ENV_RESOURCEPOOL_LAMBDA_LAUNCH_LIST);
        String resourcePoolEndpointPath = getEnvironmentVar(ENV_RESOURCEPOOL_ENDPOINT_PATH);

        HttpObjectClient<ResourcePool> resourcePoolClient = objectClientFactory.createClient(
            environmentLookupUtils.getAPIEndpointURL(endpointURL, request.getStageId(), resourcePoolEndpointPath),
            ResourcePool.class);

        List<String> lambdasToLaunch = Arrays.stream(StringUtils.split(rawLaunchLambdaList, ","))
            .map(String::trim).collect(Collectors.toList());

        try
        {
            DataObjectResponse<ResourcePool> response = resourcePoolClient.getObjects(new ArrayList<>());
            if(response.isError())
            {
                logger.error("Failed to get all ResourcePools: {}", response.getErrorResponse().getServerStackTrace());
                return;
            }
            response.getAll().forEach( resourcePool ->
                launchResourcePoolLambda(lambdasToLaunch, resourcePool, request)
            );
        }
        catch (Throwable t)
        {
            throw new RuntimeException("Error processing resource pools.", t);
        }
    }

    public  AWSLambdaStreamEntry(AWSLambdaFactory awsLambdaFactory, HttpObjectClientFactory objectClientFactory);
    public  AWSLambdaStreamEntry();

}