diff --git a/amazonka-ec2.cabal b/amazonka-ec2.cabal
--- a/amazonka-ec2.cabal
+++ b/amazonka-ec2.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-ec2
-version:               0.1.0
+version:               0.1.1
 synopsis:              Amazon Elastic Compute Cloud SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -7,7 +7,7 @@
 author:                Brendan Hay
 maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
 copyright:             Copyright (c) 2013-2014 Brendan Hay
-category:              Network, AWS, Cloud
+category:              Network, AWS, Cloud, Distributed Computing
 build-type:            Simple
 extra-source-files:    README.md
 cabal-version:         >= 1.10
@@ -205,5 +205,5 @@
           Network.AWS.EC2.Internal
 
     build-depends:
-          amazonka-core == 0.1.0.*
+          amazonka-core == 0.1.1.*
         , base          >= 4.7     && < 5
diff --git a/gen/Network/AWS/EC2/AssignPrivateIpAddresses.hs b/gen/Network/AWS/EC2/AssignPrivateIpAddresses.hs
--- a/gen/Network/AWS/EC2/AssignPrivateIpAddresses.hs
+++ b/gen/Network/AWS/EC2/AssignPrivateIpAddresses.hs
@@ -128,7 +128,7 @@
     toQuery AssignPrivateIpAddresses{..} = mconcat
         [ "allowReassignment"              =? _apiaAllowReassignment
         , "networkInterfaceId"             =? _apiaNetworkInterfaceId
-        , toQuery                         _apiaPrivateIpAddresses
+        , "privateIpAddress"               `toQueryList` _apiaPrivateIpAddresses
         , "secondaryPrivateIpAddressCount" =? _apiaSecondaryPrivateIpAddressCount
         ]
 
diff --git a/gen/Network/AWS/EC2/AuthorizeSecurityGroupEgress.hs b/gen/Network/AWS/EC2/AuthorizeSecurityGroupEgress.hs
--- a/gen/Network/AWS/EC2/AuthorizeSecurityGroupEgress.hs
+++ b/gen/Network/AWS/EC2/AuthorizeSecurityGroupEgress.hs
@@ -185,7 +185,7 @@
         , "dryRun"                     =? _asgeDryRun
         , "fromPort"                   =? _asgeFromPort
         , "groupId"                    =? _asgeGroupId
-        , toQuery                     _asgeIpPermissions
+        , "ipPermissions"              `toQueryList` _asgeIpPermissions
         , "ipProtocol"                 =? _asgeIpProtocol
         , "sourceSecurityGroupName"    =? _asgeSourceSecurityGroupName
         , "sourceSecurityGroupOwnerId" =? _asgeSourceSecurityGroupOwnerId
diff --git a/gen/Network/AWS/EC2/AuthorizeSecurityGroupIngress.hs b/gen/Network/AWS/EC2/AuthorizeSecurityGroupIngress.hs
--- a/gen/Network/AWS/EC2/AuthorizeSecurityGroupIngress.hs
+++ b/gen/Network/AWS/EC2/AuthorizeSecurityGroupIngress.hs
@@ -193,7 +193,7 @@
         , "FromPort"                   =? _asgiFromPort
         , "GroupId"                    =? _asgiGroupId
         , "GroupName"                  =? _asgiGroupName
-        , toQuery                     _asgiIpPermissions
+        , "IpPermissions"              `toQueryList` _asgiIpPermissions
         , "IpProtocol"                 =? _asgiIpProtocol
         , "SourceSecurityGroupName"    =? _asgiSourceSecurityGroupName
         , "SourceSecurityGroupOwnerId" =? _asgiSourceSecurityGroupOwnerId
diff --git a/gen/Network/AWS/EC2/CancelReservedInstancesListing.hs b/gen/Network/AWS/EC2/CancelReservedInstancesListing.hs
--- a/gen/Network/AWS/EC2/CancelReservedInstancesListing.hs
+++ b/gen/Network/AWS/EC2/CancelReservedInstancesListing.hs
@@ -113,4 +113,4 @@
 
 instance FromXML CancelReservedInstancesListingResponse where
     parseXML x = CancelReservedInstancesListingResponse
-        <$> parseXML x
+        <$> x .@? "reservedInstancesListingsSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/CancelSpotInstanceRequests.hs b/gen/Network/AWS/EC2/CancelSpotInstanceRequests.hs
--- a/gen/Network/AWS/EC2/CancelSpotInstanceRequests.hs
+++ b/gen/Network/AWS/EC2/CancelSpotInstanceRequests.hs
@@ -114,7 +114,7 @@
 instance ToQuery CancelSpotInstanceRequests where
     toQuery CancelSpotInstanceRequests{..} = mconcat
         [ "dryRun"                =? _csirDryRun
-        , toQuery                _csirSpotInstanceRequestIds
+        , "SpotInstanceRequestId" `toQueryList` _csirSpotInstanceRequestIds
         ]
 
 instance ToHeaders CancelSpotInstanceRequests
@@ -128,4 +128,4 @@
 
 instance FromXML CancelSpotInstanceRequestsResponse where
     parseXML x = CancelSpotInstanceRequestsResponse
-        <$> parseXML x
+        <$> x .@? "spotInstanceRequestSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/CreateDhcpOptions.hs b/gen/Network/AWS/EC2/CreateDhcpOptions.hs
--- a/gen/Network/AWS/EC2/CreateDhcpOptions.hs
+++ b/gen/Network/AWS/EC2/CreateDhcpOptions.hs
@@ -120,7 +120,7 @@
 
 instance ToQuery CreateDhcpOptions where
     toQuery CreateDhcpOptions{..} = mconcat
