Example usage for com.amazonaws.services.ec2.model DescribeVpcEndpointsRequest setNextToken

List of usage examples for com.amazonaws.services.ec2.model DescribeVpcEndpointsRequest setNextToken

Introduction

In this page you can find the example usage for com.amazonaws.services.ec2.model DescribeVpcEndpointsRequest setNextToken.

Prototype


public void setNextToken(String nextToken) 

Source Link

Document

The token for the next set of items to return.

Usage

From source file:org.lendingclub.mercator.aws.VPCEndpointScanner.java

License:Apache License

@Override
protected void doScan() {
    GraphNodeGarbageCollector gc = newGarbageCollector().bindScannerContext();
    DescribeVpcEndpointsRequest request = new DescribeVpcEndpointsRequest();
    do {/*from   w  ww  .  jav a 2  s.co m*/
        DescribeVpcEndpointsResult result = getClient().describeVpcEndpoints(request);
        result.getVpcEndpoints().forEach(endpoint -> {
            ObjectNode n = convertAwsObject(endpoint, getRegion());

            NeoRxClient neo4j = getNeoRxClient();
            try {
                String cypher = "merge (x:AwsVpcEndpoint {aws_arn:{arn}}) set x+={props}, x.updateTs=timestamp() return x";
                String arn = n.path("aws_arn").asText();
                neo4j.execCypher(cypher, "arn", arn, "props", n).forEach(it -> {
                    gc.MERGE_ACTION.accept(it);
                });

                LinkageHelper routeTableLinkage = new LinkageHelper().withNeo4j(neo4j)
                        .withFromLabel(getNeo4jLabel()).withFromArn(arn).withTargetLabel("AwsRouteTable")
                        .withLinkLabel("AVAILABLE_IN").withTargetValues(endpoint.getRouteTableIds().stream()
                                .map(r -> createEc2Arn("route-table", r)).collect(Collectors.toList()));

                routeTableLinkage.execute();

                LinkageHelper vpcLinkage = new LinkageHelper().withNeo4j(neo4j).withFromLabel(getNeo4jLabel())
                        .withFromArn(arn).withTargetLabel("AwsVpc").withLinkLabel("OWNED_BY")
                        .withTargetValues(Collections.singletonList(createEc2Arn("vpc", endpoint.getVpcId())));
                vpcLinkage.execute();

                incrementEntityCount();
            } catch (RuntimeException e) {
                gc.markException(e);
                maybeThrow(e);
            }
        });
        request.setNextToken(result.getNextToken());
    } while (!Strings.isNullOrEmpty(request.getNextToken()));
}