1.28 (23 October 2014)
    - $snapshot->authorized_users() was returning duplicate user IDs due to an apparent AWS bug. Change
      behavior to return unique user list.
    - Security policy JSON string returned by VM::EC2::Security::Policy is now canonicalized so that
      regression tests succeed.

    - Use AnyEvent::CacheDNS to reduce latency of asynchronous calls. This introduces a new module
    - Compliant to 2014-05-01 API.
    - Volume and snapshot encryption supported.
    - AWS Signature Version 4 supported.
    - RDS support added.
    - VPC peering support added.
    - ParmParser support added for elastic load balancer, RDS, VPN, VPC and customer gateway modules.
    - Documentation updated.

    - Change behavior of create_network_acl_entry() so that -egress option defaults to false as originally
    - Change way that async_post() works to (hopefully) handle RequestLimitExceeded errors in a way
      that works.
    - Fix incompatibility with Amazon Gov cloud.
    - Fix incompatibilities with Open Stack.
    - Compliant to 2013-07-15 API.
    - Implement exponential backoff for RequestLimitExceeded. Will throttle back requests and keep 
      retrying when Amazon reports too many requests.

    - Big code reorganization -- moved all REST calls into their own dynamically-loaded
    - Fix bug that popped up when creating security group rules with -port=>0.
1.23 Thu Jan 24 12:51:07 EST 2013
    - migrate-ebs-image.pl now supports HVM images, including 
      Microsoft Windows and Linux Cluster instances.

