List of usage examples for com.amazonaws.services.ec2.model DescribeRegionsRequest withRegionNames
public DescribeRegionsRequest withRegionNames(java.util.Collection<String> regionNames)
The names of the Regions.
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; }