Example usage for com.amazonaws.services.ec2.model DescribeRegionsRequest withRegionNames

List of usage examples for com.amazonaws.services.ec2.model DescribeRegionsRequest withRegionNames

Introduction

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

Prototype


public DescribeRegionsRequest withRegionNames(java.util.Collection<String> regionNames) 

Source Link

Document

The names of the Regions.

Usage

From source file:com.netflix.spinnaker.clouddriver.aws.security.DefaultAWSAccountInfoLookup.java

License:Apache License

@Override
public List<AWSRegion> listRegions(Collection<String> regionNames) {
    Set<String> nameSet = new HashSet<>(regionNames);
    AmazonEC2 ec2 = amazonClientProvider.getAmazonEC2(credentialsProvider, AmazonClientProvider.DEFAULT_REGION);

    DescribeRegionsRequest request = new DescribeRegionsRequest();
    if (!nameSet.isEmpty()) {
        request.withRegionNames(regionNames);
    }/*from   w  w  w  .  j  a va 2 s.  c  om*/
    List<Region> regions = ec2.describeRegions(request).getRegions();
    if (regions.size() != nameSet.size()) {
        Set<String> missingSet = new HashSet<>(nameSet);
        for (Region region : regions) {
            missingSet.remove(region.getRegionName());
        }
        throw new IllegalArgumentException(
                "Unknown region" + (missingSet.size() > 1 ? "s: " : ": ") + missingSet);
    }
    List<AWSRegion> awsRegions = new ArrayList<>(regions.size());
    for (Region region : regions) {
        ec2.setEndpoint(region.getEndpoint());
        List<AvailabilityZone> azs = ec2.describeAvailabilityZones().getAvailabilityZones();
        List<String> availabilityZoneNames = new ArrayList<>(azs.size());
        for (AvailabilityZone az : azs) {
            availabilityZoneNames.add(az.getZoneName());
        }

        awsRegions.add(new AWSRegion(region.getRegionName(), availabilityZoneNames));
    }
    return awsRegions;
}