class AwsPlatformResources implements PlatformResources {

    @Override
    public CloudNoSqlTables noSqlTables(CloudCredential cloudCredential, Region region, Map<String, String> filters) {
        List<CloudNoSqlTable> noSqlTables = new ArrayList<>();
        AmazonDynamoDB dynamoDbClient = getAmazonDynamoDB(cloudCredential, region);
        ListTablesRequest listTablesRequest = new ListTablesRequest();
        ListTablesResult listTablesResult = null;
        boolean first = true;
        while (first || !isNullOrEmpty(listTablesResult.getLastEvaluatedTableName())) {
            first = false;
            listTablesRequest.setExclusiveStartTableName(listTablesResult == null ? null : listTablesResult.getLastEvaluatedTableName());
            listTablesResult = dynamoDbClient.listTables(listTablesRequest);
            List<String> partialTableNames = listTablesResult.getTableNames();
            List<CloudNoSqlTable> partialResult = partialTableNames.stream().map(CloudNoSqlTable::new).collect(Collectors.toList());
            noSqlTables.addAll(partialResult);
        }
        return new CloudNoSqlTables(noSqlTables);
    }

}