-        [ toQuery            _cdoDhcpConfigurations
+        [ "dhcpConfiguration" `toQueryList` _cdoDhcpConfigurations
         , "dryRun"            =? _cdoDryRun
         ]
 
diff --git a/gen/Network/AWS/EC2/CreateImage.hs b/gen/Network/AWS/EC2/CreateImage.hs
--- a/gen/Network/AWS/EC2/CreateImage.hs
+++ b/gen/Network/AWS/EC2/CreateImage.hs
@@ -154,7 +154,7 @@
 
 instance ToQuery CreateImage where
     toQuery CreateImage{..} = mconcat
-        [ toQuery             _ci1BlockDeviceMappings
+        [ "blockDeviceMapping" `toQueryList` _ci1BlockDeviceMappings
         , "description"        =? _ci1Description
         , "dryRun"             =? _ci1DryRun
         , "instanceId"         =? _ci1InstanceId
diff --git a/gen/Network/AWS/EC2/CreateNetworkInterface.hs b/gen/Network/AWS/EC2/CreateNetworkInterface.hs
--- a/gen/Network/AWS/EC2/CreateNetworkInterface.hs
+++ b/gen/Network/AWS/EC2/CreateNetworkInterface.hs
@@ -163,9 +163,9 @@
     toQuery CreateNetworkInterface{..} = mconcat
         [ "description"                    =? _cniDescription
         , "dryRun"                         =? _cniDryRun
-        , toQuery                         _cniGroups
+        , "SecurityGroupId"                `toQueryList` _cniGroups
         , "privateIpAddress"               =? _cniPrivateIpAddress
-        , toQuery                         _cniPrivateIpAddresses
+        , "privateIpAddresses"             `toQueryList` _cniPrivateIpAddresses
         , "secondaryPrivateIpAddressCount" =? _cniSecondaryPrivateIpAddressCount
         , "subnetId"                       =? _cniSubnetId
         ]
diff --git a/gen/Network/AWS/EC2/CreateReservedInstancesListing.hs b/gen/Network/AWS/EC2/CreateReservedInstancesListing.hs
--- a/gen/Network/AWS/EC2/CreateReservedInstancesListing.hs
+++ b/gen/Network/AWS/EC2/CreateReservedInstancesListing.hs
@@ -150,7 +150,7 @@
     toQuery CreateReservedInstancesListing{..} = mconcat
         [ "clientToken"         =? _crilClientToken
         , "instanceCount"       =? _crilInstanceCount
-        , toQuery              _crilPriceSchedules
+        , "priceSchedules"      `toQueryList` _crilPriceSchedules
         , "reservedInstancesId" =? _crilReservedInstancesId
         ]
 
@@ -165,4 +165,4 @@
 
 instance FromXML CreateReservedInstancesListingResponse where
     parseXML x = CreateReservedInstancesListingResponse
-        <$> parseXML x
+        <$> x .@? "reservedInstancesListingsSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/CreateSnapshot.hs b/gen/Network/AWS/EC2/CreateSnapshot.hs
--- a/gen/Network/AWS/EC2/CreateSnapshot.hs
+++ b/gen/Network/AWS/EC2/CreateSnapshot.hs
@@ -270,6 +270,6 @@
         <*> x .@  "snapshotId"
         <*> x .@  "startTime"
         <*> x .@  "status"
-        <*> parseXML x
+        <*> x .@? "tagSet" .!@ mempty
         <*> x .@  "volumeId"
         <*> x .@  "volumeSize"
diff --git a/gen/Network/AWS/EC2/CreateTags.hs b/gen/Network/AWS/EC2/CreateTags.hs
--- a/gen/Network/AWS/EC2/CreateTags.hs
+++ b/gen/Network/AWS/EC2/CreateTags.hs
@@ -100,8 +100,8 @@
 instance ToQuery CreateTags where
     toQuery CreateTags{..} = mconcat
         [ "dryRun"     =? _ct1DryRun
-        , toQuery     _ct1Resources
-        , toQuery     _ct1Tags
+        , "ResourceId" `toQueryList` _ct1Resources
+        , "Tag"        `toQueryList` _ct1Tags
         ]
 
 instance ToHeaders CreateTags
diff --git a/gen/Network/AWS/EC2/CreateVolume.hs b/gen/Network/AWS/EC2/CreateVolume.hs
--- a/gen/Network/AWS/EC2/CreateVolume.hs
+++ b/gen/Network/AWS/EC2/CreateVolume.hs
@@ -323,7 +323,7 @@
 
 instance FromXML CreateVolumeResponse where
     parseXML x = CreateVolumeResponse
-        <$> parseXML x
+        <$> x .@? "attachmentSet" .!@ mempty
         <*> x .@  "availabilityZone"
         <*> x .@  "createTime"
         <*> x .@  "encrypted"
@@ -332,6 +332,6 @@
         <*> x .@  "size"
         <*> x .@  "snapshotId"
         <*> x .@  "status"
-        <*> parseXML x
+        <*> x .@? "tagSet" .!@ mempty
         <*> x .@  "volumeId"
         <*> x .@  "volumeType"
diff --git a/gen/Network/AWS/EC2/DeleteTags.hs b/gen/Network/AWS/EC2/DeleteTags.hs
--- a/gen/Network/AWS/EC2/DeleteTags.hs
+++ b/gen/Network/AWS/EC2/DeleteTags.hs
@@ -52,7 +52,7 @@
 
 data DeleteTags = DeleteTags
     { _dt1DryRun    :: Maybe Bool
-    , _dt1Resources :: List "ResourceId" Text
+    , _dt1Resources :: List "resourceId" Text
     , _dt1Tags      :: List "item" Tag
     } deriving (Eq, Show)
 
@@ -100,8 +100,8 @@
 instance ToQuery DeleteTags where
     toQuery DeleteTags{..} = mconcat
         [ "dryRun"     =? _dt1DryRun
-        , toQuery     _dt1Resources
-        , toQuery     _dt1Tags
+        , "resourceId" `toQueryList` _dt1Resources
+        , "tag"        `toQueryList` _dt1Tags
         ]
 
 instance ToHeaders DeleteTags
diff --git a/gen/Network/AWS/EC2/DescribeAccountAttributes.hs b/gen/Network/AWS/EC2/DescribeAccountAttributes.hs
--- a/gen/Network/AWS/EC2/DescribeAccountAttributes.hs
+++ b/gen/Network/AWS/EC2/DescribeAccountAttributes.hs
@@ -102,7 +102,7 @@
 
 instance ToQuery DescribeAccountAttributes where
     toQuery DescribeAccountAttributes{..} = mconcat
-        [ toQuery        _daaAttributeNames
+        [ "attributeName" `toQueryList` _daaAttributeNames
         , "dryRun"        =? _daaDryRun
         ]
 
@@ -117,4 +117,4 @@
 
 instance FromXML DescribeAccountAttributesResponse where
     parseXML x = DescribeAccountAttributesResponse
-        <$> parseXML x
+        <$> x .@? "accountAttributeSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribeAddresses.hs b/gen/Network/AWS/EC2/DescribeAddresses.hs
--- a/gen/Network/AWS/EC2/DescribeAddresses.hs
+++ b/gen/Network/AWS/EC2/DescribeAddresses.hs
@@ -145,10 +145,10 @@
 
 instance ToQuery DescribeAddresses where
     toQuery DescribeAddresses{..} = mconcat
-        [ toQuery       _daAllocationIds
+        [ "AllocationId" `toQueryList` _daAllocationIds
         , "dryRun"       =? _daDryRun
-        , toQuery       _daFilters
-        , toQuery       _daPublicIps
+        , "Filter"       `toQueryList` _daFilters
+        , "PublicIp"     `toQueryList` _daPublicIps
         ]
 
 instance ToHeaders DescribeAddresses
@@ -162,4 +162,4 @@
 
 instance FromXML DescribeAddressesResponse where
     parseXML x = DescribeAddressesResponse
-        <$> parseXML x
+        <$> x .@? "addressesSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribeAvailabilityZones.hs b/gen/Network/AWS/EC2/DescribeAvailabilityZones.hs
--- a/gen/Network/AWS/EC2/DescribeAvailabilityZones.hs
+++ b/gen/Network/AWS/EC2/DescribeAvailabilityZones.hs
@@ -126,8 +126,8 @@
 instance ToQuery DescribeAvailabilityZones where
     toQuery DescribeAvailabilityZones{..} = mconcat
         [ "dryRun"   =? _dazDryRun
-        , toQuery   _dazFilters
-        , toQuery   _dazZoneNames
+        , "Filter"   `toQueryList` _dazFilters
+        , "ZoneName" `toQueryList` _dazZoneNames
         ]
 
 instance ToHeaders DescribeAvailabilityZones
@@ -141,4 +141,4 @@
 
 instance FromXML DescribeAvailabilityZonesResponse where
     parseXML x = DescribeAvailabilityZonesResponse
-        <$> parseXML x
+        <$> x .@? "availabilityZoneInfo" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribeBundleTasks.hs b/gen/Network/AWS/EC2/DescribeBundleTasks.hs
--- a/gen/Network/AWS/EC2/DescribeBundleTasks.hs
+++ b/gen/Network/AWS/EC2/DescribeBundleTasks.hs
@@ -139,9 +139,9 @@
 
 instance ToQuery DescribeBundleTasks where
     toQuery DescribeBundleTasks{..} = mconcat
-        [ toQuery   _dbtBundleIds
+        [ "BundleId" `toQueryList` _dbtBundleIds
         , "dryRun"   =? _dbtDryRun
-        , toQuery   _dbtFilters
+        , "Filter"   `toQueryList` _dbtFilters
         ]
 
 instance ToHeaders DescribeBundleTasks
@@ -155,4 +155,4 @@
 
 instance FromXML DescribeBundleTasksResponse where
     parseXML x = DescribeBundleTasksResponse
-        <$> parseXML x
+        <$> x .@? "bundleInstanceTasksSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribeConversionTasks.hs b/gen/Network/AWS/EC2/DescribeConversionTasks.hs
--- a/gen/Network/AWS/EC2/DescribeConversionTasks.hs
+++ b/gen/Network/AWS/EC2/DescribeConversionTasks.hs
@@ -109,9 +109,9 @@
 
 instance ToQuery DescribeConversionTasks where
     toQuery DescribeConversionTasks{..} = mconcat
-        [ toQuery           _dctConversionTaskIds
+        [ "conversionTaskId" `toQueryList` _dctConversionTaskIds
         , "dryRun"           =? _dctDryRun
-        , toQuery           _dctFilters
+        , "filter"           `toQueryList` _dctFilters
         ]
 
 instance ToHeaders DescribeConversionTasks
@@ -125,4 +125,4 @@
 
 instance FromXML DescribeConversionTasksResponse where
     parseXML x = DescribeConversionTasksResponse
-        <$> parseXML x
+        <$> x .@? "conversionTasks" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribeCustomerGateways.hs b/gen/Network/AWS/EC2/DescribeCustomerGateways.hs
--- a/gen/Network/AWS/EC2/DescribeCustomerGateways.hs
+++ b/gen/Network/AWS/EC2/DescribeCustomerGateways.hs
@@ -143,9 +143,9 @@
 
 instance ToQuery DescribeCustomerGateways where
     toQuery DescribeCustomerGateways{..} = mconcat
-        [ toQuery            _dcgCustomerGatewayIds
+        [ "CustomerGatewayId" `toQueryList` _dcgCustomerGatewayIds
         , "dryRun"            =? _dcgDryRun
-        , toQuery            _dcgFilters
+        , "Filter"            `toQueryList` _dcgFilters
         ]
 
 instance ToHeaders DescribeCustomerGateways
@@ -159,4 +159,4 @@
 
 instance FromXML DescribeCustomerGatewaysResponse where
     parseXML x = DescribeCustomerGatewaysResponse
-        <$> parseXML x
+        <$> x .@? "customerGatewaySet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribeDhcpOptions.hs b/gen/Network/AWS/EC2/DescribeDhcpOptions.hs
--- a/gen/Network/AWS/EC2/DescribeDhcpOptions.hs
+++ b/gen/Network/AWS/EC2/DescribeDhcpOptions.hs
@@ -134,9 +134,9 @@
 
 instance ToQuery DescribeDhcpOptions where
     toQuery DescribeDhcpOptions{..} = mconcat
-        [ toQuery        _ddoDhcpOptionsIds
+        [ "DhcpOptionsId" `toQueryList` _ddoDhcpOptionsIds
         , "dryRun"        =? _ddoDryRun
-        , toQuery        _ddoFilters
+        , "Filter"        `toQueryList` _ddoFilters
         ]
 
 instance ToHeaders DescribeDhcpOptions
@@ -150,4 +150,4 @@
 
 instance FromXML DescribeDhcpOptionsResponse where
     parseXML x = DescribeDhcpOptionsResponse
-        <$> parseXML x
+        <$> x .@? "dhcpOptionsSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribeExportTasks.hs b/gen/Network/AWS/EC2/DescribeExportTasks.hs
--- a/gen/Network/AWS/EC2/DescribeExportTasks.hs
+++ b/gen/Network/AWS/EC2/DescribeExportTasks.hs
@@ -89,7 +89,7 @@
 
 instance ToQuery DescribeExportTasks where
     toQuery DescribeExportTasks{..} = mconcat
-        [ toQuery _detExportTaskIds
+        [ "exportTaskId" `toQueryList` _detExportTaskIds
         ]
 
 instance ToHeaders DescribeExportTasks
@@ -103,4 +103,4 @@
 
 instance FromXML DescribeExportTasksResponse where
     parseXML x = DescribeExportTasksResponse
-        <$> parseXML x
+        <$> x .@? "exportTaskSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribeImageAttribute.hs b/gen/Network/AWS/EC2/DescribeImageAttribute.hs
--- a/gen/Network/AWS/EC2/DescribeImageAttribute.hs
+++ b/gen/Network/AWS/EC2/DescribeImageAttribute.hs
@@ -193,11 +193,11 @@
 
 instance FromXML DescribeImageAttributeResponse where
     parseXML x = DescribeImageAttributeResponse
-        <$> parseXML x
+        <$> x .@? "blockDeviceMapping" .!@ mempty
         <*> x .@? "description"
         <*> x .@? "imageId"
         <*> x .@? "kernel"
-        <*> parseXML x
-        <*> parseXML x
+        <*> x .@? "launchPermission" .!@ mempty
+        <*> x .@? "productCodes" .!@ mempty
         <*> x .@? "ramdisk"
         <*> x .@? "sriovNetSupport"
diff --git a/gen/Network/AWS/EC2/DescribeImages.hs b/gen/Network/AWS/EC2/DescribeImages.hs
--- a/gen/Network/AWS/EC2/DescribeImages.hs
+++ b/gen/Network/AWS/EC2/DescribeImages.hs
@@ -214,10 +214,10 @@
 instance ToQuery DescribeImages where
     toQuery DescribeImages{..} = mconcat
         [ "dryRun"       =? _di2DryRun
-        , toQuery       _di2ExecutableUsers
-        , toQuery       _di2Filters
-        , toQuery       _di2ImageIds
-        , toQuery       _di2Owners
+        , "ExecutableBy" `toQueryList` _di2ExecutableUsers
+        , "Filter"       `toQueryList` _di2Filters
+        , "ImageId"      `toQueryList` _di2ImageIds
+        , "Owner"        `toQueryList` _di2Owners
         ]
 
 instance ToHeaders DescribeImages
@@ -231,4 +231,4 @@
 
 instance FromXML DescribeImagesResponse where
     parseXML x = DescribeImagesResponse
-        <$> parseXML x
+        <$> x .@? "imagesSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribeInstanceAttribute.hs b/gen/Network/AWS/EC2/DescribeInstanceAttribute.hs
--- a/gen/Network/AWS/EC2/DescribeInstanceAttribute.hs
+++ b/gen/Network/AWS/EC2/DescribeInstanceAttribute.hs
@@ -260,15 +260,15 @@
 
 instance FromXML DescribeInstanceAttributeResponse where
     parseXML x = DescribeInstanceAttributeResponse
-        <$> parseXML x
+        <$> x .@? "blockDeviceMapping" .!@ mempty
         <*> x .@? "disableApiTermination"
         <*> x .@? "ebsOptimized"
-        <*> parseXML x
+        <*> x .@? "groupSet" .!@ mempty
         <*> x .@? "instanceId"
         <*> x .@? "instanceInitiatedShutdownBehavior"
         <*> x .@? "instanceType"
         <*> x .@? "kernel"
-        <*> parseXML x
+        <*> x .@? "productCodes" .!@ mempty
         <*> x .@? "ramdisk"
         <*> x .@? "rootDeviceName"
         <*> x .@? "sourceDestCheck"
diff --git a/gen/Network/AWS/EC2/DescribeInstanceStatus.hs b/gen/Network/AWS/EC2/DescribeInstanceStatus.hs
--- a/gen/Network/AWS/EC2/DescribeInstanceStatus.hs
+++ b/gen/Network/AWS/EC2/DescribeInstanceStatus.hs
@@ -244,9 +244,9 @@
 instance ToQuery DescribeInstanceStatus where
     toQuery DescribeInstanceStatus{..} = mconcat
         [ "dryRun"              =? _disDryRun
-        , toQuery              _disFilters
+        , "Filter"              `toQueryList` _disFilters
         , "includeAllInstances" =? _disIncludeAllInstances
-        , toQuery              _disInstanceIds
+        , "InstanceId"          `toQueryList` _disInstanceIds
         , "MaxResults"          =? _disMaxResults
         , "NextToken"           =? _disNextToken
         ]
@@ -262,7 +262,7 @@
 
 instance FromXML DescribeInstanceStatusResponse where
     parseXML x = DescribeInstanceStatusResponse
-        <$> parseXML x
+        <$> x .@? "instanceStatusSet" .!@ mempty
         <*> x .@? "nextToken"
 
 instance AWSPager DescribeInstanceStatus where
diff --git a/gen/Network/AWS/EC2/DescribeInstances.hs b/gen/Network/AWS/EC2/DescribeInstances.hs
--- a/gen/Network/AWS/EC2/DescribeInstances.hs
+++ b/gen/Network/AWS/EC2/DescribeInstances.hs
@@ -377,8 +377,8 @@
 instance ToQuery DescribeInstances where
     toQuery DescribeInstances{..} = mconcat
         [ "dryRun"     =? _di1DryRun
-        , toQuery     _di1Filters
-        , toQuery     _di1InstanceIds
+        , "Filter"     `toQueryList` _di1Filters
+        , "InstanceId" `toQueryList` _di1InstanceIds
         , "maxResults" =? _di1MaxResults
         , "nextToken"  =? _di1NextToken
         ]
@@ -395,7 +395,7 @@
 instance FromXML DescribeInstancesResponse where
     parseXML x = DescribeInstancesResponse
         <$> x .@? "nextToken"
-        <*> parseXML x
+        <*> x .@? "reservationSet" .!@ mempty
 
 instance AWSPager DescribeInstances where
     page rq rs
diff --git a/gen/Network/AWS/EC2/DescribeInternetGateways.hs b/gen/Network/AWS/EC2/DescribeInternetGateways.hs
--- a/gen/Network/AWS/EC2/DescribeInternetGateways.hs
+++ b/gen/Network/AWS/EC2/DescribeInternetGateways.hs
@@ -136,8 +136,8 @@
 instance ToQuery DescribeInternetGateways where
     toQuery DescribeInternetGateways{..} = mconcat
         [ "dryRun"            =? _dig1DryRun
-        , toQuery            _dig1Filters
-        , toQuery            _dig1InternetGatewayIds
+        , "Filter"            `toQueryList` _dig1Filters
+        , "internetGatewayId" `toQueryList` _dig1InternetGatewayIds
         ]
 
 instance ToHeaders DescribeInternetGateways
@@ -151,4 +151,4 @@
 
 instance FromXML DescribeInternetGatewaysResponse where
     parseXML x = DescribeInternetGatewaysResponse
-        <$> parseXML x
+        <$> x .@? "internetGatewaySet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribeKeyPairs.hs b/gen/Network/AWS/EC2/DescribeKeyPairs.hs
--- a/gen/Network/AWS/EC2/DescribeKeyPairs.hs
+++ b/gen/Network/AWS/EC2/DescribeKeyPairs.hs
@@ -118,8 +118,8 @@
 instance ToQuery DescribeKeyPairs where
     toQuery DescribeKeyPairs{..} = mconcat
         [ "dryRun"  =? _dkp1DryRun
-        , toQuery  _dkp1Filters
-        , toQuery  _dkp1KeyNames
+        , "Filter"  `toQueryList` _dkp1Filters
+        , "KeyName" `toQueryList` _dkp1KeyNames
         ]
 
 instance ToHeaders DescribeKeyPairs
@@ -133,4 +133,4 @@
 
 instance FromXML DescribeKeyPairsResponse where
     parseXML x = DescribeKeyPairsResponse
-        <$> parseXML x
+        <$> x .@? "keySet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribeNetworkAcls.hs b/gen/Network/AWS/EC2/DescribeNetworkAcls.hs
--- a/gen/Network/AWS/EC2/DescribeNetworkAcls.hs
+++ b/gen/Network/AWS/EC2/DescribeNetworkAcls.hs
@@ -163,8 +163,8 @@
 instance ToQuery DescribeNetworkAcls where
     toQuery DescribeNetworkAcls{..} = mconcat
         [ "dryRun"       =? _dna1DryRun
-        , toQuery       _dna1Filters
-        , toQuery       _dna1NetworkAclIds
+        , "Filter"       `toQueryList` _dna1Filters
+        , "NetworkAclId" `toQueryList` _dna1NetworkAclIds
         ]
 
 instance ToHeaders DescribeNetworkAcls
@@ -178,4 +178,4 @@
 
 instance FromXML DescribeNetworkAclsResponse where
     parseXML x = DescribeNetworkAclsResponse
-        <$> parseXML x
+        <$> x .@? "networkAclSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribeNetworkInterfaceAttribute.hs b/gen/Network/AWS/EC2/DescribeNetworkInterfaceAttribute.hs
--- a/gen/Network/AWS/EC2/DescribeNetworkInterfaceAttribute.hs
+++ b/gen/Network/AWS/EC2/DescribeNetworkInterfaceAttribute.hs
@@ -166,6 +166,6 @@
     parseXML x = DescribeNetworkInterfaceAttributeResponse
         <$> x .@? "attachment"
         <*> x .@? "description"
-        <*> parseXML x
+        <*> x .@? "groupSet" .!@ mempty
         <*> x .@? "networkInterfaceId"
         <*> x .@? "sourceDestCheck"
diff --git a/gen/Network/AWS/EC2/DescribeNetworkInterfaces.hs b/gen/Network/AWS/EC2/DescribeNetworkInterfaces.hs
--- a/gen/Network/AWS/EC2/DescribeNetworkInterfaces.hs
+++ b/gen/Network/AWS/EC2/DescribeNetworkInterfaces.hs
@@ -215,8 +215,8 @@
 instance ToQuery DescribeNetworkInterfaces where
     toQuery DescribeNetworkInterfaces{..} = mconcat
         [ "dryRun"             =? _dni1DryRun
-        , toQuery             _dni1Filters
-        , toQuery             _dni1NetworkInterfaceIds
+        , "filter"             `toQueryList` _dni1Filters
+        , "NetworkInterfaceId" `toQueryList` _dni1NetworkInterfaceIds
         ]
 
 instance ToHeaders DescribeNetworkInterfaces
@@ -230,4 +230,4 @@
 
 instance FromXML DescribeNetworkInterfacesResponse where
     parseXML x = DescribeNetworkInterfacesResponse
-        <$> parseXML x
+        <$> x .@? "networkInterfaceSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribePlacementGroups.hs b/gen/Network/AWS/EC2/DescribePlacementGroups.hs
--- a/gen/Network/AWS/EC2/DescribePlacementGroups.hs
+++ b/gen/Network/AWS/EC2/DescribePlacementGroups.hs
@@ -122,8 +122,8 @@
 instance ToQuery DescribePlacementGroups where
     toQuery DescribePlacementGroups{..} = mconcat
         [ "dryRun"    =? _dpg1DryRun
-        , toQuery    _dpg1Filters
-        , toQuery    _dpg1GroupNames
+        , "Filter"    `toQueryList` _dpg1Filters
+        , "groupName" `toQueryList` _dpg1GroupNames
         ]
 
 instance ToHeaders DescribePlacementGroups
@@ -137,4 +137,4 @@
 
 instance FromXML DescribePlacementGroupsResponse where
     parseXML x = DescribePlacementGroupsResponse
-        <$> parseXML x
+        <$> x .@? "placementGroupSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribeRegions.hs b/gen/Network/AWS/EC2/DescribeRegions.hs
--- a/gen/Network/AWS/EC2/DescribeRegions.hs
+++ b/gen/Network/AWS/EC2/DescribeRegions.hs
@@ -116,8 +116,8 @@
 instance ToQuery DescribeRegions where
     toQuery DescribeRegions{..} = mconcat
         [ "dryRun"     =? _dr1DryRun
-        , toQuery     _dr1Filters
-        , toQuery     _dr1RegionNames
+        , "Filter"     `toQueryList` _dr1Filters
+        , "RegionName" `toQueryList` _dr1RegionNames
         ]
 
 instance ToHeaders DescribeRegions
@@ -131,4 +131,4 @@
 
 instance FromXML DescribeRegionsResponse where
     parseXML x = DescribeRegionsResponse
-        <$> parseXML x
+        <$> x .@? "regionInfo" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribeReservedInstances.hs b/gen/Network/AWS/EC2/DescribeReservedInstances.hs
--- a/gen/Network/AWS/EC2/DescribeReservedInstances.hs
+++ b/gen/Network/AWS/EC2/DescribeReservedInstances.hs
@@ -170,9 +170,9 @@
 instance ToQuery DescribeReservedInstances where
     toQuery DescribeReservedInstances{..} = mconcat
         [ "dryRun"              =? _driDryRun
-        , toQuery              _driFilters
+        , "Filter"              `toQueryList` _driFilters
         , "offeringType"        =? _driOfferingType
-        , toQuery              _driReservedInstancesIds
+        , "ReservedInstancesId" `toQueryList` _driReservedInstancesIds
         ]
 
 instance ToHeaders DescribeReservedInstances
@@ -186,4 +186,4 @@
 
 instance FromXML DescribeReservedInstancesResponse where
     parseXML x = DescribeReservedInstancesResponse
-        <$> parseXML x
+        <$> x .@? "reservedInstancesSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribeReservedInstancesListings.hs b/gen/Network/AWS/EC2/DescribeReservedInstancesListings.hs
--- a/gen/Network/AWS/EC2/DescribeReservedInstancesListings.hs
+++ b/gen/Network/AWS/EC2/DescribeReservedInstancesListings.hs
@@ -144,7 +144,7 @@
 
 instance ToQuery DescribeReservedInstancesListings where
     toQuery DescribeReservedInstancesListings{..} = mconcat
-        [ toQuery                     _drilFilters
+        [ "filters"                    `toQueryList` _drilFilters
         , "reservedInstancesId"        =? _drilReservedInstancesId
         , "reservedInstancesListingId" =? _drilReservedInstancesListingId
         ]
@@ -160,4 +160,4 @@
 
 instance FromXML DescribeReservedInstancesListingsResponse where
     parseXML x = DescribeReservedInstancesListingsResponse
-        <$> parseXML x
+        <$> x .@? "reservedInstancesListingsSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribeReservedInstancesModifications.hs b/gen/Network/AWS/EC2/DescribeReservedInstancesModifications.hs
--- a/gen/Network/AWS/EC2/DescribeReservedInstancesModifications.hs
+++ b/gen/Network/AWS/EC2/DescribeReservedInstancesModifications.hs
@@ -163,9 +163,9 @@
 
 instance ToQuery DescribeReservedInstancesModifications where
     toQuery DescribeReservedInstancesModifications{..} = mconcat
-        [ toQuery                          _drimFilters
+        [ "Filter"                          `toQueryList` _drimFilters
         , "nextToken"                       =? _drimNextToken
-        , toQuery                          _drimReservedInstancesModificationIds
+        , "ReservedInstancesModificationId" `toQueryList` _drimReservedInstancesModificationIds
         ]
 
 instance ToHeaders DescribeReservedInstancesModifications
@@ -180,7 +180,7 @@
 instance FromXML DescribeReservedInstancesModificationsResponse where
     parseXML x = DescribeReservedInstancesModificationsResponse
         <$> x .@? "nextToken"
-        <*> parseXML x
+        <*> x .@? "reservedInstancesModificationsSet" .!@ mempty
 
 instance AWSPager DescribeReservedInstancesModifications where
     page rq rs
diff --git a/gen/Network/AWS/EC2/DescribeReservedInstancesOfferings.hs b/gen/Network/AWS/EC2/DescribeReservedInstancesOfferings.hs
--- a/gen/Network/AWS/EC2/DescribeReservedInstancesOfferings.hs
+++ b/gen/Network/AWS/EC2/DescribeReservedInstancesOfferings.hs
@@ -275,7 +275,7 @@
     toQuery DescribeReservedInstancesOfferings{..} = mconcat
         [ "AvailabilityZone"            =? _drioAvailabilityZone
         , "dryRun"                      =? _drioDryRun
-        , toQuery                      _drioFilters
+        , "Filter"                      `toQueryList` _drioFilters
         , "IncludeMarketplace"          =? _drioIncludeMarketplace
         , "instanceTenancy"             =? _drioInstanceTenancy
         , "InstanceType"                =? _drioInstanceType
@@ -286,7 +286,7 @@
         , "nextToken"                   =? _drioNextToken
         , "offeringType"                =? _drioOfferingType
         , "ProductDescription"          =? _drioProductDescription
-        , toQuery                      _drioReservedInstancesOfferingIds
+        , "ReservedInstancesOfferingId" `toQueryList` _drioReservedInstancesOfferingIds
         ]
 
 instance ToHeaders DescribeReservedInstancesOfferings
@@ -301,7 +301,7 @@
 instance FromXML DescribeReservedInstancesOfferingsResponse where
     parseXML x = DescribeReservedInstancesOfferingsResponse
         <$> x .@? "nextToken"
-        <*> parseXML x
+        <*> x .@? "reservedInstancesOfferingsSet" .!@ mempty
 
 instance AWSPager DescribeReservedInstancesOfferings where
     page rq rs
diff --git a/gen/Network/AWS/EC2/DescribeRouteTables.hs b/gen/Network/AWS/EC2/DescribeRouteTables.hs
--- a/gen/Network/AWS/EC2/DescribeRouteTables.hs
+++ b/gen/Network/AWS/EC2/DescribeRouteTables.hs
@@ -164,8 +164,8 @@
 instance ToQuery DescribeRouteTables where
     toQuery DescribeRouteTables{..} = mconcat
         [ "dryRun"       =? _drt2DryRun
-        , toQuery       _drt2Filters
-        , toQuery       _drt2RouteTableIds
+        , "Filter"       `toQueryList` _drt2Filters
+        , "RouteTableId" `toQueryList` _drt2RouteTableIds
         ]
 
 instance ToHeaders DescribeRouteTables
@@ -179,4 +179,4 @@
 
 instance FromXML DescribeRouteTablesResponse where
     parseXML x = DescribeRouteTablesResponse
-        <$> parseXML x
+        <$> x .@? "routeTableSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribeSecurityGroups.hs b/gen/Network/AWS/EC2/DescribeSecurityGroups.hs
--- a/gen/Network/AWS/EC2/DescribeSecurityGroups.hs
+++ b/gen/Network/AWS/EC2/DescribeSecurityGroups.hs
@@ -162,9 +162,9 @@
 instance ToQuery DescribeSecurityGroups where
     toQuery DescribeSecurityGroups{..} = mconcat
         [ "dryRun"    =? _dsg1DryRun
-        , toQuery    _dsg1Filters
-        , toQuery    _dsg1GroupIds
-        , toQuery    _dsg1GroupNames
+        , "Filter"    `toQueryList` _dsg1Filters
+        , "GroupId"   `toQueryList` _dsg1GroupIds
+        , "GroupName" `toQueryList` _dsg1GroupNames
         ]
 
 instance ToHeaders DescribeSecurityGroups
@@ -178,4 +178,4 @@
 
 instance FromXML DescribeSecurityGroupsResponse where
     parseXML x = DescribeSecurityGroupsResponse
-        <$> parseXML x
+        <$> x .@? "securityGroupInfo" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribeSnapshotAttribute.hs b/gen/Network/AWS/EC2/DescribeSnapshotAttribute.hs
--- a/gen/Network/AWS/EC2/DescribeSnapshotAttribute.hs
+++ b/gen/Network/AWS/EC2/DescribeSnapshotAttribute.hs
@@ -150,6 +150,6 @@
 
 instance FromXML DescribeSnapshotAttributeResponse where
     parseXML x = DescribeSnapshotAttributeResponse
-        <$> parseXML x
-        <*> parseXML x
+        <$> x .@? "createVolumePermission" .!@ mempty
+        <*> x .@? "productCodes" .!@ mempty
         <*> x .@? "snapshotId"
diff --git a/gen/Network/AWS/EC2/DescribeSnapshots.hs b/gen/Network/AWS/EC2/DescribeSnapshots.hs
--- a/gen/Network/AWS/EC2/DescribeSnapshots.hs
+++ b/gen/Network/AWS/EC2/DescribeSnapshots.hs
@@ -195,10 +195,10 @@
 instance ToQuery DescribeSnapshots where
     toQuery DescribeSnapshots{..} = mconcat
         [ "dryRun"       =? _ds1DryRun
-        , toQuery       _ds1Filters
-        , toQuery       _ds1OwnerIds
-        , toQuery       _ds1RestorableByUserIds
-        , toQuery       _ds1SnapshotIds
+        , "Filter"       `toQueryList` _ds1Filters
+        , "Owner"        `toQueryList` _ds1OwnerIds
+        , "RestorableBy" `toQueryList` _ds1RestorableByUserIds
+        , "SnapshotId"   `toQueryList` _ds1SnapshotIds
         ]
 
 instance ToHeaders DescribeSnapshots
@@ -212,4 +212,4 @@
 
 instance FromXML DescribeSnapshotsResponse where
     parseXML x = DescribeSnapshotsResponse
-        <$> parseXML x
+        <$> x .@? "snapshotSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribeSpotInstanceRequests.hs b/gen/Network/AWS/EC2/DescribeSpotInstanceRequests.hs
--- a/gen/Network/AWS/EC2/DescribeSpotInstanceRequests.hs
+++ b/gen/Network/AWS/EC2/DescribeSpotInstanceRequests.hs
@@ -232,8 +232,8 @@
 instance ToQuery DescribeSpotInstanceRequests where
     toQuery DescribeSpotInstanceRequests{..} = mconcat
         [ "dryRun"                =? _dsirDryRun
-        , toQuery                _dsirFilters
-        , toQuery                _dsirSpotInstanceRequestIds
+        , "Filter"                `toQueryList` _dsirFilters
+        , "SpotInstanceRequestId" `toQueryList` _dsirSpotInstanceRequestIds
         ]
 
 instance ToHeaders DescribeSpotInstanceRequests
@@ -247,4 +247,4 @@
 
 instance FromXML DescribeSpotInstanceRequestsResponse where
     parseXML x = DescribeSpotInstanceRequestsResponse
-        <$> parseXML x
+        <$> x .@? "spotInstanceRequestSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribeSpotPriceHistory.hs b/gen/Network/AWS/EC2/DescribeSpotPriceHistory.hs
--- a/gen/Network/AWS/EC2/DescribeSpotPriceHistory.hs
+++ b/gen/Network/AWS/EC2/DescribeSpotPriceHistory.hs
@@ -216,11 +216,11 @@
         [ "availabilityZone"   =? _dsphAvailabilityZone
         , "dryRun"             =? _dsphDryRun
         , "endTime"            =? _dsphEndTime
-        , toQuery             _dsphFilters
-        , toQuery             _dsphInstanceTypes
+        , "Filter"             `toQueryList` _dsphFilters
+        , "InstanceType"       `toQueryList` _dsphInstanceTypes
         , "maxResults"         =? _dsphMaxResults
         , "nextToken"          =? _dsphNextToken
-        , toQuery             _dsphProductDescriptions
+        , "ProductDescription" `toQueryList` _dsphProductDescriptions
         , "startTime"          =? _dsphStartTime
         ]
 
@@ -236,7 +236,7 @@
 instance FromXML DescribeSpotPriceHistoryResponse where
     parseXML x = DescribeSpotPriceHistoryResponse
         <$> x .@? "nextToken"
-        <*> parseXML x
+        <*> x .@? "spotPriceHistorySet" .!@ mempty
 
 instance AWSPager DescribeSpotPriceHistory where
     page rq rs
diff --git a/gen/Network/AWS/EC2/DescribeSubnets.hs b/gen/Network/AWS/EC2/DescribeSubnets.hs
--- a/gen/Network/AWS/EC2/DescribeSubnets.hs
+++ b/gen/Network/AWS/EC2/DescribeSubnets.hs
@@ -145,8 +145,8 @@
 instance ToQuery DescribeSubnets where
     toQuery DescribeSubnets{..} = mconcat
         [ "dryRun"   =? _dsDryRun
-        , toQuery   _dsFilters
-        , toQuery   _dsSubnetIds
+        , "Filter"   `toQueryList` _dsFilters
+        , "SubnetId" `toQueryList` _dsSubnetIds
         ]
 
 instance ToHeaders DescribeSubnets
@@ -160,4 +160,4 @@
 
 instance FromXML DescribeSubnetsResponse where
     parseXML x = DescribeSubnetsResponse
-        <$> parseXML x
+        <$> x .@? "subnetSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribeTags.hs b/gen/Network/AWS/EC2/DescribeTags.hs
--- a/gen/Network/AWS/EC2/DescribeTags.hs
+++ b/gen/Network/AWS/EC2/DescribeTags.hs
@@ -144,7 +144,7 @@
 instance ToQuery DescribeTags where
     toQuery DescribeTags{..} = mconcat
         [ "dryRun"     =? _dtDryRun
-        , toQuery     _dtFilters
+        , "Filter"     `toQueryList` _dtFilters
         , "maxResults" =? _dtMaxResults
         , "nextToken"  =? _dtNextToken
         ]
@@ -161,7 +161,7 @@
 instance FromXML DescribeTagsResponse where
     parseXML x = DescribeTagsResponse
         <$> x .@? "nextToken"
-        <*> parseXML x
+        <*> x .@? "tagSet" .!@ mempty
 
 instance AWSPager DescribeTags where
     page rq rs
diff --git a/gen/Network/AWS/EC2/DescribeVolumeAttribute.hs b/gen/Network/AWS/EC2/DescribeVolumeAttribute.hs
--- a/gen/Network/AWS/EC2/DescribeVolumeAttribute.hs
+++ b/gen/Network/AWS/EC2/DescribeVolumeAttribute.hs
@@ -146,5 +146,5 @@
 instance FromXML DescribeVolumeAttributeResponse where
     parseXML x = DescribeVolumeAttributeResponse
         <$> x .@? "autoEnableIO"
-        <*> parseXML x
+        <*> x .@? "productCodes" .!@ mempty
         <*> x .@? "volumeId"
diff --git a/gen/Network/AWS/EC2/DescribeVolumeStatus.hs b/gen/Network/AWS/EC2/DescribeVolumeStatus.hs
--- a/gen/Network/AWS/EC2/DescribeVolumeStatus.hs
+++ b/gen/Network/AWS/EC2/DescribeVolumeStatus.hs
@@ -204,10 +204,10 @@
 instance ToQuery DescribeVolumeStatus where
     toQuery DescribeVolumeStatus{..} = mconcat
         [ "dryRun"     =? _dvsDryRun
-        , toQuery     _dvsFilters
+        , "Filter"     `toQueryList` _dvsFilters
         , "MaxResults" =? _dvsMaxResults
         , "NextToken"  =? _dvsNextToken
-        , toQuery     _dvsVolumeIds
+        , "VolumeId"   `toQueryList` _dvsVolumeIds
         ]
 
 instance ToHeaders DescribeVolumeStatus
@@ -222,7 +222,7 @@
 instance FromXML DescribeVolumeStatusResponse where
     parseXML x = DescribeVolumeStatusResponse
         <$> x .@? "nextToken"
-        <*> parseXML x
+        <*> x .@? "volumeStatusSet" .!@ mempty
 
 instance AWSPager DescribeVolumeStatus where
     page rq rs
diff --git a/gen/Network/AWS/EC2/DescribeVolumes.hs b/gen/Network/AWS/EC2/DescribeVolumes.hs
--- a/gen/Network/AWS/EC2/DescribeVolumes.hs
+++ b/gen/Network/AWS/EC2/DescribeVolumes.hs
@@ -202,10 +202,10 @@
 instance ToQuery DescribeVolumes where
     toQuery DescribeVolumes{..} = mconcat
         [ "dryRun"     =? _dv2DryRun
-        , toQuery     _dv2Filters
+        , "Filter"     `toQueryList` _dv2Filters
         , "maxResults" =? _dv2MaxResults
         , "nextToken"  =? _dv2NextToken
-        , toQuery     _dv2VolumeIds
+        , "VolumeId"   `toQueryList` _dv2VolumeIds
         ]
 
 instance ToHeaders DescribeVolumes
@@ -220,4 +220,4 @@
 instance FromXML DescribeVolumesResponse where
     parseXML x = DescribeVolumesResponse
         <$> x .@? "nextToken"
-        <*> parseXML x
+        <*> x .@? "volumeSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribeVpcPeeringConnections.hs b/gen/Network/AWS/EC2/DescribeVpcPeeringConnections.hs
--- a/gen/Network/AWS/EC2/DescribeVpcPeeringConnections.hs
+++ b/gen/Network/AWS/EC2/DescribeVpcPeeringConnections.hs
@@ -156,8 +156,8 @@
 instance ToQuery DescribeVpcPeeringConnections where
     toQuery DescribeVpcPeeringConnections{..} = mconcat
         [ "dryRun"                 =? _dvpc1DryRun
-        , toQuery                 _dvpc1Filters
-        , toQuery                 _dvpc1VpcPeeringConnectionIds
+        , "Filter"                 `toQueryList` _dvpc1Filters
+        , "VpcPeeringConnectionId" `toQueryList` _dvpc1VpcPeeringConnectionIds
         ]
 
 instance ToHeaders DescribeVpcPeeringConnections
@@ -171,4 +171,4 @@
 
 instance FromXML DescribeVpcPeeringConnectionsResponse where
     parseXML x = DescribeVpcPeeringConnectionsResponse
-        <$> parseXML x
+        <$> x .@? "vpcPeeringConnectionSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribeVpcs.hs b/gen/Network/AWS/EC2/DescribeVpcs.hs
--- a/gen/Network/AWS/EC2/DescribeVpcs.hs
+++ b/gen/Network/AWS/EC2/DescribeVpcs.hs
@@ -137,8 +137,8 @@
 instance ToQuery DescribeVpcs where
     toQuery DescribeVpcs{..} = mconcat
         [ "dryRun" =? _dv1DryRun
-        , toQuery _dv1Filters
-        , toQuery _dv1VpcIds
+        , "Filter" `toQueryList` _dv1Filters
+        , "VpcId"  `toQueryList` _dv1VpcIds
         ]
 
 instance ToHeaders DescribeVpcs
@@ -152,4 +152,4 @@
 
 instance FromXML DescribeVpcsResponse where
     parseXML x = DescribeVpcsResponse
-        <$> parseXML x
+        <$> x .@? "vpcSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribeVpnConnections.hs b/gen/Network/AWS/EC2/DescribeVpnConnections.hs
--- a/gen/Network/AWS/EC2/DescribeVpnConnections.hs
+++ b/gen/Network/AWS/EC2/DescribeVpnConnections.hs
@@ -156,8 +156,8 @@
 instance ToQuery DescribeVpnConnections where
     toQuery DescribeVpnConnections{..} = mconcat
         [ "dryRun"          =? _dvc1DryRun
-        , toQuery          _dvc1Filters
-        , toQuery          _dvc1VpnConnectionIds
+        , "Filter"          `toQueryList` _dvc1Filters
+        , "VpnConnectionId" `toQueryList` _dvc1VpnConnectionIds
         ]
 
 instance ToHeaders DescribeVpnConnections
@@ -171,4 +171,4 @@
 
 instance FromXML DescribeVpnConnectionsResponse where
     parseXML x = DescribeVpnConnectionsResponse
-        <$> parseXML x
+        <$> x .@? "vpnConnectionSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DescribeVpnGateways.hs b/gen/Network/AWS/EC2/DescribeVpnGateways.hs
--- a/gen/Network/AWS/EC2/DescribeVpnGateways.hs
+++ b/gen/Network/AWS/EC2/DescribeVpnGateways.hs
@@ -143,8 +143,8 @@
 instance ToQuery DescribeVpnGateways where
     toQuery DescribeVpnGateways{..} = mconcat
         [ "dryRun"       =? _dvg2DryRun
-        , toQuery       _dvg2Filters
-        , toQuery       _dvg2VpnGatewayIds
+        , "Filter"       `toQueryList` _dvg2Filters
+        , "VpnGatewayId" `toQueryList` _dvg2VpnGatewayIds
         ]
 
 instance ToHeaders DescribeVpnGateways
@@ -158,4 +158,4 @@
 
 instance FromXML DescribeVpnGatewaysResponse where
     parseXML x = DescribeVpnGatewaysResponse
-        <$> parseXML x
+        <$> x .@? "vpnGatewaySet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/ImportInstance.hs b/gen/Network/AWS/EC2/ImportInstance.hs
--- a/gen/Network/AWS/EC2/ImportInstance.hs
+++ b/gen/Network/AWS/EC2/ImportInstance.hs
@@ -131,7 +131,7 @@
 instance ToQuery ImportInstance where
     toQuery ImportInstance{..} = mconcat
         [ "description"         =? _iiDescription
-        , toQuery              _iiDiskImages
+        , "diskImage"           `toQueryList` _iiDiskImages
         , "dryRun"              =? _iiDryRun
         , "launchSpecification" =? _iiLaunchSpecification
         , "platform"            =? _iiPlatform
diff --git a/gen/Network/AWS/EC2/ModifyImageAttribute.hs b/gen/Network/AWS/EC2/ModifyImageAttribute.hs
--- a/gen/Network/AWS/EC2/ModifyImageAttribute.hs
+++ b/gen/Network/AWS/EC2/ModifyImageAttribute.hs
@@ -171,9 +171,9 @@
         , "ImageId"          =? _miaImageId
         , "LaunchPermission" =? _miaLaunchPermission
         , "OperationType"    =? _miaOperationType
-        , toQuery           _miaProductCodes
-        , toQuery           _miaUserGroups
-        , toQuery           _miaUserIds
+        , "ProductCode"      `toQueryList` _miaProductCodes
+        , "UserGroup"        `toQueryList` _miaUserGroups
+        , "UserId"           `toQueryList` _miaUserIds
         , "Value"            =? _miaValue
         ]
 
diff --git a/gen/Network/AWS/EC2/ModifyInstanceAttribute.hs b/gen/Network/AWS/EC2/ModifyInstanceAttribute.hs
--- a/gen/Network/AWS/EC2/ModifyInstanceAttribute.hs
+++ b/gen/Network/AWS/EC2/ModifyInstanceAttribute.hs
@@ -241,11 +241,11 @@
 instance ToQuery ModifyInstanceAttribute where
     toQuery ModifyInstanceAttribute{..} = mconcat
         [ "attribute"                         =? _mia1Attribute
-        , toQuery                            _mia1BlockDeviceMappings
+        , "blockDeviceMapping"                `toQueryList` _mia1BlockDeviceMappings
         , "disableApiTermination"             =? _mia1DisableApiTermination
         , "dryRun"                            =? _mia1DryRun
         , "ebsOptimized"                      =? _mia1EbsOptimized
-        , toQuery                            _mia1Groups
+        , "GroupId"                           `toQueryList` _mia1Groups
         , "instanceId"                        =? _mia1InstanceId
         , "instanceInitiatedShutdownBehavior" =? _mia1InstanceInitiatedShutdownBehavior
         , "instanceType"                      =? _mia1InstanceType
diff --git a/gen/Network/AWS/EC2/ModifyNetworkInterfaceAttribute.hs b/gen/Network/AWS/EC2/ModifyNetworkInterfaceAttribute.hs
--- a/gen/Network/AWS/EC2/ModifyNetworkInterfaceAttribute.hs
+++ b/gen/Network/AWS/EC2/ModifyNetworkInterfaceAttribute.hs
@@ -133,7 +133,7 @@
         [ "attachment"         =? _mniaAttachment
         , "description"        =? _mniaDescription
         , "dryRun"             =? _mniaDryRun
-        , toQuery             _mniaGroups
+        , "SecurityGroupId"    `toQueryList` _mniaGroups
         , "networkInterfaceId" =? _mniaNetworkInterfaceId
         , "sourceDestCheck"    =? _mniaSourceDestCheck
         ]
diff --git a/gen/Network/AWS/EC2/ModifyReservedInstances.hs b/gen/Network/AWS/EC2/ModifyReservedInstances.hs
--- a/gen/Network/AWS/EC2/ModifyReservedInstances.hs
+++ b/gen/Network/AWS/EC2/ModifyReservedInstances.hs
@@ -122,8 +122,8 @@
 instance ToQuery ModifyReservedInstances where
     toQuery ModifyReservedInstances{..} = mconcat
         [ "clientToken"                               =? _mriClientToken
-        , toQuery                                    _mriReservedInstancesIds
-        , toQuery                                    _mriTargetConfigurations
+        , "ReservedInstancesId"                       `toQueryList` _mriReservedInstancesIds
+        , "ReservedInstancesConfigurationSetItemType" `toQueryList` _mriTargetConfigurations
         ]
 
 instance ToHeaders ModifyReservedInstances
diff --git a/gen/Network/AWS/EC2/ModifySnapshotAttribute.hs b/gen/Network/AWS/EC2/ModifySnapshotAttribute.hs
--- a/gen/Network/AWS/EC2/ModifySnapshotAttribute.hs
+++ b/gen/Network/AWS/EC2/ModifySnapshotAttribute.hs
@@ -145,10 +145,10 @@
         [ "Attribute"              =? _msaAttribute
         , "CreateVolumePermission" =? _msaCreateVolumePermission
         , "dryRun"                 =? _msaDryRun
-        , toQuery                 _msaGroupNames
+        , "UserGroup"              `toQueryList` _msaGroupNames
         , "OperationType"          =? _msaOperationType
         , "SnapshotId"             =? _msaSnapshotId
-        , toQuery                 _msaUserIds
+        , "UserId"                 `toQueryList` _msaUserIds
         ]
 
 instance ToHeaders ModifySnapshotAttribute
diff --git a/gen/Network/AWS/EC2/MonitorInstances.hs b/gen/Network/AWS/EC2/MonitorInstances.hs
--- a/gen/Network/AWS/EC2/MonitorInstances.hs
+++ b/gen/Network/AWS/EC2/MonitorInstances.hs
@@ -102,7 +102,7 @@
 instance ToQuery MonitorInstances where
     toQuery MonitorInstances{..} = mconcat
         [ "dryRun"     =? _miDryRun
-        , toQuery     _miInstanceIds
+        , "InstanceId" `toQueryList` _miInstanceIds
         ]
 
 instance ToHeaders MonitorInstances
@@ -116,4 +116,4 @@
 
 instance FromXML MonitorInstancesResponse where
     parseXML x = MonitorInstancesResponse
-        <$> parseXML x
+        <$> x .@? "instancesSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/RebootInstances.hs b/gen/Network/AWS/EC2/RebootInstances.hs
--- a/gen/Network/AWS/EC2/RebootInstances.hs
+++ b/gen/Network/AWS/EC2/RebootInstances.hs
@@ -93,7 +93,7 @@
 instance ToQuery RebootInstances where
     toQuery RebootInstances{..} = mconcat
         [ "dryRun"     =? _ri2DryRun
-        , toQuery     _ri2InstanceIds
+        , "InstanceId" `toQueryList` _ri2InstanceIds
         ]
 
 instance ToHeaders RebootInstances
diff --git a/gen/Network/AWS/EC2/RegisterImage.hs b/gen/Network/AWS/EC2/RegisterImage.hs
--- a/gen/Network/AWS/EC2/RegisterImage.hs
+++ b/gen/Network/AWS/EC2/RegisterImage.hs
@@ -218,7 +218,7 @@
 instance ToQuery RegisterImage where
     toQuery RegisterImage{..} = mconcat
         [ "architecture"       =? _ri1Architecture
-        , toQuery             _ri1BlockDeviceMappings
+        , "BlockDeviceMapping" `toQueryList` _ri1BlockDeviceMappings
         , "description"        =? _ri1Description
         , "dryRun"             =? _ri1DryRun
         , "ImageLocation"      =? _ri1ImageLocation
diff --git a/gen/Network/AWS/EC2/ReportInstanceStatus.hs b/gen/Network/AWS/EC2/ReportInstanceStatus.hs
--- a/gen/Network/AWS/EC2/ReportInstanceStatus.hs
+++ b/gen/Network/AWS/EC2/ReportInstanceStatus.hs
@@ -161,8 +161,8 @@
         [ "description" =? _risDescription
         , "dryRun"      =? _risDryRun
         , "endTime"     =? _risEndTime
-        , toQuery      _risInstances
-        , toQuery      _risReasonCodes
+        , "instanceId"  `toQueryList` _risInstances
+        , "reasonCode"  `toQueryList` _risReasonCodes
         , "startTime"   =? _risStartTime
         , "status"      =? _risStatus
         ]
diff --git a/gen/Network/AWS/EC2/RequestSpotInstances.hs b/gen/Network/AWS/EC2/RequestSpotInstances.hs
--- a/gen/Network/AWS/EC2/RequestSpotInstances.hs
+++ b/gen/Network/AWS/EC2/RequestSpotInstances.hs
@@ -234,4 +234,4 @@
 
 instance FromXML RequestSpotInstancesResponse where
     parseXML x = RequestSpotInstancesResponse
-        <$> parseXML x
+        <$> x .@? "spotInstanceRequestSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/RevokeSecurityGroupEgress.hs b/gen/Network/AWS/EC2/RevokeSecurityGroupEgress.hs
--- a/gen/Network/AWS/EC2/RevokeSecurityGroupEgress.hs
+++ b/gen/Network/AWS/EC2/RevokeSecurityGroupEgress.hs
@@ -175,7 +175,7 @@
         , "dryRun"                     =? _rsgeDryRun
         , "fromPort"                   =? _rsgeFromPort
         , "groupId"                    =? _rsgeGroupId
-        , toQuery                     _rsgeIpPermissions
+        , "ipPermissions"              `toQueryList` _rsgeIpPermissions
         , "ipProtocol"                 =? _rsgeIpProtocol
         , "sourceSecurityGroupName"    =? _rsgeSourceSecurityGroupName
         , "sourceSecurityGroupOwnerId" =? _rsgeSourceSecurityGroupOwnerId
diff --git a/gen/Network/AWS/EC2/RevokeSecurityGroupIngress.hs b/gen/Network/AWS/EC2/RevokeSecurityGroupIngress.hs
--- a/gen/Network/AWS/EC2/RevokeSecurityGroupIngress.hs
+++ b/gen/Network/AWS/EC2/RevokeSecurityGroupIngress.hs
@@ -184,7 +184,7 @@
         , "FromPort"                   =? _rsgiFromPort
         , "GroupId"                    =? _rsgiGroupId
         , "GroupName"                  =? _rsgiGroupName
-        , toQuery                     _rsgiIpPermissions
+        , "IpPermissions"              `toQueryList` _rsgiIpPermissions
         , "IpProtocol"                 =? _rsgiIpProtocol
         , "SourceSecurityGroupName"    =? _rsgiSourceSecurityGroupName
         , "SourceSecurityGroupOwnerId" =? _rsgiSourceSecurityGroupOwnerId
diff --git a/gen/Network/AWS/EC2/RunInstances.hs b/gen/Network/AWS/EC2/RunInstances.hs
--- a/gen/Network/AWS/EC2/RunInstances.hs
+++ b/gen/Network/AWS/EC2/RunInstances.hs
@@ -373,7 +373,7 @@
     { _rirGroups        :: List "item" GroupIdentifier
     , _rirInstances     :: List "item" Instance
     , _rirOwnerId       :: Text
-    , _rirRequesterId   :: Text
+    , _rirRequesterId   :: Maybe Text
     , _rirReservationId :: Text
     } deriving (Eq, Show)
 
@@ -387,18 +387,17 @@
 --
 -- * 'rirOwnerId' @::@ 'Text'
 --
--- * 'rirRequesterId' @::@ 'Text'
+-- * 'rirRequesterId' @::@ 'Maybe' 'Text'
 --
 -- * 'rirReservationId' @::@ 'Text'
 --
 runInstancesResponse :: Text -- ^ 'rirReservationId'
                      -> Text -- ^ 'rirOwnerId'
-                     -> Text -- ^ 'rirRequesterId'
                      -> RunInstancesResponse
-runInstancesResponse p1 p2 p3 = RunInstancesResponse
+runInstancesResponse p1 p2 = RunInstancesResponse
     { _rirReservationId = p1
     , _rirOwnerId       = p2
-    , _rirRequesterId   = p3
+    , _rirRequesterId   = Nothing
     , _rirGroups        = mempty
     , _rirInstances     = mempty
     }
@@ -417,7 +416,7 @@
 
 -- | The ID of the requester that launched the instances on your behalf (for
 -- example, AWS Management Console or Auto Scaling).
-rirRequesterId :: Lens' RunInstancesResponse Text
+rirRequesterId :: Lens' RunInstancesResponse (Maybe Text)
 rirRequesterId = lens _rirRequesterId (\s a -> s { _rirRequesterId = a })
 
 -- | The ID of the reservation.
@@ -430,7 +429,7 @@
 instance ToQuery RunInstances where
     toQuery RunInstances{..} = mconcat
         [ "additionalInfo"                    =? _riAdditionalInfo
-        , toQuery                            _riBlockDeviceMappings
+        , "BlockDeviceMapping"                `toQueryList` _riBlockDeviceMappings
         , "clientToken"                       =? _riClientToken
         , "disableApiTermination"             =? _riDisableApiTermination
         , "dryRun"                            =? _riDryRun
@@ -444,12 +443,12 @@
         , "MaxCount"                          =? _riMaxCount
         , "MinCount"                          =? _riMinCount
         , "Monitoring"                        =? _riMonitoring
-        , toQuery                            _riNetworkInterfaces
+        , "networkInterface"                  `toQueryList` _riNetworkInterfaces
         , "Placement"                         =? _riPlacement
         , "privateIpAddress"                  =? _riPrivateIpAddress
         , "RamdiskId"                         =? _riRamdiskId
-        , toQuery                            _riSecurityGroupIds
-        , toQuery                            _riSecurityGroups
+        , "SecurityGroupId"                   `toQueryList` _riSecurityGroupIds
+        , "SecurityGroup"                     `toQueryList` _riSecurityGroups
         , "SubnetId"                          =? _riSubnetId
         , "UserData"                          =? _riUserData
         ]
@@ -465,8 +464,8 @@
 
 instance FromXML RunInstancesResponse where
     parseXML x = RunInstancesResponse
-        <$> parseXML x
-        <*> parseXML x
+        <$> x .@? "groupSet" .!@ mempty
+        <*> x .@? "instancesSet" .!@ mempty
         <*> x .@  "ownerId"
-        <*> x .@  "requesterId"
+        <*> x .@? "requesterId"
         <*> x .@  "reservationId"
diff --git a/gen/Network/AWS/EC2/StartInstances.hs b/gen/Network/AWS/EC2/StartInstances.hs
--- a/gen/Network/AWS/EC2/StartInstances.hs
+++ b/gen/Network/AWS/EC2/StartInstances.hs
@@ -129,7 +129,7 @@
     toQuery StartInstances{..} = mconcat
         [ "additionalInfo" =? _si1AdditionalInfo
         , "dryRun"         =? _si1DryRun
-        , toQuery         _si1InstanceIds
+        , "InstanceId"     `toQueryList` _si1InstanceIds
         ]
 
 instance ToHeaders StartInstances
@@ -143,4 +143,4 @@
 
 instance FromXML StartInstancesResponse where
     parseXML x = StartInstancesResponse
-        <$> parseXML x
+        <$> x .@? "instancesSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/StopInstances.hs b/gen/Network/AWS/EC2/StopInstances.hs
--- a/gen/Network/AWS/EC2/StopInstances.hs
+++ b/gen/Network/AWS/EC2/StopInstances.hs
@@ -144,7 +144,7 @@
     toQuery StopInstances{..} = mconcat
         [ "dryRun"     =? _siDryRun
         , "force"      =? _siForce
-        , toQuery     _siInstanceIds
+        , "InstanceId" `toQueryList` _siInstanceIds
         ]
 
 instance ToHeaders StopInstances
@@ -158,4 +158,4 @@
 
 instance FromXML StopInstancesResponse where
     parseXML x = StopInstancesResponse
-        <$> parseXML x
+        <$> x .@? "instancesSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/TerminateInstances.hs b/gen/Network/AWS/EC2/TerminateInstances.hs
--- a/gen/Network/AWS/EC2/TerminateInstances.hs
+++ b/gen/Network/AWS/EC2/TerminateInstances.hs
@@ -120,7 +120,7 @@
 instance ToQuery TerminateInstances where
     toQuery TerminateInstances{..} = mconcat
         [ "dryRun"     =? _tiDryRun
-        , toQuery     _tiInstanceIds
+        , "InstanceId" `toQueryList` _tiInstanceIds
         ]
 
 instance ToHeaders TerminateInstances
@@ -134,4 +134,4 @@
 
 instance FromXML TerminateInstancesResponse where
     parseXML x = TerminateInstancesResponse
-        <$> parseXML x
+        <$> x .@? "instancesSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/Types.hs b/gen/Network/AWS/EC2/Types.hs
--- a/gen/Network/AWS/EC2/Types.hs
+++ b/gen/Network/AWS/EC2/Types.hs
@@ -1732,8 +1732,8 @@
     parseXML x = ImportInstanceLaunchSpecification
         <$> x .@? "additionalInfo"
         <*> x .@? "architecture"
-        <*> parseXML x
-        <*> parseXML x
+        <*> x .@? "GroupId" .!@ mempty
+        <*> x .@? "GroupName" .!@ mempty
         <*> x .@? "instanceInitiatedShutdownBehavior"
         <*> x .@? "instanceType"
         <*> x .@? "monitoring"
@@ -1746,8 +1746,8 @@
     toQuery ImportInstanceLaunchSpecification{..} = mconcat
         [ "additionalInfo"                    =? _iilsAdditionalInfo
         , "architecture"                      =? _iilsArchitecture
-        , toQuery                            _iilsGroupIds
-        , toQuery                            _iilsGroupNames
+        , "GroupId"                           `toQueryList` _iilsGroupIds
+        , "GroupName"                         `toQueryList` _iilsGroupNames
         , "instanceInitiatedShutdownBehavior" =? _iilsInstanceInitiatedShutdownBehavior
         , "instanceType"                      =? _iilsInstanceType
         , "monitoring"                        =? _iilsMonitoring
@@ -1887,7 +1887,7 @@
         <*> x .@  "snapshotId"
         <*> x .@  "startTime"
         <*> x .@  "status"
-        <*> parseXML x
+        <*> x .@? "tagSet" .!@ mempty
         <*> x .@  "volumeId"
         <*> x .@  "volumeSize"
 
@@ -1902,7 +1902,7 @@
         , "snapshotId"  =? _sSnapshotId
         , "startTime"   =? _sStartTime
         , "status"      =? _sState
-        , toQuery      _sTags
+        , "tagSet"      `toQueryList` _sTags
         , "volumeId"    =? _sVolumeId
         , "volumeSize"  =? _sVolumeSize
         ]
@@ -2170,26 +2170,26 @@
     parseXML x = ReservedInstancesListing
         <$> x .@? "clientToken"
         <*> x .@? "createDate"
-        <*> parseXML x
-        <*> parseXML x
+        <*> x .@? "instanceCounts" .!@ mempty
+        <*> x .@? "priceSchedules" .!@ mempty
         <*> x .@? "reservedInstancesId"
         <*> x .@? "reservedInstancesListingId"
         <*> x .@? "status"
         <*> x .@? "statusMessage"
-        <*> parseXML x
+        <*> x .@? "tagSet" .!@ mempty
         <*> x .@? "updateDate"
 
 instance ToQuery ReservedInstancesListing where
     toQuery ReservedInstancesListing{..} = mconcat
         [ "clientToken"                =? _rilClientToken
         , "createDate"                 =? _rilCreateDate
-        , toQuery                     _rilInstanceCounts
-        , toQuery                     _rilPriceSchedules
+        , "instanceCounts"             `toQueryList` _rilInstanceCounts
+        , "priceSchedules"             `toQueryList` _rilPriceSchedules
         , "reservedInstancesId"        =? _rilReservedInstancesId
         , "reservedInstancesListingId" =? _rilReservedInstancesListingId
         , "status"                     =? _rilStatus
         , "statusMessage"              =? _rilStatusMessage
-        , toQuery                     _rilTags
+        , "tagSet"                     `toQueryList` _rilTags
         , "updateDate"                 =? _rilUpdateDate
         ]
 
@@ -2436,15 +2436,15 @@
 
 instance FromXML DhcpOptions where
     parseXML x = DhcpOptions
-        <$> parseXML x
+        <$> x .@? "dhcpConfigurationSet" .!@ mempty
         <*> x .@? "dhcpOptionsId"
-        <*> parseXML x
+        <*> x .@? "tagSet" .!@ mempty
 
 instance ToQuery DhcpOptions where
     toQuery DhcpOptions{..} = mconcat
-        [ toQuery               _doDhcpConfigurations
+        [ "dhcpConfigurationSet" `toQueryList` _doDhcpConfigurations
         , "dhcpOptionsId"        =? _doDhcpOptionsId
-        , toQuery               _doTags
+        , "tagSet"               `toQueryList` _doTags
         ]
 
 data InstanceNetworkInterfaceSpecification = InstanceNetworkInterfaceSpecification
@@ -2568,10 +2568,10 @@
         <*> x .@? "deleteOnTermination"
         <*> x .@? "description"
         <*> x .@? "deviceIndex"
-        <*> parseXML x
+        <*> x .@? "SecurityGroupId" .!@ mempty
         <*> x .@? "networkInterfaceId"
         <*> x .@? "privateIpAddress"
-        <*> parseXML x
+        <*> x .@? "privateIpAddressesSet" .!@ mempty
         <*> x .@? "secondaryPrivateIpAddressCount"
         <*> x .@? "subnetId"
 
@@ -2581,10 +2581,10 @@
         , "deleteOnTermination"            =? _inisDeleteOnTermination
         , "description"                    =? _inisDescription
         , "deviceIndex"                    =? _inisDeviceIndex
-        , toQuery                         _inisGroups
+        , "SecurityGroupId"                `toQueryList` _inisGroups
         , "networkInterfaceId"             =? _inisNetworkInterfaceId
         , "privateIpAddress"               =? _inisPrivateIpAddress
-        , toQuery                         _inisPrivateIpAddresses
+        , "privateIpAddressesSet"          `toQueryList` _inisPrivateIpAddresses
         , "secondaryPrivateIpAddressCount" =? _inisSecondaryPrivateIpAddressCount
         , "subnetId"                       =? _inisSubnetId
         ]
@@ -2907,7 +2907,7 @@
 instance FromXML Image where
     parseXML x = Image
         <$> x .@  "architecture"
-        <*> parseXML x
+        <*> x .@? "blockDeviceMapping" .!@ mempty
         <*> x .@? "description"
         <*> x .@  "hypervisor"
         <*> x .@  "imageId"
@@ -2918,7 +2918,7 @@
         <*> x .@  "name"
         <*> x .@  "imageOwnerId"
         <*> x .@? "platform"
-        <*> parseXML x
+        <*> x .@? "productCodes" .!@ mempty
         <*> x .@  "isPublic"
         <*> x .@? "ramdiskId"
         <*> x .@? "rootDeviceName"
@@ -2926,13 +2926,13 @@
         <*> x .@? "sriovNetSupport"
         <*> x .@  "imageState"
         <*> x .@? "stateReason"
-        <*> parseXML x
+        <*> x .@? "tagSet" .!@ mempty
         <*> x .@  "virtualizationType"
 
 instance ToQuery Image where
     toQuery Image{..} = mconcat
         [ "architecture"       =? _iArchitecture
-        , toQuery             _iBlockDeviceMappings
+        , "blockDeviceMapping" `toQueryList` _iBlockDeviceMappings
         , "description"        =? _iDescription
         , "hypervisor"         =? _iHypervisor
         , "imageId"            =? _iImageId
@@ -2943,7 +2943,7 @@
         , "name"               =? _iName
         , "imageOwnerId"       =? _iOwnerId
         , "platform"           =? _iPlatform
-        , toQuery             _iProductCodes
+        , "productCodes"       `toQueryList` _iProductCodes
         , "isPublic"           =? _iPublic
         , "ramdiskId"          =? _iRamdiskId
         , "rootDeviceName"     =? _iRootDeviceName
@@ -2951,7 +2951,7 @@
         , "sriovNetSupport"    =? _iSriovNetSupport
         , "imageState"         =? _iState
         , "stateReason"        =? _iStateReason
-        , toQuery             _iTags
+        , "tagSet"             `toQueryList` _iTags
         , "virtualizationType" =? _iVirtualizationType
         ]
 
@@ -2985,12 +2985,12 @@
 instance FromXML DhcpConfiguration where
     parseXML x = DhcpConfiguration
         <$> x .@? "key"
-        <*> parseXML x
+        <*> x .@? "valueSet" .!@ mempty
 
 instance ToQuery DhcpConfiguration where
     toQuery DhcpConfiguration{..} = mconcat
         [ "key"      =? _dcKey
-        , toQuery   _dcValues
+        , "valueSet" `toQueryList` _dcValues
         ]
 
 data Tag = Tag
@@ -3214,12 +3214,12 @@
 
 instance FromXML VolumeStatusInfo where
     parseXML x = VolumeStatusInfo
-        <$> parseXML x
+        <$> x .@? "details" .!@ mempty
         <*> x .@? "status"
 
 instance ToQuery VolumeStatusInfo where
     toQuery VolumeStatusInfo{..} = mconcat
-        [ toQuery  _vsiDetails
+        [ "details" `toQueryList` _vsiDetails
         , "status"  =? _vsiStatus
         ]
 
@@ -3322,13 +3322,13 @@
 
 instance FromXML CreateVolumePermissionModifications where
     parseXML x = CreateVolumePermissionModifications
-        <$> parseXML x
-        <*> parseXML x
+        <$> x .@? "Add" .!@ mempty
+        <*> x .@? "Remove" .!@ mempty
 
 instance ToQuery CreateVolumePermissionModifications where
     toQuery CreateVolumePermissionModifications{..} = mconcat
-        [ toQuery _cvpmAdd
-        , toQuery _cvpmRemove
+        [ "Add"    `toQueryList` _cvpmAdd
+        , "Remove" `toQueryList` _cvpmRemove
         ]
 
 data VpcState
@@ -3761,7 +3761,7 @@
         <*> x .@? "importVolume"
         <*> x .@  "state"
         <*> x .@? "statusMessage"
-        <*> parseXML x
+        <*> x .@? "tagSet" .!@ mempty
 
 instance ToQuery ConversionTask where
     toQuery ConversionTask{..} = mconcat
@@ -3771,7 +3771,7 @@
         , "importVolume"     =? _ctImportVolume
         , "state"            =? _ctState
         , "statusMessage"    =? _ctStatusMessage
-        , toQuery           _ctTags
+        , "tagSet"           `toQueryList` _ctTags
         ]
 
 data AttachmentStatus
@@ -4267,7 +4267,7 @@
         <*> x .@? "spotPrice"
         <*> x .@? "state"
         <*> x .@? "status"
-        <*> parseXML x
+        <*> x .@? "tagSet" .!@ mempty
         <*> x .@? "type"
         <*> x .@? "validFrom"
         <*> x .@? "validUntil"
@@ -4286,7 +4286,7 @@
         , "spotPrice"                =? _siSpotPrice
         , "state"                    =? _siState
         , "status"                   =? _siStatus
-        , toQuery                   _siTags
+        , "tagSet"                   `toQueryList` _siTags
         , "type"                     =? _siType
         , "validFrom"                =? _siValidFrom
         , "validUntil"               =? _siValidUntil
@@ -4441,7 +4441,7 @@
 instance FromXML LaunchSpecification where
     parseXML x = LaunchSpecification
         <$> x .@? "addressingType"
-        <*> parseXML x
+        <*> x .@? "blockDeviceMapping" .!@ mempty
         <*> x .@? "ebsOptimized"
         <*> x .@? "iamInstanceProfile"
         <*> x .@? "imageId"
@@ -4449,17 +4449,17 @@
         <*> x .@? "kernelId"
         <*> x .@? "keyName"
         <*> x .@? "monitoring"
-        <*> parseXML x
+        <*> x .@? "networkInterfaceSet" .!@ mempty
         <*> x .@? "placement"
         <*> x .@? "ramdiskId"
-        <*> parseXML x
+        <*> x .@? "groupSet" .!@ mempty
         <*> x .@? "subnetId"
         <*> x .@? "userData"
 
 instance ToQuery LaunchSpecification where
     toQuery LaunchSpecification{..} = mconcat
         [ "addressingType"      =? _lsAddressingType
-        , toQuery              _lsBlockDeviceMappings
+        , "blockDeviceMapping"  `toQueryList` _lsBlockDeviceMappings
         , "ebsOptimized"        =? _lsEbsOptimized
         , "iamInstanceProfile"  =? _lsIamInstanceProfile
         , "imageId"             =? _lsImageId
@@ -4467,10 +4467,10 @@
         , "kernelId"            =? _lsKernelId
         , "keyName"             =? _lsKeyName
         , "monitoring"          =? _lsMonitoring
-        , toQuery              _lsNetworkInterfaces
+        , "networkInterfaceSet" `toQueryList` _lsNetworkInterfaces
         , "placement"           =? _lsPlacement
         , "ramdiskId"           =? _lsRamdiskId
-        , toQuery              _lsSecurityGroups
+        , "groupSet"            `toQueryList` _lsSecurityGroups
         , "subnetId"            =? _lsSubnetId
         , "userData"            =? _lsUserData
         ]
@@ -4674,7 +4674,7 @@
 
 instance FromXML Volume where
     parseXML x = Volume
-        <$> parseXML x
+        <$> x .@? "attachmentSet" .!@ mempty
         <*> x .@  "availabilityZone"
         <*> x .@  "createTime"
         <*> x .@  "encrypted"
@@ -4683,13 +4683,13 @@
         <*> x .@  "size"
         <*> x .@  "snapshotId"
         <*> x .@  "status"
-        <*> parseXML x
+        <*> x .@? "tagSet" .!@ mempty
         <*> x .@  "volumeId"
         <*> x .@  "volumeType"
 
 instance ToQuery Volume where
     toQuery Volume{..} = mconcat
-        [ toQuery           _vAttachments
+        [ "attachmentSet"    `toQueryList` _vAttachments
         , "availabilityZone" =? _vAvailabilityZone
         , "createTime"       =? _vCreateTime
         , "encrypted"        =? _vEncrypted
@@ -4698,7 +4698,7 @@
         , "size"             =? _vSize
         , "snapshotId"       =? _vSnapshotId
         , "status"           =? _vState
-        , toQuery           _vTags
+        , "tagSet"           `toQueryList` _vTags
         , "volumeId"         =? _vVolumeId
         , "volumeType"       =? _vVolumeType
         ]
@@ -4707,7 +4707,7 @@
     { _rGroups        :: List "item" GroupIdentifier
     , _rInstances     :: List "item" Instance
     , _rOwnerId       :: Text
-    , _rRequesterId   :: Text
+    , _rRequesterId   :: Maybe Text
     , _rReservationId :: Text
     } deriving (Eq, Show)
 
@@ -4721,18 +4721,17 @@
 --
 -- * 'rOwnerId' @::@ 'Text'
 --
--- * 'rRequesterId' @::@ 'Text'
+-- * 'rRequesterId' @::@ 'Maybe' 'Text'
 --
 -- * 'rReservationId' @::@ 'Text'
 --
 reservation :: Text -- ^ 'rReservationId'
             -> Text -- ^ 'rOwnerId'
-            -> Text -- ^ 'rRequesterId'
             -> Reservation
-reservation p1 p2 p3 = Reservation
+reservation p1 p2 = Reservation
     { _rReservationId = p1
     , _rOwnerId       = p2
-    , _rRequesterId   = p3
+    , _rRequesterId   = Nothing
     , _rGroups        = mempty
     , _rInstances     = mempty
     }
@@ -4751,7 +4750,7 @@
 
 -- | The ID of the requester that launched the instances on your behalf (for
 -- example, AWS Management Console or Auto Scaling).
-rRequesterId :: Lens' Reservation Text
+rRequesterId :: Lens' Reservation (Maybe Text)
 rRequesterId = lens _rRequesterId (\s a -> s { _rRequesterId = a })
 
 -- | The ID of the reservation.
@@ -4760,16 +4759,16 @@
 
 instance FromXML Reservation where
     parseXML x = Reservation
-        <$> parseXML x
-        <*> parseXML x
+        <$> x .@? "groupSet" .!@ mempty
+        <*> x .@? "instancesSet" .!@ mempty
         <*> x .@  "ownerId"
-        <*> x .@  "requesterId"
+        <*> x .@? "requesterId"
         <*> x .@  "reservationId"
 
 instance ToQuery Reservation where
     toQuery Reservation{..} = mconcat
-        [ toQuery        _rGroups
-        , toQuery        _rInstances
+        [ "groupSet"      `toQueryList` _rGroups
+        , "instancesSet"  `toQueryList` _rInstances
         , "ownerId"       =? _rOwnerId
         , "requesterId"   =? _rRequesterId
         , "reservationId" =? _rReservationId
@@ -4998,8 +4997,8 @@
         <$> x .@? "clientToken"
         <*> x .@? "createDate"
         <*> x .@? "effectiveDate"
-        <*> parseXML x
-        <*> parseXML x
+        <*> x .@? "modificationResultSet" .!@ mempty
+        <*> x .@? "reservedInstancesSet" .!@ mempty
         <*> x .@? "reservedInstancesModificationId"
         <*> x .@? "status"
         <*> x .@? "statusMessage"
@@ -5010,8 +5009,8 @@
         [ "clientToken"                     =? _rimClientToken
         , "createDate"                      =? _rimCreateDate
         , "effectiveDate"                   =? _rimEffectiveDate
-        , toQuery                          _rimModificationResults
-        , toQuery                          _rimReservedInstancesIds
+        , "modificationResultSet"           `toQueryList` _rimModificationResults
+        , "reservedInstancesSet"            `toQueryList` _rimReservedInstancesIds
         , "reservedInstancesModificationId" =? _rimReservedInstancesModificationId
         , "status"                          =? _rimStatus
         , "statusMessage"                   =? _rimStatusMessage
@@ -5214,19 +5213,19 @@
         <*> x .@? "attachment"
         <*> x .@? "availabilityZone"
         <*> x .@? "description"
-        <*> parseXML x
+        <*> x .@? "groupSet" .!@ mempty
         <*> x .@? "macAddress"
         <*> x .@? "networkInterfaceId"
         <*> x .@? "ownerId"
         <*> x .@? "privateDnsName"
         <*> x .@? "privateIpAddress"
-        <*> parseXML x
+        <*> x .@? "privateIpAddressesSet" .!@ mempty
         <*> x .@? "requesterId"
         <*> x .@? "requesterManaged"
         <*> x .@? "sourceDestCheck"
         <*> x .@? "status"
         <*> x .@? "subnetId"
-        <*> parseXML x
+        <*> x .@? "tagSet" .!@ mempty
         <*> x .@? "vpcId"
 
 instance ToQuery NetworkInterface where
@@ -5235,19 +5234,19 @@
         , "attachment"            =? _niAttachment
         , "availabilityZone"      =? _niAvailabilityZone
         , "description"           =? _niDescription
-        , toQuery                _niGroups
+        , "groupSet"              `toQueryList` _niGroups
         , "macAddress"            =? _niMacAddress
         , "networkInterfaceId"    =? _niNetworkInterfaceId
         , "ownerId"               =? _niOwnerId
         , "privateDnsName"        =? _niPrivateDnsName
         , "privateIpAddress"      =? _niPrivateIpAddress
-        , toQuery                _niPrivateIpAddresses
+        , "privateIpAddressesSet" `toQueryList` _niPrivateIpAddresses
         , "requesterId"           =? _niRequesterId
         , "requesterManaged"      =? _niRequesterManaged
         , "sourceDestCheck"       =? _niSourceDestCheck
         , "status"                =? _niStatus
         , "subnetId"              =? _niSubnetId
-        , toQuery                _niTagSet
+        , "tagSet"                `toQueryList` _niTagSet
         , "vpcId"                 =? _niVpcId
         ]
 
@@ -5383,7 +5382,7 @@
         <*> x .@  "mapPublicIpOnLaunch"
         <*> x .@  "state"
         <*> x .@  "subnetId"
-        <*> parseXML x
+        <*> x .@? "tagSet" .!@ mempty
         <*> x .@  "vpcId"
 
 instance ToQuery Subnet where
@@ -5395,7 +5394,7 @@
         , "mapPublicIpOnLaunch"     =? _s1MapPublicIpOnLaunch
         , "state"                   =? _s1State
         , "subnetId"                =? _s1SubnetId
-        , toQuery                  _s1Tags
+        , "tagSet"                  `toQueryList` _s1Tags
         , "vpcId"                   =? _s1VpcId
         ]
 
@@ -5470,13 +5469,13 @@
 
 instance FromXML LaunchPermissionModifications where
     parseXML x = LaunchPermissionModifications
-        <$> parseXML x
-        <*> parseXML x
+        <$> x .@? "Add" .!@ mempty
+        <*> x .@? "Remove" .!@ mempty
 
 instance ToQuery LaunchPermissionModifications where
     toQuery LaunchPermissionModifications{..} = mconcat
-        [ toQuery _lpmAdd
-        , toQuery _lpmRemove
+        [ "Add"    `toQueryList` _lpmAdd
+        , "Remove" `toQueryList` _lpmRemove
         ]
 
 data SnapshotState
@@ -6346,12 +6345,12 @@
 
 instance FromXML InstanceStatusSummary where
     parseXML x = InstanceStatusSummary
-        <$> parseXML x
+        <$> x .@? "details" .!@ mempty
         <*> x .@? "status"
 
 instance ToQuery InstanceStatusSummary where
     toQuery InstanceStatusSummary{..} = mconcat
-        [ toQuery  _issDetails
+        [ "details" `toQueryList` _issDetails
         , "status"  =? _issStatus
         ]
 
@@ -7072,10 +7071,10 @@
         <$> x .@  "groupDescription"
         <*> x .@  "groupId"
         <*> x .@  "groupName"
-        <*> parseXML x
-        <*> parseXML x
+        <*> x .@? "ipPermissions" .!@ mempty
+        <*> x .@? "ipPermissionsEgress" .!@ mempty
         <*> x .@  "ownerId"
-        <*> parseXML x
+        <*> x .@? "tagSet" .!@ mempty
         <*> x .@? "vpcId"
 
 instance ToQuery SecurityGroup where
@@ -7083,10 +7082,10 @@
         [ "groupDescription"    =? _sgDescription
         , "groupId"             =? _sgGroupId
         , "groupName"           =? _sgGroupName
-        , toQuery              _sgIpPermissions
-        , toQuery              _sgIpPermissionsEgress
+        , "ipPermissions"       `toQueryList` _sgIpPermissions
+        , "ipPermissionsEgress" `toQueryList` _sgIpPermissionsEgress
         , "ownerId"             =? _sgOwnerId
-        , toQuery              _sgTags
+        , "tagSet"              `toQueryList` _sgTags
         , "vpcId"               =? _sgVpcId
         ]
 
@@ -7439,7 +7438,7 @@
         <*> x .@  "customerGatewayId"
         <*> x .@  "ipAddress"
         <*> x .@  "state"
-        <*> parseXML x
+        <*> x .@? "tagSet" .!@ mempty
         <*> x .@  "type"
 
 instance ToQuery CustomerGateway where
@@ -7448,7 +7447,7 @@
         , "customerGatewayId" =? _cgCustomerGatewayId
         , "ipAddress"         =? _cgIpAddress
         , "state"             =? _cgState
-        , toQuery            _cgTags
+        , "tagSet"            `toQueryList` _cgTags
         , "type"              =? _cgType
         ]
 
@@ -8079,14 +8078,14 @@
 
 instance FromXML AvailabilityZone where
     parseXML x = AvailabilityZone
-        <$> parseXML x
+        <$> x .@? "messageSet" .!@ mempty
         <*> x .@? "regionName"
         <*> x .@? "zoneState"
         <*> x .@? "zoneName"
 
 instance ToQuery AvailabilityZone where
     toQuery AvailabilityZone{..} = mconcat
-        [ toQuery     _azMessages
+        [ "messageSet" `toQueryList` _azMessages
         , "regionName" =? _azRegionName
         , "zoneState"  =? _azState
         , "zoneName"   =? _azZoneName
@@ -8187,20 +8186,20 @@
 
 instance FromXML RouteTable where
     parseXML x = RouteTable
-        <$> parseXML x
-        <*> parseXML x
+        <$> x .@? "associationSet" .!@ mempty
+        <*> x .@? "propagatingVgwSet" .!@ mempty
         <*> x .@? "routeTableId"
-        <*> parseXML x
-        <*> parseXML x
+        <*> x .@? "routeSet" .!@ mempty
+        <*> x .@? "tagSet" .!@ mempty
         <*> x .@? "vpcId"
 
 instance ToQuery RouteTable where
     toQuery RouteTable{..} = mconcat
-        [ toQuery            _rtAssociations
-        , toQuery            _rtPropagatingVgws
+        [ "associationSet"    `toQueryList` _rtAssociations
+        , "propagatingVgwSet" `toQueryList` _rtPropagatingVgws
         , "routeTableId"      =? _rtRouteTableId
-        , toQuery            _rtRoutes
-        , toQuery            _rtTags
+        , "routeSet"          `toQueryList` _rtRoutes
+        , "tagSet"            `toQueryList` _rtTags
         , "vpcId"             =? _rtVpcId
         ]
 
@@ -8514,17 +8513,17 @@
     parseXML x = IpPermission
         <$> x .@  "fromPort"
         <*> x .@  "ipProtocol"
-        <*> parseXML x
+        <*> x .@? "ipRanges" .!@ mempty
         <*> x .@  "toPort"
-        <*> parseXML x
+        <*> x .@? "groups" .!@ mempty
 
 instance ToQuery IpPermission where
     toQuery IpPermission{..} = mconcat
         [ "fromPort"   =? _ipFromPort
         , "ipProtocol" =? _ipIpProtocol
-        , toQuery     _ipIpRanges
+        , "ipRanges"   `toQueryList` _ipIpRanges
         , "toPort"     =? _ipToPort
-        , toQuery     _ipUserIdGroupPairs
+        , "groups"     `toQueryList` _ipUserIdGroupPairs
         ]
 
 data ConversionTaskState
@@ -8938,13 +8937,13 @@
         <$> x .@? "association"
         <*> x .@? "attachment"
         <*> x .@? "description"
-        <*> parseXML x
+        <*> x .@? "groupSet" .!@ mempty
         <*> x .@? "macAddress"
         <*> x .@? "networkInterfaceId"
         <*> x .@? "ownerId"
         <*> x .@? "privateDnsName"
         <*> x .@? "privateIpAddress"
-        <*> parseXML x
+        <*> x .@? "privateIpAddressesSet" .!@ mempty
         <*> x .@? "sourceDestCheck"
         <*> x .@? "status"
         <*> x .@? "subnetId"
@@ -8955,13 +8954,13 @@
         [ "association"           =? _iniAssociation
         , "attachment"            =? _iniAttachment
         , "description"           =? _iniDescription
-        , toQuery                _iniGroups
+        , "groupSet"              `toQueryList` _iniGroups
         , "macAddress"            =? _iniMacAddress
         , "networkInterfaceId"    =? _iniNetworkInterfaceId
         , "ownerId"               =? _iniOwnerId
         , "privateDnsName"        =? _iniPrivateDnsName
         , "privateIpAddress"      =? _iniPrivateIpAddress
-        , toQuery                _iniPrivateIpAddresses
+        , "privateIpAddressesSet" `toQueryList` _iniPrivateIpAddresses
         , "sourceDestCheck"       =? _iniSourceDestCheck
         , "status"                =? _iniStatus
         , "subnetId"              =? _iniSubnetId
@@ -9196,7 +9195,7 @@
         <*> x .@  "instanceTenancy"
         <*> x .@  "isDefault"
         <*> x .@  "state"
-        <*> parseXML x
+        <*> x .@? "tagSet" .!@ mempty
         <*> x .@  "vpcId"
 
 instance ToQuery Vpc where
@@ -9206,7 +9205,7 @@
         , "instanceTenancy" =? _vpcInstanceTenancy
         , "isDefault"       =? _vpcIsDefault
         , "state"           =? _vpcState
-        , toQuery          _vpcTags
+        , "tagSet"          `toQueryList` _vpcTags
         , "vpcId"           =? _vpcVpcId
         ]
 
@@ -9277,7 +9276,7 @@
 instance FromXML InstanceStatus where
     parseXML x = InstanceStatus
         <$> x .@? "availabilityZone"
-        <*> parseXML x
+        <*> x .@? "eventsSet" .!@ mempty
         <*> x .@? "instanceId"
         <*> x .@? "instanceState"
         <*> x .@? "instanceStatus"
@@ -9286,7 +9285,7 @@
 instance ToQuery InstanceStatus where
     toQuery InstanceStatus{..} = mconcat
         [ "availabilityZone" =? _isAvailabilityZone
-        , toQuery           _isEvents
+        , "eventsSet"        `toQueryList` _isEvents
         , "instanceId"       =? _isInstanceId
         , "instanceState"    =? _isInstanceState
         , "instanceStatus"   =? _isInstanceStatus
@@ -9500,12 +9499,12 @@
 instance FromXML AccountAttribute where
     parseXML x = AccountAttribute
         <$> x .@? "attributeName"
-        <*> parseXML x
+        <*> x .@? "attributeValueSet" .!@ mempty
 
 instance ToQuery AccountAttribute where
     toQuery AccountAttribute{..} = mconcat
         [ "attributeName"     =? _aaAttributeName
-        , toQuery            _aaAttributeValues
+        , "attributeValueSet" `toQueryList` _aaAttributeValues
         ]
 
 data PriceSchedule = PriceSchedule
@@ -9788,18 +9787,18 @@
     parseXML x = VpnGateway
         <$> x .@? "availabilityZone"
         <*> x .@? "state"
-        <*> parseXML x
+        <*> x .@? "tagSet" .!@ mempty
         <*> x .@? "type"
-        <*> parseXML x
+        <*> x .@? "attachments" .!@ mempty
         <*> x .@? "vpnGatewayId"
 
 instance ToQuery VpnGateway where
     toQuery VpnGateway{..} = mconcat
         [ "availabilityZone" =? _vgAvailabilityZone
         , "state"            =? _vgState
-        , toQuery           _vgTags
+        , "tagSet"           `toQueryList` _vgTags
         , "type"             =? _vgType
-        , toQuery           _vgVpcAttachments
+        , "attachments"      `toQueryList` _vgVpcAttachments
         , "vpnGatewayId"     =? _vgVpnGatewayId
         ]
 
@@ -9834,12 +9833,12 @@
 instance FromXML Filter where
     parseXML x = Filter
         <$> x .@  "Name"
-        <*> parseXML x
+        <*> x .@? "Value" .!@ mempty
 
 instance ToQuery Filter where
     toQuery Filter{..} = mconcat
         [ "Name"  =? _fName
-        , toQuery _fValues
+        , "Value" `toQueryList` _fValues
         ]
 
 data VolumeType
@@ -9980,20 +9979,20 @@
 
 instance FromXML NetworkAcl where
     parseXML x = NetworkAcl
-        <$> parseXML x
-        <*> parseXML x
+        <$> x .@? "associationSet" .!@ mempty
+        <*> x .@? "entrySet" .!@ mempty
         <*> x .@? "default"
         <*> x .@? "networkAclId"
-        <*> parseXML x
+        <*> x .@? "tagSet" .!@ mempty
         <*> x .@? "vpcId"
 
 instance ToQuery NetworkAcl where
     toQuery NetworkAcl{..} = mconcat
-        [ toQuery         _naAssociations
-        , toQuery         _naEntries
+        [ "associationSet" `toQueryList` _naAssociations
+        , "entrySet"       `toQueryList` _naEntries
         , "default"        =? _naIsDefault
         , "networkAclId"   =? _naNetworkAclId
-        , toQuery         _naTags
+        , "tagSet"         `toQueryList` _naTags
         , "vpcId"          =? _naVpcId
         ]
 
@@ -10209,12 +10208,12 @@
 instance FromXML NewDhcpConfiguration where
     parseXML x = NewDhcpConfiguration
         <$> x .@? "key"
-        <*> parseXML x
+        <*> x .@? "Value" .!@ mempty
 
 instance ToQuery NewDhcpConfiguration where
     toQuery NewDhcpConfiguration{..} = mconcat
         [ "key"   =? _ndcKey
-        , toQuery _ndcValues
+        , "Value" `toQueryList` _ndcValues
         ]
 
 data StateReason = StateReason
@@ -10397,15 +10396,15 @@
 
 instance FromXML InternetGateway where
     parseXML x = InternetGateway
-        <$> parseXML x
+        <$> x .@? "attachmentSet" .!@ mempty
         <*> x .@  "internetGatewayId"
-        <*> parseXML x
+        <*> x .@? "tagSet" .!@ mempty
 
 instance ToQuery InternetGateway where
     toQuery InternetGateway{..} = mconcat
-        [ toQuery            _igAttachments
+        [ "attachmentSet"     `toQueryList` _igAttachments
         , "internetGatewayId" =? _igInternetGatewayId
-        , toQuery            _igTags
+        , "tagSet"            `toQueryList` _igTags
         ]
 
 data VolumeStatusName
@@ -10505,14 +10504,14 @@
         <$> x .@? "description"
         <*> x .@? "instanceId"
         <*> x .@? "platform"
-        <*> parseXML x
+        <*> x .@? "volumes" .!@ mempty
 
 instance ToQuery ImportInstanceTaskDetails where
     toQuery ImportInstanceTaskDetails{..} = mconcat
         [ "description" =? _iitdDescription
         , "instanceId"  =? _iitdInstanceId
         , "platform"    =? _iitdPlatform
-        , toQuery      _iitdVolumes
+        , "volumes"     `toQueryList` _iitdVolumes
         ]
 
 data PlacementGroup = PlacementGroup
@@ -10892,9 +10891,9 @@
         <*> x .@? "instanceType"
         <*> x .@? "marketplace"
         <*> x .@? "offeringType"
-        <*> parseXML x
+        <*> x .@? "pricingDetailsSet" .!@ mempty
         <*> x .@? "productDescription"
-        <*> parseXML x
+        <*> x .@? "recurringCharges" .!@ mempty
         <*> x .@? "reservedInstancesOfferingId"
         <*> x .@? "usagePrice"
 
@@ -10908,9 +10907,9 @@
         , "instanceType"                =? _rioInstanceType
         , "marketplace"                 =? _rioMarketplace
         , "offeringType"                =? _rioOfferingType
-        , toQuery                      _rioPricingDetails
+        , "pricingDetailsSet"           `toQueryList` _rioPricingDetails
         , "productDescription"          =? _rioProductDescription
-        , toQuery                      _rioRecurringCharges
+        , "recurringCharges"            `toQueryList` _rioRecurringCharges
         , "reservedInstancesOfferingId" =? _rioReservedInstancesOfferingId
         , "usagePrice"                  =? _rioUsagePrice
         ]
@@ -11073,11 +11072,11 @@
         <*> x .@? "instanceType"
         <*> x .@? "offeringType"
         <*> x .@? "productDescription"
-        <*> parseXML x
+        <*> x .@? "recurringCharges" .!@ mempty
         <*> x .@? "reservedInstancesId"
         <*> x .@? "start"
         <*> x .@? "state"
-        <*> parseXML x
+        <*> x .@? "tagSet" .!@ mempty
         <*> x .@? "usagePrice"
 
 instance ToQuery ReservedInstances where
@@ -11092,11 +11091,11 @@
         , "instanceType"        =? _ri1InstanceType
         , "offeringType"        =? _ri1OfferingType
         , "productDescription"  =? _ri1ProductDescription
-        , toQuery              _ri1RecurringCharges
+        , "recurringCharges"    `toQueryList` _ri1RecurringCharges
         , "reservedInstancesId" =? _ri1ReservedInstancesId
         , "start"               =? _ri1Start
         , "state"               =? _ri1State
-        , toQuery              _ri1Tags
+        , "tagSet"              `toQueryList` _ri1Tags
         , "usagePrice"          =? _ri1UsagePrice
         ]
 
@@ -11291,11 +11290,11 @@
         <$> x .@  "customerGatewayConfiguration"
         <*> x .@  "customerGatewayId"
         <*> x .@? "options"
-        <*> parseXML x
+        <*> x .@? "routes" .!@ mempty
         <*> x .@  "state"
-        <*> parseXML x
+        <*> x .@? "tagSet" .!@ mempty
         <*> x .@  "type"
-        <*> parseXML x
+        <*> x .@? "vgwTelemetry" .!@ mempty
         <*> x .@  "vpnConnectionId"
         <*> x .@? "vpnGatewayId"
 
@@ -11304,11 +11303,11 @@
         [ "customerGatewayConfiguration" =? _vcCustomerGatewayConfiguration
         , "customerGatewayId"            =? _vcCustomerGatewayId
         , "options"                      =? _vcOptions
-        , toQuery                       _vcRoutes
+        , "routes"                       `toQueryList` _vcRoutes
         , "state"                        =? _vcState
-        , toQuery                       _vcTags
+        , "tagSet"                       `toQueryList` _vcTags
         , "type"                         =? _vcType
-        , toQuery                       _vcVgwTelemetry
+        , "vgwTelemetry"                 `toQueryList` _vcVgwTelemetry
         , "vpnConnectionId"              =? _vcVpnConnectionId
         , "vpnGatewayId"                 =? _vcVpnGatewayId
         ]
@@ -11551,7 +11550,7 @@
         <*> x .@? "expirationTime"
         <*> x .@? "requesterVpcInfo"
         <*> x .@? "status"
-        <*> parseXML x
+        <*> x .@? "tagSet" .!@ mempty
         <*> x .@? "vpcPeeringConnectionId"
 
 instance ToQuery VpcPeeringConnection where
@@ -11560,7 +11559,7 @@
         , "expirationTime"         =? _vpc1ExpirationTime
         , "requesterVpcInfo"       =? _vpc1RequesterVpcInfo
         , "status"                 =? _vpc1Status
-        , toQuery                 _vpc1Tags
+        , "tagSet"                 `toQueryList` _vpc1Tags
         , "vpcPeeringConnectionId" =? _vpc1VpcPeeringConnectionId
         ]
 
@@ -11801,40 +11800,40 @@
     { _i1AmiLaunchIndex        :: Int
     , _i1Architecture          :: ArchitectureValues
     , _i1BlockDeviceMappings   :: List "item" InstanceBlockDeviceMapping
-    , _i1ClientToken           :: Text
-    , _i1EbsOptimized          :: Maybe Bool
+    , _i1ClientToken           :: Maybe Text
+    , _i1EbsOptimized          :: Bool
     , _i1Hypervisor            :: HypervisorType
-    , _i1IamInstanceProfile    :: Maybe IamInstanceProfile
+    , _i1IamInstanceProfile    :: IamInstanceProfile
     , _i1ImageId               :: Text
     , _i1InstanceId            :: Text
     , _i1InstanceLifecycle     :: Maybe InstanceLifecycleType
     , _i1InstanceType          :: InstanceType
-    , _i1KernelId              :: Text
+    , _i1KernelId              :: Maybe Text
     , _i1KeyName               :: Text
     , _i1LaunchTime            :: ISO8601
     , _i1Monitoring            :: Monitoring
     , _i1NetworkInterfaces     :: List "item" InstanceNetworkInterface
     , _i1Placement             :: Placement
-    , _i1Platform              :: PlatformValues
-    , _i1PrivateDnsName        :: Text
-    , _i1PrivateIpAddress      :: Text
+    , _i1Platform              :: Maybe PlatformValues
+    , _i1PrivateDnsName        :: Maybe Text
+    , _i1PrivateIpAddress      :: Maybe Text
     , _i1ProductCodes          :: List "item" ProductCode
-    , _i1PublicDnsName         :: Text
-    , _i1PublicIpAddress       :: Text
-    , _i1RamdiskId             :: Text
+    , _i1PublicDnsName         :: Maybe Text
+    , _i1PublicIpAddress       :: Maybe Text
+    , _i1RamdiskId             :: Maybe Text
     , _i1RootDeviceName        :: Text
     , _i1RootDeviceType        :: DeviceType
     , _i1SecurityGroups        :: List "item" GroupIdentifier
-    , _i1SourceDestCheck       :: Bool
+    , _i1SourceDestCheck       :: Maybe Bool
     , _i1SpotInstanceRequestId :: Maybe Text
     , _i1SriovNetSupport       :: Maybe Text
     , _i1State                 :: InstanceState
     , _i1StateReason           :: Maybe StateReason
     , _i1StateTransitionReason :: Maybe Text
-    , _i1SubnetId              :: Text
+    , _i1SubnetId              :: Maybe Text
     , _i1Tags                  :: List "item" Tag
     , _i1VirtualizationType    :: VirtualizationType
-    , _i1VpcId                 :: Text
+    , _i1VpcId                 :: Maybe Text
     } deriving (Eq, Show)
 
 -- | 'Instance' constructor.
@@ -11847,13 +11846,13 @@
 --
 -- * 'i1BlockDeviceMappings' @::@ ['InstanceBlockDeviceMapping']
 --
--- * 'i1ClientToken' @::@ 'Text'
+-- * 'i1ClientToken' @::@ 'Maybe' 'Text'
 --
--- * 'i1EbsOptimized' @::@ 'Maybe' 'Bool'
+-- * 'i1EbsOptimized' @::@ 'Bool'
 --
 -- * 'i1Hypervisor' @::@ 'HypervisorType'
 --
--- * 'i1IamInstanceProfile' @::@ 'Maybe' 'IamInstanceProfile'
+-- * 'i1IamInstanceProfile' @::@ 'IamInstanceProfile'
 --
 -- * 'i1ImageId' @::@ 'Text'
 --
@@ -11863,7 +11862,7 @@
 --
 -- * 'i1InstanceType' @::@ 'InstanceType'
 --
--- * 'i1KernelId' @::@ 'Text'
+-- * 'i1KernelId' @::@ 'Maybe' 'Text'
 --
 -- * 'i1KeyName' @::@ 'Text'
 --
@@ -11875,19 +11874,19 @@
 --
 -- * 'i1Placement' @::@ 'Placement'
 --
--- * 'i1Platform' @::@ 'PlatformValues'
+-- * 'i1Platform' @::@ 'Maybe' 'PlatformValues'
 --
--- * 'i1PrivateDnsName' @::@ 'Text'
+-- * 'i1PrivateDnsName' @::@ 'Maybe' 'Text'
 --
--- * 'i1PrivateIpAddress' @::@ 'Text'
+-- * 'i1PrivateIpAddress' @::@ 'Maybe' 'Text'
 --
 -- * 'i1ProductCodes' @::@ ['ProductCode']
 --
--- * 'i1PublicDnsName' @::@ 'Text'
+-- * 'i1PublicDnsName' @::@ 'Maybe' 'Text'
 --
--- * 'i1PublicIpAddress' @::@ 'Text'
+-- * 'i1PublicIpAddress' @::@ 'Maybe' 'Text'
 --
--- * 'i1RamdiskId' @::@ 'Text'
+-- * 'i1RamdiskId' @::@ 'Maybe' 'Text'
 --
 -- * 'i1RootDeviceName' @::@ 'Text'
 --
@@ -11895,7 +11894,7 @@
 --
 -- * 'i1SecurityGroups' @::@ ['GroupIdentifier']
 --
--- * 'i1SourceDestCheck' @::@ 'Bool'
+-- * 'i1SourceDestCheck' @::@ 'Maybe' 'Bool'
 --
 -- * 'i1SpotInstanceRequestId' @::@ 'Maybe' 'Text'
 --
@@ -11907,77 +11906,68 @@
 --
 -- * 'i1StateTransitionReason' @::@ 'Maybe' 'Text'
 --
--- * 'i1SubnetId' @::@ 'Text'
+-- * 'i1SubnetId' @::@ 'Maybe' 'Text'
 --
 -- * 'i1Tags' @::@ ['Tag']
 --
 -- * 'i1VirtualizationType' @::@ 'VirtualizationType'
 --
--- * 'i1VpcId' @::@ 'Text'
+-- * 'i1VpcId' @::@ 'Maybe' 'Text'
 --
 instance' :: Text -- ^ 'i1InstanceId'
           -> Text -- ^ 'i1ImageId'
           -> InstanceState -- ^ 'i1State'
-          -> Text -- ^ 'i1PrivateDnsName'
-          -> Text -- ^ 'i1PublicDnsName'
           -> Text -- ^ 'i1KeyName'
           -> Int -- ^ 'i1AmiLaunchIndex'
           -> InstanceType -- ^ 'i1InstanceType'
           -> UTCTime -- ^ 'i1LaunchTime'
           -> Placement -- ^ 'i1Placement'
-          -> Text -- ^ 'i1KernelId'
-          -> Text -- ^ 'i1RamdiskId'
-          -> PlatformValues -- ^ 'i1Platform'
           -> Monitoring -- ^ 'i1Monitoring'
-          -> Text -- ^ 'i1SubnetId'
-          -> Text -- ^ 'i1VpcId'
-          -> Text -- ^ 'i1PrivateIpAddress'
-          -> Text -- ^ 'i1PublicIpAddress'
           -> ArchitectureValues -- ^ 'i1Architecture'
           -> DeviceType -- ^ 'i1RootDeviceType'
           -> Text -- ^ 'i1RootDeviceName'
           -> VirtualizationType -- ^ 'i1VirtualizationType'
-          -> Text -- ^ 'i1ClientToken'
-          -> Bool -- ^ 'i1SourceDestCheck'
           -> HypervisorType -- ^ 'i1Hypervisor'
+          -> IamInstanceProfile -- ^ 'i1IamInstanceProfile'
+          -> Bool -- ^ 'i1EbsOptimized'
           -> Instance
-instance' p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 p21 p22 p23 p24 p25 = Instance
+instance' p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 = Instance
     { _i1InstanceId            = p1
     , _i1ImageId               = p2
     , _i1State                 = p3
-    , _i1PrivateDnsName        = p4
-    , _i1PublicDnsName         = p5
-    , _i1KeyName               = p6
-    , _i1AmiLaunchIndex        = p7
-    , _i1InstanceType          = p8
-    , _i1LaunchTime            = withIso _Time (const id) p9
-    , _i1Placement             = p10
-    , _i1KernelId              = p11
-    , _i1RamdiskId             = p12
-    , _i1Platform              = p13
-    , _i1Monitoring            = p14
-    , _i1SubnetId              = p15
-    , _i1VpcId                 = p16
-    , _i1PrivateIpAddress      = p17
-    , _i1PublicIpAddress       = p18
-    , _i1Architecture          = p19
-    , _i1RootDeviceType        = p20
-    , _i1RootDeviceName        = p21
-    , _i1VirtualizationType    = p22
-    , _i1ClientToken           = p23
-    , _i1SourceDestCheck       = p24
-    , _i1Hypervisor            = p25
+    , _i1KeyName               = p4
+    , _i1AmiLaunchIndex        = p5
+    , _i1InstanceType          = p6
+    , _i1LaunchTime            = withIso _Time (const id) p7
+    , _i1Placement             = p8
+    , _i1Monitoring            = p9
+    , _i1Architecture          = p10
+    , _i1RootDeviceType        = p11
+    , _i1RootDeviceName        = p12
+    , _i1VirtualizationType    = p13
+    , _i1Hypervisor            = p14
+    , _i1IamInstanceProfile    = p15
+    , _i1EbsOptimized          = p16
+    , _i1PrivateDnsName        = Nothing
+    , _i1PublicDnsName         = Nothing
     , _i1StateTransitionReason = Nothing
     , _i1ProductCodes          = mempty
+    , _i1KernelId              = Nothing
+    , _i1RamdiskId             = Nothing
+    , _i1Platform              = Nothing
+    , _i1SubnetId              = Nothing
+    , _i1VpcId                 = Nothing
+    , _i1PrivateIpAddress      = Nothing
+    , _i1PublicIpAddress       = Nothing
     , _i1StateReason           = Nothing
     , _i1BlockDeviceMappings   = mempty
     , _i1InstanceLifecycle     = Nothing
     , _i1SpotInstanceRequestId = Nothing
+    , _i1ClientToken           = Nothing
     , _i1Tags                  = mempty
     , _i1SecurityGroups        = mempty
+    , _i1SourceDestCheck       = Nothing
     , _i1NetworkInterfaces     = mempty
-    , _i1IamInstanceProfile    = Nothing
-    , _i1EbsOptimized          = Nothing
     , _i1SriovNetSupport       = Nothing
     }
 
@@ -11997,7 +11987,7 @@
         . _List
 
 -- | The idempotency token you provided when you launched the instance.
-i1ClientToken :: Lens' Instance Text
+i1ClientToken :: Lens' Instance (Maybe Text)
 i1ClientToken = lens _i1ClientToken (\s a -> s { _i1ClientToken = a })
 
 -- | Indicates whether the instance is optimized for EBS I/O. This optimization
@@ -12005,7 +11995,7 @@
 -- stack to provide optimal I/O performance. This optimization isn't available
 -- with all instance types. Additional usage charges apply when using an EBS
 -- Optimized instance.
-i1EbsOptimized :: Lens' Instance (Maybe Bool)
+i1EbsOptimized :: Lens' Instance Bool
 i1EbsOptimized = lens _i1EbsOptimized (\s a -> s { _i1EbsOptimized = a })
 
 -- | The hypervisor type of the instance.
@@ -12013,7 +12003,7 @@
 i1Hypervisor = lens _i1Hypervisor (\s a -> s { _i1Hypervisor = a })
 
 -- | The IAM instance profile associated with the instance.
-i1IamInstanceProfile :: Lens' Instance (Maybe IamInstanceProfile)
+i1IamInstanceProfile :: Lens' Instance IamInstanceProfile
 i1IamInstanceProfile =
     lens _i1IamInstanceProfile (\s a -> s { _i1IamInstanceProfile = a })
 
@@ -12035,7 +12025,7 @@
 i1InstanceType = lens _i1InstanceType (\s a -> s { _i1InstanceType = a })
 
 -- | The kernel associated with this instance.
-i1KernelId :: Lens' Instance Text
+i1KernelId :: Lens' Instance (Maybe Text)
 i1KernelId = lens _i1KernelId (\s a -> s { _i1KernelId = a })
 
 -- | The name of the key pair, if this instance was launched with an associated
@@ -12062,17 +12052,17 @@
 i1Placement = lens _i1Placement (\s a -> s { _i1Placement = a })
 
 -- | The value is 'Windows' for Windows instances; otherwise blank.
-i1Platform :: Lens' Instance PlatformValues
+i1Platform :: Lens' Instance (Maybe PlatformValues)
 i1Platform = lens _i1Platform (\s a -> s { _i1Platform = a })
 
 -- | The private DNS name assigned to the instance. This DNS name can only be used
 -- inside the Amazon EC2 network. This name is not available until the instance
 -- enters the 'running' state.
-i1PrivateDnsName :: Lens' Instance Text
+i1PrivateDnsName :: Lens' Instance (Maybe Text)
 i1PrivateDnsName = lens _i1PrivateDnsName (\s a -> s { _i1PrivateDnsName = a })
 
 -- | The private IP address assigned to the instance.
-i1PrivateIpAddress :: Lens' Instance Text
+i1PrivateIpAddress :: Lens' Instance (Maybe Text)
 i1PrivateIpAddress =
     lens _i1PrivateIpAddress (\s a -> s { _i1PrivateIpAddress = a })
 
@@ -12082,16 +12072,16 @@
 
 -- | The public DNS name assigned to the instance. This name is not available
 -- until the instance enters the 'running' state.
-i1PublicDnsName :: Lens' Instance Text
+i1PublicDnsName :: Lens' Instance (Maybe Text)
 i1PublicDnsName = lens _i1PublicDnsName (\s a -> s { _i1PublicDnsName = a })
 
 -- | The public IP address assigned to the instance.
-i1PublicIpAddress :: Lens' Instance Text
+i1PublicIpAddress :: Lens' Instance (Maybe Text)
 i1PublicIpAddress =
     lens _i1PublicIpAddress (\s a -> s { _i1PublicIpAddress = a })
 
 -- | The RAM disk associated with this instance.
-i1RamdiskId :: Lens' Instance Text
+i1RamdiskId :: Lens' Instance (Maybe Text)
 i1RamdiskId = lens _i1RamdiskId (\s a -> s { _i1RamdiskId = a })
 
 -- | The root device name (for example, '/dev/sda1').
@@ -12112,7 +12102,7 @@
 -- A value of 'true' means checking is enabled, and 'false' means checking is
 -- disabled. The value must be 'false' for the instance to perform NAT. For more
 -- information, see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html NAT Instances> in the /Amazon Virtual Private Cloud User Guide/.
-i1SourceDestCheck :: Lens' Instance Bool
+i1SourceDestCheck :: Lens' Instance (Maybe Bool)
 i1SourceDestCheck =
     lens _i1SourceDestCheck (\s a -> s { _i1SourceDestCheck = a })
 
@@ -12141,7 +12131,7 @@
     lens _i1StateTransitionReason (\s a -> s { _i1StateTransitionReason = a })
 
 -- | The ID of the subnet in which the instance is running.
-i1SubnetId :: Lens' Instance Text
+i1SubnetId :: Lens' Instance (Maybe Text)
 i1SubnetId = lens _i1SubnetId (\s a -> s { _i1SubnetId = a })
 
 -- | Any tags assigned to the instance.
@@ -12154,54 +12144,54 @@
     lens _i1VirtualizationType (\s a -> s { _i1VirtualizationType = a })
 
 -- | The ID of the VPC in which the instance is running.
-i1VpcId :: Lens' Instance Text
+i1VpcId :: Lens' Instance (Maybe Text)
 i1VpcId = lens _i1VpcId (\s a -> s { _i1VpcId = a })
 
 instance FromXML Instance where
     parseXML x = Instance
         <$> x .@  "amiLaunchIndex"
         <*> x .@  "architecture"
-        <*> parseXML x
-        <*> x .@  "clientToken"
-        <*> x .@? "ebsOptimized"
+        <*> x .@? "blockDeviceMapping" .!@ mempty
+        <*> x .@? "clientToken"
+        <*> x .@  "ebsOptimized"
         <*> x .@  "hypervisor"
-        <*> x .@? "iamInstanceProfile"
+        <*> x .@  "iamInstanceProfile"
         <*> x .@  "imageId"
         <*> x .@  "instanceId"
         <*> x .@? "instanceLifecycle"
         <*> x .@  "instanceType"
-        <*> x .@  "kernelId"
+        <*> x .@? "kernelId"
         <*> x .@  "keyName"
         <*> x .@  "launchTime"
         <*> x .@  "monitoring"
-        <*> parseXML x
+        <*> x .@? "networkInterfaceSet" .!@ mempty
         <*> x .@  "placement"
-        <*> x .@  "platform"
-        <*> x .@  "privateDnsName"
-        <*> x .@  "privateIpAddress"
-        <*> parseXML x
-        <*> x .@  "dnsName"
-        <*> x .@  "ipAddress"
-        <*> x .@  "ramdiskId"
+        <*> x .@? "platform"
+        <*> x .@? "privateDnsName"
+        <*> x .@? "privateIpAddress"
+        <*> x .@? "productCodes" .!@ mempty
+        <*> x .@? "dnsName"
+        <*> x .@? "ipAddress"
+        <*> x .@? "ramdiskId"
         <*> x .@  "rootDeviceName"
         <*> x .@  "rootDeviceType"
-        <*> parseXML x
-        <*> x .@  "sourceDestCheck"
+        <*> x .@? "groupSet" .!@ mempty
+        <*> x .@? "sourceDestCheck"
         <*> x .@? "spotInstanceRequestId"
         <*> x .@? "sriovNetSupport"
         <*> x .@  "instanceState"
         <*> x .@? "stateReason"
         <*> x .@? "reason"
-        <*> x .@  "subnetId"
-        <*> parseXML x
+        <*> x .@? "subnetId"
+        <*> x .@? "tagSet" .!@ mempty
         <*> x .@  "virtualizationType"
-        <*> x .@  "vpcId"
+        <*> x .@? "vpcId"
 
 instance ToQuery Instance where
     toQuery Instance{..} = mconcat
         [ "amiLaunchIndex"        =? _i1AmiLaunchIndex
         , "architecture"          =? _i1Architecture
-        , toQuery                _i1BlockDeviceMappings
+        , "blockDeviceMapping"    `toQueryList` _i1BlockDeviceMappings
         , "clientToken"           =? _i1ClientToken
         , "ebsOptimized"          =? _i1EbsOptimized
         , "hypervisor"            =? _i1Hypervisor
@@ -12214,18 +12204,18 @@
         , "keyName"               =? _i1KeyName
         , "launchTime"            =? _i1LaunchTime
         , "monitoring"            =? _i1Monitoring
-        , toQuery                _i1NetworkInterfaces
+        , "networkInterfaceSet"   `toQueryList` _i1NetworkInterfaces
         , "placement"             =? _i1Placement
         , "platform"              =? _i1Platform
         , "privateDnsName"        =? _i1PrivateDnsName
         , "privateIpAddress"      =? _i1PrivateIpAddress
-        , toQuery                _i1ProductCodes
+        , "productCodes"          `toQueryList` _i1ProductCodes
         , "dnsName"               =? _i1PublicDnsName
         , "ipAddress"             =? _i1PublicIpAddress
         , "ramdiskId"             =? _i1RamdiskId
         , "rootDeviceName"        =? _i1RootDeviceName
         , "rootDeviceType"        =? _i1RootDeviceType
-        , toQuery                _i1SecurityGroups
+        , "groupSet"              `toQueryList` _i1SecurityGroups
         , "sourceDestCheck"       =? _i1SourceDestCheck
         , "spotInstanceRequestId" =? _i1SpotInstanceRequestId
         , "sriovNetSupport"       =? _i1SriovNetSupport
@@ -12233,7 +12223,7 @@
         , "stateReason"           =? _i1StateReason
         , "reason"                =? _i1StateTransitionReason
         , "subnetId"              =? _i1SubnetId
-        , toQuery                _i1Tags
+        , "tagSet"                `toQueryList` _i1Tags
         , "virtualizationType"    =? _i1VirtualizationType
         , "vpcId"                 =? _i1VpcId
         ]
@@ -12501,7 +12491,7 @@
 instance FromXML RequestSpotLaunchSpecification where
     parseXML x = RequestSpotLaunchSpecification
         <$> x .@? "addressingType"
-        <*> parseXML x
+        <*> x .@? "blockDeviceMapping" .!@ mempty
         <*> x .@? "ebsOptimized"
         <*> x .@? "iamInstanceProfile"
         <*> x .@? "imageId"
@@ -12509,18 +12499,18 @@
         <*> x .@? "kernelId"
         <*> x .@? "keyName"
         <*> x .@? "monitoring"
-        <*> parseXML x
+        <*> x .@? "NetworkInterface" .!@ mempty
         <*> x .@? "placement"
         <*> x .@? "ramdiskId"
-        <*> parseXML x
-        <*> parseXML x
+        <*> x .@? "SecurityGroupId" .!@ mempty
+        <*> x .@? "SecurityGroup" .!@ mempty
         <*> x .@? "subnetId"
         <*> x .@? "userData"
 
 instance ToQuery RequestSpotLaunchSpecification where
     toQuery RequestSpotLaunchSpecification{..} = mconcat
         [ "addressingType"     =? _rslsAddressingType
-        , toQuery             _rslsBlockDeviceMappings
+        , "blockDeviceMapping" `toQueryList` _rslsBlockDeviceMappings
         , "ebsOptimized"       =? _rslsEbsOptimized
         , "iamInstanceProfile" =? _rslsIamInstanceProfile
         , "imageId"            =? _rslsImageId
@@ -12528,11 +12518,11 @@
         , "kernelId"           =? _rslsKernelId
         , "keyName"            =? _rslsKeyName
         , "monitoring"         =? _rslsMonitoring
-        , toQuery             _rslsNetworkInterfaces
+        , "NetworkInterface"   `toQueryList` _rslsNetworkInterfaces
         , "placement"          =? _rslsPlacement
         , "ramdiskId"          =? _rslsRamdiskId
-        , toQuery             _rslsSecurityGroupIds
-        , toQuery             _rslsSecurityGroups
+        , "SecurityGroupId"    `toQueryList` _rslsSecurityGroupIds
+        , "SecurityGroup"      `toQueryList` _rslsSecurityGroups
         , "subnetId"           =? _rslsSubnetId
         , "userData"           =? _rslsUserData
         ]
@@ -12787,17 +12777,17 @@
 
 instance FromXML VolumeStatusItem where
     parseXML x = VolumeStatusItem
-        <$> parseXML x
+        <$> x .@? "actionsSet" .!@ mempty
         <*> x .@? "availabilityZone"
-        <*> parseXML x
+        <*> x .@? "eventsSet" .!@ mempty
         <*> x .@? "volumeId"
         <*> x .@? "volumeStatus"
 
 instance ToQuery VolumeStatusItem where
     toQuery VolumeStatusItem{..} = mconcat
-        [ toQuery           _vsiActions
+        [ "actionsSet"       `toQueryList` _vsiActions
         , "availabilityZone" =? _vsiAvailabilityZone
-        , toQuery           _vsiEvents
+        , "eventsSet"        `toQueryList` _vsiEvents
         , "volumeId"         =? _vsiVolumeId
         , "volumeStatus"     =? _vsiVolumeStatus
         ]
diff --git a/gen/Network/AWS/EC2/UnassignPrivateIpAddresses.hs b/gen/Network/AWS/EC2/UnassignPrivateIpAddresses.hs
--- a/gen/Network/AWS/EC2/UnassignPrivateIpAddresses.hs
+++ b/gen/Network/AWS/EC2/UnassignPrivateIpAddresses.hs
@@ -92,7 +92,7 @@
 instance ToQuery UnassignPrivateIpAddresses where
     toQuery UnassignPrivateIpAddresses{..} = mconcat
         [ "networkInterfaceId" =? _upiaNetworkInterfaceId
-        , toQuery             _upiaPrivateIpAddresses
+        , "privateIpAddress"   `toQueryList` _upiaPrivateIpAddresses
         ]
 
 instance ToHeaders UnassignPrivateIpAddresses
diff --git a/gen/Network/AWS/EC2/UnmonitorInstances.hs b/gen/Network/AWS/EC2/UnmonitorInstances.hs
--- a/gen/Network/AWS/EC2/UnmonitorInstances.hs
+++ b/gen/Network/AWS/EC2/UnmonitorInstances.hs
@@ -102,7 +102,7 @@
 instance ToQuery UnmonitorInstances where
     toQuery UnmonitorInstances{..} = mconcat
         [ "dryRun"     =? _uiDryRun
-        , toQuery     _uiInstanceIds
+        , "InstanceId" `toQueryList` _uiInstanceIds
         ]
 
 instance ToHeaders UnmonitorInstances
@@ -116,4 +116,4 @@
 
 instance FromXML UnmonitorInstancesResponse where
     parseXML x = UnmonitorInstancesResponse
-        <$> parseXML x
+        <$> x .@? "instancesSet" .!@ mempty
diff --git a/src/Network/AWS/EC2/Internal.hs b/src/Network/AWS/EC2/Internal.hs
--- a/src/Network/AWS/EC2/Internal.hs
+++ b/src/Network/AWS/EC2/Internal.hs
@@ -16,7 +16,6 @@
 module Network.AWS.EC2.Internal where
 
 import GHC.Generics
-import Network.AWS.Data
 import Network.AWS.Error
 import Network.AWS.Prelude
 
@@ -67,4 +66,3 @@
 --     </Errors>
 --     <RequestID>request ID</RequestID>
 -- </Response>
-
