diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -35,3 +35,5 @@
 ## Licence
 
 `amazonka-ec2` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).
+
+Parts of the code are derived from AWS service descriptions, licensed under Apache 2.0.
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.0.4
+version:               0.0.5
 synopsis:              Amazon Elastic Compute Cloud SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -204,5 +204,5 @@
           Network.AWS.EC2.Internal
 
     build-depends:
-          amazonka-core == 0.0.4.*
+          amazonka-core == 0.0.5.*
         , base          >= 4.7     && < 5
diff --git a/gen/Network/AWS/EC2.hs b/gen/Network/AWS/EC2.hs
--- a/gen/Network/AWS/EC2.hs
+++ b/gen/Network/AWS/EC2.hs
@@ -7,6 +7,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides
 -- resizable compute capacity in the cloud. It is designed to make web-scale
diff --git a/gen/Network/AWS/EC2/AcceptVpcPeeringConnection.hs b/gen/Network/AWS/EC2/AcceptVpcPeeringConnection.hs
--- a/gen/Network/AWS/EC2/AcceptVpcPeeringConnection.hs
+++ b/gen/Network/AWS/EC2/AcceptVpcPeeringConnection.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Accept a VPC peering connection request. To accept a request, the VPC peering
 -- connection must be in the 'pending-acceptance' state, and you must be the owner
diff --git a/gen/Network/AWS/EC2/AllocateAddress.hs b/gen/Network/AWS/EC2/AllocateAddress.hs
--- a/gen/Network/AWS/EC2/AllocateAddress.hs
+++ b/gen/Network/AWS/EC2/AllocateAddress.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Acquires an Elastic IP address.
 --
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Assigns one or more secondary private IP addresses to the specified network
 -- interface. You can specify one or more specific secondary IP addresses, or
@@ -126,7 +128,7 @@
     toQuery AssignPrivateIpAddresses{..} = mconcat
         [ "allowReassignment"              =? _apiaAllowReassignment
         , "networkInterfaceId"             =? _apiaNetworkInterfaceId
-        , "privateIpAddress"               =? _apiaPrivateIpAddresses
+        , toQuery                         _apiaPrivateIpAddresses
         , "secondaryPrivateIpAddressCount" =? _apiaSecondaryPrivateIpAddressCount
         ]
 
diff --git a/gen/Network/AWS/EC2/AssociateAddress.hs b/gen/Network/AWS/EC2/AssociateAddress.hs
--- a/gen/Network/AWS/EC2/AssociateAddress.hs
+++ b/gen/Network/AWS/EC2/AssociateAddress.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Associates an Elastic IP address with an instance or a network interface.
 --
