public List listProjects()

in services/library/src/main/java/com/google/cloud/pso/bq_snapshot_manager/services/scan/ResourceScannerImpl.java [94:123]


    public List<String> listProjects(Long folderId) throws IOException {

        ListProjectsResponse listProjectsResponse = cloudResourceManager.projects().list()
                .setParent("folders/" + folderId)
                .setPageSize(RESOURCE_MANAGER_PAGE_SIZE)
                .execute();

        List<String> allProjects = pagedProjectsToList(listProjectsResponse.getProjects());

        String nextPageToken = listProjectsResponse.getNextPageToken();

        while (nextPageToken != null){

            // submit a new request for the next page
            listProjectsResponse = cloudResourceManager.projects()
                    .list()
                    .setParent("folders/" + folderId)
                    .setPageSize(RESOURCE_MANAGER_PAGE_SIZE)
                    .setPageToken(nextPageToken)
                    .execute();

            // add all entries listed in that page
            allProjects.addAll(pagedProjectsToList(listProjectsResponse.getProjects()));

            // set the next page
            nextPageToken = listProjectsResponse.getNextPageToken();
        }

        return allProjects.stream().distinct().toList();
    }