#!/usr/bin/ruby

# Returns the latest Ubuntu AMI from Canonical.  Change the AMI name
# below to select a different Ubuntu version.  Example run:
#
# $> ./bin/get_latest_ubuntu_ami us-east-2

require "bundler/setup"
require "aws-sdk-ec2"

client = Aws::EC2::Client.new(region: ARGV[0])

result = client.describe_images({
  owners: ['099720109477'],
  filters: [
    {
      name: "name",
      values: ["ubuntu/images/*ubuntu-xenial-16.04-amd64-server-*"]
    },
    {
      name: "virtualization-type",
      values: ["hvm"]
    },
    {
      name: "root-device-type",
      values: ["ebs"]
    }
  ]
})

puts result.images.sort_by(&:name).last.image_id
