/** * Simplified method form for invoking the DescribeImages operation. * * @see #describeImagesAsync(DescribeImagesRequest) */ @Override public java.util.concurrent.Future<DescribeImagesResult> describeImagesAsync() { return describeImagesAsync(new DescribeImagesRequest()); }
/** * <p> * One or more image IDs. * </p> * <p> * Default: Describes all images available to you. * </p> * * @param imageIds * One or more image IDs.</p> * <p> * Default: Describes all images available to you. * @return Returns a reference to this object so that method calls can be chained together. */ public DescribeImagesRequest withImageIds(java.util.Collection<String> imageIds) { setImageIds(imageIds); return this; }
/** * <p> * Scopes the images by users with explicit launch permissions. Specify an AWS account ID, <code>self</code> (the * sender of the request), or <code>all</code> (public AMIs). * </p> * * @param executableUsers * Scopes the images by users with explicit launch permissions. Specify an AWS account ID, <code>self</code> * (the sender of the request), or <code>all</code> (public AMIs). * @return Returns a reference to this object so that method calls can be chained together. */ public DescribeImagesRequest withExecutableUsers(java.util.Collection<String> executableUsers) { setExecutableUsers(executableUsers); return this; }
DescribeImagesRequest request = new DescribeImagesRequest(); request.withOwners("self"); Collection<Image> images = client.describeImages(request).getImages();
List<String> owners = new LinkedList<String>(); List<String> users = new LinkedList<String>(); DescribeImagesRequest request = new DescribeImagesRequest(); request.setImageIds(images); request.setOwners(owners); request.setExecutableUsers(users); List<Image> img = ec2.describeImages(request).getImages(); if (img == null || img.isEmpty()) {
private Optional<Image> getAmiFromEC2Api(final AmazonEC2Client ec2Client, final String imageId) { try { final DescribeImagesResult response = ec2Client.describeImages(new DescribeImagesRequest().withImageIds(imageId)); return ofNullable(response) .map(DescribeImagesResult::getImages) .map(List::stream) .flatMap(Stream::findFirst); } catch (final AmazonClientException e) { log.warn("Could not describe image " + imageId, e); return empty(); } } }
public Image getAmi(String ami) { checkNotBlank(ami, "ami"); DescribeImagesRequest request = new DescribeImagesRequest(); request.setImageIds(singletonList(ami)); DescribeImagesResult result = client.describeImages(request); List<Image> images = result.getImages(); checkState(images.size() == 1, "Expected exactly 1 image but there were %s instead", images.size()); return images.get(0); }
/** * * @param ownerId * @param imageIds * @param ec2Client * @return */ public List<Image> getImages(String ownerId, List<String> imageIds, AmazonEC2 ec2Client) { List<Image> images = null; DescribeImagesRequest request = new DescribeImagesRequest(); if (ownerId != null && !ownerId.isEmpty()) { request = request.withOwners(ownerId); } if (imageIds != null && !imageIds.isEmpty()) { request = request.withImageIds(imageIds); } DescribeImagesResult result = ec2Client.describeImages(request); if (result != null) { images = result.getImages(); } else { log.warn("No images found"); } return images; }
/** * One or more image IDs. <p>Default: Describes all images available to * you. * <p> * Returns a reference to this object so that method calls can be chained together. * * @param imageIds One or more image IDs. <p>Default: Describes all images available to * you. * * @return A reference to this updated object so that method calls can be chained * together. */ public DescribeImagesRequest withImageIds(String... imageIds) { if (getImageIds() == null) setImageIds(new java.util.ArrayList<String>(imageIds.length)); for (String value : imageIds) { getImageIds().add(value); } return this; }
/** * Scopes the images by users with explicit launch permissions. Specify * an AWS account ID, <code>self</code> (the sender of the request), or * <code>all</code> (public AMIs). * <p> * Returns a reference to this object so that method calls can be chained together. * * @param executableUsers Scopes the images by users with explicit launch permissions. Specify * an AWS account ID, <code>self</code> (the sender of the request), or * <code>all</code> (public AMIs). * * @return A reference to this updated object so that method calls can be chained * together. */ public DescribeImagesRequest withExecutableUsers(String... executableUsers) { if (getExecutableUsers() == null) setExecutableUsers(new java.util.ArrayList<String>(executableUsers.length)); for (String value : executableUsers) { getExecutableUsers().add(value); } return this; }
/** * Filters the images by the owner. Specify an AWS account ID, * <code>amazon</code> (owner is Amazon), <code>aws-marketplace</code> * (owner is AWS Marketplace), <code>self</code> (owner is the sender of * the request). Omitting this option returns all images for which you * have launch permissions, regardless of ownership. * <p> * Returns a reference to this object so that method calls can be chained together. * * @param owners Filters the images by the owner. Specify an AWS account ID, * <code>amazon</code> (owner is Amazon), <code>aws-marketplace</code> * (owner is AWS Marketplace), <code>self</code> (owner is the sender of * the request). Omitting this option returns all images for which you * have launch permissions, regardless of ownership. * * @return A reference to this updated object so that method calls can be chained * together. */ public DescribeImagesRequest withOwners(String... owners) { if (getOwners() == null) setOwners(new java.util.ArrayList<String>(owners.length)); for (String value : owners) { getOwners().add(value); } return this; }
/** * <p> * Filters the images by the owner. Specify an AWS account ID, <code>self</code> (owner is the sender of the * request), or an AWS owner alias (valid values are <code>amazon</code> | <code>aws-marketplace</code> | * <code>microsoft</code>). Omitting this option returns all images for which you have launch permissions, * regardless of ownership. * </p> * * @param owners * Filters the images by the owner. Specify an AWS account ID, <code>self</code> (owner is the sender of the * request), or an AWS owner alias (valid values are <code>amazon</code> | <code>aws-marketplace</code> | * <code>microsoft</code>). Omitting this option returns all images for which you have launch permissions, * regardless of ownership. * @return Returns a reference to this object so that method calls can be chained together. */ public DescribeImagesRequest withOwners(java.util.Collection<String> owners) { setOwners(owners); return this; }
/** * This method requests existing AMI details from AWS. * The method only requests the AMIs owned by the accessing AWS account. * @return List of AMIs */ private List<Image> getAMIListFromAWS() { DescribeImagesRequest request = new DescribeImagesRequest(); request.withOwners("self"); DescribeImagesResult result = amazonEC2.describeImages(request); return result.getImages(); }
List<String> owners = new LinkedList<String>(); List<String> users = new LinkedList<String>(); DescribeImagesRequest request = new DescribeImagesRequest(); request.setImageIds(images); request.setOwners(owners); request.setExecutableUsers(users); List<Image> img = ec2.describeImages(request).getImages(); if(img==null || img.isEmpty()) {
@Override @Cacheable(cacheNames = "ami-details", cacheManager = "oneDayTTLCacheManager") public Map<String, String> getAmiDetails(final String accountId, final Region region, final String amiId) { final ImmutableMap.Builder<String, String> result = ImmutableMap.builder(); result.put("ami_id", amiId); final AmazonEC2Client ec2 = clientProvider.getClient(AmazonEC2Client.class, accountId, region); final Optional<Image> ami = Optional.ofNullable(new DescribeImagesRequest().withImageIds(amiId)) .map(ec2::describeImages) .map(DescribeImagesResult::getImages) .map(List::stream) .flatMap(Stream::findFirst); ami.map(Image::getName).ifPresent(name -> result.put("ami_name", name)); ami.map(Image::getOwnerId).ifPresent(owner -> result.put("ami_owner_id", owner)); return result.build(); } }
@Override public Image getImage(String imageId) { DescribeImagesRequest request = new DescribeImagesRequest(); request.setImageIds(singletonList(imageId)); DescribeImagesResult result = client.describeImages(request); List<Image> images = result.getImages(); checkSizeEquals(images, 1); return images.get(0); }
/** * <p> * Filters the images by the owner. Specify an AWS account ID, <code>self</code> (owner is the sender of the * request), or an AWS owner alias (valid values are <code>amazon</code> | <code>aws-marketplace</code> | * <code>microsoft</code>). Omitting this option returns all images for which you have launch permissions, * regardless of ownership. * </p> * <p> * <b>NOTE:</b> This method appends the values to the existing list (if any). Use * {@link #setOwners(java.util.Collection)} or {@link #withOwners(java.util.Collection)} if you want to override the * existing values. * </p> * * @param owners * Filters the images by the owner. Specify an AWS account ID, <code>self</code> (owner is the sender of the * request), or an AWS owner alias (valid values are <code>amazon</code> | <code>aws-marketplace</code> | * <code>microsoft</code>). Omitting this option returns all images for which you have launch permissions, * regardless of ownership. * @return Returns a reference to this object so that method calls can be chained together. */ public DescribeImagesRequest withOwners(String... owners) { if (this.owners == null) { setOwners(new com.amazonaws.internal.SdkInternalList<String>(owners.length)); } for (String ele : owners) { this.owners.add(ele); } return this; }
/** * Simplified method form for invoking the DescribeImages operation with an AsyncHandler. * * @see #describeImagesAsync(DescribeImagesRequest, com.amazonaws.handlers.AsyncHandler) */ @Override public java.util.concurrent.Future<DescribeImagesResult> describeImagesAsync( com.amazonaws.handlers.AsyncHandler<DescribeImagesRequest, DescribeImagesResult> asyncHandler) { return describeImagesAsync(new DescribeImagesRequest(), asyncHandler); }
@Override public List<Image> getMyImages() { DescribeImagesRequest request = new DescribeImagesRequest(); request.withOwners(AmiOwner.SELF.getValue()); DescribeImagesResult result = client.describeImages(request); return result.getImages(); }
private Optional<Image> getAmi(@Nonnull final EC2InstanceContext context) { final Optional<String> amiId = context.getAmiId(); try { return amiId .map(id -> context .getClient(AmazonEC2Client.class) .describeImages(new DescribeImagesRequest().withImageIds(id))) .map(DescribeImagesResult::getImages) .flatMap(images -> images.stream().findFirst()); } catch (final AmazonClientException e) { log.warn("Could not get AMI of: " + amiId.get(), e); return empty(); } }