diff --git a/gen/Network/AWS/EC2/AssociateDhcpOptions.hs b/gen/Network/AWS/EC2/AssociateDhcpOptions.hs
--- a/gen/Network/AWS/EC2/AssociateDhcpOptions.hs
+++ b/gen/Network/AWS/EC2/AssociateDhcpOptions.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Associates a set of DHCP options (that you've previously created) with the
 -- specified VPC, or associates no DHCP options with the VPC.
diff --git a/gen/Network/AWS/EC2/AssociateRouteTable.hs b/gen/Network/AWS/EC2/AssociateRouteTable.hs
--- a/gen/Network/AWS/EC2/AssociateRouteTable.hs
+++ b/gen/Network/AWS/EC2/AssociateRouteTable.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Associates a subnet with a route table. The subnet and route table must be in
 -- the same VPC. This association causes traffic originating from the subnet to
diff --git a/gen/Network/AWS/EC2/AttachInternetGateway.hs b/gen/Network/AWS/EC2/AttachInternetGateway.hs
--- a/gen/Network/AWS/EC2/AttachInternetGateway.hs
+++ b/gen/Network/AWS/EC2/AttachInternetGateway.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Attaches an Internet gateway to a VPC, enabling connectivity between the
 -- Internet and the VPC. For more information about your VPC and Internet
diff --git a/gen/Network/AWS/EC2/AttachNetworkInterface.hs b/gen/Network/AWS/EC2/AttachNetworkInterface.hs
--- a/gen/Network/AWS/EC2/AttachNetworkInterface.hs
+++ b/gen/Network/AWS/EC2/AttachNetworkInterface.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Attaches a network interface to an instance.
 --
diff --git a/gen/Network/AWS/EC2/AttachVolume.hs b/gen/Network/AWS/EC2/AttachVolume.hs
--- a/gen/Network/AWS/EC2/AttachVolume.hs
+++ b/gen/Network/AWS/EC2/AttachVolume.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Attaches an Amazon EBS volume to a running or stopped instance and exposes it
 -- to the instance with the specified device name.
diff --git a/gen/Network/AWS/EC2/AttachVpnGateway.hs b/gen/Network/AWS/EC2/AttachVpnGateway.hs
--- a/gen/Network/AWS/EC2/AttachVpnGateway.hs
+++ b/gen/Network/AWS/EC2/AttachVpnGateway.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Attaches a virtual private gateway to a VPC. For more information, see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html Addinga Hardware Virtual Private Gateway to Your VPC> in the /Amazon Virtual PrivateCloud User Guide/.
 --
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Adds one or more egress rules to a security group for use with a VPC.
 -- Specifically, this action permits instances to send traffic to one or more
@@ -183,7 +185,7 @@
         , "dryRun"                     =? _asgeDryRun
         , "fromPort"                   =? _asgeFromPort
         , "groupId"                    =? _asgeGroupId
-        , "ipPermissions"              =? _asgeIpPermissions
+        , toQuery                     _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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Adds one or more ingress rules to a security group.
 --
@@ -191,7 +193,7 @@
         , "FromPort"                   =? _asgiFromPort
         , "GroupId"                    =? _asgiGroupId
         , "GroupName"                  =? _asgiGroupName
-        , "IpPermissions"              =? _asgiIpPermissions
+        , toQuery                     _asgiIpPermissions
         , "IpProtocol"                 =? _asgiIpProtocol
         , "SourceSecurityGroupName"    =? _asgiSourceSecurityGroupName
         , "SourceSecurityGroupOwnerId" =? _asgiSourceSecurityGroupOwnerId
diff --git a/gen/Network/AWS/EC2/BundleInstance.hs b/gen/Network/AWS/EC2/BundleInstance.hs
--- a/gen/Network/AWS/EC2/BundleInstance.hs
+++ b/gen/Network/AWS/EC2/BundleInstance.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Bundles an Amazon instance store-backed Windows instance.
 --
diff --git a/gen/Network/AWS/EC2/CancelBundleTask.hs b/gen/Network/AWS/EC2/CancelBundleTask.hs
--- a/gen/Network/AWS/EC2/CancelBundleTask.hs
+++ b/gen/Network/AWS/EC2/CancelBundleTask.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Cancels a bundling operation for an instance store-backed Windows instance.
 --
diff --git a/gen/Network/AWS/EC2/CancelConversionTask.hs b/gen/Network/AWS/EC2/CancelConversionTask.hs
--- a/gen/Network/AWS/EC2/CancelConversionTask.hs
+++ b/gen/Network/AWS/EC2/CancelConversionTask.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Cancels an active conversion task. The task can be the import of an instance
 -- or volume. The action removes all artifacts of the conversion, including a
diff --git a/gen/Network/AWS/EC2/CancelExportTask.hs b/gen/Network/AWS/EC2/CancelExportTask.hs
--- a/gen/Network/AWS/EC2/CancelExportTask.hs
+++ b/gen/Network/AWS/EC2/CancelExportTask.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Cancels an active export task. The request removes all artifacts of the
 -- export, including any partially-created Amazon S3 objects. If the export task
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Cancels the specified Reserved Instance listing in the Reserved Instance
 -- Marketplace.
@@ -74,12 +76,6 @@
     { _crilrReservedInstancesListings :: List "item" ReservedInstancesListing
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList CancelReservedInstancesListingResponse where
-    type Item CancelReservedInstancesListingResponse = ReservedInstancesListing
-
-    fromList = CancelReservedInstancesListingResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _crilrReservedInstancesListings
-
 -- | 'CancelReservedInstancesListingResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -117,4 +113,4 @@
 
 instance FromXML CancelReservedInstancesListingResponse where
     parseXML x = CancelReservedInstancesListingResponse
-        <$> x .@  "reservedInstancesListingsSet"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Cancels one or more Spot Instance requests. Spot Instances are instances that
 -- Amazon EC2 starts on your behalf when the maximum price that you specify
@@ -88,12 +90,6 @@
     { _csirrCancelledSpotInstanceRequests :: List "item" CancelledSpotInstanceRequest
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList CancelSpotInstanceRequestsResponse where
-    type Item CancelSpotInstanceRequestsResponse = CancelledSpotInstanceRequest
-
-    fromList = CancelSpotInstanceRequestsResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _csirrCancelledSpotInstanceRequests
-
 -- | 'CancelSpotInstanceRequestsResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -118,7 +114,7 @@
 instance ToQuery CancelSpotInstanceRequests where
     toQuery CancelSpotInstanceRequests{..} = mconcat
         [ "dryRun"                =? _csirDryRun
-        , "SpotInstanceRequestId" =? _csirSpotInstanceRequestIds
+        , toQuery                _csirSpotInstanceRequestIds
         ]
 
 instance ToHeaders CancelSpotInstanceRequests
@@ -132,4 +128,4 @@
 
 instance FromXML CancelSpotInstanceRequestsResponse where
     parseXML x = CancelSpotInstanceRequestsResponse
-        <$> x .@  "spotInstanceRequestSet"
+        <$> parseXML x
diff --git a/gen/Network/AWS/EC2/ConfirmProductInstance.hs b/gen/Network/AWS/EC2/ConfirmProductInstance.hs
--- a/gen/Network/AWS/EC2/ConfirmProductInstance.hs
+++ b/gen/Network/AWS/EC2/ConfirmProductInstance.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Determines whether a product code is associated with an instance. This action
 -- can only be used by the owner of the product code. It is useful when a
diff --git a/gen/Network/AWS/EC2/CopyImage.hs b/gen/Network/AWS/EC2/CopyImage.hs
--- a/gen/Network/AWS/EC2/CopyImage.hs
+++ b/gen/Network/AWS/EC2/CopyImage.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Initiates the copy of an AMI from the specified source region to the region
 -- in which the request was made. You specify the destination region by using
diff --git a/gen/Network/AWS/EC2/CopySnapshot.hs b/gen/Network/AWS/EC2/CopySnapshot.hs
--- a/gen/Network/AWS/EC2/CopySnapshot.hs
+++ b/gen/Network/AWS/EC2/CopySnapshot.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Copies a point-in-time snapshot of an Amazon EBS volume and stores it in
 -- Amazon S3. You can copy the snapshot within the same region or from one
diff --git a/gen/Network/AWS/EC2/CreateCustomerGateway.hs b/gen/Network/AWS/EC2/CreateCustomerGateway.hs
--- a/gen/Network/AWS/EC2/CreateCustomerGateway.hs
+++ b/gen/Network/AWS/EC2/CreateCustomerGateway.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Provides information to AWS about your VPN customer gateway device. The
 -- customer gateway is the appliance at your end of the VPN connection. (The
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Creates a set of DHCP options for your VPC. After creating the set, you must
 -- associate it with the VPC, causing all existing and new instances that you
@@ -118,7 +120,7 @@
 
 instance ToQuery CreateDhcpOptions where
     toQuery CreateDhcpOptions{..} = mconcat
-        [ "dhcpConfiguration" =? _cdoDhcpConfigurations
+        [ toQuery            _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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is
 -- either running or stopped.
@@ -152,7 +154,7 @@
 
 instance ToQuery CreateImage where
     toQuery CreateImage{..} = mconcat
-        [ "blockDeviceMapping" =? _ci1BlockDeviceMappings
+        [ toQuery             _ci1BlockDeviceMappings
         , "description"        =? _ci1Description
         , "dryRun"             =? _ci1DryRun
         , "instanceId"         =? _ci1InstanceId
diff --git a/gen/Network/AWS/EC2/CreateInstanceExportTask.hs b/gen/Network/AWS/EC2/CreateInstanceExportTask.hs
--- a/gen/Network/AWS/EC2/CreateInstanceExportTask.hs
+++ b/gen/Network/AWS/EC2/CreateInstanceExportTask.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Exports a running or stopped instance to an Amazon S3 bucket.
 --
diff --git a/gen/Network/AWS/EC2/CreateInternetGateway.hs b/gen/Network/AWS/EC2/CreateInternetGateway.hs
--- a/gen/Network/AWS/EC2/CreateInternetGateway.hs
+++ b/gen/Network/AWS/EC2/CreateInternetGateway.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Creates an Internet gateway for use with a VPC. After creating the Internet
 -- gateway, you attach it to a VPC using 'AttachInternetGateway'.
diff --git a/gen/Network/AWS/EC2/CreateKeyPair.hs b/gen/Network/AWS/EC2/CreateKeyPair.hs
--- a/gen/Network/AWS/EC2/CreateKeyPair.hs
+++ b/gen/Network/AWS/EC2/CreateKeyPair.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Creates a 2048-bit RSA key pair with the specified name. Amazon EC2 stores
 -- the public key and displays the private key for you to save to a file. The
diff --git a/gen/Network/AWS/EC2/CreateNetworkAcl.hs b/gen/Network/AWS/EC2/CreateNetworkAcl.hs
--- a/gen/Network/AWS/EC2/CreateNetworkAcl.hs
+++ b/gen/Network/AWS/EC2/CreateNetworkAcl.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Creates a network ACL in a VPC. Network ACLs provide an optional layer of
 -- security (in addition to security groups) for the instances in your VPC.
diff --git a/gen/Network/AWS/EC2/CreateNetworkAclEntry.hs b/gen/Network/AWS/EC2/CreateNetworkAclEntry.hs
--- a/gen/Network/AWS/EC2/CreateNetworkAclEntry.hs
+++ b/gen/Network/AWS/EC2/CreateNetworkAclEntry.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Creates an entry (a rule) in a network ACL with the specified rule number.
 -- Each network ACL has a set of numbered ingress rules and a separate set of
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Creates a network interface in the specified subnet.
 --
@@ -161,9 +163,9 @@
     toQuery CreateNetworkInterface{..} = mconcat
         [ "description"                    =? _cniDescription
         , "dryRun"                         =? _cniDryRun
-        , "SecurityGroupId"                =? _cniGroups
+        , toQuery                         _cniGroups
         , "privateIpAddress"               =? _cniPrivateIpAddress
-        , "privateIpAddresses"             =? _cniPrivateIpAddresses
+        , toQuery                         _cniPrivateIpAddresses
         , "secondaryPrivateIpAddressCount" =? _cniSecondaryPrivateIpAddressCount
         , "subnetId"                       =? _cniSubnetId
         ]
diff --git a/gen/Network/AWS/EC2/CreatePlacementGroup.hs b/gen/Network/AWS/EC2/CreatePlacementGroup.hs
--- a/gen/Network/AWS/EC2/CreatePlacementGroup.hs
+++ b/gen/Network/AWS/EC2/CreatePlacementGroup.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Creates a placement group that you launch cluster instances into. You must
 -- give the group a name that's unique within the scope of your account.
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Creates a listing for Amazon EC2 Reserved Instances to be sold in the
 -- Reserved Instance Marketplace. You can submit one Reserved Instance listing
@@ -123,12 +125,6 @@
     { _crilr1ReservedInstancesListings :: List "item" ReservedInstancesListing
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList CreateReservedInstancesListingResponse where
-    type Item CreateReservedInstancesListingResponse = ReservedInstancesListing
-
-    fromList = CreateReservedInstancesListingResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _crilr1ReservedInstancesListings
-
 -- | 'CreateReservedInstancesListingResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -154,7 +150,7 @@
     toQuery CreateReservedInstancesListing{..} = mconcat
         [ "clientToken"         =? _crilClientToken
         , "instanceCount"       =? _crilInstanceCount
-        , "priceSchedules"      =? _crilPriceSchedules
+        , toQuery              _crilPriceSchedules
         , "reservedInstancesId" =? _crilReservedInstancesId
         ]
 
@@ -169,4 +165,4 @@
 
 instance FromXML CreateReservedInstancesListingResponse where
     parseXML x = CreateReservedInstancesListingResponse
-        <$> x .@  "reservedInstancesListingsSet"
+        <$> parseXML x
diff --git a/gen/Network/AWS/EC2/CreateRoute.hs b/gen/Network/AWS/EC2/CreateRoute.hs
--- a/gen/Network/AWS/EC2/CreateRoute.hs
+++ b/gen/Network/AWS/EC2/CreateRoute.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Creates a route in a route table within a VPC.
 --
diff --git a/gen/Network/AWS/EC2/CreateRouteTable.hs b/gen/Network/AWS/EC2/CreateRouteTable.hs
--- a/gen/Network/AWS/EC2/CreateRouteTable.hs
+++ b/gen/Network/AWS/EC2/CreateRouteTable.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Creates a route table for the specified VPC. After you create a route table,
 -- you can add routes and associate the table with a subnet.
diff --git a/gen/Network/AWS/EC2/CreateSecurityGroup.hs b/gen/Network/AWS/EC2/CreateSecurityGroup.hs
--- a/gen/Network/AWS/EC2/CreateSecurityGroup.hs
+++ b/gen/Network/AWS/EC2/CreateSecurityGroup.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Creates a security group.
 --
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Creates a snapshot of an Amazon EBS volume and stores it in Amazon S3. You
 -- can use snapshots for backups, to make copies of Amazon EBS volumes, and to
@@ -247,6 +249,6 @@
         <*> x .@? "snapshotId"
         <*> x .@? "startTime"
         <*> x .@? "status"
-        <*> x .@  "tagSet"
+        <*> parseXML x
         <*> x .@? "volumeId"
         <*> x .@? "volumeSize"
diff --git a/gen/Network/AWS/EC2/CreateSpotDatafeedSubscription.hs b/gen/Network/AWS/EC2/CreateSpotDatafeedSubscription.hs
--- a/gen/Network/AWS/EC2/CreateSpotDatafeedSubscription.hs
+++ b/gen/Network/AWS/EC2/CreateSpotDatafeedSubscription.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Creates a datafeed for Spot Instances, enabling you to view Spot Instance
 -- usage logs. You can create one data feed per AWS account. For more
diff --git a/gen/Network/AWS/EC2/CreateSubnet.hs b/gen/Network/AWS/EC2/CreateSubnet.hs
--- a/gen/Network/AWS/EC2/CreateSubnet.hs
+++ b/gen/Network/AWS/EC2/CreateSubnet.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Creates a subnet in an existing VPC.
 --
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Adds or overwrites one or more tags for the specified EC2 resource or
 -- resources. Each resource can have a maximum of 10 tags. Each tag consists of
@@ -98,8 +100,8 @@
 instance ToQuery CreateTags where
     toQuery CreateTags{..} = mconcat
         [ "dryRun"     =? _ct1DryRun
-        , "ResourceId" =? _ct1Resources
-        , "Tag"        =? _ct1Tags
+        , toQuery     _ct1Resources
+        , toQuery     _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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Creates an Amazon EBS volume that can be attached to an instance in the same
 -- Availability Zone. The volume is created in the specified region.
@@ -287,7 +289,7 @@
 
 instance FromXML CreateVolumeResponse where
     parseXML x = CreateVolumeResponse
-        <$> x .@  "attachmentSet"
+        <$> parseXML x
         <*> x .@? "availabilityZone"
         <*> x .@? "createTime"
         <*> x .@? "encrypted"
@@ -295,6 +297,6 @@
         <*> x .@? "size"
         <*> x .@? "snapshotId"
         <*> x .@? "status"
-        <*> x .@  "tagSet"
+        <*> parseXML x
         <*> x .@? "volumeId"
         <*> x .@? "volumeType"
diff --git a/gen/Network/AWS/EC2/CreateVpc.hs b/gen/Network/AWS/EC2/CreateVpc.hs
--- a/gen/Network/AWS/EC2/CreateVpc.hs
+++ b/gen/Network/AWS/EC2/CreateVpc.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Creates a VPC with the specified CIDR block.
 --
diff --git a/gen/Network/AWS/EC2/CreateVpcPeeringConnection.hs b/gen/Network/AWS/EC2/CreateVpcPeeringConnection.hs
--- a/gen/Network/AWS/EC2/CreateVpcPeeringConnection.hs
+++ b/gen/Network/AWS/EC2/CreateVpcPeeringConnection.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Requests a VPC peering connection between two VPCs: a requester VPC that you
 -- own and a peer VPC with which to create the connection. The peer VPC can
diff --git a/gen/Network/AWS/EC2/CreateVpnConnection.hs b/gen/Network/AWS/EC2/CreateVpnConnection.hs
--- a/gen/Network/AWS/EC2/CreateVpnConnection.hs
+++ b/gen/Network/AWS/EC2/CreateVpnConnection.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Creates a VPN connection between an existing virtual private gateway and a
 -- VPN customer gateway. The only supported connection type is 'ipsec.1'.
diff --git a/gen/Network/AWS/EC2/CreateVpnConnectionRoute.hs b/gen/Network/AWS/EC2/CreateVpnConnectionRoute.hs
--- a/gen/Network/AWS/EC2/CreateVpnConnectionRoute.hs
+++ b/gen/Network/AWS/EC2/CreateVpnConnectionRoute.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Creates a static route associated with a VPN connection between an existing
 -- virtual private gateway and a VPN customer gateway. The static route allows
diff --git a/gen/Network/AWS/EC2/CreateVpnGateway.hs b/gen/Network/AWS/EC2/CreateVpnGateway.hs
--- a/gen/Network/AWS/EC2/CreateVpnGateway.hs
+++ b/gen/Network/AWS/EC2/CreateVpnGateway.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Creates a virtual private gateway. A virtual private gateway is the endpoint
 -- on the VPC side of your VPN connection. You can create a virtual private
diff --git a/gen/Network/AWS/EC2/DeleteCustomerGateway.hs b/gen/Network/AWS/EC2/DeleteCustomerGateway.hs
--- a/gen/Network/AWS/EC2/DeleteCustomerGateway.hs
+++ b/gen/Network/AWS/EC2/DeleteCustomerGateway.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Deletes the specified customer gateway. You must delete the VPN connection
 -- before you can delete the customer gateway.
diff --git a/gen/Network/AWS/EC2/DeleteDhcpOptions.hs b/gen/Network/AWS/EC2/DeleteDhcpOptions.hs
--- a/gen/Network/AWS/EC2/DeleteDhcpOptions.hs
+++ b/gen/Network/AWS/EC2/DeleteDhcpOptions.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Deletes the specified set of DHCP options. You must disassociate the set of
 -- DHCP options before you can delete it. You can disassociate the set of DHCP
diff --git a/gen/Network/AWS/EC2/DeleteInternetGateway.hs b/gen/Network/AWS/EC2/DeleteInternetGateway.hs
--- a/gen/Network/AWS/EC2/DeleteInternetGateway.hs
+++ b/gen/Network/AWS/EC2/DeleteInternetGateway.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Deletes the specified Internet gateway. You must detach the Internet gateway
 -- from the VPC before you can delete it.
diff --git a/gen/Network/AWS/EC2/DeleteKeyPair.hs b/gen/Network/AWS/EC2/DeleteKeyPair.hs
--- a/gen/Network/AWS/EC2/DeleteKeyPair.hs
+++ b/gen/Network/AWS/EC2/DeleteKeyPair.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Deletes the specified key pair, by removing the public key from Amazon EC2.
 --
diff --git a/gen/Network/AWS/EC2/DeleteNetworkAcl.hs b/gen/Network/AWS/EC2/DeleteNetworkAcl.hs
--- a/gen/Network/AWS/EC2/DeleteNetworkAcl.hs
+++ b/gen/Network/AWS/EC2/DeleteNetworkAcl.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Deletes the specified network ACL. You can't delete the ACL if it's
 -- associated with any subnets. You can't delete the default network ACL.
diff --git a/gen/Network/AWS/EC2/DeleteNetworkAclEntry.hs b/gen/Network/AWS/EC2/DeleteNetworkAclEntry.hs
--- a/gen/Network/AWS/EC2/DeleteNetworkAclEntry.hs
+++ b/gen/Network/AWS/EC2/DeleteNetworkAclEntry.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Deletes the specified ingress or egress entry (rule) from the specified
 -- network ACL.
diff --git a/gen/Network/AWS/EC2/DeleteNetworkInterface.hs b/gen/Network/AWS/EC2/DeleteNetworkInterface.hs
--- a/gen/Network/AWS/EC2/DeleteNetworkInterface.hs
+++ b/gen/Network/AWS/EC2/DeleteNetworkInterface.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Deletes the specified network interface. You must detach the network
 -- interface before you can delete it.
diff --git a/gen/Network/AWS/EC2/DeletePlacementGroup.hs b/gen/Network/AWS/EC2/DeletePlacementGroup.hs
--- a/gen/Network/AWS/EC2/DeletePlacementGroup.hs
+++ b/gen/Network/AWS/EC2/DeletePlacementGroup.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Deletes the specified placement group. You must terminate all instances in
 -- the placement group before you can delete the placement group. For more
diff --git a/gen/Network/AWS/EC2/DeleteRoute.hs b/gen/Network/AWS/EC2/DeleteRoute.hs
--- a/gen/Network/AWS/EC2/DeleteRoute.hs
+++ b/gen/Network/AWS/EC2/DeleteRoute.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Deletes the specified route from the specified route table.
 --
diff --git a/gen/Network/AWS/EC2/DeleteRouteTable.hs b/gen/Network/AWS/EC2/DeleteRouteTable.hs
--- a/gen/Network/AWS/EC2/DeleteRouteTable.hs
+++ b/gen/Network/AWS/EC2/DeleteRouteTable.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Deletes the specified route table. You must disassociate the route table from
 -- any subnets before you can delete it. You can't delete the main route table.
diff --git a/gen/Network/AWS/EC2/DeleteSecurityGroup.hs b/gen/Network/AWS/EC2/DeleteSecurityGroup.hs
--- a/gen/Network/AWS/EC2/DeleteSecurityGroup.hs
+++ b/gen/Network/AWS/EC2/DeleteSecurityGroup.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Deletes a security group.
 --
diff --git a/gen/Network/AWS/EC2/DeleteSnapshot.hs b/gen/Network/AWS/EC2/DeleteSnapshot.hs
--- a/gen/Network/AWS/EC2/DeleteSnapshot.hs
+++ b/gen/Network/AWS/EC2/DeleteSnapshot.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Deletes the specified snapshot.
 --
diff --git a/gen/Network/AWS/EC2/DeleteSpotDatafeedSubscription.hs b/gen/Network/AWS/EC2/DeleteSpotDatafeedSubscription.hs
--- a/gen/Network/AWS/EC2/DeleteSpotDatafeedSubscription.hs
+++ b/gen/Network/AWS/EC2/DeleteSpotDatafeedSubscription.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Deletes the datafeed for Spot Instances. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html SpotInstances> in the /Amazon Elastic Compute Cloud User Guide/.
 --
diff --git a/gen/Network/AWS/EC2/DeleteSubnet.hs b/gen/Network/AWS/EC2/DeleteSubnet.hs
--- a/gen/Network/AWS/EC2/DeleteSubnet.hs
+++ b/gen/Network/AWS/EC2/DeleteSubnet.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Deletes the specified subnet. You must terminate all running instances in the
 -- subnet before you can delete the subnet.
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Deletes the specified set of tags from the specified set of resources. This
 -- call is designed to follow a 'DescribeTags' request.
@@ -98,8 +100,8 @@
 instance ToQuery DeleteTags where
     toQuery DeleteTags{..} = mconcat
         [ "dryRun"     =? _dt1DryRun
-        , "resourceId" =? _dt1Resources
-        , "tag"        =? _dt1Tags
+        , toQuery     _dt1Resources
+        , toQuery     _dt1Tags
         ]
 
 instance ToHeaders DeleteTags
diff --git a/gen/Network/AWS/EC2/DeleteVolume.hs b/gen/Network/AWS/EC2/DeleteVolume.hs
--- a/gen/Network/AWS/EC2/DeleteVolume.hs
+++ b/gen/Network/AWS/EC2/DeleteVolume.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Deletes the specified Amazon EBS volume. The volume must be in the 'available'
 -- state (not attached to an instance).
diff --git a/gen/Network/AWS/EC2/DeleteVpc.hs b/gen/Network/AWS/EC2/DeleteVpc.hs
--- a/gen/Network/AWS/EC2/DeleteVpc.hs
+++ b/gen/Network/AWS/EC2/DeleteVpc.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Deletes the specified VPC. You must detach or delete all gateways and
 -- resources that are associated with the VPC before you can delete it. For
diff --git a/gen/Network/AWS/EC2/DeleteVpcPeeringConnection.hs b/gen/Network/AWS/EC2/DeleteVpcPeeringConnection.hs
--- a/gen/Network/AWS/EC2/DeleteVpcPeeringConnection.hs
+++ b/gen/Network/AWS/EC2/DeleteVpcPeeringConnection.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Deletes a VPC peering connection. Either the owner of the requester VPC or
 -- the owner of the peer VPC can delete the VPC peering connection if it's in
diff --git a/gen/Network/AWS/EC2/DeleteVpnConnection.hs b/gen/Network/AWS/EC2/DeleteVpnConnection.hs
--- a/gen/Network/AWS/EC2/DeleteVpnConnection.hs
+++ b/gen/Network/AWS/EC2/DeleteVpnConnection.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Deletes the specified VPN connection.
 --
diff --git a/gen/Network/AWS/EC2/DeleteVpnConnectionRoute.hs b/gen/Network/AWS/EC2/DeleteVpnConnectionRoute.hs
--- a/gen/Network/AWS/EC2/DeleteVpnConnectionRoute.hs
+++ b/gen/Network/AWS/EC2/DeleteVpnConnectionRoute.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Deletes the specified static route associated with a VPN connection between
 -- an existing virtual private gateway and a VPN customer gateway. The static
diff --git a/gen/Network/AWS/EC2/DeleteVpnGateway.hs b/gen/Network/AWS/EC2/DeleteVpnGateway.hs
--- a/gen/Network/AWS/EC2/DeleteVpnGateway.hs
+++ b/gen/Network/AWS/EC2/DeleteVpnGateway.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Deletes the specified virtual private gateway. We recommend that before you
 -- delete a virtual private gateway, you detach it from the VPC and delete the
diff --git a/gen/Network/AWS/EC2/DeregisterImage.hs b/gen/Network/AWS/EC2/DeregisterImage.hs
--- a/gen/Network/AWS/EC2/DeregisterImage.hs
+++ b/gen/Network/AWS/EC2/DeregisterImage.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Deregisters the specified AMI. After you deregister an AMI, it can't be used
 -- to launch new instances.
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes the specified attribute of your AWS account.
 --
@@ -78,12 +80,6 @@
     { _daarAccountAttributes :: List "item" AccountAttribute
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeAccountAttributesResponse where
-    type Item DescribeAccountAttributesResponse = AccountAttribute
-
-    fromList = DescribeAccountAttributesResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _daarAccountAttributes
-
 -- | 'DescribeAccountAttributesResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -106,7 +102,7 @@
 
 instance ToQuery DescribeAccountAttributes where
     toQuery DescribeAccountAttributes{..} = mconcat
-        [ "attributeName" =? _daaAttributeNames
+        [ toQuery        _daaAttributeNames
         , "dryRun"        =? _daaDryRun
         ]
 
@@ -121,4 +117,4 @@
 
 instance FromXML DescribeAccountAttributesResponse where
     parseXML x = DescribeAccountAttributesResponse
-        <$> x .@  "accountAttributeSet"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes one or more of your Elastic IP addresses.
 --
@@ -123,12 +125,6 @@
     { _darAddresses :: List "item" Address
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeAddressesResponse where
-    type Item DescribeAddressesResponse = Address
-
-    fromList = DescribeAddressesResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _darAddresses
-
 -- | 'DescribeAddressesResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -149,10 +145,10 @@
 
 instance ToQuery DescribeAddresses where
     toQuery DescribeAddresses{..} = mconcat
-        [ "AllocationId" =? _daAllocationIds
+        [ toQuery       _daAllocationIds
         , "dryRun"       =? _daDryRun
-        , "Filter"       =? _daFilters
-        , "PublicIp"     =? _daPublicIps
+        , toQuery       _daFilters
+        , toQuery       _daPublicIps
         ]
 
 instance ToHeaders DescribeAddresses
@@ -166,4 +162,4 @@
 
 instance FromXML DescribeAddressesResponse where
     parseXML x = DescribeAddressesResponse
-        <$> x .@  "addressesSet"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes one or more of the Availability Zones that are available to you.
 -- The results include zones only for the region you're currently using. If
@@ -101,12 +103,6 @@
     { _dazrAvailabilityZones :: List "item" AvailabilityZone
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeAvailabilityZonesResponse where
-    type Item DescribeAvailabilityZonesResponse = AvailabilityZone
-
-    fromList = DescribeAvailabilityZonesResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _dazrAvailabilityZones
-
 -- | 'DescribeAvailabilityZonesResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -130,8 +126,8 @@
 instance ToQuery DescribeAvailabilityZones where
     toQuery DescribeAvailabilityZones{..} = mconcat
         [ "dryRun"   =? _dazDryRun
-        , "Filter"   =? _dazFilters
-        , "ZoneName" =? _dazZoneNames
+        , toQuery   _dazFilters
+        , toQuery   _dazZoneNames
         ]
 
 instance ToHeaders DescribeAvailabilityZones
@@ -145,4 +141,4 @@
 
 instance FromXML DescribeAvailabilityZonesResponse where
     parseXML x = DescribeAvailabilityZonesResponse
-        <$> x .@  "availabilityZoneInfo"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes one or more of your bundling tasks.
 --
@@ -111,12 +113,6 @@
     { _dbtrBundleTasks :: List "item" BundleTask
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeBundleTasksResponse where
-    type Item DescribeBundleTasksResponse = BundleTask
-
-    fromList = DescribeBundleTasksResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _dbtrBundleTasks
-
 -- | 'DescribeBundleTasksResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -137,9 +133,9 @@
 
 instance ToQuery DescribeBundleTasks where
     toQuery DescribeBundleTasks{..} = mconcat
-        [ "BundleId" =? _dbtBundleIds
+        [ toQuery   _dbtBundleIds
         , "dryRun"   =? _dbtDryRun
-        , "Filter"   =? _dbtFilters
+        , toQuery   _dbtFilters
         ]
 
 instance ToHeaders DescribeBundleTasks
@@ -153,4 +149,4 @@
 
 instance FromXML DescribeBundleTasksResponse where
     parseXML x = DescribeBundleTasksResponse
-        <$> x .@  "bundleInstanceTasksSet"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes one or more of your conversion tasks. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UploadingYourInstancesandVolumes.html Using the Command Line Tools to Import Your Virtual Machine to Amazon EC2> in the /Amazon Elastic Compute Cloud User Guide/.
 --
@@ -86,12 +88,6 @@
     { _dctrConversionTasks :: List "item" ConversionTask
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeConversionTasksResponse where
-    type Item DescribeConversionTasksResponse = ConversionTask
-
-    fromList = DescribeConversionTasksResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _dctrConversionTasks
-
 -- | 'DescribeConversionTasksResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -113,9 +109,9 @@
 
 instance ToQuery DescribeConversionTasks where
     toQuery DescribeConversionTasks{..} = mconcat
-        [ "conversionTaskId" =? _dctConversionTaskIds
+        [ toQuery           _dctConversionTaskIds
         , "dryRun"           =? _dctDryRun
-        , "filter"           =? _dctFilters
+        , toQuery           _dctFilters
         ]
 
 instance ToHeaders DescribeConversionTasks
@@ -129,4 +125,4 @@
 
 instance FromXML DescribeConversionTasksResponse where
     parseXML x = DescribeConversionTasksResponse
-        <$> x .@  "conversionTasks"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes one or more of your VPN customer gateways.
 --
@@ -119,12 +121,6 @@
     { _dcgrCustomerGateways :: List "item" CustomerGateway
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeCustomerGatewaysResponse where
-    type Item DescribeCustomerGatewaysResponse = CustomerGateway
-
-    fromList = DescribeCustomerGatewaysResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _dcgrCustomerGateways
-
 -- | 'DescribeCustomerGatewaysResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -147,9 +143,9 @@
 
 instance ToQuery DescribeCustomerGateways where
     toQuery DescribeCustomerGateways{..} = mconcat
-        [ "CustomerGatewayId" =? _dcgCustomerGatewayIds
+        [ toQuery            _dcgCustomerGatewayIds
         , "dryRun"            =? _dcgDryRun
-        , "Filter"            =? _dcgFilters
+        , toQuery            _dcgFilters
         ]
 
 instance ToHeaders DescribeCustomerGateways
@@ -163,4 +159,4 @@
 
 instance FromXML DescribeCustomerGatewaysResponse where
     parseXML x = DescribeCustomerGatewaysResponse
-        <$> x .@  "customerGatewaySet"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes one or more of your DHCP options sets.
 --
@@ -112,12 +114,6 @@
     { _ddorDhcpOptions :: List "item" DhcpOptions
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeDhcpOptionsResponse where
-    type Item DescribeDhcpOptionsResponse = DhcpOptions
-
-    fromList = DescribeDhcpOptionsResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _ddorDhcpOptions
-
 -- | 'DescribeDhcpOptionsResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -138,9 +134,9 @@
 
 instance ToQuery DescribeDhcpOptions where
     toQuery DescribeDhcpOptions{..} = mconcat
-        [ "DhcpOptionsId" =? _ddoDhcpOptionsIds
+        [ toQuery        _ddoDhcpOptionsIds
         , "dryRun"        =? _ddoDryRun
-        , "Filter"        =? _ddoFilters
+        , toQuery        _ddoFilters
         ]
 
 instance ToHeaders DescribeDhcpOptions
@@ -154,4 +150,4 @@
 
 instance FromXML DescribeDhcpOptionsResponse where
     parseXML x = DescribeDhcpOptionsResponse
-        <$> x .@  "dhcpOptionsSet"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes one or more of your export tasks.
 --
@@ -49,12 +51,6 @@
     { _detExportTaskIds :: List "ExportTaskId" Text
     } deriving (Eq, Ord, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeExportTasks where
-    type Item DescribeExportTasks = Text
-
-    fromList = DescribeExportTasks . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _detExportTaskIds
-
 -- | 'DescribeExportTasks' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -74,12 +70,6 @@
     { _detrExportTasks :: List "item" ExportTask
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeExportTasksResponse where
-    type Item DescribeExportTasksResponse = ExportTask
-
-    fromList = DescribeExportTasksResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _detrExportTasks
-
 -- | 'DescribeExportTasksResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -99,7 +89,7 @@
 
 instance ToQuery DescribeExportTasks where
     toQuery DescribeExportTasks{..} = mconcat
-        [ "exportTaskId" =? _detExportTaskIds
+        [ toQuery _detExportTaskIds
         ]
 
 instance ToHeaders DescribeExportTasks
@@ -113,4 +103,4 @@
 
 instance FromXML DescribeExportTasksResponse where
     parseXML x = DescribeExportTasksResponse
-        <$> x .@  "exportTaskSet"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes the specified attribute of the specified AMI. You can specify only
 -- one attribute at a time.
@@ -191,11 +193,11 @@
 
 instance FromXML DescribeImageAttributeResponse where
     parseXML x = DescribeImageAttributeResponse
-        <$> x .@  "blockDeviceMapping"
+        <$> parseXML x
         <*> x .@? "description"
         <*> x .@? "imageId"
         <*> x .@? "kernel"
-        <*> x .@  "launchPermission"
-        <*> x .@  "productCodes"
+        <*> parseXML x
+        <*> parseXML x
         <*> 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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes one or more of the images (AMIs, AKIs, and ARIs) available to you.
 -- Images available to you include public images, private images that you own,
@@ -187,12 +189,6 @@
     { _dirImages :: List "item" Image
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeImagesResponse where
-    type Item DescribeImagesResponse = Image
-
-    fromList = DescribeImagesResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _dirImages
-
 -- | 'DescribeImagesResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -214,10 +210,10 @@
 instance ToQuery DescribeImages where
     toQuery DescribeImages{..} = mconcat
         [ "dryRun"       =? _di2DryRun
-        , "ExecutableBy" =? _di2ExecutableUsers
-        , "Filter"       =? _di2Filters
-        , "ImageId"      =? _di2ImageIds
-        , "Owner"        =? _di2Owners
+        , toQuery       _di2ExecutableUsers
+        , toQuery       _di2Filters
+        , toQuery       _di2ImageIds
+        , toQuery       _di2Owners
         ]
 
 instance ToHeaders DescribeImages
@@ -231,4 +227,4 @@
 
 instance FromXML DescribeImagesResponse where
     parseXML x = DescribeImagesResponse
-        <$> x .@  "imagesSet"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes the specified attribute of the specified instance. You can specify
 -- only one attribute at a time. Valid attribute values are: 'instanceType' | 'kernel' | 'ramdisk' | 'userData' | 'disableApiTermination' | 'instanceInitiatedShutdownBehavior' | 'rootDeviceName' | 'blockDeviceMapping' | 'productCodes' | 'sourceDestCheck' | 'groupSet' | 'ebsOptimized' | 'sriovNetSupport'
@@ -258,15 +260,15 @@
 
 instance FromXML DescribeInstanceAttributeResponse where
     parseXML x = DescribeInstanceAttributeResponse
-        <$> x .@  "blockDeviceMapping"
+        <$> parseXML x
         <*> x .@? "disableApiTermination"
         <*> x .@? "ebsOptimized"
-        <*> x .@  "groupSet"
+        <*> parseXML x
         <*> x .@? "instanceId"
         <*> x .@? "instanceInitiatedShutdownBehavior"
         <*> x .@? "instanceType"
         <*> x .@? "kernel"
-        <*> x .@  "productCodes"
+        <*> parseXML x
         <*> 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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes the status of one or more instances, including any scheduled events.
 --
@@ -242,9 +244,9 @@
 instance ToQuery DescribeInstanceStatus where
     toQuery DescribeInstanceStatus{..} = mconcat
         [ "dryRun"              =? _disDryRun
-        , "Filter"              =? _disFilters
+        , toQuery              _disFilters
         , "includeAllInstances" =? _disIncludeAllInstances
-        , "InstanceId"          =? _disInstanceIds
+        , toQuery              _disInstanceIds
         , "MaxResults"          =? _disMaxResults
         , "NextToken"           =? _disNextToken
         ]
@@ -260,7 +262,7 @@
 
 instance FromXML DescribeInstanceStatusResponse where
     parseXML x = DescribeInstanceStatusResponse
-        <$> x .@  "instanceStatusSet"
+        <$> parseXML x
         <*> 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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes one or more of your instances.
 --
@@ -375,8 +377,8 @@
 instance ToQuery DescribeInstances where
     toQuery DescribeInstances{..} = mconcat
         [ "dryRun"     =? _di1DryRun
-        , "Filter"     =? _di1Filters
-        , "InstanceId" =? _di1InstanceIds
+        , toQuery     _di1Filters
+        , toQuery     _di1InstanceIds
         , "maxResults" =? _di1MaxResults
         , "nextToken"  =? _di1NextToken
         ]
@@ -393,7 +395,7 @@
 instance FromXML DescribeInstancesResponse where
     parseXML x = DescribeInstancesResponse
         <$> x .@? "nextToken"
-        <*> x .@  "reservationSet"
+        <*> parseXML x
 
 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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes one or more of your Internet gateways.
 --
@@ -111,12 +113,6 @@
     { _digrInternetGateways :: List "item" InternetGateway
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeInternetGatewaysResponse where
-    type Item DescribeInternetGatewaysResponse = InternetGateway
-
-    fromList = DescribeInternetGatewaysResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _digrInternetGateways
-
 -- | 'DescribeInternetGatewaysResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -140,8 +136,8 @@
 instance ToQuery DescribeInternetGateways where
     toQuery DescribeInternetGateways{..} = mconcat
         [ "dryRun"            =? _dig1DryRun
-        , "Filter"            =? _dig1Filters
-        , "internetGatewayId" =? _dig1InternetGatewayIds
+        , toQuery            _dig1Filters
+        , toQuery            _dig1InternetGatewayIds
         ]
 
 instance ToHeaders DescribeInternetGateways
@@ -155,4 +151,4 @@
 
 instance FromXML DescribeInternetGatewaysResponse where
     parseXML x = DescribeInternetGatewaysResponse
-        <$> x .@  "internetGatewaySet"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes one or more of your key pairs.
 --
@@ -95,12 +97,6 @@
     { _dkprKeyPairs :: List "item" KeyPairInfo
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeKeyPairsResponse where
-    type Item DescribeKeyPairsResponse = KeyPairInfo
-
-    fromList = DescribeKeyPairsResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _dkprKeyPairs
-
 -- | 'DescribeKeyPairsResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -122,8 +118,8 @@
 instance ToQuery DescribeKeyPairs where
     toQuery DescribeKeyPairs{..} = mconcat
         [ "dryRun"  =? _dkp1DryRun
-        , "Filter"  =? _dkp1Filters
-        , "KeyName" =? _dkp1KeyNames
+        , toQuery  _dkp1Filters
+        , toQuery  _dkp1KeyNames
         ]
 
 instance ToHeaders DescribeKeyPairs
@@ -137,4 +133,4 @@
 
 instance FromXML DescribeKeyPairsResponse where
     parseXML x = DescribeKeyPairsResponse
-        <$> x .@  "keySet"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes one or more of your network ACLs.
 --
@@ -140,12 +142,6 @@
     { _dnarNetworkAcls :: List "item" NetworkAcl
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeNetworkAclsResponse where
-    type Item DescribeNetworkAclsResponse = NetworkAcl
-
-    fromList = DescribeNetworkAclsResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _dnarNetworkAcls
-
 -- | 'DescribeNetworkAclsResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -167,8 +163,8 @@
 instance ToQuery DescribeNetworkAcls where
     toQuery DescribeNetworkAcls{..} = mconcat
         [ "dryRun"       =? _dna1DryRun
-        , "Filter"       =? _dna1Filters
-        , "NetworkAclId" =? _dna1NetworkAclIds
+        , toQuery       _dna1Filters
+        , toQuery       _dna1NetworkAclIds
         ]
 
 instance ToHeaders DescribeNetworkAcls
@@ -182,4 +178,4 @@
 
 instance FromXML DescribeNetworkAclsResponse where
     parseXML x = DescribeNetworkAclsResponse
-        <$> x .@  "networkAclSet"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes a network interface attribute. You can specify only one attribute
 -- at a time.
@@ -164,6 +166,6 @@
     parseXML x = DescribeNetworkInterfaceAttributeResponse
         <$> x .@? "attachment"
         <*> x .@? "description"
-        <*> x .@  "groupSet"
+        <*> parseXML x
         <*> 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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes one or more of your network interfaces.
 --
@@ -190,12 +192,6 @@
     { _dnirNetworkInterfaces :: List "item" NetworkInterface
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeNetworkInterfacesResponse where
-    type Item DescribeNetworkInterfacesResponse = NetworkInterface
-
-    fromList = DescribeNetworkInterfacesResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _dnirNetworkInterfaces
-
 -- | 'DescribeNetworkInterfacesResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -219,8 +215,8 @@
 instance ToQuery DescribeNetworkInterfaces where
     toQuery DescribeNetworkInterfaces{..} = mconcat
         [ "dryRun"             =? _dni1DryRun
-        , "filter"             =? _dni1Filters
-        , "NetworkInterfaceId" =? _dni1NetworkInterfaceIds
+        , toQuery             _dni1Filters
+        , toQuery             _dni1NetworkInterfaceIds
         ]
 
 instance ToHeaders DescribeNetworkInterfaces
@@ -234,4 +230,4 @@
 
 instance FromXML DescribeNetworkInterfacesResponse where
     parseXML x = DescribeNetworkInterfacesResponse
-        <$> x .@  "networkInterfaceSet"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes one or more of your placement groups. For more information about
 -- placement groups and cluster instances, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using_cluster_computing.html Cluster Instances> in the /AmazonElastic Compute Cloud User Guide/.
@@ -97,12 +99,6 @@
     { _dpgrPlacementGroups :: List "item" PlacementGroup
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribePlacementGroupsResponse where
-    type Item DescribePlacementGroupsResponse = PlacementGroup
-
-    fromList = DescribePlacementGroupsResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _dpgrPlacementGroups
-
 -- | 'DescribePlacementGroupsResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -126,8 +122,8 @@
 instance ToQuery DescribePlacementGroups where
     toQuery DescribePlacementGroups{..} = mconcat
         [ "dryRun"    =? _dpg1DryRun
-        , "Filter"    =? _dpg1Filters
-        , "groupName" =? _dpg1GroupNames
+        , toQuery    _dpg1Filters
+        , toQuery    _dpg1GroupNames
         ]
 
 instance ToHeaders DescribePlacementGroups
@@ -141,4 +137,4 @@
 
 instance FromXML DescribePlacementGroupsResponse where
     parseXML x = DescribePlacementGroupsResponse
-        <$> x .@  "placementGroupSet"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes one or more regions that are currently available to you.
 --
@@ -93,12 +95,6 @@
     { _drrRegions :: List "item" Region
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeRegionsResponse where
-    type Item DescribeRegionsResponse = Region
-
-    fromList = DescribeRegionsResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _drrRegions
-
 -- | 'DescribeRegionsResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -120,8 +116,8 @@
 instance ToQuery DescribeRegions where
     toQuery DescribeRegions{..} = mconcat
         [ "dryRun"     =? _dr1DryRun
-        , "Filter"     =? _dr1Filters
-        , "RegionName" =? _dr1RegionNames
+        , toQuery     _dr1Filters
+        , toQuery     _dr1RegionNames
         ]
 
 instance ToHeaders DescribeRegions
@@ -135,4 +131,4 @@
 
 instance FromXML DescribeRegionsResponse where
     parseXML x = DescribeRegionsResponse
-        <$> x .@  "regionInfo"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes one or more of the Reserved Instances that you purchased.
 --
@@ -145,12 +147,6 @@
     { _drirReservedInstances :: List "item" ReservedInstances
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeReservedInstancesResponse where
-    type Item DescribeReservedInstancesResponse = ReservedInstances
-
-    fromList = DescribeReservedInstancesResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _drirReservedInstances
-
 -- | 'DescribeReservedInstancesResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -174,9 +170,9 @@
 instance ToQuery DescribeReservedInstances where
     toQuery DescribeReservedInstances{..} = mconcat
         [ "dryRun"              =? _driDryRun
-        , "Filter"              =? _driFilters
+        , toQuery              _driFilters
         , "offeringType"        =? _driOfferingType
-        , "ReservedInstancesId" =? _driReservedInstancesIds
+        , toQuery              _driReservedInstancesIds
         ]
 
 instance ToHeaders DescribeReservedInstances
@@ -190,4 +186,4 @@
 
 instance FromXML DescribeReservedInstancesResponse where
     parseXML x = DescribeReservedInstancesResponse
-        <$> x .@  "reservedInstancesSet"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes your account's Reserved Instance listings in the Reserved Instance
 -- Marketplace.
@@ -119,12 +121,6 @@
     { _drilrReservedInstancesListings :: List "item" ReservedInstancesListing
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeReservedInstancesListingsResponse where
-    type Item DescribeReservedInstancesListingsResponse = ReservedInstancesListing
-
-    fromList = DescribeReservedInstancesListingsResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _drilrReservedInstancesListings
-
 -- | 'DescribeReservedInstancesListingsResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -148,7 +144,7 @@
 
 instance ToQuery DescribeReservedInstancesListings where
     toQuery DescribeReservedInstancesListings{..} = mconcat
-        [ "filters"                    =? _drilFilters
+        [ toQuery                     _drilFilters
         , "reservedInstancesId"        =? _drilReservedInstancesId
         , "reservedInstancesListingId" =? _drilReservedInstancesListingId
         ]
@@ -164,4 +160,4 @@
 
 instance FromXML DescribeReservedInstancesListingsResponse where
     parseXML x = DescribeReservedInstancesListingsResponse
-        <$> x .@  "reservedInstancesListingsSet"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes the modifications made to your Reserved Instances. If no parameter
 -- is specified, information about all your Reserved Instances modification
@@ -161,9 +163,9 @@
 
 instance ToQuery DescribeReservedInstancesModifications where
     toQuery DescribeReservedInstancesModifications{..} = mconcat
-        [ "Filter"                          =? _drimFilters
+        [ toQuery                          _drimFilters
         , "nextToken"                       =? _drimNextToken
-        , "ReservedInstancesModificationId" =? _drimReservedInstancesModificationIds
+        , toQuery                          _drimReservedInstancesModificationIds
         ]
 
 instance ToHeaders DescribeReservedInstancesModifications
@@ -178,7 +180,7 @@
 instance FromXML DescribeReservedInstancesModificationsResponse where
     parseXML x = DescribeReservedInstancesModificationsResponse
         <$> x .@? "nextToken"
-        <*> x .@  "reservedInstancesModificationsSet"
+        <*> parseXML x
 
 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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes Reserved Instance offerings that are available for purchase. With
 -- Reserved Instances, you purchase the right to launch instances for a period
@@ -273,7 +275,7 @@
     toQuery DescribeReservedInstancesOfferings{..} = mconcat
         [ "AvailabilityZone"            =? _drioAvailabilityZone
         , "dryRun"                      =? _drioDryRun
-        , "Filter"                      =? _drioFilters
+        , toQuery                      _drioFilters
         , "IncludeMarketplace"          =? _drioIncludeMarketplace
         , "instanceTenancy"             =? _drioInstanceTenancy
         , "InstanceType"                =? _drioInstanceType
@@ -284,7 +286,7 @@
         , "nextToken"                   =? _drioNextToken
         , "offeringType"                =? _drioOfferingType
         , "ProductDescription"          =? _drioProductDescription
-        , "ReservedInstancesOfferingId" =? _drioReservedInstancesOfferingIds
+        , toQuery                      _drioReservedInstancesOfferingIds
         ]
 
 instance ToHeaders DescribeReservedInstancesOfferings
@@ -299,7 +301,7 @@
 instance FromXML DescribeReservedInstancesOfferingsResponse where
     parseXML x = DescribeReservedInstancesOfferingsResponse
         <$> x .@? "nextToken"
-        <*> x .@  "reservedInstancesOfferingsSet"
+        <*> parseXML x
 
 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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes one or more of your route tables.
 --
@@ -141,12 +143,6 @@
     { _drtrRouteTables :: List "item" RouteTable
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeRouteTablesResponse where
-    type Item DescribeRouteTablesResponse = RouteTable
-
-    fromList = DescribeRouteTablesResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _drtrRouteTables
-
 -- | 'DescribeRouteTablesResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -168,8 +164,8 @@
 instance ToQuery DescribeRouteTables where
     toQuery DescribeRouteTables{..} = mconcat
         [ "dryRun"       =? _drt2DryRun
-        , "Filter"       =? _drt2Filters
-        , "RouteTableId" =? _drt2RouteTableIds
+        , toQuery       _drt2Filters
+        , toQuery       _drt2RouteTableIds
         ]
 
 instance ToHeaders DescribeRouteTables
@@ -183,4 +179,4 @@
 
 instance FromXML DescribeRouteTablesResponse where
     parseXML x = DescribeRouteTablesResponse
-        <$> x .@  "routeTableSet"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes one or more of your security groups.
 --
@@ -137,12 +139,6 @@
     { _dsgrSecurityGroups :: List "item" SecurityGroup
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeSecurityGroupsResponse where
-    type Item DescribeSecurityGroupsResponse = SecurityGroup
-
-    fromList = DescribeSecurityGroupsResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _dsgrSecurityGroups
-
 -- | 'DescribeSecurityGroupsResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -166,9 +162,9 @@
 instance ToQuery DescribeSecurityGroups where
     toQuery DescribeSecurityGroups{..} = mconcat
         [ "dryRun"    =? _dsg1DryRun
-        , "Filter"    =? _dsg1Filters
-        , "GroupId"   =? _dsg1GroupIds
-        , "GroupName" =? _dsg1GroupNames
+        , toQuery    _dsg1Filters
+        , toQuery    _dsg1GroupIds
+        , toQuery    _dsg1GroupNames
         ]
 
 instance ToHeaders DescribeSecurityGroups
@@ -182,4 +178,4 @@
 
 instance FromXML DescribeSecurityGroupsResponse where
     parseXML x = DescribeSecurityGroupsResponse
-        <$> x .@  "securityGroupInfo"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes the specified attribute of the specified snapshot. You can specify
 -- only one attribute at a time.
@@ -148,6 +150,6 @@
 
 instance FromXML DescribeSnapshotAttributeResponse where
     parseXML x = DescribeSnapshotAttributeResponse
-        <$> x .@  "createVolumePermission"
-        <*> x .@  "productCodes"
+        <$> parseXML x
+        <*> parseXML x
         <*> 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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes one or more of the Amazon EBS snapshots available to you. Available
 -- snapshots include public snapshots available for any AWS account to launch,
@@ -173,12 +175,6 @@
     { _dsrSnapshots :: List "item" Snapshot
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeSnapshotsResponse where
-    type Item DescribeSnapshotsResponse = Snapshot
-
-    fromList = DescribeSnapshotsResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _dsrSnapshots
-
 -- | 'DescribeSnapshotsResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -199,10 +195,10 @@
 instance ToQuery DescribeSnapshots where
     toQuery DescribeSnapshots{..} = mconcat
         [ "dryRun"       =? _ds1DryRun
-        , "Filter"       =? _ds1Filters
-        , "Owner"        =? _ds1OwnerIds
-        , "RestorableBy" =? _ds1RestorableByUserIds
-        , "SnapshotId"   =? _ds1SnapshotIds
+        , toQuery       _ds1Filters
+        , toQuery       _ds1OwnerIds
+        , toQuery       _ds1RestorableByUserIds
+        , toQuery       _ds1SnapshotIds
         ]
 
 instance ToHeaders DescribeSnapshots
@@ -216,4 +212,4 @@
 
 instance FromXML DescribeSnapshotsResponse where
     parseXML x = DescribeSnapshotsResponse
-        <$> x .@  "snapshotSet"
+        <$> parseXML x
diff --git a/gen/Network/AWS/EC2/DescribeSpotDatafeedSubscription.hs b/gen/Network/AWS/EC2/DescribeSpotDatafeedSubscription.hs
--- a/gen/Network/AWS/EC2/DescribeSpotDatafeedSubscription.hs
+++ b/gen/Network/AWS/EC2/DescribeSpotDatafeedSubscription.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes the datafeed for Spot Instances. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html SpotInstances> in the /Amazon Elastic Compute Cloud User Guide/.
 --
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes the Spot Instance requests that belong to your account. Spot
 -- Instances are instances that Amazon EC2 starts on your behalf when the
@@ -206,12 +208,6 @@
     { _dsirrSpotInstanceRequests :: List "item" SpotInstanceRequest
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeSpotInstanceRequestsResponse where
-    type Item DescribeSpotInstanceRequestsResponse = SpotInstanceRequest
-
-    fromList = DescribeSpotInstanceRequestsResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _dsirrSpotInstanceRequests
-
 -- | 'DescribeSpotInstanceRequestsResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -236,8 +232,8 @@
 instance ToQuery DescribeSpotInstanceRequests where
     toQuery DescribeSpotInstanceRequests{..} = mconcat
         [ "dryRun"                =? _dsirDryRun
-        , "Filter"                =? _dsirFilters
-        , "SpotInstanceRequestId" =? _dsirSpotInstanceRequestIds
+        , toQuery                _dsirFilters
+        , toQuery                _dsirSpotInstanceRequestIds
         ]
 
 instance ToHeaders DescribeSpotInstanceRequests
@@ -251,4 +247,4 @@
 
 instance FromXML DescribeSpotInstanceRequestsResponse where
     parseXML x = DescribeSpotInstanceRequestsResponse
-        <$> x .@  "spotInstanceRequestSet"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes the Spot Price history. Spot Instances are instances that Amazon
 -- EC2 starts on your behalf when the maximum price that you specify exceeds the
@@ -214,11 +216,11 @@
         [ "availabilityZone"   =? _dsphAvailabilityZone
         , "dryRun"             =? _dsphDryRun
         , "endTime"            =? _dsphEndTime
-        , "Filter"             =? _dsphFilters
-        , "InstanceType"       =? _dsphInstanceTypes
+        , toQuery             _dsphFilters
+        , toQuery             _dsphInstanceTypes
         , "maxResults"         =? _dsphMaxResults
         , "nextToken"          =? _dsphNextToken
-        , "ProductDescription" =? _dsphProductDescriptions
+        , toQuery             _dsphProductDescriptions
         , "startTime"          =? _dsphStartTime
         ]
 
@@ -234,7 +236,7 @@
 instance FromXML DescribeSpotPriceHistoryResponse where
     parseXML x = DescribeSpotPriceHistoryResponse
         <$> x .@? "nextToken"
-        <*> x .@  "spotPriceHistorySet"
+        <*> parseXML x
 
 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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes one or more of your subnets.
 --
@@ -122,12 +124,6 @@
     { _dsrSubnets :: List "item" Subnet
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeSubnetsResponse where
-    type Item DescribeSubnetsResponse = Subnet
-
-    fromList = DescribeSubnetsResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _dsrSubnets
-
 -- | 'DescribeSubnetsResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -149,8 +145,8 @@
 instance ToQuery DescribeSubnets where
     toQuery DescribeSubnets{..} = mconcat
         [ "dryRun"   =? _dsDryRun
-        , "Filter"   =? _dsFilters
-        , "SubnetId" =? _dsSubnetIds
+        , toQuery   _dsFilters
+        , toQuery   _dsSubnetIds
         ]
 
 instance ToHeaders DescribeSubnets
@@ -164,4 +160,4 @@
 
 instance FromXML DescribeSubnetsResponse where
     parseXML x = DescribeSubnetsResponse
-        <$> x .@  "subnetSet"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes one or more of the tags for your EC2 resources.
 --
@@ -142,7 +144,7 @@
 instance ToQuery DescribeTags where
     toQuery DescribeTags{..} = mconcat
         [ "dryRun"     =? _dtDryRun
-        , "Filter"     =? _dtFilters
+        , toQuery     _dtFilters
         , "maxResults" =? _dtMaxResults
         , "nextToken"  =? _dtNextToken
         ]
@@ -159,7 +161,7 @@
 instance FromXML DescribeTagsResponse where
     parseXML x = DescribeTagsResponse
         <$> x .@? "nextToken"
-        <*> x .@  "tagSet"
+        <*> parseXML x
 
 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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes the specified attribute of the specified volume. You can specify
 -- only one attribute at a time.
@@ -144,5 +146,5 @@
 instance FromXML DescribeVolumeAttributeResponse where
     parseXML x = DescribeVolumeAttributeResponse
         <$> x .@? "autoEnableIO"
-        <*> x .@  "productCodes"
+        <*> parseXML x
         <*> 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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes the status of the specified volumes. Volume status provides the
 -- result of the checks performed on your volumes to determine events that can
@@ -197,10 +199,10 @@
 instance ToQuery DescribeVolumeStatus where
     toQuery DescribeVolumeStatus{..} = mconcat
         [ "dryRun"     =? _dvsDryRun
-        , "Filter"     =? _dvsFilters
+        , toQuery     _dvsFilters
         , "MaxResults" =? _dvsMaxResults
         , "NextToken"  =? _dvsNextToken
-        , "VolumeId"   =? _dvsVolumeIds
+        , toQuery     _dvsVolumeIds
         ]
 
 instance ToHeaders DescribeVolumeStatus
@@ -215,7 +217,7 @@
 instance FromXML DescribeVolumeStatusResponse where
     parseXML x = DescribeVolumeStatusResponse
         <$> x .@? "nextToken"
-        <*> x .@  "volumeStatusSet"
+        <*> parseXML x
 
 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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes the specified Amazon EBS volumes.
 --
@@ -200,10 +202,10 @@
 instance ToQuery DescribeVolumes where
     toQuery DescribeVolumes{..} = mconcat
         [ "dryRun"     =? _dv2DryRun
-        , "Filter"     =? _dv2Filters
+        , toQuery     _dv2Filters
         , "maxResults" =? _dv2MaxResults
         , "nextToken"  =? _dv2NextToken
-        , "VolumeId"   =? _dv2VolumeIds
+        , toQuery     _dv2VolumeIds
         ]
 
 instance ToHeaders DescribeVolumes
@@ -218,4 +220,4 @@
 instance FromXML DescribeVolumesResponse where
     parseXML x = DescribeVolumesResponse
         <$> x .@? "nextToken"
-        <*> x .@  "volumeSet"
+        <*> parseXML x
diff --git a/gen/Network/AWS/EC2/DescribeVpcAttribute.hs b/gen/Network/AWS/EC2/DescribeVpcAttribute.hs
--- a/gen/Network/AWS/EC2/DescribeVpcAttribute.hs
+++ b/gen/Network/AWS/EC2/DescribeVpcAttribute.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes the specified attribute of the specified VPC. You can specify only
 -- one attribute at a time.
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes one or more of your VPC peering connections.
 --
@@ -130,12 +132,6 @@
     { _dvpcrVpcPeeringConnections :: List "item" VpcPeeringConnection
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeVpcPeeringConnectionsResponse where
-    type Item DescribeVpcPeeringConnectionsResponse = VpcPeeringConnection
-
-    fromList = DescribeVpcPeeringConnectionsResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _dvpcrVpcPeeringConnections
-
 -- | 'DescribeVpcPeeringConnectionsResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -160,8 +156,8 @@
 instance ToQuery DescribeVpcPeeringConnections where
     toQuery DescribeVpcPeeringConnections{..} = mconcat
         [ "dryRun"                 =? _dvpc1DryRun
-        , "Filter"                 =? _dvpc1Filters
-        , "VpcPeeringConnectionId" =? _dvpc1VpcPeeringConnectionIds
+        , toQuery                 _dvpc1Filters
+        , toQuery                 _dvpc1VpcPeeringConnectionIds
         ]
 
 instance ToHeaders DescribeVpcPeeringConnections
@@ -175,4 +171,4 @@
 
 instance FromXML DescribeVpcPeeringConnectionsResponse where
     parseXML x = DescribeVpcPeeringConnectionsResponse
-        <$> x .@  "vpcPeeringConnectionSet"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes one or more of your VPCs.
 --
@@ -114,12 +116,6 @@
     { _dvrVpcs :: List "item" Vpc
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeVpcsResponse where
-    type Item DescribeVpcsResponse = Vpc
-
-    fromList = DescribeVpcsResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _dvrVpcs
-
 -- | 'DescribeVpcsResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -141,8 +137,8 @@
 instance ToQuery DescribeVpcs where
     toQuery DescribeVpcs{..} = mconcat
         [ "dryRun" =? _dv1DryRun
-        , "Filter" =? _dv1Filters
-        , "VpcId"  =? _dv1VpcIds
+        , toQuery _dv1Filters
+        , toQuery _dv1VpcIds
         ]
 
 instance ToHeaders DescribeVpcs
@@ -156,4 +152,4 @@
 
 instance FromXML DescribeVpcsResponse where
     parseXML x = DescribeVpcsResponse
-        <$> x .@  "vpcSet"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes one or more of your VPN connections.
 --
@@ -131,12 +133,6 @@
     { _dvcrVpnConnections :: List "item" VpnConnection
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeVpnConnectionsResponse where
-    type Item DescribeVpnConnectionsResponse = VpnConnection
-
-    fromList = DescribeVpnConnectionsResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _dvcrVpnConnections
-
 -- | 'DescribeVpnConnectionsResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -160,8 +156,8 @@
 instance ToQuery DescribeVpnConnections where
     toQuery DescribeVpnConnections{..} = mconcat
         [ "dryRun"          =? _dvc1DryRun
-        , "Filter"          =? _dvc1Filters
-        , "VpnConnectionId" =? _dvc1VpnConnectionIds
+        , toQuery          _dvc1Filters
+        , toQuery          _dvc1VpnConnectionIds
         ]
 
 instance ToHeaders DescribeVpnConnections
@@ -175,4 +171,4 @@
 
 instance FromXML DescribeVpnConnectionsResponse where
     parseXML x = DescribeVpnConnectionsResponse
-        <$> x .@  "vpnConnectionSet"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Describes one or more of your virtual private gateways.
 --
@@ -120,12 +122,6 @@
     { _dvgrVpnGateways :: List "item" VpnGateway
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList DescribeVpnGatewaysResponse where
-    type Item DescribeVpnGatewaysResponse = VpnGateway
-
-    fromList = DescribeVpnGatewaysResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _dvgrVpnGateways
-
 -- | 'DescribeVpnGatewaysResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -147,8 +143,8 @@
 instance ToQuery DescribeVpnGateways where
     toQuery DescribeVpnGateways{..} = mconcat
         [ "dryRun"       =? _dvg2DryRun
-        , "Filter"       =? _dvg2Filters
-        , "VpnGatewayId" =? _dvg2VpnGatewayIds
+        , toQuery       _dvg2Filters
+        , toQuery       _dvg2VpnGatewayIds
         ]
 
 instance ToHeaders DescribeVpnGateways
@@ -162,4 +158,4 @@
 
 instance FromXML DescribeVpnGatewaysResponse where
     parseXML x = DescribeVpnGatewaysResponse
-        <$> x .@  "vpnGatewaySet"
+        <$> parseXML x
diff --git a/gen/Network/AWS/EC2/DetachInternetGateway.hs b/gen/Network/AWS/EC2/DetachInternetGateway.hs
--- a/gen/Network/AWS/EC2/DetachInternetGateway.hs
+++ b/gen/Network/AWS/EC2/DetachInternetGateway.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Detaches an Internet gateway from a VPC, disabling connectivity between the
 -- Internet and the VPC. The VPC must not contain any running instances with
diff --git a/gen/Network/AWS/EC2/DetachNetworkInterface.hs b/gen/Network/AWS/EC2/DetachNetworkInterface.hs
--- a/gen/Network/AWS/EC2/DetachNetworkInterface.hs
+++ b/gen/Network/AWS/EC2/DetachNetworkInterface.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Detaches a network interface from an instance.
 --
diff --git a/gen/Network/AWS/EC2/DetachVolume.hs b/gen/Network/AWS/EC2/DetachVolume.hs
--- a/gen/Network/AWS/EC2/DetachVolume.hs
+++ b/gen/Network/AWS/EC2/DetachVolume.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Detaches an Amazon EBS volume from an instance. Make sure to unmount any file
 -- systems on the device within your operating system before detaching the
diff --git a/gen/Network/AWS/EC2/DetachVpnGateway.hs b/gen/Network/AWS/EC2/DetachVpnGateway.hs
--- a/gen/Network/AWS/EC2/DetachVpnGateway.hs
+++ b/gen/Network/AWS/EC2/DetachVpnGateway.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Detaches a virtual private gateway from a VPC. You do this if you're planning
 -- to turn off the VPC and not use it anymore. You can confirm a virtual private
diff --git a/gen/Network/AWS/EC2/DisableVgwRoutePropagation.hs b/gen/Network/AWS/EC2/DisableVgwRoutePropagation.hs
--- a/gen/Network/AWS/EC2/DisableVgwRoutePropagation.hs
+++ b/gen/Network/AWS/EC2/DisableVgwRoutePropagation.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Disables a virtual private gateway (VGW) from propagating routes to a
 -- specified route table of a VPC.
diff --git a/gen/Network/AWS/EC2/DisassociateAddress.hs b/gen/Network/AWS/EC2/DisassociateAddress.hs
--- a/gen/Network/AWS/EC2/DisassociateAddress.hs
+++ b/gen/Network/AWS/EC2/DisassociateAddress.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Disassociates an Elastic IP address from the instance or network interface
 -- it's associated with.
diff --git a/gen/Network/AWS/EC2/DisassociateRouteTable.hs b/gen/Network/AWS/EC2/DisassociateRouteTable.hs
--- a/gen/Network/AWS/EC2/DisassociateRouteTable.hs
+++ b/gen/Network/AWS/EC2/DisassociateRouteTable.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Disassociates a subnet from a route table.
 --
diff --git a/gen/Network/AWS/EC2/EnableVgwRoutePropagation.hs b/gen/Network/AWS/EC2/EnableVgwRoutePropagation.hs
--- a/gen/Network/AWS/EC2/EnableVgwRoutePropagation.hs
+++ b/gen/Network/AWS/EC2/EnableVgwRoutePropagation.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Enables a virtual private gateway (VGW) to propagate routes to the specified
 -- route table of a VPC.
diff --git a/gen/Network/AWS/EC2/EnableVolumeIO.hs b/gen/Network/AWS/EC2/EnableVolumeIO.hs
--- a/gen/Network/AWS/EC2/EnableVolumeIO.hs
+++ b/gen/Network/AWS/EC2/EnableVolumeIO.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Enables I/O operations for a volume that had I/O operations disabled because
 -- the data on the volume was potentially inconsistent.
diff --git a/gen/Network/AWS/EC2/GetConsoleOutput.hs b/gen/Network/AWS/EC2/GetConsoleOutput.hs
--- a/gen/Network/AWS/EC2/GetConsoleOutput.hs
+++ b/gen/Network/AWS/EC2/GetConsoleOutput.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Gets the console output for the specified instance.
 --
diff --git a/gen/Network/AWS/EC2/GetPasswordData.hs b/gen/Network/AWS/EC2/GetPasswordData.hs
--- a/gen/Network/AWS/EC2/GetPasswordData.hs
+++ b/gen/Network/AWS/EC2/GetPasswordData.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Retrieves the encrypted administrator password for an instance running
 -- Windows.
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Creates an import instance task using metadata from the specified disk image.
 -- After importing the image, you then upload it using the ec2-import-volume
@@ -129,7 +131,7 @@
 instance ToQuery ImportInstance where
     toQuery ImportInstance{..} = mconcat
         [ "description"         =? _iiDescription
-        , "diskImage"           =? _iiDiskImages
+        , toQuery              _iiDiskImages
         , "dryRun"              =? _iiDryRun
         , "launchSpecification" =? _iiLaunchSpecification
         , "platform"            =? _iiPlatform
diff --git a/gen/Network/AWS/EC2/ImportKeyPair.hs b/gen/Network/AWS/EC2/ImportKeyPair.hs
--- a/gen/Network/AWS/EC2/ImportKeyPair.hs
+++ b/gen/Network/AWS/EC2/ImportKeyPair.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Imports the public key from an RSA key pair that you created with a
 -- third-party tool. Compare this with 'CreateKeyPair', in which AWS creates the
diff --git a/gen/Network/AWS/EC2/ImportVolume.hs b/gen/Network/AWS/EC2/ImportVolume.hs
--- a/gen/Network/AWS/EC2/ImportVolume.hs
+++ b/gen/Network/AWS/EC2/ImportVolume.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Creates an import volume task using metadata from the specified disk image.
 -- After importing the image, you then upload it using the ec2-import-volume
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Modifies the specified attribute of the specified AMI. You can specify only
 -- one attribute at a time.
@@ -165,9 +167,9 @@
         , "ImageId"          =? _miaImageId
         , "LaunchPermission" =? _miaLaunchPermission
         , "OperationType"    =? _miaOperationType
-        , "ProductCode"      =? _miaProductCodes
-        , "UserGroup"        =? _miaUserGroups
-        , "UserId"           =? _miaUserIds
+        , toQuery           _miaProductCodes
+        , toQuery           _miaUserGroups
+        , toQuery           _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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Modifies the specified attribute of the specified instance. You can specify
 -- only one attribute at a time.
@@ -239,11 +241,11 @@
 instance ToQuery ModifyInstanceAttribute where
     toQuery ModifyInstanceAttribute{..} = mconcat
         [ "attribute"                         =? _mia1Attribute
-        , "blockDeviceMapping"                =? _mia1BlockDeviceMappings
+        , toQuery                            _mia1BlockDeviceMappings
         , "disableApiTermination"             =? _mia1DisableApiTermination
         , "dryRun"                            =? _mia1DryRun
         , "ebsOptimized"                      =? _mia1EbsOptimized
-        , "GroupId"                           =? _mia1Groups
+        , toQuery                            _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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Modifies the specified network interface attribute. You can specify only one
 -- attribute at a time.
@@ -131,7 +133,7 @@
         [ "attachment"         =? _mniaAttachment
         , "description"        =? _mniaDescription
         , "dryRun"             =? _mniaDryRun
-        , "SecurityGroupId"    =? _mniaGroups
+        , toQuery             _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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Modifies the Availability Zone, instance count, instance type, or network
 -- platform (EC2-Classic or EC2-VPC) of your Reserved Instances. The Reserved
@@ -120,8 +122,8 @@
 instance ToQuery ModifyReservedInstances where
     toQuery ModifyReservedInstances{..} = mconcat
         [ "clientToken"                               =? _mriClientToken
-        , "ReservedInstancesId"                       =? _mriReservedInstancesIds
-        , "ReservedInstancesConfigurationSetItemType" =? _mriTargetConfigurations
+        , toQuery                                    _mriReservedInstancesIds
+        , toQuery                                    _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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Adds or removes permission settings for the specified snapshot. You may add
 -- or remove specified AWS account IDs from a snapshot's list of create volume
@@ -139,10 +141,10 @@
         [ "Attribute"              =? _msaAttribute
         , "CreateVolumePermission" =? _msaCreateVolumePermission
         , "dryRun"                 =? _msaDryRun
-        , "UserGroup"              =? _msaGroupNames
+        , toQuery                 _msaGroupNames
         , "OperationType"          =? _msaOperationType
         , "SnapshotId"             =? _msaSnapshotId
-        , "UserId"                 =? _msaUserIds
+        , toQuery                 _msaUserIds
         ]
 
 instance ToHeaders ModifySnapshotAttribute
diff --git a/gen/Network/AWS/EC2/ModifySubnetAttribute.hs b/gen/Network/AWS/EC2/ModifySubnetAttribute.hs
--- a/gen/Network/AWS/EC2/ModifySubnetAttribute.hs
+++ b/gen/Network/AWS/EC2/ModifySubnetAttribute.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Modifies a subnet attribute.
 --
diff --git a/gen/Network/AWS/EC2/ModifyVolumeAttribute.hs b/gen/Network/AWS/EC2/ModifyVolumeAttribute.hs
--- a/gen/Network/AWS/EC2/ModifyVolumeAttribute.hs
+++ b/gen/Network/AWS/EC2/ModifyVolumeAttribute.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Modifies a volume attribute.
 --
diff --git a/gen/Network/AWS/EC2/ModifyVpcAttribute.hs b/gen/Network/AWS/EC2/ModifyVpcAttribute.hs
--- a/gen/Network/AWS/EC2/ModifyVpcAttribute.hs
+++ b/gen/Network/AWS/EC2/ModifyVpcAttribute.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Modifies the specified attribute of the specified VPC.
 --
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Enables monitoring for a running instance. For more information about
 -- monitoring instances, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch.html Monitoring Your Instances and Volumes> in the /AmazonElastic Compute Cloud User Guide/.
@@ -77,12 +79,6 @@
     { _mirInstanceMonitorings :: List "item" InstanceMonitoring
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList MonitorInstancesResponse where
-    type Item MonitorInstancesResponse = InstanceMonitoring
-
-    fromList = MonitorInstancesResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _mirInstanceMonitorings
-
 -- | 'MonitorInstancesResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -106,7 +102,7 @@
 instance ToQuery MonitorInstances where
     toQuery MonitorInstances{..} = mconcat
         [ "dryRun"     =? _miDryRun
-        , "InstanceId" =? _miInstanceIds
+        , toQuery     _miInstanceIds
         ]
 
 instance ToHeaders MonitorInstances
@@ -120,4 +116,4 @@
 
 instance FromXML MonitorInstancesResponse where
     parseXML x = MonitorInstancesResponse
-        <$> x .@  "instancesSet"
+        <$> parseXML x
diff --git a/gen/Network/AWS/EC2/PurchaseReservedInstancesOffering.hs b/gen/Network/AWS/EC2/PurchaseReservedInstancesOffering.hs
--- a/gen/Network/AWS/EC2/PurchaseReservedInstancesOffering.hs
+++ b/gen/Network/AWS/EC2/PurchaseReservedInstancesOffering.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Purchases a Reserved Instance for use with your account. With Amazon EC2
 -- Reserved Instances, you obtain a capacity reservation for a certain instance
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Requests a reboot of one or more instances. This operation is asynchronous;
 -- it only queues a request to reboot the specified instances. The operation
@@ -91,7 +93,7 @@
 instance ToQuery RebootInstances where
     toQuery RebootInstances{..} = mconcat
         [ "dryRun"     =? _ri2DryRun
-        , "InstanceId" =? _ri2InstanceIds
+        , toQuery     _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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Registers an AMI. When you're creating an AMI, this is the final step you
 -- must complete before you can launch an instance from the AMI. For more
@@ -209,7 +211,7 @@
 instance ToQuery RegisterImage where
     toQuery RegisterImage{..} = mconcat
         [ "architecture"       =? _ri1Architecture
-        , "BlockDeviceMapping" =? _ri1BlockDeviceMappings
+        , toQuery             _ri1BlockDeviceMappings
         , "description"        =? _ri1Description
         , "dryRun"             =? _ri1DryRun
         , "ImageLocation"      =? _ri1ImageLocation
diff --git a/gen/Network/AWS/EC2/RejectVpcPeeringConnection.hs b/gen/Network/AWS/EC2/RejectVpcPeeringConnection.hs
--- a/gen/Network/AWS/EC2/RejectVpcPeeringConnection.hs
+++ b/gen/Network/AWS/EC2/RejectVpcPeeringConnection.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Rejects a VPC peering connection request. The VPC peering connection must be
 -- in the 'pending-acceptance' state. Use the 'DescribeVpcPeeringConnections'
diff --git a/gen/Network/AWS/EC2/ReleaseAddress.hs b/gen/Network/AWS/EC2/ReleaseAddress.hs
--- a/gen/Network/AWS/EC2/ReleaseAddress.hs
+++ b/gen/Network/AWS/EC2/ReleaseAddress.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Releases the specified Elastic IP address.
 --
diff --git a/gen/Network/AWS/EC2/ReplaceNetworkAclAssociation.hs b/gen/Network/AWS/EC2/ReplaceNetworkAclAssociation.hs
--- a/gen/Network/AWS/EC2/ReplaceNetworkAclAssociation.hs
+++ b/gen/Network/AWS/EC2/ReplaceNetworkAclAssociation.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Changes which network ACL a subnet is associated with. By default when you
 -- create a subnet, it's automatically associated with the default network ACL.
diff --git a/gen/Network/AWS/EC2/ReplaceNetworkAclEntry.hs b/gen/Network/AWS/EC2/ReplaceNetworkAclEntry.hs
--- a/gen/Network/AWS/EC2/ReplaceNetworkAclEntry.hs
+++ b/gen/Network/AWS/EC2/ReplaceNetworkAclEntry.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Replaces an entry (rule) in a network ACL. For more information about network
 -- ACLs, see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html Network ACLs> in the /Amazon Virtual Private Cloud User Guide/.
diff --git a/gen/Network/AWS/EC2/ReplaceRoute.hs b/gen/Network/AWS/EC2/ReplaceRoute.hs
--- a/gen/Network/AWS/EC2/ReplaceRoute.hs
+++ b/gen/Network/AWS/EC2/ReplaceRoute.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Replaces an existing route within a route table in a VPC. You must provide
 -- only one of the following: Internet gateway or virtual private gateway, NAT
diff --git a/gen/Network/AWS/EC2/ReplaceRouteTableAssociation.hs b/gen/Network/AWS/EC2/ReplaceRouteTableAssociation.hs
--- a/gen/Network/AWS/EC2/ReplaceRouteTableAssociation.hs
+++ b/gen/Network/AWS/EC2/ReplaceRouteTableAssociation.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Changes the route table associated with a given subnet in a VPC. After the
 -- operation completes, the subnet uses the routes in the new route table it's
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Submits feedback about the status of an instance. The instance must be in the 'running' state. If your experience with the instance differs from the instance
 -- status returned by 'DescribeInstanceStatus', use 'ReportInstanceStatus' to report
@@ -159,8 +161,8 @@
         [ "description" =? _risDescription
         , "dryRun"      =? _risDryRun
         , "endTime"     =? _risEndTime
-        , "instanceId"  =? _risInstances
-        , "reasonCode"  =? _risReasonCodes
+        , toQuery      _risInstances
+        , toQuery      _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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Creates a Spot Instance request. Spot Instances are instances that Amazon EC2
 -- starts on your behalf when the maximum price that you specify exceeds the
@@ -187,12 +189,6 @@
     { _rsirSpotInstanceRequests :: List "item" SpotInstanceRequest
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList RequestSpotInstancesResponse where
-    type Item RequestSpotInstancesResponse = SpotInstanceRequest
-
-    fromList = RequestSpotInstancesResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _rsirSpotInstanceRequests
-
 -- | 'RequestSpotInstancesResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -238,4 +234,4 @@
 
 instance FromXML RequestSpotInstancesResponse where
     parseXML x = RequestSpotInstancesResponse
-        <$> x .@  "spotInstanceRequestSet"
+        <$> parseXML x
diff --git a/gen/Network/AWS/EC2/ResetImageAttribute.hs b/gen/Network/AWS/EC2/ResetImageAttribute.hs
--- a/gen/Network/AWS/EC2/ResetImageAttribute.hs
+++ b/gen/Network/AWS/EC2/ResetImageAttribute.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Resets an attribute of an AMI to its default value.
 --
diff --git a/gen/Network/AWS/EC2/ResetInstanceAttribute.hs b/gen/Network/AWS/EC2/ResetInstanceAttribute.hs
--- a/gen/Network/AWS/EC2/ResetInstanceAttribute.hs
+++ b/gen/Network/AWS/EC2/ResetInstanceAttribute.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Resets an attribute of an instance to its default value. To reset the 'kernel'
 -- or 'ramdisk', the instance must be in a stopped state. To reset the 'SourceDestCheck', the instance can be either running or stopped.
diff --git a/gen/Network/AWS/EC2/ResetNetworkInterfaceAttribute.hs b/gen/Network/AWS/EC2/ResetNetworkInterfaceAttribute.hs
--- a/gen/Network/AWS/EC2/ResetNetworkInterfaceAttribute.hs
+++ b/gen/Network/AWS/EC2/ResetNetworkInterfaceAttribute.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Resets a network interface attribute. You can specify only one attribute at a
 -- time.
diff --git a/gen/Network/AWS/EC2/ResetSnapshotAttribute.hs b/gen/Network/AWS/EC2/ResetSnapshotAttribute.hs
--- a/gen/Network/AWS/EC2/ResetSnapshotAttribute.hs
+++ b/gen/Network/AWS/EC2/ResetSnapshotAttribute.hs
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Resets permission settings for the specified snapshot.
 --
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Removes one or more egress rules from a security group for EC2-VPC. The
 -- values that you specify in the revoke request (for example, ports) must match
@@ -173,7 +175,7 @@
         , "dryRun"                     =? _rsgeDryRun
         , "fromPort"                   =? _rsgeFromPort
         , "groupId"                    =? _rsgeGroupId
-        , "ipPermissions"              =? _rsgeIpPermissions
+        , toQuery                     _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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Removes one or more ingress rules from a security group. The values that you
 -- specify in the revoke request (for example, ports) must match the existing
@@ -182,7 +184,7 @@
         , "FromPort"                   =? _rsgiFromPort
         , "GroupId"                    =? _rsgiGroupId
         , "GroupName"                  =? _rsgiGroupName
-        , "IpPermissions"              =? _rsgiIpPermissions
+        , toQuery                     _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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Launches the specified number of instances using an AMI for which you have
 -- permissions.
@@ -425,7 +427,7 @@
 instance ToQuery RunInstances where
     toQuery RunInstances{..} = mconcat
         [ "additionalInfo"                    =? _riAdditionalInfo
-        , "BlockDeviceMapping"                =? _riBlockDeviceMappings
+        , toQuery                            _riBlockDeviceMappings
         , "clientToken"                       =? _riClientToken
         , "disableApiTermination"             =? _riDisableApiTermination
         , "dryRun"                            =? _riDryRun
@@ -439,12 +441,12 @@
         , "MaxCount"                          =? _riMaxCount
         , "MinCount"                          =? _riMinCount
         , "Monitoring"                        =? _riMonitoring
-        , "networkInterface"                  =? _riNetworkInterfaces
+        , toQuery                            _riNetworkInterfaces
         , "Placement"                         =? _riPlacement
         , "privateIpAddress"                  =? _riPrivateIpAddress
         , "RamdiskId"                         =? _riRamdiskId
-        , "SecurityGroupId"                   =? _riSecurityGroupIds
-        , "SecurityGroup"                     =? _riSecurityGroups
+        , toQuery                            _riSecurityGroupIds
+        , toQuery                            _riSecurityGroups
         , "SubnetId"                          =? _riSubnetId
         , "UserData"                          =? _riUserData
         ]
@@ -460,8 +462,8 @@
 
 instance FromXML RunInstancesResponse where
     parseXML x = RunInstancesResponse
-        <$> x .@  "groupSet"
-        <*> x .@  "instancesSet"
+        <$> parseXML x
+        <*> parseXML x
         <*> x .@? "ownerId"
         <*> 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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Starts an Amazon EBS-backed AMI that you've previously stopped.
 --
@@ -103,12 +105,6 @@
     { _sirStartingInstances :: List "item" InstanceStateChange
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList StartInstancesResponse where
-    type Item StartInstancesResponse = InstanceStateChange
-
-    fromList = StartInstancesResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _sirStartingInstances
-
 -- | 'StartInstancesResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -133,7 +129,7 @@
     toQuery StartInstances{..} = mconcat
         [ "additionalInfo" =? _si1AdditionalInfo
         , "dryRun"         =? _si1DryRun
-        , "InstanceId"     =? _si1InstanceIds
+        , toQuery         _si1InstanceIds
         ]
 
 instance ToHeaders StartInstances
@@ -147,4 +143,4 @@
 
 instance FromXML StartInstancesResponse where
     parseXML x = StartInstancesResponse
-        <$> x .@  "instancesSet"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Stops an Amazon EBS-backed instance. Each time you transition an instance
 -- from stopped to started, Amazon EC2 charges a full instance hour, even if
@@ -118,12 +120,6 @@
     { _sirStoppingInstances :: List "item" InstanceStateChange
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList StopInstancesResponse where
-    type Item StopInstancesResponse = InstanceStateChange
-
-    fromList = StopInstancesResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _sirStoppingInstances
-
 -- | 'StopInstancesResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -148,7 +144,7 @@
     toQuery StopInstances{..} = mconcat
         [ "dryRun"     =? _siDryRun
         , "force"      =? _siForce
-        , "InstanceId" =? _siInstanceIds
+        , toQuery     _siInstanceIds
         ]
 
 instance ToHeaders StopInstances
@@ -162,4 +158,4 @@
 
 instance FromXML StopInstancesResponse where
     parseXML x = StopInstancesResponse
-        <$> x .@  "instancesSet"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Shuts down one or more instances. This operation is idempotent; if you
 -- terminate an instance more than once, each call succeeds.
@@ -95,12 +97,6 @@
     { _tirTerminatingInstances :: List "item" InstanceStateChange
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList TerminateInstancesResponse where
-    type Item TerminateInstancesResponse = InstanceStateChange
-
-    fromList = TerminateInstancesResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _tirTerminatingInstances
-
 -- | 'TerminateInstancesResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -124,7 +120,7 @@
 instance ToQuery TerminateInstances where
     toQuery TerminateInstances{..} = mconcat
         [ "dryRun"     =? _tiDryRun
-        , "InstanceId" =? _tiInstanceIds
+        , toQuery     _tiInstanceIds
         ]
 
 instance ToHeaders TerminateInstances
@@ -138,4 +134,4 @@
 
 instance FromXML TerminateInstancesResponse where
     parseXML x = TerminateInstancesResponse
-        <$> x .@  "instancesSet"
+        <$> parseXML x
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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 module Network.AWS.EC2.Types
     (
@@ -1702,8 +1704,8 @@
     parseXML x = ImportInstanceLaunchSpecification
         <$> x .@? "additionalInfo"
         <*> x .@? "architecture"
-        <*> x .@  "GroupId"
-        <*> x .@  "GroupName"
+        <*> parseXML x
+        <*> parseXML x
         <*> x .@? "instanceInitiatedShutdownBehavior"
         <*> x .@? "instanceType"
         <*> x .@? "monitoring"
@@ -1716,8 +1718,8 @@
     toQuery ImportInstanceLaunchSpecification{..} = mconcat
         [ "additionalInfo"                    =? _iilsAdditionalInfo
         , "architecture"                      =? _iilsArchitecture
-        , "GroupId"                           =? _iilsGroupIds
-        , "GroupName"                         =? _iilsGroupNames
+        , toQuery                            _iilsGroupIds
+        , toQuery                            _iilsGroupNames
         , "instanceInitiatedShutdownBehavior" =? _iilsInstanceInitiatedShutdownBehavior
         , "instanceType"                      =? _iilsInstanceType
         , "monitoring"                        =? _iilsMonitoring
@@ -1837,7 +1839,7 @@
         <*> x .@? "snapshotId"
         <*> x .@? "startTime"
         <*> x .@? "status"
-        <*> x .@  "tagSet"
+        <*> parseXML x
         <*> x .@? "volumeId"
         <*> x .@? "volumeSize"
 
@@ -1851,7 +1853,7 @@
         , "snapshotId"  =? _sSnapshotId
         , "startTime"   =? _sStartTime
         , "status"      =? _sState
-        , "tagSet"      =? _sTags
+        , toQuery      _sTags
         , "volumeId"    =? _sVolumeId
         , "volumeSize"  =? _sVolumeSize
         ]
@@ -2119,26 +2121,26 @@
     parseXML x = ReservedInstancesListing
         <$> x .@? "clientToken"
         <*> x .@? "createDate"
-        <*> x .@  "instanceCounts"
-        <*> x .@  "priceSchedules"
+        <*> parseXML x
+        <*> parseXML x
         <*> x .@? "reservedInstancesId"
         <*> x .@? "reservedInstancesListingId"
         <*> x .@? "status"
         <*> x .@? "statusMessage"
-        <*> x .@  "tagSet"
+        <*> parseXML x
         <*> x .@? "updateDate"
 
 instance ToQuery ReservedInstancesListing where
     toQuery ReservedInstancesListing{..} = mconcat
         [ "clientToken"                =? _rilClientToken
         , "createDate"                 =? _rilCreateDate
-        , "instanceCounts"             =? _rilInstanceCounts
-        , "priceSchedules"             =? _rilPriceSchedules
+        , toQuery                     _rilInstanceCounts
+        , toQuery                     _rilPriceSchedules
         , "reservedInstancesId"        =? _rilReservedInstancesId
         , "reservedInstancesListingId" =? _rilReservedInstancesListingId
         , "status"                     =? _rilStatus
         , "statusMessage"              =? _rilStatusMessage
-        , "tagSet"                     =? _rilTags
+        , toQuery                     _rilTags
         , "updateDate"                 =? _rilUpdateDate
         ]
 
@@ -2385,15 +2387,15 @@
 
 instance FromXML DhcpOptions where
     parseXML x = DhcpOptions
-        <$> x .@  "dhcpConfigurationSet"
+        <$> parseXML x
         <*> x .@? "dhcpOptionsId"
-        <*> x .@  "tagSet"
+        <*> parseXML x
 
 instance ToQuery DhcpOptions where
     toQuery DhcpOptions{..} = mconcat
-        [ "dhcpConfigurationSet" =? _doDhcpConfigurations
+        [ toQuery               _doDhcpConfigurations
         , "dhcpOptionsId"        =? _doDhcpOptionsId
-        , "tagSet"               =? _doTags
+        , toQuery               _doTags
         ]
 
 data InstanceNetworkInterfaceSpecification = InstanceNetworkInterfaceSpecification
@@ -2517,10 +2519,10 @@
         <*> x .@? "deleteOnTermination"
         <*> x .@? "description"
         <*> x .@? "deviceIndex"
-        <*> x .@  "SecurityGroupId"
+        <*> parseXML x
         <*> x .@? "networkInterfaceId"
         <*> x .@? "privateIpAddress"
-        <*> x .@  "privateIpAddressesSet"
+        <*> parseXML x
         <*> x .@? "secondaryPrivateIpAddressCount"
         <*> x .@? "subnetId"
 
@@ -2530,10 +2532,10 @@
         , "deleteOnTermination"            =? _inisDeleteOnTermination
         , "description"                    =? _inisDescription
         , "deviceIndex"                    =? _inisDeviceIndex
-        , "SecurityGroupId"                =? _inisGroups
+        , toQuery                         _inisGroups
         , "networkInterfaceId"             =? _inisNetworkInterfaceId
         , "privateIpAddress"               =? _inisPrivateIpAddress
-        , "privateIpAddressesSet"          =? _inisPrivateIpAddresses
+        , toQuery                         _inisPrivateIpAddresses
         , "secondaryPrivateIpAddressCount" =? _inisSecondaryPrivateIpAddressCount
         , "subnetId"                       =? _inisSubnetId
         ]
@@ -2855,7 +2857,7 @@
 instance FromXML Image where
     parseXML x = Image
         <$> x .@  "architecture"
-        <*> x .@  "blockDeviceMapping"
+        <*> parseXML x
         <*> x .@? "description"
         <*> x .@  "hypervisor"
         <*> x .@  "imageId"
@@ -2866,7 +2868,7 @@
         <*> x .@  "name"
         <*> x .@  "imageOwnerId"
         <*> x .@? "platform"
-        <*> x .@  "productCodes"
+        <*> parseXML x
         <*> x .@  "isPublic"
         <*> x .@? "ramdiskId"
         <*> x .@? "rootDeviceName"
@@ -2874,13 +2876,13 @@
         <*> x .@? "sriovNetSupport"
         <*> x .@  "imageState"
         <*> x .@? "stateReason"
-        <*> x .@  "tagSet"
+        <*> parseXML x
         <*> x .@  "virtualizationType"
 
 instance ToQuery Image where
     toQuery Image{..} = mconcat
         [ "architecture"       =? _iArchitecture
-        , "blockDeviceMapping" =? _iBlockDeviceMappings
+        , toQuery             _iBlockDeviceMappings
         , "description"        =? _iDescription
         , "hypervisor"         =? _iHypervisor
         , "imageId"            =? _iImageId
@@ -2891,7 +2893,7 @@
         , "name"               =? _iName
         , "imageOwnerId"       =? _iOwnerId
         , "platform"           =? _iPlatform
-        , "productCodes"       =? _iProductCodes
+        , toQuery             _iProductCodes
         , "isPublic"           =? _iPublic
         , "ramdiskId"          =? _iRamdiskId
         , "rootDeviceName"     =? _iRootDeviceName
@@ -2899,7 +2901,7 @@
         , "sriovNetSupport"    =? _iSriovNetSupport
         , "imageState"         =? _iState
         , "stateReason"        =? _iStateReason
-        , "tagSet"             =? _iTags
+        , toQuery             _iTags
         , "virtualizationType" =? _iVirtualizationType
         ]
 
@@ -2933,12 +2935,12 @@
 instance FromXML DhcpConfiguration where
     parseXML x = DhcpConfiguration
         <$> x .@? "key"
-        <*> x .@  "valueSet"
+        <*> parseXML x
 
 instance ToQuery DhcpConfiguration where
     toQuery DhcpConfiguration{..} = mconcat
         [ "key"      =? _dcKey
-        , "valueSet" =? _dcValues
+        , toQuery   _dcValues
         ]
 
 data Tag = Tag
@@ -3162,12 +3164,12 @@
 
 instance FromXML VolumeStatusInfo where
     parseXML x = VolumeStatusInfo
-        <$> x .@  "details"
+        <$> parseXML x
         <*> x .@? "status"
 
 instance ToQuery VolumeStatusInfo where
     toQuery VolumeStatusInfo{..} = mconcat
-        [ "details" =? _vsiDetails
+        [ toQuery  _vsiDetails
         , "status"  =? _vsiStatus
         ]
 
@@ -3270,13 +3272,13 @@
 
 instance FromXML CreateVolumePermissionModifications where
     parseXML x = CreateVolumePermissionModifications
-        <$> x .@  "Add"
-        <*> x .@  "Remove"
+        <$> parseXML x
+        <*> parseXML x
 
 instance ToQuery CreateVolumePermissionModifications where
     toQuery CreateVolumePermissionModifications{..} = mconcat
-        [ "Add"    =? _cvpmAdd
-        , "Remove" =? _cvpmRemove
+        [ toQuery _cvpmAdd
+        , toQuery _cvpmRemove
         ]
 
 data VpcState
@@ -3709,7 +3711,7 @@
         <*> x .@? "importVolume"
         <*> x .@  "state"
         <*> x .@? "statusMessage"
-        <*> x .@  "tagSet"
+        <*> parseXML x
 
 instance ToQuery ConversionTask where
     toQuery ConversionTask{..} = mconcat
@@ -3719,7 +3721,7 @@
         , "importVolume"     =? _ctImportVolume
         , "state"            =? _ctState
         , "statusMessage"    =? _ctStatusMessage
-        , "tagSet"           =? _ctTags
+        , toQuery           _ctTags
         ]
 
 data AttachmentStatus
@@ -4215,7 +4217,7 @@
         <*> x .@? "spotPrice"
         <*> x .@? "state"
         <*> x .@? "status"
-        <*> x .@  "tagSet"
+        <*> parseXML x
         <*> x .@? "type"
         <*> x .@? "validFrom"
         <*> x .@? "validUntil"
@@ -4234,7 +4236,7 @@
         , "spotPrice"                =? _siSpotPrice
         , "state"                    =? _siState
         , "status"                   =? _siStatus
-        , "tagSet"                   =? _siTags
+        , toQuery                   _siTags
         , "type"                     =? _siType
         , "validFrom"                =? _siValidFrom
         , "validUntil"               =? _siValidUntil
@@ -4389,7 +4391,7 @@
 instance FromXML LaunchSpecification where
     parseXML x = LaunchSpecification
         <$> x .@? "addressingType"
-        <*> x .@  "blockDeviceMapping"
+        <*> parseXML x
         <*> x .@? "ebsOptimized"
         <*> x .@? "iamInstanceProfile"
         <*> x .@? "imageId"
@@ -4397,17 +4399,17 @@
         <*> x .@? "kernelId"
         <*> x .@? "keyName"
         <*> x .@? "monitoring"
-        <*> x .@  "networkInterfaceSet"
+        <*> parseXML x
         <*> x .@? "placement"
         <*> x .@? "ramdiskId"
-        <*> x .@  "groupSet"
+        <*> parseXML x
         <*> x .@? "subnetId"
         <*> x .@? "userData"
 
 instance ToQuery LaunchSpecification where
     toQuery LaunchSpecification{..} = mconcat
         [ "addressingType"      =? _lsAddressingType
-        , "blockDeviceMapping"  =? _lsBlockDeviceMappings
+        , toQuery              _lsBlockDeviceMappings
         , "ebsOptimized"        =? _lsEbsOptimized
         , "iamInstanceProfile"  =? _lsIamInstanceProfile
         , "imageId"             =? _lsImageId
@@ -4415,10 +4417,10 @@
         , "kernelId"            =? _lsKernelId
         , "keyName"             =? _lsKeyName
         , "monitoring"          =? _lsMonitoring
-        , "networkInterfaceSet" =? _lsNetworkInterfaces
+        , toQuery              _lsNetworkInterfaces
         , "placement"           =? _lsPlacement
         , "ramdiskId"           =? _lsRamdiskId
-        , "groupSet"            =? _lsSecurityGroups
+        , toQuery              _lsSecurityGroups
         , "subnetId"            =? _lsSubnetId
         , "userData"            =? _lsUserData
         ]
@@ -4604,7 +4606,7 @@
 
 instance FromXML Volume where
     parseXML x = Volume
-        <$> x .@  "attachmentSet"
+        <$> parseXML x
         <*> x .@? "availabilityZone"
         <*> x .@? "createTime"
         <*> x .@? "encrypted"
@@ -4612,13 +4614,13 @@
         <*> x .@? "size"
         <*> x .@? "snapshotId"
         <*> x .@? "status"
-        <*> x .@  "tagSet"
+        <*> parseXML x
         <*> x .@? "volumeId"
         <*> x .@? "volumeType"
 
 instance ToQuery Volume where
     toQuery Volume{..} = mconcat
-        [ "attachmentSet"    =? _vAttachments
+        [ toQuery           _vAttachments
         , "availabilityZone" =? _vAvailabilityZone
         , "createTime"       =? _vCreateTime
         , "encrypted"        =? _vEncrypted
@@ -4626,7 +4628,7 @@
         , "size"             =? _vSize
         , "snapshotId"       =? _vSnapshotId
         , "status"           =? _vState
-        , "tagSet"           =? _vTags
+        , toQuery           _vTags
         , "volumeId"         =? _vVolumeId
         , "volumeType"       =? _vVolumeType
         ]
@@ -4685,16 +4687,16 @@
 
 instance FromXML Reservation where
     parseXML x = Reservation
-        <$> x .@  "groupSet"
-        <*> x .@  "instancesSet"
+        <$> parseXML x
+        <*> parseXML x
         <*> x .@? "ownerId"
         <*> x .@? "requesterId"
         <*> x .@? "reservationId"
 
 instance ToQuery Reservation where
     toQuery Reservation{..} = mconcat
-        [ "groupSet"      =? _rGroups
-        , "instancesSet"  =? _rInstances
+        [ toQuery        _rGroups
+        , toQuery        _rInstances
         , "ownerId"       =? _rOwnerId
         , "requesterId"   =? _rRequesterId
         , "reservationId" =? _rReservationId
@@ -4923,8 +4925,8 @@
         <$> x .@? "clientToken"
         <*> x .@? "createDate"
         <*> x .@? "effectiveDate"
-        <*> x .@  "modificationResultSet"
-        <*> x .@  "reservedInstancesSet"
+        <*> parseXML x
+        <*> parseXML x
         <*> x .@? "reservedInstancesModificationId"
         <*> x .@? "status"
         <*> x .@? "statusMessage"
@@ -4935,8 +4937,8 @@
         [ "clientToken"                     =? _rimClientToken
         , "createDate"                      =? _rimCreateDate
         , "effectiveDate"                   =? _rimEffectiveDate
-        , "modificationResultSet"           =? _rimModificationResults
-        , "reservedInstancesSet"            =? _rimReservedInstancesIds
+        , toQuery                          _rimModificationResults
+        , toQuery                          _rimReservedInstancesIds
         , "reservedInstancesModificationId" =? _rimReservedInstancesModificationId
         , "status"                          =? _rimStatus
         , "statusMessage"                   =? _rimStatusMessage
@@ -5139,19 +5141,19 @@
         <*> x .@? "attachment"
         <*> x .@? "availabilityZone"
         <*> x .@? "description"
-        <*> x .@  "groupSet"
+        <*> parseXML x
         <*> x .@? "macAddress"
         <*> x .@? "networkInterfaceId"
         <*> x .@? "ownerId"
         <*> x .@? "privateDnsName"
         <*> x .@? "privateIpAddress"
-        <*> x .@  "privateIpAddressesSet"
+        <*> parseXML x
         <*> x .@? "requesterId"
         <*> x .@? "requesterManaged"
         <*> x .@? "sourceDestCheck"
         <*> x .@? "status"
         <*> x .@? "subnetId"
-        <*> x .@  "tagSet"
+        <*> parseXML x
         <*> x .@? "vpcId"
 
 instance ToQuery NetworkInterface where
@@ -5160,19 +5162,19 @@
         , "attachment"            =? _niAttachment
         , "availabilityZone"      =? _niAvailabilityZone
         , "description"           =? _niDescription
-        , "groupSet"              =? _niGroups
+        , toQuery                _niGroups
         , "macAddress"            =? _niMacAddress
         , "networkInterfaceId"    =? _niNetworkInterfaceId
         , "ownerId"               =? _niOwnerId
         , "privateDnsName"        =? _niPrivateDnsName
         , "privateIpAddress"      =? _niPrivateIpAddress
-        , "privateIpAddressesSet" =? _niPrivateIpAddresses
+        , toQuery                _niPrivateIpAddresses
         , "requesterId"           =? _niRequesterId
         , "requesterManaged"      =? _niRequesterManaged
         , "sourceDestCheck"       =? _niSourceDestCheck
         , "status"                =? _niStatus
         , "subnetId"              =? _niSubnetId
-        , "tagSet"                =? _niTagSet
+        , toQuery                _niTagSet
         , "vpcId"                 =? _niVpcId
         ]
 
@@ -5300,7 +5302,7 @@
         <*> x .@? "mapPublicIpOnLaunch"
         <*> x .@? "state"
         <*> x .@? "subnetId"
-        <*> x .@  "tagSet"
+        <*> parseXML x
         <*> x .@? "vpcId"
 
 instance ToQuery Subnet where
@@ -5312,7 +5314,7 @@
         , "mapPublicIpOnLaunch"     =? _s1MapPublicIpOnLaunch
         , "state"                   =? _s1State
         , "subnetId"                =? _s1SubnetId
-        , "tagSet"                  =? _s1Tags
+        , toQuery                  _s1Tags
         , "vpcId"                   =? _s1VpcId
         ]
 
@@ -5387,13 +5389,13 @@
 
 instance FromXML LaunchPermissionModifications where
     parseXML x = LaunchPermissionModifications
-        <$> x .@  "Add"
-        <*> x .@  "Remove"
+        <$> parseXML x
+        <*> parseXML x
 
 instance ToQuery LaunchPermissionModifications where
     toQuery LaunchPermissionModifications{..} = mconcat
-        [ "Add"    =? _lpmAdd
-        , "Remove" =? _lpmRemove
+        [ toQuery _lpmAdd
+        , toQuery _lpmRemove
         ]
 
 data SnapshotState
@@ -6263,12 +6265,12 @@
 
 instance FromXML InstanceStatusSummary where
     parseXML x = InstanceStatusSummary
-        <$> x .@  "details"
+        <$> parseXML x
         <*> x .@? "status"
 
 instance ToQuery InstanceStatusSummary where
     toQuery InstanceStatusSummary{..} = mconcat
-        [ "details" =? _issDetails
+        [ toQuery  _issDetails
         , "status"  =? _issStatus
         ]
 
@@ -6982,10 +6984,10 @@
         <$> x .@  "groupDescription"
         <*> x .@  "groupId"
         <*> x .@  "groupName"
-        <*> x .@  "ipPermissions"
-        <*> x .@  "ipPermissionsEgress"
+        <*> parseXML x
+        <*> parseXML x
         <*> x .@  "ownerId"
-        <*> x .@  "tagSet"
+        <*> parseXML x
         <*> x .@? "vpcId"
 
 instance ToQuery SecurityGroup where
@@ -6993,10 +6995,10 @@
         [ "groupDescription"    =? _sgDescription
         , "groupId"             =? _sgGroupId
         , "groupName"           =? _sgGroupName
-        , "ipPermissions"       =? _sgIpPermissions
-        , "ipPermissionsEgress" =? _sgIpPermissionsEgress
+        , toQuery              _sgIpPermissions
+        , toQuery              _sgIpPermissionsEgress
         , "ownerId"             =? _sgOwnerId
-        , "tagSet"              =? _sgTags
+        , toQuery              _sgTags
         , "vpcId"               =? _sgVpcId
         ]
 
@@ -7344,7 +7346,7 @@
         <*> x .@? "customerGatewayId"
         <*> x .@? "ipAddress"
         <*> x .@? "state"
-        <*> x .@  "tagSet"
+        <*> parseXML x
         <*> x .@? "type"
 
 instance ToQuery CustomerGateway where
@@ -7353,7 +7355,7 @@
         , "customerGatewayId" =? _cgCustomerGatewayId
         , "ipAddress"         =? _cgIpAddress
         , "state"             =? _cgState
-        , "tagSet"            =? _cgTags
+        , toQuery            _cgTags
         , "type"              =? _cgType
         ]
 
@@ -7984,14 +7986,14 @@
 
 instance FromXML AvailabilityZone where
     parseXML x = AvailabilityZone
-        <$> x .@  "messageSet"
+        <$> parseXML x
         <*> x .@? "regionName"
         <*> x .@? "zoneState"
         <*> x .@? "zoneName"
 
 instance ToQuery AvailabilityZone where
     toQuery AvailabilityZone{..} = mconcat
-        [ "messageSet" =? _azMessages
+        [ toQuery     _azMessages
         , "regionName" =? _azRegionName
         , "zoneState"  =? _azState
         , "zoneName"   =? _azZoneName
@@ -8092,20 +8094,20 @@
 
 instance FromXML RouteTable where
     parseXML x = RouteTable
-        <$> x .@  "associationSet"
-        <*> x .@  "propagatingVgwSet"
+        <$> parseXML x
+        <*> parseXML x
         <*> x .@? "routeTableId"
-        <*> x .@  "routeSet"
-        <*> x .@  "tagSet"
+        <*> parseXML x
+        <*> parseXML x
         <*> x .@? "vpcId"
 
 instance ToQuery RouteTable where
     toQuery RouteTable{..} = mconcat
-        [ "associationSet"    =? _rtAssociations
-        , "propagatingVgwSet" =? _rtPropagatingVgws
+        [ toQuery            _rtAssociations
+        , toQuery            _rtPropagatingVgws
         , "routeTableId"      =? _rtRouteTableId
-        , "routeSet"          =? _rtRoutes
-        , "tagSet"            =? _rtTags
+        , toQuery            _rtRoutes
+        , toQuery            _rtTags
         , "vpcId"             =? _rtVpcId
         ]
 
@@ -8419,17 +8421,17 @@
     parseXML x = IpPermission
         <$> x .@  "fromPort"
         <*> x .@  "ipProtocol"
-        <*> x .@  "ipRanges"
+        <*> parseXML x
         <*> x .@  "toPort"
-        <*> x .@  "groups"
+        <*> parseXML x
 
 instance ToQuery IpPermission where
     toQuery IpPermission{..} = mconcat
         [ "fromPort"   =? _ipFromPort
         , "ipProtocol" =? _ipIpProtocol
-        , "ipRanges"   =? _ipIpRanges
+        , toQuery     _ipIpRanges
         , "toPort"     =? _ipToPort
-        , "groups"     =? _ipUserIdGroupPairs
+        , toQuery     _ipUserIdGroupPairs
         ]
 
 data ConversionTaskState
@@ -8843,13 +8845,13 @@
         <$> x .@? "association"
         <*> x .@? "attachment"
         <*> x .@? "description"
-        <*> x .@  "groupSet"
+        <*> parseXML x
         <*> x .@? "macAddress"
         <*> x .@? "networkInterfaceId"
         <*> x .@? "ownerId"
         <*> x .@? "privateDnsName"
         <*> x .@? "privateIpAddress"
-        <*> x .@  "privateIpAddressesSet"
+        <*> parseXML x
         <*> x .@? "sourceDestCheck"
         <*> x .@? "status"
         <*> x .@? "subnetId"
@@ -8860,13 +8862,13 @@
         [ "association"           =? _iniAssociation
         , "attachment"            =? _iniAttachment
         , "description"           =? _iniDescription
-        , "groupSet"              =? _iniGroups
+        , toQuery                _iniGroups
         , "macAddress"            =? _iniMacAddress
         , "networkInterfaceId"    =? _iniNetworkInterfaceId
         , "ownerId"               =? _iniOwnerId
         , "privateDnsName"        =? _iniPrivateDnsName
         , "privateIpAddress"      =? _iniPrivateIpAddress
-        , "privateIpAddressesSet" =? _iniPrivateIpAddresses
+        , toQuery                _iniPrivateIpAddresses
         , "sourceDestCheck"       =? _iniSourceDestCheck
         , "status"                =? _iniStatus
         , "subnetId"              =? _iniSubnetId
@@ -9095,7 +9097,7 @@
         <*> x .@? "instanceTenancy"
         <*> x .@? "isDefault"
         <*> x .@? "state"
-        <*> x .@  "tagSet"
+        <*> parseXML x
         <*> x .@? "vpcId"
 
 instance ToQuery Vpc where
@@ -9105,7 +9107,7 @@
         , "instanceTenancy" =? _vpcInstanceTenancy
         , "isDefault"       =? _vpcIsDefault
         , "state"           =? _vpcState
-        , "tagSet"          =? _vpcTags
+        , toQuery          _vpcTags
         , "vpcId"           =? _vpcVpcId
         ]
 
@@ -9176,7 +9178,7 @@
 instance FromXML InstanceStatus where
     parseXML x = InstanceStatus
         <$> x .@? "availabilityZone"
-        <*> x .@  "eventsSet"
+        <*> parseXML x
         <*> x .@? "instanceId"
         <*> x .@? "instanceState"
         <*> x .@? "instanceStatus"
@@ -9185,7 +9187,7 @@
 instance ToQuery InstanceStatus where
     toQuery InstanceStatus{..} = mconcat
         [ "availabilityZone" =? _isAvailabilityZone
-        , "eventsSet"        =? _isEvents
+        , toQuery           _isEvents
         , "instanceId"       =? _isInstanceId
         , "instanceState"    =? _isInstanceState
         , "instanceStatus"   =? _isInstanceStatus
@@ -9399,12 +9401,12 @@
 instance FromXML AccountAttribute where
     parseXML x = AccountAttribute
         <$> x .@? "attributeName"
-        <*> x .@  "attributeValueSet"
+        <*> parseXML x
 
 instance ToQuery AccountAttribute where
     toQuery AccountAttribute{..} = mconcat
         [ "attributeName"     =? _aaAttributeName
-        , "attributeValueSet" =? _aaAttributeValues
+        , toQuery            _aaAttributeValues
         ]
 
 data PriceSchedule = PriceSchedule
@@ -9687,18 +9689,18 @@
     parseXML x = VpnGateway
         <$> x .@? "availabilityZone"
         <*> x .@? "state"
-        <*> x .@  "tagSet"
+        <*> parseXML x
         <*> x .@? "type"
-        <*> x .@  "attachments"
+        <*> parseXML x
         <*> x .@? "vpnGatewayId"
 
 instance ToQuery VpnGateway where
     toQuery VpnGateway{..} = mconcat
         [ "availabilityZone" =? _vgAvailabilityZone
         , "state"            =? _vgState
-        , "tagSet"           =? _vgTags
+        , toQuery           _vgTags
         , "type"             =? _vgType
-        , "attachments"      =? _vgVpcAttachments
+        , toQuery           _vgVpcAttachments
         , "vpnGatewayId"     =? _vgVpnGatewayId
         ]
 
@@ -9733,12 +9735,12 @@
 instance FromXML Filter where
     parseXML x = Filter
         <$> x .@  "Name"
-        <*> x .@  "Value"
+        <*> parseXML x
 
 instance ToQuery Filter where
     toQuery Filter{..} = mconcat
         [ "Name"  =? _fName
-        , "Value" =? _fValues
+        , toQuery _fValues
         ]
 
 data VolumeType
@@ -9879,20 +9881,20 @@
 
 instance FromXML NetworkAcl where
     parseXML x = NetworkAcl
-        <$> x .@  "associationSet"
-        <*> x .@  "entrySet"
+        <$> parseXML x
+        <*> parseXML x
         <*> x .@? "default"
         <*> x .@? "networkAclId"
-        <*> x .@  "tagSet"
+        <*> parseXML x
         <*> x .@? "vpcId"
 
 instance ToQuery NetworkAcl where
     toQuery NetworkAcl{..} = mconcat
-        [ "associationSet" =? _naAssociations
-        , "entrySet"       =? _naEntries
+        [ toQuery         _naAssociations
+        , toQuery         _naEntries
         , "default"        =? _naIsDefault
         , "networkAclId"   =? _naNetworkAclId
-        , "tagSet"         =? _naTags
+        , toQuery         _naTags
         , "vpcId"          =? _naVpcId
         ]
 
@@ -10107,12 +10109,12 @@
 instance FromXML NewDhcpConfiguration where
     parseXML x = NewDhcpConfiguration
         <$> x .@? "key"
-        <*> x .@  "Value"
+        <*> parseXML x
 
 instance ToQuery NewDhcpConfiguration where
     toQuery NewDhcpConfiguration{..} = mconcat
         [ "key"   =? _ndcKey
-        , "Value" =? _ndcValues
+        , toQuery _ndcValues
         ]
 
 data StateReason = StateReason
@@ -10295,15 +10297,15 @@
 
 instance FromXML InternetGateway where
     parseXML x = InternetGateway
-        <$> x .@  "attachmentSet"
+        <$> parseXML x
         <*> x .@  "internetGatewayId"
-        <*> x .@  "tagSet"
+        <*> parseXML x
 
 instance ToQuery InternetGateway where
     toQuery InternetGateway{..} = mconcat
-        [ "attachmentSet"     =? _igAttachments
+        [ toQuery            _igAttachments
         , "internetGatewayId" =? _igInternetGatewayId
-        , "tagSet"            =? _igTags
+        , toQuery            _igTags
         ]
 
 data VolumeStatusName
@@ -10403,14 +10405,14 @@
         <$> x .@? "description"
         <*> x .@? "instanceId"
         <*> x .@? "platform"
-        <*> x .@  "volumes"
+        <*> parseXML x
 
 instance ToQuery ImportInstanceTaskDetails where
     toQuery ImportInstanceTaskDetails{..} = mconcat
         [ "description" =? _iitdDescription
         , "instanceId"  =? _iitdInstanceId
         , "platform"    =? _iitdPlatform
-        , "volumes"     =? _iitdVolumes
+        , toQuery      _iitdVolumes
         ]
 
 data PlacementGroup = PlacementGroup
@@ -10790,9 +10792,9 @@
         <*> x .@? "instanceType"
         <*> x .@? "marketplace"
         <*> x .@? "offeringType"
-        <*> x .@  "pricingDetailsSet"
+        <*> parseXML x
         <*> x .@? "productDescription"
-        <*> x .@  "recurringCharges"
+        <*> parseXML x
         <*> x .@? "reservedInstancesOfferingId"
         <*> x .@? "usagePrice"
 
@@ -10806,9 +10808,9 @@
         , "instanceType"                =? _rioInstanceType
         , "marketplace"                 =? _rioMarketplace
         , "offeringType"                =? _rioOfferingType
-        , "pricingDetailsSet"           =? _rioPricingDetails
+        , toQuery                      _rioPricingDetails
         , "productDescription"          =? _rioProductDescription
-        , "recurringCharges"            =? _rioRecurringCharges
+        , toQuery                      _rioRecurringCharges
         , "reservedInstancesOfferingId" =? _rioReservedInstancesOfferingId
         , "usagePrice"                  =? _rioUsagePrice
         ]
@@ -10971,11 +10973,11 @@
         <*> x .@? "instanceType"
         <*> x .@? "offeringType"
         <*> x .@? "productDescription"
-        <*> x .@  "recurringCharges"
+        <*> parseXML x
         <*> x .@? "reservedInstancesId"
         <*> x .@? "start"
         <*> x .@? "state"
-        <*> x .@  "tagSet"
+        <*> parseXML x
         <*> x .@? "usagePrice"
 
 instance ToQuery ReservedInstances where
@@ -10990,11 +10992,11 @@
         , "instanceType"        =? _ri1InstanceType
         , "offeringType"        =? _ri1OfferingType
         , "productDescription"  =? _ri1ProductDescription
-        , "recurringCharges"    =? _ri1RecurringCharges
+        , toQuery              _ri1RecurringCharges
         , "reservedInstancesId" =? _ri1ReservedInstancesId
         , "start"               =? _ri1Start
         , "state"               =? _ri1State
-        , "tagSet"              =? _ri1Tags
+        , toQuery              _ri1Tags
         , "usagePrice"          =? _ri1UsagePrice
         ]
 
@@ -11184,11 +11186,11 @@
         <$> x .@? "customerGatewayConfiguration"
         <*> x .@? "customerGatewayId"
         <*> x .@? "options"
-        <*> x .@  "routes"
+        <*> parseXML x
         <*> x .@? "state"
-        <*> x .@  "tagSet"
+        <*> parseXML x
         <*> x .@? "type"
-        <*> x .@  "vgwTelemetry"
+        <*> parseXML x
         <*> x .@? "vpnConnectionId"
         <*> x .@? "vpnGatewayId"
 
@@ -11197,11 +11199,11 @@
         [ "customerGatewayConfiguration" =? _vcCustomerGatewayConfiguration
         , "customerGatewayId"            =? _vcCustomerGatewayId
         , "options"                      =? _vcOptions
-        , "routes"                       =? _vcRoutes
+        , toQuery                       _vcRoutes
         , "state"                        =? _vcState
-        , "tagSet"                       =? _vcTags
+        , toQuery                       _vcTags
         , "type"                         =? _vcType
-        , "vgwTelemetry"                 =? _vcVgwTelemetry
+        , toQuery                       _vcVgwTelemetry
         , "vpnConnectionId"              =? _vcVpnConnectionId
         , "vpnGatewayId"                 =? _vcVpnGatewayId
         ]
@@ -11444,7 +11446,7 @@
         <*> x .@? "expirationTime"
         <*> x .@? "requesterVpcInfo"
         <*> x .@? "status"
-        <*> x .@  "tagSet"
+        <*> parseXML x
         <*> x .@? "vpcPeeringConnectionId"
 
 instance ToQuery VpcPeeringConnection where
@@ -11453,7 +11455,7 @@
         , "expirationTime"         =? _vpc1ExpirationTime
         , "requesterVpcInfo"       =? _vpc1RequesterVpcInfo
         , "status"                 =? _vpc1Status
-        , "tagSet"                 =? _vpc1Tags
+        , toQuery                 _vpc1Tags
         , "vpcPeeringConnectionId" =? _vpc1VpcPeeringConnectionId
         ]
 
@@ -12029,7 +12031,7 @@
     parseXML x = Instance
         <$> x .@? "amiLaunchIndex"
         <*> x .@? "architecture"
-        <*> x .@  "blockDeviceMapping"
+        <*> parseXML x
         <*> x .@? "clientToken"
         <*> x .@? "ebsOptimized"
         <*> x .@? "hypervisor"
@@ -12042,18 +12044,18 @@
         <*> x .@? "keyName"
         <*> x .@? "launchTime"
         <*> x .@? "monitoring"
-        <*> x .@  "networkInterfaceSet"
+        <*> parseXML x
         <*> x .@? "placement"
         <*> x .@? "platform"
         <*> x .@? "privateDnsName"
         <*> x .@? "privateIpAddress"
-        <*> x .@  "productCodes"
+        <*> parseXML x
         <*> x .@? "dnsName"
         <*> x .@? "ipAddress"
         <*> x .@? "ramdiskId"
         <*> x .@? "rootDeviceName"
         <*> x .@? "rootDeviceType"
-        <*> x .@  "groupSet"
+        <*> parseXML x
         <*> x .@? "sourceDestCheck"
         <*> x .@? "spotInstanceRequestId"
         <*> x .@? "sriovNetSupport"
@@ -12061,7 +12063,7 @@
         <*> x .@? "stateReason"
         <*> x .@? "reason"
         <*> x .@? "subnetId"
-        <*> x .@  "tagSet"
+        <*> parseXML x
         <*> x .@? "virtualizationType"
         <*> x .@? "vpcId"
 
@@ -12069,7 +12071,7 @@
     toQuery Instance{..} = mconcat
         [ "amiLaunchIndex"        =? _i1AmiLaunchIndex
         , "architecture"          =? _i1Architecture
-        , "blockDeviceMapping"    =? _i1BlockDeviceMappings
+        , toQuery                _i1BlockDeviceMappings
         , "clientToken"           =? _i1ClientToken
         , "ebsOptimized"          =? _i1EbsOptimized
         , "hypervisor"            =? _i1Hypervisor
@@ -12082,18 +12084,18 @@
         , "keyName"               =? _i1KeyName
         , "launchTime"            =? _i1LaunchTime
         , "monitoring"            =? _i1Monitoring
-        , "networkInterfaceSet"   =? _i1NetworkInterfaces
+        , toQuery                _i1NetworkInterfaces
         , "placement"             =? _i1Placement
         , "platform"              =? _i1Platform
         , "privateDnsName"        =? _i1PrivateDnsName
         , "privateIpAddress"      =? _i1PrivateIpAddress
-        , "productCodes"          =? _i1ProductCodes
+        , toQuery                _i1ProductCodes
         , "dnsName"               =? _i1PublicDnsName
         , "ipAddress"             =? _i1PublicIpAddress
         , "ramdiskId"             =? _i1RamdiskId
         , "rootDeviceName"        =? _i1RootDeviceName
         , "rootDeviceType"        =? _i1RootDeviceType
-        , "groupSet"              =? _i1SecurityGroups
+        , toQuery                _i1SecurityGroups
         , "sourceDestCheck"       =? _i1SourceDestCheck
         , "spotInstanceRequestId" =? _i1SpotInstanceRequestId
         , "sriovNetSupport"       =? _i1SriovNetSupport
@@ -12101,7 +12103,7 @@
         , "stateReason"           =? _i1StateReason
         , "reason"                =? _i1StateTransitionReason
         , "subnetId"              =? _i1SubnetId
-        , "tagSet"                =? _i1Tags
+        , toQuery                _i1Tags
         , "virtualizationType"    =? _i1VirtualizationType
         , "vpcId"                 =? _i1VpcId
         ]
@@ -12363,7 +12365,7 @@
 instance FromXML RequestSpotLaunchSpecification where
     parseXML x = RequestSpotLaunchSpecification
         <$> x .@? "addressingType"
-        <*> x .@  "blockDeviceMapping"
+        <*> parseXML x
         <*> x .@? "ebsOptimized"
         <*> x .@? "iamInstanceProfile"
         <*> x .@? "imageId"
@@ -12371,18 +12373,18 @@
         <*> x .@? "kernelId"
         <*> x .@? "keyName"
         <*> x .@? "monitoring"
-        <*> x .@  "NetworkInterface"
+        <*> parseXML x
         <*> x .@? "placement"
         <*> x .@? "ramdiskId"
-        <*> x .@  "SecurityGroupId"
-        <*> x .@  "SecurityGroup"
+        <*> parseXML x
+        <*> parseXML x
         <*> x .@? "subnetId"
         <*> x .@? "userData"
 
 instance ToQuery RequestSpotLaunchSpecification where
     toQuery RequestSpotLaunchSpecification{..} = mconcat
         [ "addressingType"     =? _rslsAddressingType
-        , "blockDeviceMapping" =? _rslsBlockDeviceMappings
+        , toQuery             _rslsBlockDeviceMappings
         , "ebsOptimized"       =? _rslsEbsOptimized
         , "iamInstanceProfile" =? _rslsIamInstanceProfile
         , "imageId"            =? _rslsImageId
@@ -12390,11 +12392,11 @@
         , "kernelId"           =? _rslsKernelId
         , "keyName"            =? _rslsKeyName
         , "monitoring"         =? _rslsMonitoring
-        , "NetworkInterface"   =? _rslsNetworkInterfaces
+        , toQuery             _rslsNetworkInterfaces
         , "placement"          =? _rslsPlacement
         , "ramdiskId"          =? _rslsRamdiskId
-        , "SecurityGroupId"    =? _rslsSecurityGroupIds
-        , "SecurityGroup"      =? _rslsSecurityGroups
+        , toQuery             _rslsSecurityGroupIds
+        , toQuery             _rslsSecurityGroups
         , "subnetId"           =? _rslsSubnetId
         , "userData"           =? _rslsUserData
         ]
@@ -12649,17 +12651,17 @@
 
 instance FromXML VolumeStatusItem where
     parseXML x = VolumeStatusItem
-        <$> x .@  "actionsSet"
+        <$> parseXML x
         <*> x .@? "availabilityZone"
-        <*> x .@  "eventsSet"
+        <*> parseXML x
         <*> x .@? "volumeId"
         <*> x .@? "volumeStatus"
 
 instance ToQuery VolumeStatusItem where
     toQuery VolumeStatusItem{..} = mconcat
-        [ "actionsSet"       =? _vsiActions
+        [ toQuery           _vsiActions
         , "availabilityZone" =? _vsiAvailabilityZone
-        , "eventsSet"        =? _vsiEvents
+        , toQuery           _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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Unassigns one or more secondary private IP addresses from a network interface.
 --
@@ -90,7 +92,7 @@
 instance ToQuery UnassignPrivateIpAddresses where
     toQuery UnassignPrivateIpAddresses{..} = mconcat
         [ "networkInterfaceId" =? _upiaNetworkInterfaceId
-        , "privateIpAddress"   =? _upiaPrivateIpAddresses
+        , toQuery             _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
@@ -19,6 +19,8 @@
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : experimental
 -- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Disables monitoring for a running instance. For more information about
 -- monitoring instances, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch.html Monitoring Your Instances and Volumes> in the /AmazonElastic Compute Cloud User Guide/.
@@ -77,12 +79,6 @@
     { _uirInstanceMonitorings :: List "item" InstanceMonitoring
     } deriving (Eq, Show, Monoid, Semigroup)
 
-instance GHC.Exts.IsList UnmonitorInstancesResponse where
-    type Item UnmonitorInstancesResponse = InstanceMonitoring
-
-    fromList = UnmonitorInstancesResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _uirInstanceMonitorings
-
 -- | 'UnmonitorInstancesResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
@@ -106,7 +102,7 @@
 instance ToQuery UnmonitorInstances where
     toQuery UnmonitorInstances{..} = mconcat
         [ "dryRun"     =? _uiDryRun
-        , "InstanceId" =? _uiInstanceIds
+        , toQuery     _uiInstanceIds
         ]
 
 instance ToHeaders UnmonitorInstances
@@ -120,4 +116,4 @@
 
 instance FromXML UnmonitorInstancesResponse where
     parseXML x = UnmonitorInstancesResponse
-        <$> x .@  "instancesSet"
+        <$> parseXML x