1.22 Mon Jan  7 09:43:50 EST 2013
     - Allow arbitrary arguments to be passed to rsync in VM::EC2::Staging::Manager.
     - Add support for autoscaling groups and launch configs (Patch from Miguel Ruiz;
       see https://github.com/miquelruiz/LibVM-EC2-Perl).
     - Implement CopySnapshot API call
     - Take advantage of CopySnapshot API in migrate_ebs_image.pl script.
     - Implement placement group API calls
     - Update to API 2012-12-01

1.21 Tue Dec 11 11:29:57 EST 2012
     - fix BadParameterValue when passing -private_ip_address to run_instances().
       (thanks to Makoto Milda for bug report and patch).
     - Distinguish current_state() from current_status() in VM::EC2::Spot::InstanceRequest.
     - Report errors encountered while committing firewall rules to security groups.
     - URI unescape fields in VM::EC2::Instance::Metadata (not documented to be needed, but apparently so
       for at least some fields).
     - Support for retrieving IAM temporary security token from instance metadata from those instances
       that have an IAM role.

1.20 Wed Nov 28 07:07:10 EST 2012
     - better detection of corresponding kernels when transferring images among zones
       (requires String::Approx).
     - fix staging manager pv support (patch from Misha Dragojevic)
     - fix broken staging volume mount command when staging server uses /dev/xvd* device names.
     - add progress reporting to rsync-based file transfers in staging server.
     - correctly transfer images with ephemeral block devices.
     - documentation fixes to Snapshot.pm

1.19 Tue Sep 25 21:32:02 EDT 2012
     - fix Instance.pm valid_fields():  add groupSet, 
     - fix typo in instanceLifeCycle, put in same order as docs
     - Add back robust ramdisk matching in staging manager (commit apparently lost during VPN patch)

1.18 Thu Sep 13 06:14:59 EDT 2012
   - Lance Kinley <lkinley@loyaltymethods.com> contributed major update to support
     Network ACL, VPN and all Elastic Load Balancing functions.
   - Added status reporting when performing dd() between staging manager volumes.

   - Add -volume_type, -iops arguments to create_volume()
   - Update API version to 2012-07-20 now that all provisioned IO functions
     appear complete
   - Add Network ACL functions
   - Add VPC VPN functions
   - Add all Elastic Load Balancing functions (API 2012-06-01)

   - References to 'iol' volume type corrected to 'io1' in EC2.pm and Volume.pm
   - Add missing object methods to to valid_fields() in Instance.pm
   - Fix minor documentation errors in Instance.pm
   - Add up_time() function to Instance.pm as it is used in documentation
     but did not exist (alias to upTime)
   - Fix minor documentation error in SecurityGroup.pm
   - Fix minor documentation error in VPC/RouteTable/Association.pm
   - Fix missing semicolon in VPC/Subnet.pm

1.17 Wed Sep  5 21:34:50 EDT 2012
    - Add missing library files to MANIFEST.
    - Fixed error message reporting in migrate-ebs-image.pl to give informative
      messages rather than obscure "Can't use string as HASH".
1.16 Tue Aug 21 07:34:35 EDT 2012
    - Added support for most VPC-related calls (VPCs, subnets, routes, network interfaces).
    - Added support for elastic network interfaces.
    - Added support for high-IOPS volumes.
    - Update requirements to indicate that File::Path 2.08 is needed.

1.15 Tue Aug 14 07:18:04 EDT 2012
    - Allow ephemeral storage to be specified in migrate-ebs-image.pl using the -b argument.
    - Add -block_device_mapping option to create_image().
    - Add volumeType() and iops() methods to VM::EC2::Volume.

1.14 Fri Aug 10 07:19:44 EDT 2012
    - Fix bug in snapshot creation that was causing migrate-ebs-image.pl to fail on
      last step.
    - Make ascertainment of filesystem type more robust.

1.13 Mon Aug  6 10:31:42 EDT 2012
    - Fix API version in perldoc DESCRIPTION.
    - Fix bugs that occurred when working with staging volumes that were attached
      to stopped server instances.
    - No longer assign automatic labels to new staging volumes.

1.12 Fri Aug  3 23:48:46 EDT 2012
    - Tests no longer prompt for input when running under smoker.

1.11 Thu Aug  2 07:03:12 EDT 2012
    - API supported updated to AWS 2012-06-15
    - Add support for DescribeInstanceStatus call.
    - Add support for DescribeVolumeStatus, DescribeVolumeAttribute and ModifyVolumeAttribute calls.
    - Add support for product codes in Instance, Image and Snapshot.
    - Add support for enabling volume I/O on degraded volumes and auto enabling I/O.
    - Add support for temporary security tokens (see VM::EC2->get_federation_user())
    - Add support for IAM security policies for restricting EC2 actions that federation
          users can perform (see VM::EC2::Security::Policy).

1.10  Sat Jul 28 15:59:41 EDT 2012
     - Add new high level framework for managing servers and volumes (see
     - Add missing documentation, including removing spot instance methods from
        "unsupported" list.
     - Document fact that VM::EC2->instance_metadata() can be called as a class
     - Add "platform" to valid_fields function in Instance.pm
     - Fix SignatureDoesNotMatch breakage under HTTP::Request::Common version 6.03
       (see https://rt.cpan.org/Ticket/Display.html?id=75359).
     - Automatically base64 encode userdata passed to spot instance
       requests (see

1.09   Tue Oct  4 19:04:52 EDT 2011
     - Fixed return value from delete_security_group().
     - Added a detailed example script, bin/sync_to_snapshot.pl

     - Fix broken call to VM::EC2::Snapshot->register_image(), which was failing with a message
       about not providing all required arguments.
     - Add VM::EC2::Snapshot->size() as an alias to volumeSize().
     - Fix documentation formatting bugs in VM::EC2::Instance::Metadata.

1.07   Wed Sep 21 11:54:22 EDT 2011
     - Add full support for spot instances.
     - wait_for_attachments(), wait_for_instances(), and wait_for_volumes() will now timeout
       after a set interval, which can be adjusted with wait_for_timeout().

1.06  Wed Sep 14 15:53:55 EDT 2011
      - Added ability to change deleteOnTerminate flag for volumes attached on instances
        after instance launch. Facility is provided through VM::EC2, 
	VM::EC2::BlockDevice::Mapping, VM::EC2::Volume, and VM::EC2::BlockDevice::Attachment.
      - Add timeouts to VM::EC2->wait_for_*() methods so that methods won't wait forever.

1.05  Sun Sep  4 22:17:33 EDT 2011
      - Add wait_for_snapshots(), wait_for_volumes(), and wait_for_attachments() methods,
       as well as a generic wait_for_terminal_state() method.

1.04  Wed Aug 10 15:56:36 EDT 2011
      - Document -availability_zone argument to run_instances(). Was formerly
        misdocumented as -placement_zone. Both work now, and -zone works as

1.03  Tue Aug  2 16:55:15 EDT 2011
      - Tests will skip rather than fail if user fails to provide
        Amazon credentials.

1.02  Thu Jul 28 17:23:51 EDT 2011
      - Added support for filters with multiple values.
      - Improved subclassing documentation.

1.01  Thu Jul 28 10:32:52 EDT 2011
      - Add -print_error argument to VM::EC2->new.
      - Support for reserved instances.
      - Fix test 05 to avoid leaving dangling 1 GB snapshots.

1.00   Tue Jul 26 23:07:47 EDT 2011
       -Core API fully implemented

0.10  -Partial implementation of API.