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.2.0
+version:               0.2.1
 synopsis:              Amazon Elastic Compute Cloud SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -50,6 +50,7 @@
         , Network.AWS.EC2.AssociateAddress
         , Network.AWS.EC2.AssociateDhcpOptions
         , Network.AWS.EC2.AssociateRouteTable
+        , Network.AWS.EC2.AttachClassicLinkVpc
         , Network.AWS.EC2.AttachInternetGateway
         , Network.AWS.EC2.AttachNetworkInterface
         , Network.AWS.EC2.AttachVolume
@@ -115,6 +116,7 @@
         , Network.AWS.EC2.DescribeAddresses
         , Network.AWS.EC2.DescribeAvailabilityZones
         , Network.AWS.EC2.DescribeBundleTasks
+        , Network.AWS.EC2.DescribeClassicLinkInstances
         , Network.AWS.EC2.DescribeConversionTasks
         , Network.AWS.EC2.DescribeCustomerGateways
         , Network.AWS.EC2.DescribeDhcpOptions
@@ -148,19 +150,23 @@
         , Network.AWS.EC2.DescribeVolumeStatus
         , Network.AWS.EC2.DescribeVolumes
         , Network.AWS.EC2.DescribeVpcAttribute
+        , Network.AWS.EC2.DescribeVpcClassicLink
         , Network.AWS.EC2.DescribeVpcPeeringConnections
         , Network.AWS.EC2.DescribeVpcs
         , Network.AWS.EC2.DescribeVpnConnections
         , Network.AWS.EC2.DescribeVpnGateways
+        , Network.AWS.EC2.DetachClassicLinkVpc
         , Network.AWS.EC2.DetachInternetGateway
         , Network.AWS.EC2.DetachNetworkInterface
         , Network.AWS.EC2.DetachVolume
         , Network.AWS.EC2.DetachVpnGateway
         , Network.AWS.EC2.DisableVgwRoutePropagation
+        , Network.AWS.EC2.DisableVpcClassicLink
         , Network.AWS.EC2.DisassociateAddress
         , Network.AWS.EC2.DisassociateRouteTable
         , Network.AWS.EC2.EnableVgwRoutePropagation
         , Network.AWS.EC2.EnableVolumeIO
+        , Network.AWS.EC2.EnableVpcClassicLink
         , Network.AWS.EC2.GetConsoleOutput
         , Network.AWS.EC2.GetPasswordData
         , Network.AWS.EC2.ImportInstance
@@ -205,5 +211,5 @@
           Network.AWS.EC2.Internal
 
     build-depends:
-          amazonka-core == 0.2.0.*
+          amazonka-core == 0.2.1.*
         , 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
@@ -29,6 +29,7 @@
     , module Network.AWS.EC2.AssociateAddress
     , module Network.AWS.EC2.AssociateDhcpOptions
     , module Network.AWS.EC2.AssociateRouteTable
+    , module Network.AWS.EC2.AttachClassicLinkVpc
     , module Network.AWS.EC2.AttachInternetGateway
     , module Network.AWS.EC2.AttachNetworkInterface
     , module Network.AWS.EC2.AttachVolume
@@ -94,6 +95,7 @@
     , module Network.AWS.EC2.DescribeAddresses
     , module Network.AWS.EC2.DescribeAvailabilityZones
     , module Network.AWS.EC2.DescribeBundleTasks
+    , module Network.AWS.EC2.DescribeClassicLinkInstances
     , module Network.AWS.EC2.DescribeConversionTasks
     , module Network.AWS.EC2.DescribeCustomerGateways
     , module Network.AWS.EC2.DescribeDhcpOptions
@@ -127,19 +129,23 @@
     , module Network.AWS.EC2.DescribeVolumeStatus
     , module Network.AWS.EC2.DescribeVolumes
     , module Network.AWS.EC2.DescribeVpcAttribute
+    , module Network.AWS.EC2.DescribeVpcClassicLink
     , module Network.AWS.EC2.DescribeVpcPeeringConnections
     , module Network.AWS.EC2.DescribeVpcs
     , module Network.AWS.EC2.DescribeVpnConnections
     , module Network.AWS.EC2.DescribeVpnGateways
+    , module Network.AWS.EC2.DetachClassicLinkVpc
     , module Network.AWS.EC2.DetachInternetGateway
     , module Network.AWS.EC2.DetachNetworkInterface
     , module Network.AWS.EC2.DetachVolume
     , module Network.AWS.EC2.DetachVpnGateway
     , module Network.AWS.EC2.DisableVgwRoutePropagation
+    , module Network.AWS.EC2.DisableVpcClassicLink
     , module Network.AWS.EC2.DisassociateAddress
     , module Network.AWS.EC2.DisassociateRouteTable
     , module Network.AWS.EC2.EnableVgwRoutePropagation
     , module Network.AWS.EC2.EnableVolumeIO
+    , module Network.AWS.EC2.EnableVpcClassicLink
     , module Network.AWS.EC2.GetConsoleOutput
     , module Network.AWS.EC2.GetPasswordData
     , module Network.AWS.EC2.ImportInstance
@@ -187,6 +193,7 @@
 import Network.AWS.EC2.AssociateAddress
 import Network.AWS.EC2.AssociateDhcpOptions
 import Network.AWS.EC2.AssociateRouteTable
+import Network.AWS.EC2.AttachClassicLinkVpc
 import Network.AWS.EC2.AttachInternetGateway
 import Network.AWS.EC2.AttachNetworkInterface
 import Network.AWS.EC2.AttachVolume
@@ -252,6 +259,7 @@
 import Network.AWS.EC2.DescribeAddresses
 import Network.AWS.EC2.DescribeAvailabilityZones
 import Network.AWS.EC2.DescribeBundleTasks
+import Network.AWS.EC2.DescribeClassicLinkInstances
 import Network.AWS.EC2.DescribeConversionTasks
 import Network.AWS.EC2.DescribeCustomerGateways
 import Network.AWS.EC2.DescribeDhcpOptions
@@ -285,19 +293,23 @@
 import Network.AWS.EC2.DescribeVolumeStatus
 import Network.AWS.EC2.DescribeVolumes
 import Network.AWS.EC2.DescribeVpcAttribute
+import Network.AWS.EC2.DescribeVpcClassicLink
 import Network.AWS.EC2.DescribeVpcPeeringConnections
 import Network.AWS.EC2.DescribeVpcs
 import Network.AWS.EC2.DescribeVpnConnections
 import Network.AWS.EC2.DescribeVpnGateways
+import Network.AWS.EC2.DetachClassicLinkVpc
 import Network.AWS.EC2.DetachInternetGateway
 import Network.AWS.EC2.DetachNetworkInterface
 import Network.AWS.EC2.DetachVolume
 import Network.AWS.EC2.DetachVpnGateway
 import Network.AWS.EC2.DisableVgwRoutePropagation
+import Network.AWS.EC2.DisableVpcClassicLink
 import Network.AWS.EC2.DisassociateAddress
 import Network.AWS.EC2.DisassociateRouteTable
 import Network.AWS.EC2.EnableVgwRoutePropagation
 import Network.AWS.EC2.EnableVolumeIO
+import Network.AWS.EC2.EnableVpcClassicLink
 import Network.AWS.EC2.GetConsoleOutput
 import Network.AWS.EC2.GetPasswordData
 import Network.AWS.EC2.ImportInstance
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
@@ -25,7 +25,7 @@
 -- | Acquires an Elastic IP address.
 --
 -- An Elastic IP address is for use either in the EC2-Classic platform or in a
--- VPC. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html Elastic IP Addresses> in the /Amazon ElasticCompute Cloud User Guide/.
+-- VPC. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html Elastic IP Addresses> in the /Amazon ElasticCompute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-AllocateAddress.html>
 module Network.AWS.EC2.AllocateAddress
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
@@ -27,8 +27,8 @@
 -- you can specify the number of secondary IP addresses to be automatically
 -- assigned within the subnet's CIDR block range. The number of secondary IP
 -- addresses that you can assign to an instance varies by instance type. For
--- information about instance types, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html Instance Types> in the /Amazon ElasticCompute Cloud User Guide/. For more information about Elastic IP addresses,
--- see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html Elastic IP Addresses> in the /Amazon Elastic Compute Cloud User Guide/.
+-- information about instance types, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html Instance Types> in the /Amazon ElasticCompute Cloud User Guide for Linux/. For more information about Elastic IP
+-- addresses, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html Elastic IP Addresses> in the /Amazon Elastic Compute Cloud UserGuide for Linux/.
 --
 -- AssignPrivateIpAddresses is available only in EC2-VPC.
 --
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
@@ -25,7 +25,7 @@
 -- | Associates an Elastic IP address with an instance or a network interface.
 --
 -- An Elastic IP address is for use in either the EC2-Classic platform or in a
--- VPC. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html Elastic IP Addresses> in the /Amazon ElasticCompute Cloud User Guide/.
+-- VPC. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html Elastic IP Addresses> in the /Amazon ElasticCompute Cloud User Guide for Linux/.
 --
 -- [EC2-Classic, VPC in an EC2-VPC-only account] If the Elastic IP address is
 -- already associated with a different instance, it is disassociated from that
diff --git a/gen/Network/AWS/EC2/AttachClassicLinkVpc.hs b/gen/Network/AWS/EC2/AttachClassicLinkVpc.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/EC2/AttachClassicLinkVpc.hs
@@ -0,0 +1,149 @@
+{-# LANGUAGE DataKinds                   #-}
+{-# LANGUAGE DeriveGeneric               #-}
+{-# LANGUAGE FlexibleInstances           #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
+{-# LANGUAGE LambdaCase                  #-}
+{-# LANGUAGE NoImplicitPrelude           #-}
+{-# LANGUAGE OverloadedStrings           #-}
+{-# LANGUAGE RecordWildCards             #-}
+{-# LANGUAGE TypeFamilies                #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Module      : Network.AWS.EC2.AttachClassicLinkVpc
+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
+-- License     : This Source Code Form is subject to the terms of
+--               the Mozilla Public License, v. 2.0.
+--               A copy of the MPL can be found in the LICENSE file or
+--               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- 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.
+
+-- | Links an EC2-Classic instance to a ClassicLink-enabled VPC through one or
+-- more of the VPC's security groups. You cannot link an EC2-Classic instance to
+-- more than one VPC at a time. You can only link an instance that's in the 'running' state. An instance is automatically unlinked from a VPC when it's stopped -
+-- you can link it to the VPC again when you restart it.
+--
+-- After you've linked an instance, you cannot change the VPC security groups
+-- that are associated with it. To change the security groups, you must first
+-- unlink the instance, and then link it again.
+--
+-- Linking your instance to a VPC is sometimes referred to as /attaching/ your
+-- instance.
+--
+-- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-AttachClassicLinkVpc.html>
+module Network.AWS.EC2.AttachClassicLinkVpc
+    (
+    -- * Request
+      AttachClassicLinkVpc
+    -- ** Request constructor
+    , attachClassicLinkVpc
+    -- ** Request lenses
+    , aclvDryRun
+    , aclvGroups
+    , aclvInstanceId
+    , aclvVpcId
+
+    -- * Response
+    , AttachClassicLinkVpcResponse
+    -- ** Response constructor
+    , attachClassicLinkVpcResponse
+    -- ** Response lenses
+    , aclvrReturn
+    ) where
+
+import Network.AWS.Prelude
+import Network.AWS.Request.Query
+import Network.AWS.EC2.Types
+import qualified GHC.Exts
+
+data AttachClassicLinkVpc = AttachClassicLinkVpc
+    { _aclvDryRun     :: Maybe Bool
+    , _aclvGroups     :: List "groupId" Text
+    , _aclvInstanceId :: Text
+    , _aclvVpcId      :: Text
+    } deriving (Eq, Ord, Show)
+
+-- | 'AttachClassicLinkVpc' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'aclvDryRun' @::@ 'Maybe' 'Bool'
+--
+-- * 'aclvGroups' @::@ ['Text']
+--
+-- * 'aclvInstanceId' @::@ 'Text'
+--
+-- * 'aclvVpcId' @::@ 'Text'
+--
+attachClassicLinkVpc :: Text -- ^ 'aclvInstanceId'
+                     -> Text -- ^ 'aclvVpcId'
+                     -> AttachClassicLinkVpc
+attachClassicLinkVpc p1 p2 = AttachClassicLinkVpc
+    { _aclvInstanceId = p1
+    , _aclvVpcId      = p2
+    , _aclvDryRun     = Nothing
+    , _aclvGroups     = mempty
+    }
+
+aclvDryRun :: Lens' AttachClassicLinkVpc (Maybe Bool)
+aclvDryRun = lens _aclvDryRun (\s a -> s { _aclvDryRun = a })
+
+-- | The ID of one or more of the VPC's security groups. You cannot specify
+-- security groups from a different VPC.
+aclvGroups :: Lens' AttachClassicLinkVpc [Text]
+aclvGroups = lens _aclvGroups (\s a -> s { _aclvGroups = a }) . _List
+
+-- | The ID of an EC2-Classic instance to link to the ClassicLink-enabled VPC.
+aclvInstanceId :: Lens' AttachClassicLinkVpc Text
+aclvInstanceId = lens _aclvInstanceId (\s a -> s { _aclvInstanceId = a })
+
+-- | The ID of a ClassicLink-enabled VPC.
+aclvVpcId :: Lens' AttachClassicLinkVpc Text
+aclvVpcId = lens _aclvVpcId (\s a -> s { _aclvVpcId = a })
+
+newtype AttachClassicLinkVpcResponse = AttachClassicLinkVpcResponse
+    { _aclvrReturn :: Maybe Bool
+    } deriving (Eq, Ord, Show)
+
+-- | 'AttachClassicLinkVpcResponse' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'aclvrReturn' @::@ 'Maybe' 'Bool'
+--
+attachClassicLinkVpcResponse :: AttachClassicLinkVpcResponse
+attachClassicLinkVpcResponse = AttachClassicLinkVpcResponse
+    { _aclvrReturn = Nothing
+    }
+
+-- | Returns 'true' if the request succeeds; otherwise, it returns an error.
+aclvrReturn :: Lens' AttachClassicLinkVpcResponse (Maybe Bool)
+aclvrReturn = lens _aclvrReturn (\s a -> s { _aclvrReturn = a })
+
+instance ToPath AttachClassicLinkVpc where
+    toPath = const "/"
+
+instance ToQuery AttachClassicLinkVpc where
+    toQuery AttachClassicLinkVpc{..} = mconcat
+        [ "dryRun"          =? _aclvDryRun
+        , "SecurityGroupId" `toQueryList` _aclvGroups
+        , "instanceId"      =? _aclvInstanceId
+        , "vpcId"           =? _aclvVpcId
+        ]
+
+instance ToHeaders AttachClassicLinkVpc
+
+instance AWSRequest AttachClassicLinkVpc where
+    type Sv AttachClassicLinkVpc = EC2
+    type Rs AttachClassicLinkVpc = AttachClassicLinkVpcResponse
+
+    request  = post "AttachClassicLinkVpc"
+    response = xmlResponse
+
+instance FromXML AttachClassicLinkVpcResponse where
+    parseXML x = AttachClassicLinkVpcResponse
+        <$> x .@? "return"
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
@@ -26,21 +26,21 @@
 -- to the instance with the specified device name.
 --
 -- Encrypted Amazon EBS volumes may only be attached to instances that support
--- Amazon EBS encryption. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html Amazon EBS Encryption> in the /Amazon Elastic Compute Cloud User Guide/.
+-- Amazon EBS encryption. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html Amazon EBS Encryption> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- For a list of supported device names, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-attaching-volume.html Attaching an Amazon EBS Volume toan Instance>. Any device names that aren't reserved for instance store volumes
--- can be used for Amazon EBS volumes. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html Amazon EC2Instance Store> in the /Amazon Elastic Compute Cloud User Guide/.
+-- can be used for Amazon EBS volumes. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html Amazon EC2Instance Store> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- If a volume has an AWS Marketplace product code:
 --
--- The volume can only be attached as the root device of a stopped instance. You must be subscribed to the AWS Marketplace code that is on the volume.
--- The configuration (instance type, operating system) of the instance must
--- support that specific AWS Marketplace code. For example, you cannot take a
--- volume from a Windows instance and attach it to a Linux instance. AWS
--- Marketplace product codes are copied from the volume to the instance.  For an
--- overview of the AWS Marketplace, see <https://aws.amazon.com/marketplace/help/200900000 https://aws.amazon.com/marketplace/help/200900000>. For more information about how to use the AWS Marketplace, see <https://aws.amazon.com/marketplace AWSMarketplace>.
+-- The volume can be attached only to a stopped instance. AWS Marketplace
+-- product codes are copied from the volume to the instance. You must be
+-- subscribed to the product. The instance type and operating system of the
+-- instance must support the product. For example, you can't detach a volume
+-- from a Windows instance and attach it to a Linux instance.  For an overview
+-- of the AWS Marketplace, see <https://aws.amazon.com/marketplace/help/200900000 Introducing AWS Marketplace>.
 --
--- For more information about Amazon EBS volumes, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-attaching-volume.html Attaching Amazon EBSVolumes> in the /Amazon Elastic Compute Cloud User Guide/.
+-- For more information about Amazon EBS volumes, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-attaching-volume.html Attaching Amazon EBSVolumes> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-AttachVolume.html>
 module Network.AWS.EC2.AttachVolume
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
@@ -27,8 +27,8 @@
 -- During bundling, only the root device volume (C:\) is bundled. Data on other
 -- instance store volumes is not preserved.
 --
--- This procedure is not applicable for Linux/Unix instances or Windows
--- instances that are backed by Amazon EBS.
+-- This action is not applicable for Linux/Unix instances or Windows instances
+-- that are backed by Amazon EBS.
 --
 -- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/Creating_InstanceStoreBacked_WinAMI.html Creating an Instance Store-Backed Windows AMI>.
 --
@@ -86,6 +86,12 @@
 biDryRun = lens _biDryRun (\s a -> s { _biDryRun = a })
 
 -- | The ID of the instance to bundle.
+--
+-- Type: String
+--
+-- Default: None
+--
+-- Required: Yes
 biInstanceId :: Lens' BundleInstance Text
 biInstanceId = lens _biInstanceId (\s a -> s { _biInstanceId = a })
 
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
@@ -28,7 +28,7 @@
 -- the process of transferring the final disk image, the command fails and
 -- returns an exception.
 --
--- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UploadingYourInstancesandVolumes.html Using the Command Line Tools to Import YourVirtual Machine to Amazon EC2> in the /Amazon Elastic Compute Cloud User Guide/.
+-- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UploadingYourInstancesandVolumes.html Using the Command Line Tools to Import YourVirtual Machine to Amazon EC2> in the /Amazon Elastic Compute Cloud User Guidefor Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CancelConversionTask.html>
 module Network.AWS.EC2.CancelConversionTask
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
@@ -25,7 +25,7 @@
 -- | Cancels the specified Reserved Instance listing in the Reserved Instance
 -- Marketplace.
 --
--- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html Reserved Instance Marketplace> in the /AmazonElastic Compute Cloud User Guide/.
+-- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html Reserved Instance Marketplace> in the /AmazonElastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CancelReservedInstancesListing.html>
 module Network.AWS.EC2.CancelReservedInstancesListing
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
@@ -23,10 +23,10 @@
 -- 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
--- exceeds the current Spot Price. Amazon EC2 periodically sets the Spot Price
--- based on available Spot Instance capacity and current Spot Instance requests.
--- For more information about Spot Instances, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html Spot Instances> in the /AmazonElastic Compute Cloud User Guide/.
+-- Amazon EC2 starts on your behalf when the bid price that you specify exceeds
+-- the current Spot Price. Amazon EC2 periodically sets the Spot Price based on
+-- available Spot Instance capacity and current Spot Instance requests. For more
+-- information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html Spot Instance Requests> in the /Amazon Elastic Compute CloudUser Guide for Linux/.
 --
 -- Canceling a Spot Instance request does not terminate running Spot Instances
 -- associated with the request.
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
@@ -22,12 +22,12 @@
 --
 -- 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
--- its endpoint when making the request. AMIs that use encrypted Amazon EBS
--- snapshots cannot be copied with this method.
+-- | Initiates the copy of an AMI from the specified source region to the current
+-- region. You specify the destination region by using its endpoint when making
+-- the request. AMIs that use encrypted Amazon EBS snapshots cannot be copied
+-- with this method.
 --
--- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html Copying AMIs> in the /Amazon Elastic Compute CloudUser Guide/.
+-- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html Copying AMIs> in the /Amazon Elastic Compute CloudUser Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CopyImage.html>
 module Network.AWS.EC2.CopyImage
@@ -96,7 +96,7 @@
     }
 
 -- | Unique, case-sensitive identifier you provide to ensure idempotency of the
--- request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html How to Ensure Idempotency> in the /AmazonElastic Compute Cloud User Guide/.
+-- request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html How to Ensure Idempotency> in the /AmazonElastic Compute Cloud User Guide for Linux/.
 ciClientToken :: Lens' CopyImage (Maybe Text)
 ciClientToken = lens _ciClientToken (\s a -> s { _ciClientToken = a })
 
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
@@ -31,7 +31,10 @@
 -- Copies of encrypted Amazon EBS snapshots remain encrypted. Copies of
 -- unencrypted snapshots remain unencrypted.
 --
--- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-copy-snapshot.html Copying an Amazon EBS Snapshot> in the /AmazonElastic Compute Cloud User Guide/.
+-- Copying snapshots that were encrypted with non-default AWS Key Management
+-- Service (KMS) master keys is not supported at this time.
+--
+-- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-copy-snapshot.html Copying an Amazon EBS Snapshot> in the /AmazonElastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CopySnapshot.html>
 module Network.AWS.EC2.CopySnapshot
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
@@ -31,18 +31,19 @@
 -- 'domain-name-servers' - The IP addresses of up to four domain name servers,
 -- or 'AmazonProvidedDNS'. The default DHCP option set specifies 'AmazonProvidedDNS'. If specifying more than one domain name server, specify the IP addresses in a single parameter, separated by commas.
 -- 'domain-name' - If you're using AmazonProvidedDNS in 'us-east-1', specify 'ec2.internal'. If you're using AmazonProvidedDNS in another region, specify 'region.compute.internal' (for example, 'ap-northeast-1.compute.internal'). Otherwise, specify a domain
--- name (for example, 'MyCompany.com'). If specifying more than one domain name,
--- separate them with spaces.  'ntp-servers' - The IP addresses of up to four
--- Network Time Protocol (NTP) servers.  'netbios-name-servers' - The IP addresses
--- of up to four NetBIOS name servers.  'netbios-node-type' - The NetBIOS node
--- type (1, 2, 4, or 8). We recommend that you specify 2 (broadcast and
--- multicast are not currently supported). For more information about these node
--- types, see <http://www.ietf.org/rfc/rfc2132.txt RFC 2132>.   Your VPC automatically starts out with a set of DHCP
--- options that includes only a DNS server that we provide (AmazonProvidedDNS).
--- If you create a set of options, and if your VPC has an Internet gateway, make
--- sure to set the 'domain-name-servers' option either to 'AmazonProvidedDNS' or to
--- a domain name server of your choice. For more information about DHCP options,
--- see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html DHCP Options Sets> in the /Amazon Virtual Private Cloud User Guide/.
+-- name (for example, 'MyCompany.com'). Important: Some Linux operating systems
+-- accept multiple domain names separated by spaces. However, Windows and other
+-- Linux operating systems treat the value as a single domain, which results in
+-- unexpected behavior. If your DHCP options set is associated with a VPC that
+-- has instances with multiple operating systems, specify only one domain name.  'ntp-servers' - The IP addresses of up to four Network Time Protocol (NTP)
+-- servers.  'netbios-name-servers' - The IP addresses of up to four NetBIOS name
+-- servers.  'netbios-node-type' - The NetBIOS node type (1, 2, 4, or 8). We
+-- recommend that you specify 2 (broadcast and multicast are not currently
+-- supported). For more information about these node types, see <http://www.ietf.org/rfc/rfc2132.txt RFC 2132>.   Your
+-- VPC automatically starts out with a set of DHCP options that includes only a
+-- DNS server that we provide (AmazonProvidedDNS). If you create a set of
+-- options, and if your VPC has an Internet gateway, make sure to set the 'domain-name-servers' option either to 'AmazonProvidedDNS' or to a domain name server of your
+-- choice. For more information about DHCP options, see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html DHCP Options Sets> in the /Amazon Virtual Private Cloud User Guide/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateDhcpOptions.html>
 module Network.AWS.EC2.CreateDhcpOptions
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
@@ -30,7 +30,7 @@
 -- mapping information for those volumes. When you launch an instance from this
 -- new AMI, the instance automatically launches with those additional volumes.
 --
--- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html Creating Amazon EBS-Backed Linux AMIs> in the /Amazon Elastic Compute Cloud User Guide/.
+-- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html Creating Amazon EBS-Backed Linux AMIs> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateImage.html>
 module Network.AWS.EC2.CreateImage
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
@@ -25,7 +25,7 @@
 -- | Exports a running or stopped instance to an Amazon S3 bucket.
 --
 -- For information about the supported operating systems, image formats, and
--- known limitations for the types of instances you can export, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExportingEC2Instances.html ExportingEC2 Instances> in the /Amazon Elastic Compute Cloud User Guide/.
+-- known limitations for the types of instances you can export, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExportingEC2Instances.html ExportingEC2 Instances> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateInstanceExportTask.html>
 module Network.AWS.EC2.CreateInstanceExportTask
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
@@ -32,7 +32,7 @@
 -- The key pair returned to you is available only in the region in which you
 -- create it. To create a key pair that is available in all regions, use 'ImportKeyPair'.
 --
--- For more information about key pairs, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html Key Pairs> in the /Amazon ElasticCompute Cloud User Guide/.
+-- For more information about key pairs, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html Key Pairs> in the /Amazon ElasticCompute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateKeyPair.html>
 module Network.AWS.EC2.CreateKeyPair
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
@@ -25,7 +25,7 @@
 -- | Creates a network interface in the specified subnet.
 --
 -- For more information about network interfaces, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html Elastic Network Interfaces>
--- in the /Amazon Elastic Compute Cloud User Guide/.
+-- in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateNetworkInterface.html>
 module Network.AWS.EC2.CreateNetworkInterface
@@ -126,7 +126,7 @@
 -- option and specify more than one private IP address using 'privateIpAddresses'.
 --
 -- The number of IP addresses you can assign to a network interface varies by
--- instance type. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI Private IP Addresses Per ENI PerInstance Type> in the /Amazon Elastic Compute Cloud User Guide/.
+-- instance type. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI Private IP Addresses Per ENI PerInstance Type> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 cniSecondaryPrivateIpAddressCount :: Lens' CreateNetworkInterface (Maybe Int)
 cniSecondaryPrivateIpAddressCount =
     lens _cniSecondaryPrivateIpAddressCount
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
@@ -25,7 +25,7 @@
 -- | 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.
 --
--- 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 /Amazon Elastic Compute Cloud User Guide/.
+-- 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 /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreatePlacementGroup.html>
 module Network.AWS.EC2.CreatePlacementGroup
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
@@ -38,7 +38,7 @@
 -- Reserved Instance listings then become available for purchase. To view the
 -- details of your Reserved Instance listing, you can use the 'DescribeReservedInstancesListings' operation.
 --
--- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html Reserved Instance Marketplace> in the /AmazonElastic Compute Cloud User Guide/.
+-- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html Reserved Instance Marketplace> in the /AmazonElastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateReservedInstancesListing.html>
 module Network.AWS.EC2.CreateReservedInstancesListing
@@ -97,7 +97,7 @@
     }
 
 -- | Unique, case-sensitive identifier you provide to ensure idempotency of your
--- listings. This helps avoid duplicate listings. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html Ensuring Idempotency> in the /Amazon Elastic Compute Cloud User Guide/.
+-- listings. This helps avoid duplicate listings. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html Ensuring Idempotency> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 crilClientToken :: Lens' CreateReservedInstancesListing Text
 crilClientToken = lens _crilClientToken (\s a -> s { _crilClientToken = a })
 
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
@@ -25,7 +25,7 @@
 -- | Creates a security group.
 --
 -- A security group is for use with instances either in the EC2-Classic
--- platform or in a specific VPC. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html Amazon EC2 SecurityGroups> in the /Amazon Elastic Compute Cloud User Guide/ and <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html Security Groups forYour VPC> in the /Amazon Virtual Private Cloud User Guide/.
+-- platform or in a specific VPC. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html Amazon EC2 SecurityGroups> in the /Amazon Elastic Compute Cloud User Guide for Linux/ and <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html SecurityGroups for Your VPC> in the /Amazon Virtual Private Cloud User Guide/.
 --
 -- EC2-Classic: You can have up to 500 security groups.
 --
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
@@ -48,7 +48,7 @@
 -- encrypted. Your encrypted volumes and any associated snapshots always remain
 -- protected.
 --
--- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html Amazon Elastic Block Store> and <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html Amazon EBSEncryption> in the /Amazon Elastic Compute Cloud User Guide/.
+-- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html Amazon Elastic Block Store> and <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html Amazon EBSEncryption> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateSnapshot.html>
 module Network.AWS.EC2.CreateSnapshot
@@ -197,9 +197,8 @@
 csr1Encrypted :: Lens' CreateSnapshotResponse Bool
 csr1Encrypted = lens _csr1Encrypted (\s a -> s { _csr1Encrypted = a })
 
--- | The full ARN of the AWS Key Management Service (KMS) Customer Master Key
--- (CMK) that was used to protect the volume encryption key for the parent
--- volume.
+-- | The full ARN of the AWS Key Management Service (KMS) master key that was used
+-- to protect the volume encryption key for the parent volume.
 csr1KmsKeyId :: Lens' CreateSnapshotResponse (Maybe Text)
 csr1KmsKeyId = lens _csr1KmsKeyId (\s a -> s { _csr1KmsKeyId = a })
 
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
@@ -22,10 +22,9 @@
 --
 -- Derived from AWS service descriptions, licensed under Apache 2.0.
 
--- | Creates a datafeed for Spot Instances, enabling you to view Spot Instance
+-- | Creates a data feed for Spot Instances, enabling you to view Spot Instance
 -- usage logs. You can create one data feed per AWS account. For more
--- information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html Spot Instances> in the /Amazon Elastic Compute Cloud User Guide/
--- .
+-- information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-data-feeds.html Spot Instance Data Feed> in the /Amazon Elastic Compute CloudUser Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateSpotDatafeedSubscription.html>
 module Network.AWS.EC2.CreateSpotDatafeedSubscription
@@ -76,16 +75,14 @@
     , _csdsPrefix = Nothing
     }
 
--- | The Amazon S3 bucket in which to store the Spot Instance datafeed.
---
--- Constraints: Must be a valid bucket associated with your AWS account.
+-- | The Amazon S3 bucket in which to store the Spot Instance data feed.
 csdsBucket :: Lens' CreateSpotDatafeedSubscription Text
 csdsBucket = lens _csdsBucket (\s a -> s { _csdsBucket = a })
 
 csdsDryRun :: Lens' CreateSpotDatafeedSubscription (Maybe Bool)
 csdsDryRun = lens _csdsDryRun (\s a -> s { _csdsDryRun = a })
 
--- | A prefix for the datafeed file names.
+-- | A prefix for the data feed file names.
 csdsPrefix :: Lens' CreateSpotDatafeedSubscription (Maybe Text)
 csdsPrefix = lens _csdsPrefix (\s a -> s { _csdsPrefix = a })
 
@@ -104,7 +101,7 @@
     { _csdsrSpotDatafeedSubscription = Nothing
     }
 
--- | The Spot Instance datafeed subscription.
+-- | The Spot Instance data feed subscription.
 csdsrSpotDatafeedSubscription :: Lens' CreateSpotDatafeedSubscriptionResponse (Maybe SpotDatafeedSubscription)
 csdsrSpotDatafeedSubscription =
     lens _csdsrSpotDatafeedSubscription
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
@@ -22,11 +22,11 @@
 --
 -- Derived from AWS service descriptions, licensed under Apache 2.0.
 
--- | Adds or overwrites one or more tags for the specified EC2 resource or
+-- | Adds or overwrites one or more tags for the specified Amazon EC2 resource or
 -- resources. Each resource can have a maximum of 10 tags. Each tag consists of
 -- a key and optional value. Tag keys must be unique per resource.
 --
--- For more information about tags, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html Tagging Your Resources> in the /AmazonElastic Compute Cloud User Guide/.
+-- For more information about tags, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html Tagging Your Resources> in the /AmazonElastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateTags.html>
 module Network.AWS.EC2.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
@@ -23,7 +23,8 @@
 -- 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.
+-- Availability Zone. The volume is created in the regional endpoint that you
+-- send the HTTP request to. For more information see <http://docs.aws.amazon.com/general/latest/gr/rande.html Regions and Endpoints>.
 --
 -- You can create a new empty volume or restore a volume from an Amazon EBS
 -- snapshot. Any AWS Marketplace product codes from the snapshot are propagated
@@ -32,9 +33,9 @@
 -- You can create encrypted volumes with the 'Encrypted' parameter. Encrypted
 -- volumes may only be attached to instances that support Amazon EBS encryption.
 -- Volumes that are created from encrypted snapshots are also automatically
--- encrypted. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html Amazon EBS Encryption> in the /AmazonElastic Compute Cloud User Guide/.
+-- encrypted. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html Amazon EBS Encryption> in the /AmazonElastic Compute Cloud User Guide for Linux/.
 --
--- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-volume.html Creating or Restoring an Amazon EBS Volume> in the /Amazon Elastic Compute Cloud User Guide/.
+-- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-volume.html Creating or Restoring an Amazon EBS Volume> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateVolume.html>
 module Network.AWS.EC2.CreateVolume
@@ -129,7 +130,12 @@
 cv1DryRun :: Lens' CreateVolume (Maybe Bool)
 cv1DryRun = lens _cv1DryRun (\s a -> s { _cv1DryRun = a })
 
--- | Specifies whether the volume should be encrypted.
+-- | Specifies whether the volume should be encrypted. Encrypted Amazon EBS
+-- volumes may only be attached to instances that support Amazon EBS encryption.
+-- Volumes that are created from encrypted snapshots are automatically
+-- encrypted. There is no way to create an encrypted volume from an unencrypted
+-- snapshot or vice versa. If your AMI uses encrypted volumes, you can only
+-- launch it on supported instance types. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html Amazon EBSEncryption> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 cv1Encrypted :: Lens' CreateVolume (Maybe Bool)
 cv1Encrypted = lens _cv1Encrypted (\s a -> s { _cv1Encrypted = a })
 
@@ -138,12 +144,11 @@
 cv1Iops :: Lens' CreateVolume (Maybe Int)
 cv1Iops = lens _cv1Iops (\s a -> s { _cv1Iops = a })
 
--- | The full ARN of the AWS Key Management Service (KMS) Customer Master Key
--- (CMK) to use when creating the encrypted volume. This parameter is only
--- required if you want to use a non-default CMK; if this parameter is not
--- specified, the default CMK is used. The ARN contains the 'arn:aws:kms'
--- namespace, followed by the region of the CMK, the AWS account ID of the CMK
--- owner, the 'key' namespace, and then the CMK ID. For example, arn:aws:kms:/us-east-1/:/012345678910/:key//abcd1234-a123-456a-a12b-a123b4cd56ef/.
+-- | The full ARN of the AWS Key Management Service (KMS) master key to use when
+-- creating the encrypted volume. This parameter is only required if you want to
+-- use a non-default master key; if this parameter is not specified, the default
+-- master key is used. The ARN contains the 'arn:aws:kms' namespace, followed by
+-- the region of the master key, the AWS account ID of the master key owner, the 'key' namespace, and then the master key ID. For example, arn:aws:kms:/us-east-1/:/012345678910/:key//abcd1234-a123-456a-a12b-a123b4cd56ef/.
 cv1KmsKeyId :: Lens' CreateVolume (Maybe Text)
 cv1KmsKeyId = lens _cv1KmsKeyId (\s a -> s { _cv1KmsKeyId = a })
 
@@ -173,7 +178,7 @@
     , _cvrAvailabilityZone :: Text
     , _cvrCreateTime       :: ISO8601
     , _cvrEncrypted        :: Bool
-    , _cvrIops             :: Int
+    , _cvrIops             :: Maybe Int
     , _cvrKmsKeyId         :: Maybe Text
     , _cvrSize             :: Int
     , _cvrSnapshotId       :: Text
@@ -195,7 +200,7 @@
 --
 -- * 'cvrEncrypted' @::@ 'Bool'
 --
--- * 'cvrIops' @::@ 'Int'
+-- * 'cvrIops' @::@ 'Maybe' 'Int'
 --
 -- * 'cvrKmsKeyId' @::@ 'Maybe' 'Text'
 --
@@ -218,10 +223,9 @@
                      -> VolumeState -- ^ 'cvrState'
                      -> UTCTime -- ^ 'cvrCreateTime'
                      -> VolumeType -- ^ 'cvrVolumeType'
-                     -> Int -- ^ 'cvrIops'
                      -> Bool -- ^ 'cvrEncrypted'
                      -> CreateVolumeResponse
-createVolumeResponse p1 p2 p3 p4 p5 p6 p7 p8 p9 = CreateVolumeResponse
+createVolumeResponse p1 p2 p3 p4 p5 p6 p7 p8 = CreateVolumeResponse
     { _cvrVolumeId         = p1
     , _cvrSize             = p2
     , _cvrSnapshotId       = p3
@@ -229,10 +233,10 @@
     , _cvrState            = p5
     , _cvrCreateTime       = withIso _Time (const id) p6
     , _cvrVolumeType       = p7
-    , _cvrIops             = p8
-    , _cvrEncrypted        = p9
+    , _cvrEncrypted        = p8
     , _cvrAttachments      = mempty
     , _cvrTags             = mempty
+    , _cvrIops             = Nothing
     , _cvrKmsKeyId         = Nothing
     }
 
@@ -248,7 +252,7 @@
 cvrCreateTime :: Lens' CreateVolumeResponse UTCTime
 cvrCreateTime = lens _cvrCreateTime (\s a -> s { _cvrCreateTime = a }) . _Time
 
--- | Indicates whether the volume is encrypted.
+-- | Indicates whether the volume will be encrypted.
 cvrEncrypted :: Lens' CreateVolumeResponse Bool
 cvrEncrypted = lens _cvrEncrypted (\s a -> s { _cvrEncrypted = a })
 
@@ -257,18 +261,18 @@
 -- provisioned for the volume. For General Purpose (SSD) volumes, this
 -- represents the baseline performance of the volume and the rate at which the
 -- volume accumulates I/O credits for bursting. For more information on General
--- Purpose (SSD) baseline performance, I/O credits, and bursting, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html Amazon EBSVolume Types> in the /Amazon Elastic Compute Cloud User Guide/.
+-- Purpose (SSD) baseline performance, I/O credits, and bursting, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html Amazon EBSVolume Types> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- Constraint: Range is 100 to 4000 for Provisioned IOPS (SSD) volumes and 3 to
 -- 3072 for General Purpose (SSD) volumes.
 --
 -- Condition: This parameter is required for requests to create 'io1' volumes; it
 -- is not used in requests to create 'standard' or 'gp2' volumes.
-cvrIops :: Lens' CreateVolumeResponse Int
+cvrIops :: Lens' CreateVolumeResponse (Maybe Int)
 cvrIops = lens _cvrIops (\s a -> s { _cvrIops = a })
 
--- | The full ARN of the AWS Key Management Service (KMS) Customer Master Key
--- (CMK) that was used to protect the volume encryption key for the volume.
+-- | The full ARN of the AWS Key Management Service (KMS) master key that was used
+-- to protect the volume encryption key for the volume.
 cvrKmsKeyId :: Lens' CreateVolumeResponse (Maybe Text)
 cvrKmsKeyId = lens _cvrKmsKeyId (\s a -> s { _cvrKmsKeyId = a })
 
@@ -327,7 +331,7 @@
         <*> x .@  "availabilityZone"
         <*> x .@  "createTime"
         <*> x .@  "encrypted"
-        <*> x .@  "iops"
+        <*> x .@? "iops"
         <*> x .@? "kmsKeyId"
         <*> x .@  "size"
         <*> x .@  "snapshotId"
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
@@ -24,7 +24,7 @@
 
 -- | Deletes the specified placement group. You must terminate all instances in
 -- the placement group before you can delete the placement group. For more
--- information about placement groups and cluster instances, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using_cluster_computing.html ClusterInstances> in the /Amazon Elastic Compute Cloud User Guide/.
+-- information about placement groups and cluster instances, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using_cluster_computing.html ClusterInstances> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeletePlacementGroup.html>
 module Network.AWS.EC2.DeletePlacementGroup
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
@@ -35,7 +35,7 @@
 -- by a registered AMI. You must first de-register the AMI before you can delete
 -- the snapshot.
 --
--- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-deleting-snapshot.html Deleting an Amazon EBS Snapshot> in the /AmazonElastic Compute Cloud User Guide/.
+-- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-deleting-snapshot.html Deleting an Amazon EBS Snapshot> in the /AmazonElastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteSnapshot.html>
 module Network.AWS.EC2.DeleteSnapshot
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
@@ -22,7 +22,7 @@
 --
 -- 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/.
+-- | Deletes the data feed for Spot Instances. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-data-feeds.html SpotInstance Data Feed> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteSpotDatafeedSubscription.html>
 module Network.AWS.EC2.DeleteSpotDatafeedSubscription
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
@@ -25,7 +25,7 @@
 -- | Deletes the specified set of tags from the specified set of resources. This
 -- call is designed to follow a 'DescribeTags' request.
 --
--- For more information about tags, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html Tagging Your Resources> in the /AmazonElastic Compute Cloud User Guide/.
+-- For more information about tags, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html Tagging Your Resources> in the /AmazonElastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteTags.html>
 module Network.AWS.EC2.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
@@ -27,7 +27,7 @@
 --
 -- The volume may remain in the 'deleting' state for several minutes.
 --
--- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-deleting-volume.html Deleting an Amazon EBS Volume> in the /AmazonElastic Compute Cloud User Guide/.
+-- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-deleting-volume.html Deleting an Amazon EBS Volume> in the /AmazonElastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteVolume.html>
 module Network.AWS.EC2.DeleteVolume
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
@@ -22,7 +22,26 @@
 --
 -- Derived from AWS service descriptions, licensed under Apache 2.0.
 
--- | Describes the specified attribute of your AWS account.
+-- | Describes attributes of your AWS account. The following are the supported
+-- account attributes:
+--
+-- 'supported-platforms': Indicates whether your account can launch instances
+-- into EC2-Classic and EC2-VPC, or only into EC2-VPC.
+--
+-- 'default-vpc': The ID of the default VPC for your account, or 'none'.
+--
+-- 'max-instances': The maximum number of On-Demand instances that you can run.
+--
+-- 'vpc-max-security-groups-per-interface': The maximum number of security
+-- groups that you can assign to a network interface.
+--
+-- 'max-elastic-ips': The maximum number of Elastic IP addresses that you can
+-- allocate for use with EC2-Classic.
+--
+-- 'vpc-max-elastic-ips': The maximum number of Elastic IP addresses that you
+-- can allocate for use with EC2-VPC.
+--
+--
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeAccountAttributes.html>
 module Network.AWS.EC2.DescribeAccountAttributes
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
@@ -25,7 +25,7 @@
 -- | Describes one or more of your Elastic IP addresses.
 --
 -- An Elastic IP address is for use in either the EC2-Classic platform or in a
--- VPC. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html Elastic IP Addresses> in the /Amazon ElasticCompute Cloud User Guide/.
+-- VPC. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html Elastic IP Addresses> in the /Amazon ElasticCompute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeAddresses.html>
 module Network.AWS.EC2.DescribeAddresses
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
@@ -27,7 +27,7 @@
 -- there is an event impacting an Availability Zone, you can use this request to
 -- view the state and any provided message for that Availability Zone.
 --
--- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html Regions and Availability Zones> in the /AmazonElastic Compute Cloud User Guide/.
+-- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html Regions and Availability Zones> in the /AmazonElastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeAvailabilityZones.html>
 module Network.AWS.EC2.DescribeAvailabilityZones
diff --git a/gen/Network/AWS/EC2/DescribeClassicLinkInstances.hs b/gen/Network/AWS/EC2/DescribeClassicLinkInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/EC2/DescribeClassicLinkInstances.hs
@@ -0,0 +1,188 @@
+{-# LANGUAGE DataKinds                   #-}
+{-# LANGUAGE DeriveGeneric               #-}
+{-# LANGUAGE FlexibleInstances           #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
+{-# LANGUAGE LambdaCase                  #-}
+{-# LANGUAGE NoImplicitPrelude           #-}
+{-# LANGUAGE OverloadedStrings           #-}
+{-# LANGUAGE RecordWildCards             #-}
+{-# LANGUAGE TypeFamilies                #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Module      : Network.AWS.EC2.DescribeClassicLinkInstances
+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
+-- License     : This Source Code Form is subject to the terms of
+--               the Mozilla Public License, v. 2.0.
+--               A copy of the MPL can be found in the LICENSE file or
+--               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- 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 linked EC2-Classic instances. This request only
+-- returns information about EC2-Classic instances linked to a VPC through
+-- ClassicLink; you cannot use this request to return information about other
+-- instances.
+--
+-- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeClassicLinkInstances.html>
+module Network.AWS.EC2.DescribeClassicLinkInstances
+    (
+    -- * Request
+      DescribeClassicLinkInstances
+    -- ** Request constructor
+    , describeClassicLinkInstances
+    -- ** Request lenses
+    , dcliDryRun
+    , dcliFilters
+    , dcliInstanceIds
+    , dcliMaxResults
+    , dcliNextToken
+
+    -- * Response
+    , DescribeClassicLinkInstancesResponse
+    -- ** Response constructor
+    , describeClassicLinkInstancesResponse
+    -- ** Response lenses
+    , dclirInstances
+    , dclirNextToken
+    ) where
+
+import Network.AWS.Prelude
+import Network.AWS.Request.Query
+import Network.AWS.EC2.Types
+import qualified GHC.Exts
+
+data DescribeClassicLinkInstances = DescribeClassicLinkInstances
+    { _dcliDryRun      :: Maybe Bool
+    , _dcliFilters     :: List "Filter" Filter
+    , _dcliInstanceIds :: List "InstanceId" Text
+    , _dcliMaxResults  :: Maybe Int
+    , _dcliNextToken   :: Maybe Text
+    } deriving (Eq, Show)
+
+-- | 'DescribeClassicLinkInstances' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'dcliDryRun' @::@ 'Maybe' 'Bool'
+--
+-- * 'dcliFilters' @::@ ['Filter']
+--
+-- * 'dcliInstanceIds' @::@ ['Text']
+--
+-- * 'dcliMaxResults' @::@ 'Maybe' 'Int'
+--
+-- * 'dcliNextToken' @::@ 'Maybe' 'Text'
+--
+describeClassicLinkInstances :: DescribeClassicLinkInstances
+describeClassicLinkInstances = DescribeClassicLinkInstances
+    { _dcliDryRun      = Nothing
+    , _dcliInstanceIds = mempty
+    , _dcliFilters     = mempty
+    , _dcliNextToken   = Nothing
+    , _dcliMaxResults  = Nothing
+    }
+
+dcliDryRun :: Lens' DescribeClassicLinkInstances (Maybe Bool)
+dcliDryRun = lens _dcliDryRun (\s a -> s { _dcliDryRun = a })
+
+-- | One or more filters.
+--
+-- 'group-id' - The ID of a VPC security group that's associated with the
+-- instance.
+--
+-- 'instance-id' - The ID of the instance.
+--
+-- 'tag':/key/=/value/ - The key/value combination of a tag assigned to the
+-- resource.
+--
+-- 'tag-key' - The key of a tag assigned to the resource. This filter is
+-- independent of the 'tag-value' filter. For example, if you use both the filter
+-- "tag-key=Purpose" and the filter "tag-value=X", you get any resources
+-- assigned both the tag key Purpose (regardless of what the tag's value is),
+-- and the tag value X (regardless of what the tag's key is). If you want to
+-- list only resources where Purpose is X, see the 'tag':/key/=/value/ filter.
+--
+-- 'tag-value' - The value of a tag assigned to the resource. This filter is
+-- independent of the 'tag-key' filter.
+--
+-- 'vpc-id' - The ID of the VPC that the instance is linked to.
+--
+--
+dcliFilters :: Lens' DescribeClassicLinkInstances [Filter]
+dcliFilters = lens _dcliFilters (\s a -> s { _dcliFilters = a }) . _List
+
+-- | One or more instance IDs. Must be instances linked to a VPC through
+-- ClassicLink.
+dcliInstanceIds :: Lens' DescribeClassicLinkInstances [Text]
+dcliInstanceIds = lens _dcliInstanceIds (\s a -> s { _dcliInstanceIds = a }) . _List
+
+-- | The maximum number of items to return for this request. The request returns
+-- a token that you can specify in a subsequent call to get the next set of
+-- results.
+--
+-- Constraint: If the value is greater than 1000, we return only 1000 items.
+dcliMaxResults :: Lens' DescribeClassicLinkInstances (Maybe Int)
+dcliMaxResults = lens _dcliMaxResults (\s a -> s { _dcliMaxResults = a })
+
+-- | The token for the next set of items to return. (You received this token from
+-- a prior call.)
+dcliNextToken :: Lens' DescribeClassicLinkInstances (Maybe Text)
+dcliNextToken = lens _dcliNextToken (\s a -> s { _dcliNextToken = a })
+
+data DescribeClassicLinkInstancesResponse = DescribeClassicLinkInstancesResponse
+    { _dclirInstances :: List "item" ClassicLinkInstance
+    , _dclirNextToken :: Maybe Text
+    } deriving (Eq, Show)
+
+-- | 'DescribeClassicLinkInstancesResponse' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'dclirInstances' @::@ ['ClassicLinkInstance']
+--
+-- * 'dclirNextToken' @::@ 'Maybe' 'Text'
+--
+describeClassicLinkInstancesResponse :: DescribeClassicLinkInstancesResponse
+describeClassicLinkInstancesResponse = DescribeClassicLinkInstancesResponse
+    { _dclirInstances = mempty
+    , _dclirNextToken = Nothing
+    }
+
+-- | Information about one or more linked EC2-Classic instances.
+dclirInstances :: Lens' DescribeClassicLinkInstancesResponse [ClassicLinkInstance]
+dclirInstances = lens _dclirInstances (\s a -> s { _dclirInstances = a }) . _List
+
+-- | The token to use when requesting the next set of items. If there are no
+-- additional items to return, the string is empty.
+dclirNextToken :: Lens' DescribeClassicLinkInstancesResponse (Maybe Text)
+dclirNextToken = lens _dclirNextToken (\s a -> s { _dclirNextToken = a })
+
+instance ToPath DescribeClassicLinkInstances where
+    toPath = const "/"
+
+instance ToQuery DescribeClassicLinkInstances where
+    toQuery DescribeClassicLinkInstances{..} = mconcat
+        [ "dryRun"     =? _dcliDryRun
+        , "Filter"     `toQueryList` _dcliFilters
+        , "InstanceId" `toQueryList` _dcliInstanceIds
+        , "maxResults" =? _dcliMaxResults
+        , "nextToken"  =? _dcliNextToken
+        ]
+
+instance ToHeaders DescribeClassicLinkInstances
+
+instance AWSRequest DescribeClassicLinkInstances where
+    type Sv DescribeClassicLinkInstances = EC2
+    type Rs DescribeClassicLinkInstances = DescribeClassicLinkInstancesResponse
+
+    request  = post "DescribeClassicLinkInstances"
+    response = xmlResponse
+
+instance FromXML DescribeClassicLinkInstancesResponse where
+    parseXML x = DescribeClassicLinkInstancesResponse
+        <$> x .@? "instancesSet" .!@ mempty
+        <*> x .@? "nextToken"
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
@@ -22,7 +22,7 @@
 --
 -- 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/.
+-- | 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 for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeConversionTasks.html>
 module Network.AWS.EC2.DescribeConversionTasks
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
@@ -185,7 +185,8 @@
 
 -- | Filters the images by the owner. Specify an AWS account ID, 'amazon' (owner is
 -- Amazon), 'aws-marketplace' (owner is AWS Marketplace), 'self' (owner is the
--- sender of the request), or 'all' (all owners).
+-- sender of the request). Omitting this option returns all images for which you
+-- have launch permissions, regardless of ownership.
 di2Owners :: Lens' DescribeImages [Text]
 di2Owners = lens _di2Owners (\s a -> s { _di2Owners = a }) . _List
 
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
@@ -76,7 +76,8 @@
 -- you can do so manually. You can also avoid retirement of EBS-backed instances
 -- by manually restarting your instance when its event code is 'instance-retirement'. This ensures that your instance is started on a different underlying host.
 --
--- For more information about failed status checks, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstances.html TroubleshootingInstances with Failed Status Checks> in the /Amazon Elastic Compute Cloud UserGuide/. For more information about working with scheduled events, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-instances-status-check_sched.html#schedevents_actions Workingwith an Instance That Has a Scheduled Event> in the /Amazon Elastic ComputeCloud User Guide/.
+-- For more information about failed status checks, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstances.html TroubleshootingInstances with Failed Status Checks> in the /Amazon Elastic Compute Cloud UserGuide for Linux/. For more information about working with scheduled events,
+-- see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-instances-status-check_sched.html#schedevents_actions Working with an Instance That Has a Scheduled Event> in the /Amazon ElasticCompute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeInstanceStatus.html>
 module Network.AWS.EC2.DescribeInstanceStatus
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
@@ -119,11 +119,10 @@
 --
 -- 'dns-name' - The public DNS name of the instance.
 --
--- 'group-id' - The ID of the security group for the instance. If the instance
--- is in EC2-Classic or a default VPC, you can use 'group-name' instead.
+-- 'group-id' - The ID of the security group for the instance. EC2-Classic only.
 --
--- 'group-name' - The name of the security group for the instance. If the
--- instance is in a nondefault VPC, you must use 'group-id' instead.
+-- 'group-name' - The name of the security group for the instance. EC2-Classic
+-- only.
 --
 -- 'hypervisor' - The hypervisor type of the instance ('ovm' | 'xen').
 --
@@ -146,12 +145,9 @@
 --
 -- 'instance-type' - The type of instance (for example, 'm1.small').
 --
--- 'instance.group-id' - The ID of the security group for the instance. If the
--- instance is in EC2-Classic or a default VPC, you can use 'instance.group-name'
--- instead.
+-- 'instance.group-id' - The ID of the security group for the instance.
 --
--- 'instance.group-name' - The name of the security group for the instance. If
--- the instance is in a nondefault VPC, you must use 'instance.group-id' instead.
+-- 'instance.group-name' - The name of the security group for the instance.
 --
 -- 'ip-address' - The public IP address of the instance.
 --
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
@@ -24,7 +24,7 @@
 
 -- | Describes one or more of your key pairs.
 --
--- For more information about key pairs, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html Key Pairs> in the /Amazon ElasticCompute Cloud User Guide/.
+-- For more information about key pairs, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html Key Pairs> in the /Amazon ElasticCompute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeKeyPairs.html>
 module Network.AWS.EC2.DescribeKeyPairs
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
@@ -23,7 +23,7 @@
 -- 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/.
+-- 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 for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribePlacementGroups.html>
 module Network.AWS.EC2.DescribePlacementGroups
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
@@ -24,7 +24,7 @@
 
 -- | Describes one or more of the Reserved Instances that you purchased.
 --
--- For more information about Reserved Instances, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-on-demand-reserved-instances.html Reserved Instances> in the /Amazon Elastic Compute Cloud User Guide/.
+-- For more information about Reserved Instances, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-on-demand-reserved-instances.html Reserved Instances> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeReservedInstances.html>
 module Network.AWS.EC2.DescribeReservedInstances
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
@@ -42,7 +42,7 @@
 -- until your demand is met. You are charged based on the total price of all of
 -- the listings that you purchase.
 --
--- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html Reserved Instance Marketplace> in the /AmazonElastic Compute Cloud User Guide/.
+-- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html Reserved Instance Marketplace> in the /AmazonElastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeReservedInstancesListings.html>
 module Network.AWS.EC2.DescribeReservedInstancesListings
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
@@ -28,7 +28,7 @@
 -- about the specific modification is returned.
 --
 -- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html Modifying Reserved Instances> in the Amazon Elastic
--- Compute Cloud User Guide.
+-- Compute Cloud User Guide for Linux.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeReservedInstancesModifications.html>
 module Network.AWS.EC2.DescribeReservedInstancesModifications
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
@@ -28,7 +28,7 @@
 -- errors, and you pay a lower usage rate than the rate charged for On-Demand
 -- instances for the actual time used.
 --
--- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html Reserved Instance Marketplace> in the /AmazonElastic Compute Cloud User Guide/.
+-- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html Reserved Instance Marketplace> in the /AmazonElastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeReservedInstancesOfferings.html>
 module Network.AWS.EC2.DescribeReservedInstancesOfferings
@@ -185,8 +185,7 @@
     lens _drioInstanceTenancy (\s a -> s { _drioInstanceTenancy = a })
 
 -- | The instance type on which the Reserved Instance can be used. For more
--- information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html Instance Types> in the /Amazon Elastic Compute Cloud User Guide/
--- .
+-- information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html Instance Types> in the /Amazon Elastic Compute Cloud UserGuide for Linux/.
 drioInstanceType :: Lens' DescribeReservedInstancesOfferings (Maybe InstanceType)
 drioInstanceType = lens _drioInstanceType (\s a -> s { _drioInstanceType = a })
 
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
@@ -25,7 +25,7 @@
 -- | Describes one or more of your security groups.
 --
 -- A security group is for use with instances either in the EC2-Classic
--- platform or in a specific VPC. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html Amazon EC2 SecurityGroups> in the /Amazon Elastic Compute Cloud User Guide/ and <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html Security Groups forYour VPC> in the /Amazon Virtual Private Cloud User Guide/.
+-- platform or in a specific VPC. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html Amazon EC2 SecurityGroups> in the /Amazon Elastic Compute Cloud User Guide for Linux/ and <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html SecurityGroups for Your VPC> in the /Amazon Virtual Private Cloud User Guide/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSecurityGroups.html>
 module Network.AWS.EC2.DescribeSecurityGroups
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
@@ -26,7 +26,7 @@
 -- only one attribute at a time.
 --
 -- For more information about Amazon EBS snapshots, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSSnapshots.html Amazon EBS Snapshots> in
--- the /Amazon Elastic Compute Cloud User Guide/.
+-- the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshotAttribute.html>
 module Network.AWS.EC2.DescribeSnapshotAttribute
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
@@ -52,7 +52,7 @@
 -- or have explicit permissions, or 'all' for public snapshots.
 --
 -- For more information about Amazon EBS snapshots, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSSnapshots.html Amazon EBS Snapshots> in
--- the /Amazon Elastic Compute Cloud User Guide/.
+-- the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html>
 module Network.AWS.EC2.DescribeSnapshots
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
@@ -22,7 +22,7 @@
 --
 -- 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/.
+-- | Describes the data feed for Spot Instances. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-data-feeds.html SpotInstance Data Feed> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSpotDatafeedSubscription.html>
 module Network.AWS.EC2.DescribeSpotDatafeedSubscription
@@ -80,7 +80,7 @@
     { _dsdsrSpotDatafeedSubscription = Nothing
     }
 
--- | The Spot Instance datafeed subscription.
+-- | The Spot Instance data feed subscription.
 dsdsrSpotDatafeedSubscription :: Lens' DescribeSpotDatafeedSubscriptionResponse (Maybe SpotDatafeedSubscription)
 dsdsrSpotDatafeedSubscription =
     lens _dsdsrSpotDatafeedSubscription
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
@@ -23,11 +23,10 @@
 -- 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
--- maximum price that you specify exceeds the current Spot Price. Amazon EC2
--- periodically sets the Spot Price based on available Spot Instance capacity
--- and current Spot Instance requests. For more information about Spot
--- Instances, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html Spot Instances> in the /Amazon Elastic Compute Cloud User Guide/.
+-- Instances are instances that Amazon EC2 launches when the bid price that you
+-- specify exceeds the current Spot Price. Amazon EC2 periodically sets the Spot
+-- Price based on available Spot Instance capacity and current Spot Instance
+-- requests. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html Spot Instance Requests> in the /AmazonElastic Compute Cloud User Guide for Linux/.
 --
 -- You can use 'DescribeSpotInstanceRequests' to find a running Spot Instance by
 -- examining the response. If the status of the Spot Instance is 'fulfilled', the
@@ -163,7 +162,8 @@
 -- fulfill the request.
 --
 -- 'state' - The state of the Spot Instance request ('open' | 'active' | 'closed' | 'cancelled' | 'failed'). Spot bid status information can help you track your Amazon EC2
--- Spot Instance requests. For information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances-bid-status.html Tracking Spot Requests with BidStatus Codes> in the Amazon Elastic Compute Cloud User Guide.
+-- Spot Instance requests. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-bid-status.html Spot Bid Status> in the
+-- Amazon Elastic Compute Cloud User Guide for Linux.
 --
 -- 'status-code' - The short code describing the most recent evaluation of your
 -- Spot Instance request.
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
@@ -26,7 +26,7 @@
 -- EC2 starts on your behalf when the maximum price that you specify exceeds the
 -- current Spot Price. Amazon EC2 periodically sets the Spot Price based on
 -- available Spot Instance capacity and current Spot Instance requests. For more
--- information about Spot Instances, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html Spot Instances> in the /Amazon ElasticCompute Cloud User Guide/.
+-- information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances-history.html Spot Instance Pricing History> in the /Amazon Elastic ComputeCloud User Guide for Linux/.
 --
 -- When you specify an Availability Zone, this operation describes the price
 -- history for the specified Availability Zone with the most recent set of
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
@@ -24,7 +24,7 @@
 
 -- | Describes one or more of the tags for your EC2 resources.
 --
--- For more information about tags, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html Tagging Your Resources> in the /AmazonElastic Compute Cloud User Guide/.
+-- For more information about tags, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html Tagging Your Resources> in the /AmazonElastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeTags.html>
 module Network.AWS.EC2.DescribeTags
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
@@ -25,7 +25,7 @@
 -- | Describes the specified attribute of the specified volume. You can specify
 -- only one attribute at a time.
 --
--- For more information about Amazon EBS volumes, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumes.html Amazon EBS Volumes> in the /Amazon Elastic Compute Cloud User Guide/.
+-- For more information about Amazon EBS volumes, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumes.html Amazon EBS Volumes> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeVolumeAttribute.html>
 module Network.AWS.EC2.DescribeVolumeAttribute
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
@@ -30,7 +30,7 @@
 -- your 'MaxResults' value, then that number of results is returned along with a 'NextToken' value that can be passed to a subsequent 'DescribeVolumes' request to retrieve
 -- the remaining results.
 --
--- For more information about Amazon EBS volumes, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumes.html Amazon EBS Volumes> in the /Amazon Elastic Compute Cloud User Guide/.
+-- For more information about Amazon EBS volumes, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumes.html Amazon EBS Volumes> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeVolumes.html>
 module Network.AWS.EC2.DescribeVolumes
diff --git a/gen/Network/AWS/EC2/DescribeVpcClassicLink.hs b/gen/Network/AWS/EC2/DescribeVpcClassicLink.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/EC2/DescribeVpcClassicLink.hs
@@ -0,0 +1,144 @@
+{-# LANGUAGE DataKinds                   #-}
+{-# LANGUAGE DeriveGeneric               #-}
+{-# LANGUAGE FlexibleInstances           #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
+{-# LANGUAGE LambdaCase                  #-}
+{-# LANGUAGE NoImplicitPrelude           #-}
+{-# LANGUAGE OverloadedStrings           #-}
+{-# LANGUAGE RecordWildCards             #-}
+{-# LANGUAGE TypeFamilies                #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Module      : Network.AWS.EC2.DescribeVpcClassicLink
+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
+-- License     : This Source Code Form is subject to the terms of
+--               the Mozilla Public License, v. 2.0.
+--               A copy of the MPL can be found in the LICENSE file or
+--               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- 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 ClassicLink status of one or more VPCs.
+--
+-- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeVpcClassicLink.html>
+module Network.AWS.EC2.DescribeVpcClassicLink
+    (
+    -- * Request
+      DescribeVpcClassicLink
+    -- ** Request constructor
+    , describeVpcClassicLink
+    -- ** Request lenses
+    , dvclDryRun
+    , dvclFilters
+    , dvclVpcIds
+
+    -- * Response
+    , DescribeVpcClassicLinkResponse
+    -- ** Response constructor
+    , describeVpcClassicLinkResponse
+    -- ** Response lenses
+    , dvclrVpcs
+    ) where
+
+import Network.AWS.Prelude
+import Network.AWS.Request.Query
+import Network.AWS.EC2.Types
+import qualified GHC.Exts
+
+data DescribeVpcClassicLink = DescribeVpcClassicLink
+    { _dvclDryRun  :: Maybe Bool
+    , _dvclFilters :: List "Filter" Filter
+    , _dvclVpcIds  :: List "VpcId" Text
+    } deriving (Eq, Show)
+
+-- | 'DescribeVpcClassicLink' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'dvclDryRun' @::@ 'Maybe' 'Bool'
+--
+-- * 'dvclFilters' @::@ ['Filter']
+--
+-- * 'dvclVpcIds' @::@ ['Text']
+--
+describeVpcClassicLink :: DescribeVpcClassicLink
+describeVpcClassicLink = DescribeVpcClassicLink
+    { _dvclDryRun  = Nothing
+    , _dvclVpcIds  = mempty
+    , _dvclFilters = mempty
+    }
+
+dvclDryRun :: Lens' DescribeVpcClassicLink (Maybe Bool)
+dvclDryRun = lens _dvclDryRun (\s a -> s { _dvclDryRun = a })
+
+-- | One or more filters.
+--
+-- 'is-classic-link-enabled' - Whether the VPC is enabled for ClassicLink ('true'
+-- | 'false').
+--
+-- 'tag':/key/=/value/ - The key/value combination of a tag assigned to the
+-- resource.
+--
+-- 'tag-key' - The key of a tag assigned to the resource. This filter is
+-- independent of the 'tag-value' filter. For example, if you use both the filter
+-- "tag-key=Purpose" and the filter "tag-value=X", you get any resources
+-- assigned both the tag key Purpose (regardless of what the tag's value is),
+-- and the tag value X (regardless of what the tag's key is). If you want to
+-- list only resources where Purpose is X, see the 'tag':/key/=/value/ filter.
+--
+-- 'tag-value' - The value of a tag assigned to the resource. This filter is
+-- independent of the 'tag-key' filter.
+--
+--
+dvclFilters :: Lens' DescribeVpcClassicLink [Filter]
+dvclFilters = lens _dvclFilters (\s a -> s { _dvclFilters = a }) . _List
+
+-- | One or more VPCs for which you want to describe the ClassicLink status.
+dvclVpcIds :: Lens' DescribeVpcClassicLink [Text]
+dvclVpcIds = lens _dvclVpcIds (\s a -> s { _dvclVpcIds = a }) . _List
+
+newtype DescribeVpcClassicLinkResponse = DescribeVpcClassicLinkResponse
+    { _dvclrVpcs :: List "item" VpcClassicLink
+    } deriving (Eq, Show, Monoid, Semigroup)
+
+-- | 'DescribeVpcClassicLinkResponse' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'dvclrVpcs' @::@ ['VpcClassicLink']
+--
+describeVpcClassicLinkResponse :: DescribeVpcClassicLinkResponse
+describeVpcClassicLinkResponse = DescribeVpcClassicLinkResponse
+    { _dvclrVpcs = mempty
+    }
+
+-- | The ClassicLink status of one or more VPCs.
+dvclrVpcs :: Lens' DescribeVpcClassicLinkResponse [VpcClassicLink]
+dvclrVpcs = lens _dvclrVpcs (\s a -> s { _dvclrVpcs = a }) . _List
+
+instance ToPath DescribeVpcClassicLink where
+    toPath = const "/"
+
+instance ToQuery DescribeVpcClassicLink where
+    toQuery DescribeVpcClassicLink{..} = mconcat
+        [ "dryRun" =? _dvclDryRun
+        , "Filter" `toQueryList` _dvclFilters
+        , "VpcId"  `toQueryList` _dvclVpcIds
+        ]
+
+instance ToHeaders DescribeVpcClassicLink
+
+instance AWSRequest DescribeVpcClassicLink where
+    type Sv DescribeVpcClassicLink = EC2
+    type Rs DescribeVpcClassicLink = DescribeVpcClassicLinkResponse
+
+    request  = post "DescribeVpcClassicLink"
+    response = xmlResponse
+
+instance FromXML DescribeVpcClassicLinkResponse where
+    parseXML x = DescribeVpcClassicLinkResponse
+        <$> x .@? "vpcSet" .!@ mempty
diff --git a/gen/Network/AWS/EC2/DetachClassicLinkVpc.hs b/gen/Network/AWS/EC2/DetachClassicLinkVpc.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/EC2/DetachClassicLinkVpc.hs
@@ -0,0 +1,130 @@
+{-# LANGUAGE DataKinds                   #-}
+{-# LANGUAGE DeriveGeneric               #-}
+{-# LANGUAGE FlexibleInstances           #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
+{-# LANGUAGE LambdaCase                  #-}
+{-# LANGUAGE NoImplicitPrelude           #-}
+{-# LANGUAGE OverloadedStrings           #-}
+{-# LANGUAGE RecordWildCards             #-}
+{-# LANGUAGE TypeFamilies                #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Module      : Network.AWS.EC2.DetachClassicLinkVpc
+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
+-- License     : This Source Code Form is subject to the terms of
+--               the Mozilla Public License, v. 2.0.
+--               A copy of the MPL can be found in the LICENSE file or
+--               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- 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.
+
+-- | Unlinks (detaches) a linked EC2-Classic instance from a VPC. After the
+-- instance has been unlinked, the VPC security groups are no longer associated
+-- with it. An instance is automatically unlinked from a VPC when it's stopped.
+--
+-- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DetachClassicLinkVpc.html>
+module Network.AWS.EC2.DetachClassicLinkVpc
+    (
+    -- * Request
+      DetachClassicLinkVpc
+    -- ** Request constructor
+    , detachClassicLinkVpc
+    -- ** Request lenses
+    , dclvDryRun
+    , dclvInstanceId
+    , dclvVpcId
+
+    -- * Response
+    , DetachClassicLinkVpcResponse
+    -- ** Response constructor
+    , detachClassicLinkVpcResponse
+    -- ** Response lenses
+    , dclvrReturn
+    ) where
+
+import Network.AWS.Prelude
+import Network.AWS.Request.Query
+import Network.AWS.EC2.Types
+import qualified GHC.Exts
+
+data DetachClassicLinkVpc = DetachClassicLinkVpc
+    { _dclvDryRun     :: Maybe Bool
+    , _dclvInstanceId :: Text
+    , _dclvVpcId      :: Text
+    } deriving (Eq, Ord, Show)
+
+-- | 'DetachClassicLinkVpc' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'dclvDryRun' @::@ 'Maybe' 'Bool'
+--
+-- * 'dclvInstanceId' @::@ 'Text'
+--
+-- * 'dclvVpcId' @::@ 'Text'
+--
+detachClassicLinkVpc :: Text -- ^ 'dclvInstanceId'
+                     -> Text -- ^ 'dclvVpcId'
+                     -> DetachClassicLinkVpc
+detachClassicLinkVpc p1 p2 = DetachClassicLinkVpc
+    { _dclvInstanceId = p1
+    , _dclvVpcId      = p2
+    , _dclvDryRun     = Nothing
+    }
+
+dclvDryRun :: Lens' DetachClassicLinkVpc (Maybe Bool)
+dclvDryRun = lens _dclvDryRun (\s a -> s { _dclvDryRun = a })
+
+-- | The ID of the instance to unlink from the VPC.
+dclvInstanceId :: Lens' DetachClassicLinkVpc Text
+dclvInstanceId = lens _dclvInstanceId (\s a -> s { _dclvInstanceId = a })
+
+-- | The ID of the VPC to which the instance is linked.
+dclvVpcId :: Lens' DetachClassicLinkVpc Text
+dclvVpcId = lens _dclvVpcId (\s a -> s { _dclvVpcId = a })
+
+newtype DetachClassicLinkVpcResponse = DetachClassicLinkVpcResponse
+    { _dclvrReturn :: Maybe Bool
+    } deriving (Eq, Ord, Show)
+
+-- | 'DetachClassicLinkVpcResponse' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'dclvrReturn' @::@ 'Maybe' 'Bool'
+--
+detachClassicLinkVpcResponse :: DetachClassicLinkVpcResponse
+detachClassicLinkVpcResponse = DetachClassicLinkVpcResponse
+    { _dclvrReturn = Nothing
+    }
+
+-- | Returns 'true' if the request succeeds; otherwise, it returns an error.
+dclvrReturn :: Lens' DetachClassicLinkVpcResponse (Maybe Bool)
+dclvrReturn = lens _dclvrReturn (\s a -> s { _dclvrReturn = a })
+
+instance ToPath DetachClassicLinkVpc where
+    toPath = const "/"
+
+instance ToQuery DetachClassicLinkVpc where
+    toQuery DetachClassicLinkVpc{..} = mconcat
+        [ "dryRun"     =? _dclvDryRun
+        , "instanceId" =? _dclvInstanceId
+        , "vpcId"      =? _dclvVpcId
+        ]
+
+instance ToHeaders DetachClassicLinkVpc
+
+instance AWSRequest DetachClassicLinkVpc where
+    type Sv DetachClassicLinkVpc = EC2
+    type Rs DetachClassicLinkVpc = DetachClassicLinkVpcResponse
+
+    request  = post "DetachClassicLinkVpc"
+    response = xmlResponse
+
+instance FromXML DetachClassicLinkVpcResponse where
+    parseXML x = DetachClassicLinkVpcResponse
+        <$> x .@? "return"
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
@@ -31,11 +31,10 @@
 -- detached while the instance is running. To detach the root volume, stop the
 -- instance first.
 --
--- If the root volume is detached from an instance with an AWS Marketplace
--- product code, then the AWS Marketplace product codes from that volume are no
--- longer associated with the instance.
+-- When a volume with an AWS Marketplace product code is detached from an
+-- instance, the product code is no longer associated with the instance.
 --
--- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html Detaching an Amazon EBS Volume> in the /AmazonElastic Compute Cloud User Guide/.
+-- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html Detaching an Amazon EBS Volume> in the /AmazonElastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DetachVolume.html>
 module Network.AWS.EC2.DetachVolume
diff --git a/gen/Network/AWS/EC2/DisableVpcClassicLink.hs b/gen/Network/AWS/EC2/DisableVpcClassicLink.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/EC2/DisableVpcClassicLink.hs
@@ -0,0 +1,118 @@
+{-# LANGUAGE DataKinds                   #-}
+{-# LANGUAGE DeriveGeneric               #-}
+{-# LANGUAGE FlexibleInstances           #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
+{-# LANGUAGE LambdaCase                  #-}
+{-# LANGUAGE NoImplicitPrelude           #-}
+{-# LANGUAGE OverloadedStrings           #-}
+{-# LANGUAGE RecordWildCards             #-}
+{-# LANGUAGE TypeFamilies                #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Module      : Network.AWS.EC2.DisableVpcClassicLink
+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
+-- License     : This Source Code Form is subject to the terms of
+--               the Mozilla Public License, v. 2.0.
+--               A copy of the MPL can be found in the LICENSE file or
+--               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- 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 ClassicLink for a VPC. You cannot disable ClassicLink for a VPC that
+-- has EC2-Classic instances linked to it.
+--
+-- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DisableVpcClassicLink.html>
+module Network.AWS.EC2.DisableVpcClassicLink
+    (
+    -- * Request
+      DisableVpcClassicLink
+    -- ** Request constructor
+    , disableVpcClassicLink
+    -- ** Request lenses
+    , dvcl1DryRun
+    , dvcl1VpcId
+
+    -- * Response
+    , DisableVpcClassicLinkResponse
+    -- ** Response constructor
+    , disableVpcClassicLinkResponse
+    -- ** Response lenses
+    , dvclrReturn
+    ) where
+
+import Network.AWS.Prelude
+import Network.AWS.Request.Query
+import Network.AWS.EC2.Types
+import qualified GHC.Exts
+
+data DisableVpcClassicLink = DisableVpcClassicLink
+    { _dvcl1DryRun :: Maybe Bool
+    , _dvcl1VpcId  :: Text
+    } deriving (Eq, Ord, Show)
+
+-- | 'DisableVpcClassicLink' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'dvcl1DryRun' @::@ 'Maybe' 'Bool'
+--
+-- * 'dvcl1VpcId' @::@ 'Text'
+--
+disableVpcClassicLink :: Text -- ^ 'dvcl1VpcId'
+                      -> DisableVpcClassicLink
+disableVpcClassicLink p1 = DisableVpcClassicLink
+    { _dvcl1VpcId  = p1
+    , _dvcl1DryRun = Nothing
+    }
+
+dvcl1DryRun :: Lens' DisableVpcClassicLink (Maybe Bool)
+dvcl1DryRun = lens _dvcl1DryRun (\s a -> s { _dvcl1DryRun = a })
+
+-- | The ID of the VPC.
+dvcl1VpcId :: Lens' DisableVpcClassicLink Text
+dvcl1VpcId = lens _dvcl1VpcId (\s a -> s { _dvcl1VpcId = a })
+
+newtype DisableVpcClassicLinkResponse = DisableVpcClassicLinkResponse
+    { _dvclrReturn :: Maybe Bool
+    } deriving (Eq, Ord, Show)
+
+-- | 'DisableVpcClassicLinkResponse' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'dvclrReturn' @::@ 'Maybe' 'Bool'
+--
+disableVpcClassicLinkResponse :: DisableVpcClassicLinkResponse
+disableVpcClassicLinkResponse = DisableVpcClassicLinkResponse
+    { _dvclrReturn = Nothing
+    }
+
+-- | Returns 'true' if the request succeeds; otherwise, it returns an error.
+dvclrReturn :: Lens' DisableVpcClassicLinkResponse (Maybe Bool)
+dvclrReturn = lens _dvclrReturn (\s a -> s { _dvclrReturn = a })
+
+instance ToPath DisableVpcClassicLink where
+    toPath = const "/"
+
+instance ToQuery DisableVpcClassicLink where
+    toQuery DisableVpcClassicLink{..} = mconcat
+        [ "dryRun" =? _dvcl1DryRun
+        , "vpcId"  =? _dvcl1VpcId
+        ]
+
+instance ToHeaders DisableVpcClassicLink
+
+instance AWSRequest DisableVpcClassicLink where
+    type Sv DisableVpcClassicLink = EC2
+    type Rs DisableVpcClassicLink = DisableVpcClassicLinkResponse
+
+    request  = post "DisableVpcClassicLink"
+    response = xmlResponse
+
+instance FromXML DisableVpcClassicLinkResponse where
+    parseXML x = DisableVpcClassicLinkResponse
+        <$> x .@? "return"
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
@@ -26,7 +26,7 @@
 -- it's associated with.
 --
 -- An Elastic IP address is for use in either the EC2-Classic platform or in a
--- VPC. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html Elastic IP Addresses> in the /Amazon ElasticCompute Cloud User Guide/.
+-- VPC. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html Elastic IP Addresses> in the /Amazon ElasticCompute Cloud User Guide for Linux/.
 --
 -- This is an idempotent operation. If you perform the operation more than
 -- once, Amazon EC2 doesn't return an error.
diff --git a/gen/Network/AWS/EC2/EnableVpcClassicLink.hs b/gen/Network/AWS/EC2/EnableVpcClassicLink.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/EC2/EnableVpcClassicLink.hs
@@ -0,0 +1,122 @@
+{-# LANGUAGE DataKinds                   #-}
+{-# LANGUAGE DeriveGeneric               #-}
+{-# LANGUAGE FlexibleInstances           #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
+{-# LANGUAGE LambdaCase                  #-}
+{-# LANGUAGE NoImplicitPrelude           #-}
+{-# LANGUAGE OverloadedStrings           #-}
+{-# LANGUAGE RecordWildCards             #-}
+{-# LANGUAGE TypeFamilies                #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Module      : Network.AWS.EC2.EnableVpcClassicLink
+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
+-- License     : This Source Code Form is subject to the terms of
+--               the Mozilla Public License, v. 2.0.
+--               A copy of the MPL can be found in the LICENSE file or
+--               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- 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 VPC for ClassicLink. You can then link EC2-Classic instances to
+-- your ClassicLink-enabled VPC to allow communication over private IP
+-- addresses. You cannot enable your VPC for ClassicLink if any of your VPC's
+-- route tables have existing routes for address ranges within the '10.0.0.0/8' IP
+-- address range, excluding local routes for VPCs in the '10.0.0.0/16' and '10.1.0.0/16' IP address ranges. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html ClassicLink> in the Amazon
+-- Elastic Compute Cloud User Guide for Linux.
+--
+-- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-EnableVpcClassicLink.html>
+module Network.AWS.EC2.EnableVpcClassicLink
+    (
+    -- * Request
+      EnableVpcClassicLink
+    -- ** Request constructor
+    , enableVpcClassicLink
+    -- ** Request lenses
+    , evclDryRun
+    , evclVpcId
+
+    -- * Response
+    , EnableVpcClassicLinkResponse
+    -- ** Response constructor
+    , enableVpcClassicLinkResponse
+    -- ** Response lenses
+    , evclrReturn
+    ) where
+
+import Network.AWS.Prelude
+import Network.AWS.Request.Query
+import Network.AWS.EC2.Types
+import qualified GHC.Exts
+
+data EnableVpcClassicLink = EnableVpcClassicLink
+    { _evclDryRun :: Maybe Bool
+    , _evclVpcId  :: Text
+    } deriving (Eq, Ord, Show)
+
+-- | 'EnableVpcClassicLink' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'evclDryRun' @::@ 'Maybe' 'Bool'
+--
+-- * 'evclVpcId' @::@ 'Text'
+--
+enableVpcClassicLink :: Text -- ^ 'evclVpcId'
+                     -> EnableVpcClassicLink
+enableVpcClassicLink p1 = EnableVpcClassicLink
+    { _evclVpcId  = p1
+    , _evclDryRun = Nothing
+    }
+
+evclDryRun :: Lens' EnableVpcClassicLink (Maybe Bool)
+evclDryRun = lens _evclDryRun (\s a -> s { _evclDryRun = a })
+
+-- | The ID of the VPC.
+evclVpcId :: Lens' EnableVpcClassicLink Text
+evclVpcId = lens _evclVpcId (\s a -> s { _evclVpcId = a })
+
+newtype EnableVpcClassicLinkResponse = EnableVpcClassicLinkResponse
+    { _evclrReturn :: Maybe Bool
+    } deriving (Eq, Ord, Show)
+
+-- | 'EnableVpcClassicLinkResponse' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'evclrReturn' @::@ 'Maybe' 'Bool'
+--
+enableVpcClassicLinkResponse :: EnableVpcClassicLinkResponse
+enableVpcClassicLinkResponse = EnableVpcClassicLinkResponse
+    { _evclrReturn = Nothing
+    }
+
+-- | Returns 'true' if the request succeeds; otherwise, it returns an error.
+evclrReturn :: Lens' EnableVpcClassicLinkResponse (Maybe Bool)
+evclrReturn = lens _evclrReturn (\s a -> s { _evclrReturn = a })
+
+instance ToPath EnableVpcClassicLink where
+    toPath = const "/"
+
+instance ToQuery EnableVpcClassicLink where
+    toQuery EnableVpcClassicLink{..} = mconcat
+        [ "dryRun" =? _evclDryRun
+        , "vpcId"  =? _evclVpcId
+        ]
+
+instance ToHeaders EnableVpcClassicLink
+
+instance AWSRequest EnableVpcClassicLink where
+    type Sv EnableVpcClassicLink = EC2
+    type Rs EnableVpcClassicLink = EnableVpcClassicLinkResponse
+
+    request  = post "EnableVpcClassicLink"
+    response = xmlResponse
+
+instance FromXML EnableVpcClassicLinkResponse where
+    parseXML x = EnableVpcClassicLinkResponse
+        <$> x .@? "return"
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
@@ -26,7 +26,7 @@
 -- After importing the image, you then upload it using the ec2-import-volume
 -- command in the EC2 command line tools. For more information, see Using the
 -- Command Line Tools to Import Your Virtual Machine to Amazon EC2 in the Amazon
--- Elastic Compute Cloud User Guide.
+-- Elastic Compute Cloud User Guide for Linux.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ImportInstance.html>
 module Network.AWS.EC2.ImportInstance
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
@@ -28,7 +28,7 @@
 -- ImportKeyPair, you create the key pair and give AWS just the public key. The
 -- private key is never transferred between you and AWS.
 --
--- For more information about key pairs, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html Key Pairs> in the /Amazon ElasticCompute Cloud User Guide/.
+-- For more information about key pairs, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html Key Pairs> in the /Amazon ElasticCompute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ImportKeyPair.html>
 module Network.AWS.EC2.ImportKeyPair
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
@@ -25,7 +25,7 @@
 -- | 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
 -- command in the Amazon EC2 command-line interface (CLI) tools. For more
--- information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UploadingYourInstancesandVolumes.html Using the Command Line Tools to Import Your Virtual Machineto Amazon EC2> in the /Amazon Elastic Compute Cloud User Guide/.
+-- information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UploadingYourInstancesandVolumes.html Using the Command Line Tools to Import Your Virtual Machineto Amazon EC2> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ImportVolume.html>
 module Network.AWS.EC2.ImportVolume
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
@@ -26,7 +26,7 @@
 -- only one attribute at a time.
 --
 -- To modify some attributes, the instance must be stopped. For more
--- information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_ChangingAttributesWhileInstanceStopped.html Modifying Attributes of a Stopped Instance> in the /AmazonElastic Compute Cloud User Guide/.
+-- information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_ChangingAttributesWhileInstanceStopped.html Modifying Attributes of a Stopped Instance> in the /AmazonElastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ModifyInstanceAttribute.html>
 module Network.AWS.EC2.ModifyInstanceAttribute
@@ -145,7 +145,7 @@
 -- the instance is terminated.
 --
 -- To add instance store volumes to an Amazon EBS-backed instance, you must add
--- them when you launch the instance. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html#Using_OverridingAMIBDM Updating theBlock Device Mapping when Launching an Instance> in the /Amazon Elastic ComputeCloud User Guide/.
+-- them when you launch the instance. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html#Using_OverridingAMIBDM Updating theBlock Device Mapping when Launching an Instance> in the /Amazon Elastic ComputeCloud User Guide for Linux/.
 mia1BlockDeviceMappings :: Lens' ModifyInstanceAttribute [InstanceBlockDeviceMappingSpecification]
 mia1BlockDeviceMappings =
     lens _mia1BlockDeviceMappings (\s a -> s { _mia1BlockDeviceMappings = a })
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
@@ -28,7 +28,7 @@
 -- network platform, and instance type.
 --
 -- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html Modifying Reserved Instances> in the Amazon Elastic
--- Compute Cloud User Guide.
+-- Compute Cloud User Guide for Linux.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ModifyReservedInstances.html>
 module Network.AWS.EC2.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
@@ -28,7 +28,7 @@
 -- add and remove account IDs for a snapshot, you must use multiple API calls.
 --
 -- For more information on modifying snapshot permissions, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html Sharing Snapshots>
--- in the /Amazon Elastic Compute Cloud User Guide/.
+-- in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- Snapshots with AWS Marketplace product codes cannot be made public.
 --
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
@@ -23,7 +23,7 @@
 -- 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/.
+-- 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 for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-MonitorInstances.html>
 module Network.AWS.EC2.MonitorInstances
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
@@ -32,7 +32,7 @@
 -- offerings that match your specifications. After you've purchased a Reserved
 -- Instance, you can check for your new Reserved Instance with 'DescribeReservedInstances'.
 --
--- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-on-demand-reserved-instances.html Reserved Instances> and <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html Reserved InstanceMarketplace> in the /Amazon Elastic Compute Cloud User Guide/.
+-- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-on-demand-reserved-instances.html Reserved Instances> and <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html Reserved InstanceMarketplace> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-PurchaseReservedInstancesOffering.html>
 module Network.AWS.EC2.PurchaseReservedInstancesOffering
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
@@ -30,7 +30,7 @@
 -- If a Linux/Unix instance does not cleanly shut down within four minutes,
 -- Amazon EC2 performs a hard reboot.
 --
--- For more information about troubleshooting, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-console.html Getting Console Output andRebooting Instances> in the /Amazon Elastic Compute Cloud User Guide/.
+-- For more information about troubleshooting, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-console.html Getting Console Output andRebooting Instances> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-RebootInstances.html>
 module Network.AWS.EC2.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
@@ -24,13 +24,13 @@
 
 -- | 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
--- information about creating AMIs, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami.html Creating Your Own AMIs> in the /AmazonElastic Compute Cloud User Guide/.
+-- information about creating AMIs, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami.html Creating Your Own AMIs> in the /AmazonElastic Compute Cloud User Guide for Linux/.
 --
 -- For Amazon EBS-backed instances, 'CreateImage' creates and registers the AMI
 -- in a single request, so you don't have to register the AMI yourself.
 --
 -- You can also use 'RegisterImage' to create an Amazon EBS-backed AMI from a
--- snapshot of a root device volume. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_LaunchingInstanceFromSnapshot.html Launching anInstance from a Snapshot> in the /Amazon Elastic Compute Cloud User Guide/.
+-- snapshot of a root device volume. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_LaunchingInstanceFromSnapshot.html Launching anInstance from a Snapshot> in the /Amazon Elastic Compute Cloud User Guide forLinux/.
 --
 -- If needed, you can deregister an AMI at any time. Any modifications you make
 -- to an AMI backed by an instance store volume invalidates its registration. If
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
@@ -26,7 +26,7 @@
 -- starts on your behalf when the maximum price that you specify exceeds the
 -- current Spot Price. Amazon EC2 periodically sets the Spot Price based on
 -- available Spot Instance capacity and current Spot Instance requests. For more
--- information about Spot Instances, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html Spot Instances> in the /Amazon ElasticCompute Cloud User Guide/.
+-- information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html Spot Instance Requests> in the /Amazon Elastic Compute CloudUser Guide for Linux/.
 --
 -- Users must be subscribed to the required product to run an instance with AWS
 -- Marketplace product codes.
@@ -200,7 +200,7 @@
     { _rsirSpotInstanceRequests = mempty
     }
 
--- | Information about the Spot Instance request.
+-- | One or more Spot Instance requests.
 rsirSpotInstanceRequests :: Lens' RequestSpotInstancesResponse [SpotInstanceRequest]
 rsirSpotInstanceRequests =
     lens _rsirSpotInstanceRequests
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
@@ -24,6 +24,9 @@
 
 -- | Resets an attribute of an AMI to its default value.
 --
+-- The productCodes attribute can't be reset.
+--
+--
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ResetImageAttribute.html>
 module Network.AWS.EC2.ResetImageAttribute
     (
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
@@ -25,7 +25,7 @@
 -- | Resets permission settings for the specified snapshot.
 --
 -- For more information on modifying snapshot permissions, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html Sharing Snapshots>
--- in the /Amazon Elastic Compute Cloud User Guide/.
+-- in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ResetSnapshotAttribute.html>
 module Network.AWS.EC2.ResetSnapshotAttribute
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
@@ -31,15 +31,15 @@
 --
 -- If you don't specify a security group when launching an instance, Amazon EC2
 -- uses the default security group. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html Security Groups> in
--- the /Amazon Elastic Compute Cloud User Guide/.
+-- the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- Linux instances have access to the public key of the key pair at boot. You
 -- can use this key to provide secure access to the instance. Amazon EC2 public
 -- images use this feature to provide secure access without passwords. For more
--- information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html Key Pairs> in the /Amazon Elastic Compute Cloud User Guide/.
+-- information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html Key Pairs> in the /Amazon Elastic Compute Cloud User Guide forLinux/.
 --
 -- You can provide optional user data when launching an instance. For more
--- information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AESDG-chapter-instancedata.html Instance Metadata> in the /Amazon Elastic Compute Cloud UserGuide/.
+-- information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AESDG-chapter-instancedata.html Instance Metadata> in the /Amazon Elastic Compute Cloud UserGuide for Linux/.
 --
 -- If any of the AMIs have a product code attached for which the user has not
 -- subscribed, 'RunInstances' fails.
@@ -49,7 +49,7 @@
 -- fails.
 --
 -- For more information about troubleshooting, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_InstanceStraightToTerminated.html What To Do If An InstanceImmediately Terminates>, and <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html Troubleshooting Connecting to Your Instance> in
--- the /Amazon Elastic Compute Cloud User Guide/.
+-- the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-RunInstances.html>
 module Network.AWS.EC2.RunInstances
@@ -217,7 +217,7 @@
         . _List
 
 -- | Unique, case-sensitive identifier you provide to ensure the idempotency of
--- the request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html How to Ensure Idempotency> in the /Amazon Elastic Compute Cloud User Guide/.
+-- the request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html How to Ensure Idempotency> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- Constraints: Maximum 64 ASCII characters
 riClientToken :: Lens' RunInstances (Maybe Text)
@@ -265,7 +265,7 @@
     lens _riInstanceInitiatedShutdownBehavior
         (\s a -> s { _riInstanceInitiatedShutdownBehavior = a })
 
--- | The instance type. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html Instance Types> in the /AmazonElastic Compute Cloud User Guide/.
+-- | The instance type. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html Instance Types> in the /AmazonElastic Compute Cloud User Guide for Linux/.
 --
 -- Default: 'm1.small'
 riInstanceType :: Lens' RunInstances (Maybe InstanceType)
@@ -274,7 +274,7 @@
 -- | The ID of the kernel.
 --
 -- We recommend that you use PV-GRUB instead of kernels and RAM disks. For
--- more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html  PV-GRUB> in the /Amazon Elastic Compute Cloud User Guide/.
+-- more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html  PV-GRUB> in the /Amazon Elastic Compute Cloud User Guidefor Linux/.
 --
 --
 riKernelId :: Lens' RunInstances (Maybe Text)
@@ -340,7 +340,7 @@
 -- | The ID of the RAM disk.
 --
 -- We recommend that you use PV-GRUB instead of kernels and RAM disks. For
--- more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html  PV-GRUB> in the /Amazon Elastic Compute Cloud User Guide/.
+-- more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html  PV-GRUB> in the /Amazon Elastic Compute Cloud User Guidefor Linux/.
 --
 --
 riRamdiskId :: Lens' RunInstances (Maybe Text)
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
@@ -39,7 +39,7 @@
 -- Performing this operation on an instance that uses an instance store as its
 -- root device returns an error.
 --
--- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html Stopping Instances> in the /Amazon Elastic ComputeCloud User Guide/.
+-- For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html Stopping Instances> in the /Amazon Elastic ComputeCloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-StartInstances.html>
 module Network.AWS.EC2.StartInstances
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
@@ -48,9 +48,9 @@
 -- persist. When you terminate an instance, the root device and any other
 -- devices attached during the instance launch are automatically deleted. For
 -- more information about the differences between stopping and terminating
--- instances, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html Instance Lifecycle> in the /Amazon Elastic Compute Cloud UserGuide/.
+-- instances, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html Instance Lifecycle> in the /Amazon Elastic Compute Cloud UserGuide for Linux/.
 --
--- For more information about troubleshooting, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesStopping.html Troubleshooting StoppingYour Instance> in the /Amazon Elastic Compute Cloud User Guide/.
+-- For more information about troubleshooting, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesStopping.html Troubleshooting StoppingYour Instance> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-StopInstances.html>
 module Network.AWS.EC2.StopInstances
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
@@ -39,9 +39,9 @@
 -- persist. When you terminate an instance, the root device and any other
 -- devices attached during the instance launch are automatically deleted. For
 -- more information about the differences between stopping and terminating
--- instances, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html Instance Lifecycle> in the /Amazon Elastic Compute Cloud UserGuide/.
+-- instances, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html Instance Lifecycle> in the /Amazon Elastic Compute Cloud UserGuide for Linux/.
 --
--- For more information about troubleshooting, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesShuttingDown.html Troubleshooting TerminatingYour Instance> in the /Amazon Elastic Compute Cloud User Guide/.
+-- For more information about troubleshooting, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesShuttingDown.html Troubleshooting TerminatingYour Instance> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-TerminateInstances.html>
 module Network.AWS.EC2.TerminateInstances
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
@@ -189,6 +189,7 @@
     , image
     , iArchitecture
     , iBlockDeviceMappings
+    , iCreationDate
     , iDescription
     , iHypervisor
     , iImageId
@@ -316,6 +317,14 @@
     -- * AttachmentStatus
     , AttachmentStatus (..)
 
+    -- * ClassicLinkInstance
+    , ClassicLinkInstance
+    , classicLinkInstance
+    , cliGroups
+    , cliInstanceId
+    , cliTags
+    , cliVpcId
+
     -- * RouteOrigin
     , RouteOrigin (..)
 
@@ -725,6 +734,11 @@
     -- * ExportEnvironment
     , ExportEnvironment (..)
 
+    -- * UserData
+    , UserData
+    , userData
+    , udData
+
     -- * VolumeAttachment
     , VolumeAttachment
     , volumeAttachment
@@ -1386,6 +1400,13 @@
     , bteCode
     , bteMessage
 
+    -- * VpcClassicLink
+    , VpcClassicLink
+    , vpcClassicLink
+    , vclClassicLinkEnabled
+    , vclTags
+    , vclVpcId
+
     -- * VolumeStatusItem
     , VolumeStatusItem
     , volumeStatusItem
@@ -1638,7 +1659,7 @@
     , _iilsPlacement                         :: Maybe Placement
     , _iilsPrivateIpAddress                  :: Maybe Text
     , _iilsSubnetId                          :: Maybe Text
-    , _iilsUserData                          :: Maybe Text
+    , _iilsUserData                          :: Maybe UserData
     } deriving (Eq, Show)
 
 -- | 'ImportInstanceLaunchSpecification' constructor.
@@ -1665,7 +1686,7 @@
 --
 -- * 'iilsSubnetId' @::@ 'Maybe' 'Text'
 --
--- * 'iilsUserData' @::@ 'Maybe' 'Text'
+-- * 'iilsUserData' @::@ 'Maybe' 'UserData'
 --
 importInstanceLaunchSpecification :: ImportInstanceLaunchSpecification
 importInstanceLaunchSpecification = ImportInstanceLaunchSpecification
@@ -1690,6 +1711,7 @@
 iilsArchitecture :: Lens' ImportInstanceLaunchSpecification (Maybe ArchitectureValues)
 iilsArchitecture = lens _iilsArchitecture (\s a -> s { _iilsArchitecture = a })
 
+-- | One or more security group IDs.
 iilsGroupIds :: Lens' ImportInstanceLaunchSpecification [Text]
 iilsGroupIds = lens _iilsGroupIds (\s a -> s { _iilsGroupIds = a }) . _List
 
@@ -1704,7 +1726,12 @@
     lens _iilsInstanceInitiatedShutdownBehavior
         (\s a -> s { _iilsInstanceInitiatedShutdownBehavior = a })
 
--- | The instance type. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html Instance Types> in the /AmazonElastic Compute Cloud User Guide/.
+-- | The instance type. This is not supported for VMs imported into a VPC, which
+-- are assigned the default security group. After a VM is imported into a VPC,
+-- you can specify another security group using the AWS Management Console. For
+-- more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html Instance Types> in the /Amazon Elastic Compute Cloud UserGuide for Linux/. For more information about the Linux instance types you can
+-- import, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/VMImportPrerequisites.html Before You Get Started> in the Amazon Elastic Compute Cloud User
+-- Guide for Linux.
 iilsInstanceType :: Lens' ImportInstanceLaunchSpecification (Maybe InstanceType)
 iilsInstanceType = lens _iilsInstanceType (\s a -> s { _iilsInstanceType = a })
 
@@ -1725,7 +1752,7 @@
 iilsSubnetId = lens _iilsSubnetId (\s a -> s { _iilsSubnetId = a })
 
 -- | User data to be made available to the instance.
-iilsUserData :: Lens' ImportInstanceLaunchSpecification (Maybe Text)
+iilsUserData :: Lens' ImportInstanceLaunchSpecification (Maybe UserData)
 iilsUserData = lens _iilsUserData (\s a -> s { _iilsUserData = a })
 
 instance FromXML ImportInstanceLaunchSpecification where
@@ -1833,9 +1860,8 @@
 sEncrypted :: Lens' Snapshot Bool
 sEncrypted = lens _sEncrypted (\s a -> s { _sEncrypted = a })
 
--- | The full ARN of the AWS Key Management Service (KMS) Customer Master Key
--- (CMK) that was used to protect the volume encryption key for the parent
--- volume.
+-- | The full ARN of the AWS Key Management Service (KMS) master key that was used
+-- to protect the volume encryption key for the parent volume.
 sKmsKeyId :: Lens' Snapshot (Maybe Text)
 sKmsKeyId = lens _sKmsKeyId (\s a -> s { _sKmsKeyId = a })
 
@@ -1976,7 +2002,7 @@
     , _tdValue        = p4
     }
 
--- | The key of the tag.
+-- | The tag key.
 tdKey :: Lens' TagDescription Text
 tdKey = lens _tdKey (\s a -> s { _tdKey = a })
 
@@ -1984,11 +2010,11 @@
 tdResourceId :: Lens' TagDescription Text
 tdResourceId = lens _tdResourceId (\s a -> s { _tdResourceId = a })
 
--- | The type of resource.
+-- | The resource type.
 tdResourceType :: Lens' TagDescription ResourceType
 tdResourceType = lens _tdResourceType (\s a -> s { _tdResourceType = a })
 
--- | The value of the tag.
+-- | The tag value.
 tdValue :: Lens' TagDescription Text
 tdValue = lens _tdValue (\s a -> s { _tdValue = a })
 
@@ -2699,6 +2725,7 @@
 data Image = Image
     { _iArchitecture        :: ArchitectureValues
     , _iBlockDeviceMappings :: List "item" BlockDeviceMapping
+    , _iCreationDate        :: Maybe Text
     , _iDescription         :: Maybe Text
     , _iHypervisor          :: HypervisorType
     , _iImageId             :: Text
@@ -2706,7 +2733,7 @@
     , _iImageOwnerAlias     :: Maybe Text
     , _iImageType           :: ImageTypeValues
     , _iKernelId            :: Maybe Text
-    , _iName                :: Text
+    , _iName                :: Maybe Text
     , _iOwnerId             :: Text
     , _iPlatform            :: Maybe PlatformValues
     , _iProductCodes        :: List "item" ProductCode
@@ -2729,6 +2756,8 @@
 --
 -- * 'iBlockDeviceMappings' @::@ ['BlockDeviceMapping']
 --
+-- * 'iCreationDate' @::@ 'Maybe' 'Text'
+--
 -- * 'iDescription' @::@ 'Maybe' 'Text'
 --
 -- * 'iHypervisor' @::@ 'HypervisorType'
@@ -2743,7 +2772,7 @@
 --
 -- * 'iKernelId' @::@ 'Maybe' 'Text'
 --
--- * 'iName' @::@ 'Text'
+-- * 'iName' @::@ 'Maybe' 'Text'
 --
 -- * 'iOwnerId' @::@ 'Text'
 --
@@ -2776,12 +2805,11 @@
       -> Bool -- ^ 'iPublic'
       -> ArchitectureValues -- ^ 'iArchitecture'
       -> ImageTypeValues -- ^ 'iImageType'
-      -> Text -- ^ 'iName'
       -> DeviceType -- ^ 'iRootDeviceType'
       -> VirtualizationType -- ^ 'iVirtualizationType'
       -> HypervisorType -- ^ 'iHypervisor'
       -> Image
-image p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 = Image
+image p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 = Image
     { _iImageId             = p1
     , _iImageLocation       = p2
     , _iState               = p3
@@ -2789,10 +2817,10 @@
     , _iPublic              = p5
     , _iArchitecture        = p6
     , _iImageType           = p7
-    , _iName                = p8
-    , _iRootDeviceType      = p9
-    , _iVirtualizationType  = p10
-    , _iHypervisor          = p11
+    , _iRootDeviceType      = p8
+    , _iVirtualizationType  = p9
+    , _iHypervisor          = p10
+    , _iCreationDate        = Nothing
     , _iProductCodes        = mempty
     , _iKernelId            = Nothing
     , _iRamdiskId           = Nothing
@@ -2800,6 +2828,7 @@
     , _iSriovNetSupport     = Nothing
     , _iStateReason         = Nothing
     , _iImageOwnerAlias     = Nothing
+    , _iName                = Nothing
     , _iDescription         = Nothing
     , _iRootDeviceName      = Nothing
     , _iBlockDeviceMappings = mempty
@@ -2816,6 +2845,10 @@
     lens _iBlockDeviceMappings (\s a -> s { _iBlockDeviceMappings = a })
         . _List
 
+-- | The date and time the image was created.
+iCreationDate :: Lens' Image (Maybe Text)
+iCreationDate = lens _iCreationDate (\s a -> s { _iCreationDate = a })
+
 -- | The description of the AMI that was provided during image creation.
 iDescription :: Lens' Image (Maybe Text)
 iDescription = lens _iDescription (\s a -> s { _iDescription = a })
@@ -2847,7 +2880,7 @@
 iKernelId = lens _iKernelId (\s a -> s { _iKernelId = a })
 
 -- | The name of the AMI that was provided during image creation.
-iName :: Lens' Image Text
+iName :: Lens' Image (Maybe Text)
 iName = lens _iName (\s a -> s { _iName = a })
 
 -- | The AWS account ID of the image owner.
@@ -2908,6 +2941,7 @@
     parseXML x = Image
         <$> x .@  "architecture"
         <*> x .@? "blockDeviceMapping" .!@ mempty
+        <*> x .@? "creationDate"
         <*> x .@? "description"
         <*> x .@  "hypervisor"
         <*> x .@  "imageId"
@@ -2915,7 +2949,7 @@
         <*> x .@? "imageOwnerAlias"
         <*> x .@  "imageType"
         <*> x .@? "kernelId"
-        <*> x .@  "name"
+        <*> x .@? "name"
         <*> x .@  "imageOwnerId"
         <*> x .@? "platform"
         <*> x .@? "productCodes" .!@ mempty
@@ -2933,6 +2967,7 @@
     toQuery Image{..} = mconcat
         [ "architecture"       =? _iArchitecture
         , "blockDeviceMapping" `toQueryList` _iBlockDeviceMappings
+        , "creationDate"       =? _iCreationDate
         , "description"        =? _iDescription
         , "hypervisor"         =? _iHypervisor
         , "imageId"            =? _iImageId
@@ -3655,8 +3690,10 @@
 bdmNoDevice :: Lens' BlockDeviceMapping (Maybe Text)
 bdmNoDevice = lens _bdmNoDevice (\s a -> s { _bdmNoDevice = a })
 
--- | The virtual device name (ephemeral[0..3]). The number of available instance
--- store volumes depends on the instance type. After you connect to the
+-- | The virtual device name ('ephemeral'N). Instance store volumes are numbered
+-- starting from 0. An instance type with 2 available instance store volumes can
+-- specify mappings for 'ephemeral0' and 'ephemeral1'.The number of available
+-- instance store volumes depends on the instance type. After you connect to the
 -- instance, you must mount the volume.
 --
 -- Constraints: For M3 instances, you must specify instance store volumes in
@@ -3806,6 +3843,64 @@
 instance FromXML AttachmentStatus where
     parseXML = parseXMLText "AttachmentStatus"
 
+data ClassicLinkInstance = ClassicLinkInstance
+    { _cliGroups     :: List "item" GroupIdentifier
+    , _cliInstanceId :: Maybe Text
+    , _cliTags       :: List "item" Tag
+    , _cliVpcId      :: Maybe Text
+    } deriving (Eq, Show)
+
+-- | 'ClassicLinkInstance' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'cliGroups' @::@ ['GroupIdentifier']
+--
+-- * 'cliInstanceId' @::@ 'Maybe' 'Text'
+--
+-- * 'cliTags' @::@ ['Tag']
+--
+-- * 'cliVpcId' @::@ 'Maybe' 'Text'
+--
+classicLinkInstance :: ClassicLinkInstance
+classicLinkInstance = ClassicLinkInstance
+    { _cliInstanceId = Nothing
+    , _cliVpcId      = Nothing
+    , _cliGroups     = mempty
+    , _cliTags       = mempty
+    }
+
+-- | A list of security groups.
+cliGroups :: Lens' ClassicLinkInstance [GroupIdentifier]
+cliGroups = lens _cliGroups (\s a -> s { _cliGroups = a }) . _List
+
+-- | The ID of the instance.
+cliInstanceId :: Lens' ClassicLinkInstance (Maybe Text)
+cliInstanceId = lens _cliInstanceId (\s a -> s { _cliInstanceId = a })
+
+-- | Any tags assigned to the instance.
+cliTags :: Lens' ClassicLinkInstance [Tag]
+cliTags = lens _cliTags (\s a -> s { _cliTags = a }) . _List
+
+-- | The ID of the VPC.
+cliVpcId :: Lens' ClassicLinkInstance (Maybe Text)
+cliVpcId = lens _cliVpcId (\s a -> s { _cliVpcId = a })
+
+instance FromXML ClassicLinkInstance where
+    parseXML x = ClassicLinkInstance
+        <$> x .@? "groupSet" .!@ mempty
+        <*> x .@? "instanceId"
+        <*> x .@? "tagSet" .!@ mempty
+        <*> x .@? "vpcId"
+
+instance ToQuery ClassicLinkInstance where
+    toQuery ClassicLinkInstance{..} = mconcat
+        [ "groupSet"   `toQueryList` _cliGroups
+        , "instanceId" =? _cliInstanceId
+        , "tagSet"     `toQueryList` _cliTags
+        , "vpcId"      =? _cliVpcId
+        ]
+
 data RouteOrigin
     = OriginCreateRoute               -- ^ CreateRoute
     | OriginCreateRouteTable          -- ^ CreateRouteTable
@@ -4222,7 +4317,7 @@
 siSpotPrice = lens _siSpotPrice (\s a -> s { _siSpotPrice = a })
 
 -- | The state of the Spot Instance request. Spot bid status information can help
--- you track your Spot Instance requests. For information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances-bid-status.html Tracking SpotRequests with Bid Status Codes> in the /Amazon Elastic Compute Cloud User Guide/.
+-- you track your Spot Instance requests. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-bid-status.html Spot BidStatus> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 siState :: Lens' SpotInstanceRequest (Maybe SpotInstanceState)
 siState = lens _siState (\s a -> s { _siState = a })
 
@@ -4423,14 +4518,14 @@
 lsRamdiskId :: Lens' LaunchSpecification (Maybe Text)
 lsRamdiskId = lens _lsRamdiskId (\s a -> s { _lsRamdiskId = a })
 
--- | One or more security groups. If requesting a Spot Instance in a nondefault
--- VPC, you must specify the security group ID. If requesting a Spot Instance in
--- EC2-Classic or a default VPC, you can specify either the security group name
--- or ID.
+-- | One or more security groups. To request an instance in a nondefault VPC, you
+-- must specify the ID of the security group. To request an instance in
+-- EC2-Classic or a default VPC, you can specify the name or the ID of the
+-- security group.
 lsSecurityGroups :: Lens' LaunchSpecification [GroupIdentifier]
 lsSecurityGroups = lens _lsSecurityGroups (\s a -> s { _lsSecurityGroups = a }) . _List
 
--- | The ID of the subnet in which to launch the Spot Instance.
+-- | The ID of the subnet in which to launch the instance.
 lsSubnetId :: Lens' LaunchSpecification (Maybe Text)
 lsSubnetId = lens _lsSubnetId (\s a -> s { _lsSubnetId = a })
 
@@ -4548,7 +4643,7 @@
     , _vAvailabilityZone :: Text
     , _vCreateTime       :: ISO8601
     , _vEncrypted        :: Bool
-    , _vIops             :: Int
+    , _vIops             :: Maybe Int
     , _vKmsKeyId         :: Maybe Text
     , _vSize             :: Int
     , _vSnapshotId       :: Text
@@ -4570,7 +4665,7 @@
 --
 -- * 'vEncrypted' @::@ 'Bool'
 --
--- * 'vIops' @::@ 'Int'
+-- * 'vIops' @::@ 'Maybe' 'Int'
 --
 -- * 'vKmsKeyId' @::@ 'Maybe' 'Text'
 --
@@ -4593,10 +4688,9 @@
        -> VolumeState -- ^ 'vState'
        -> UTCTime -- ^ 'vCreateTime'
        -> VolumeType -- ^ 'vVolumeType'
-       -> Int -- ^ 'vIops'
        -> Bool -- ^ 'vEncrypted'
        -> Volume
-volume p1 p2 p3 p4 p5 p6 p7 p8 p9 = Volume
+volume p1 p2 p3 p4 p5 p6 p7 p8 = Volume
     { _vVolumeId         = p1
     , _vSize             = p2
     , _vSnapshotId       = p3
@@ -4604,10 +4698,10 @@
     , _vState            = p5
     , _vCreateTime       = withIso _Time (const id) p6
     , _vVolumeType       = p7
-    , _vIops             = p8
-    , _vEncrypted        = p9
+    , _vEncrypted        = p8
     , _vAttachments      = mempty
     , _vTags             = mempty
+    , _vIops             = Nothing
     , _vKmsKeyId         = Nothing
     }
 
@@ -4623,7 +4717,7 @@
 vCreateTime :: Lens' Volume UTCTime
 vCreateTime = lens _vCreateTime (\s a -> s { _vCreateTime = a }) . _Time
 
--- | Indicates whether the volume is encrypted.
+-- | Indicates whether the volume will be encrypted.
 vEncrypted :: Lens' Volume Bool
 vEncrypted = lens _vEncrypted (\s a -> s { _vEncrypted = a })
 
@@ -4632,18 +4726,18 @@
 -- provisioned for the volume. For General Purpose (SSD) volumes, this
 -- represents the baseline performance of the volume and the rate at which the
 -- volume accumulates I/O credits for bursting. For more information on General
--- Purpose (SSD) baseline performance, I/O credits, and bursting, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html Amazon EBSVolume Types> in the /Amazon Elastic Compute Cloud User Guide/.
+-- Purpose (SSD) baseline performance, I/O credits, and bursting, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html Amazon EBSVolume Types> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- Constraint: Range is 100 to 4000 for Provisioned IOPS (SSD) volumes and 3 to
 -- 3072 for General Purpose (SSD) volumes.
 --
 -- Condition: This parameter is required for requests to create 'io1' volumes; it
 -- is not used in requests to create 'standard' or 'gp2' volumes.
-vIops :: Lens' Volume Int
+vIops :: Lens' Volume (Maybe Int)
 vIops = lens _vIops (\s a -> s { _vIops = a })
 
--- | The full ARN of the AWS Key Management Service (KMS) Customer Master Key
--- (CMK) that was used to protect the volume encryption key for the volume.
+-- | The full ARN of the AWS Key Management Service (KMS) master key that was used
+-- to protect the volume encryption key for the volume.
 vKmsKeyId :: Lens' Volume (Maybe Text)
 vKmsKeyId = lens _vKmsKeyId (\s a -> s { _vKmsKeyId = a })
 
@@ -4678,7 +4772,7 @@
         <*> x .@  "availabilityZone"
         <*> x .@  "createTime"
         <*> x .@  "encrypted"
-        <*> x .@  "iops"
+        <*> x .@? "iops"
         <*> x .@? "kmsKeyId"
         <*> x .@  "size"
         <*> x .@  "snapshotId"
@@ -5589,9 +5683,11 @@
 didFormat :: Lens' DiskImageDetail DiskImageFormat
 didFormat = lens _didFormat (\s a -> s { _didFormat = a })
 
--- | A presigned URL for the import manifest stored in Amazon S3. For information
--- about creating a presigned URL for an Amazon S3 object, read the "Query
--- String Request Authentication Alternative" section of the <http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html Authenticating RESTRequests> topic in the /Amazon Simple Storage Service Developer Guide/.
+-- | A presigned URL for the import manifest stored in Amazon S3 and presented
+-- here as an Amazon S3 presigned URL. For information about creating a
+-- presigned URL for an Amazon S3 object, read the "Query String Request
+-- Authentication Alternative" section of the <http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html Authenticating REST Requests> topic
+-- in the /Amazon Simple Storage Service Developer Guide/.
 didImportManifestUrl :: Lens' DiskImageDetail Text
 didImportManifestUrl =
     lens _didImportManifestUrl (\s a -> s { _didImportManifestUrl = a })
@@ -6533,7 +6629,7 @@
     , _btBundleTaskError = Nothing
     }
 
--- | The ID for this bundle task.
+-- | The ID of the bundle task.
 btBundleId :: Lens' BundleTask Text
 btBundleId = lens _btBundleId (\s a -> s { _btBundleId = a })
 
@@ -6655,6 +6751,11 @@
     | C3_8XLarge  -- ^ c3.8xlarge
     | C3_Large    -- ^ c3.large
     | C3_XLarge   -- ^ c3.xlarge
+    | C4_2XLarge  -- ^ c4.2xlarge
+    | C4_4XLarge  -- ^ c4.4xlarge
+    | C4_8XLarge  -- ^ c4.8xlarge
+    | C4_Large    -- ^ c4.large
+    | C4_XLarge   -- ^ c4.xlarge
     | CC1_4XLarge -- ^ cc1.4xlarge
     | CC2_8XLarge -- ^ cc2.8xlarge
     | CG1_4XLarge -- ^ cg1.4xlarge
@@ -6699,6 +6800,11 @@
         "c3.8xlarge"  -> pure C3_8XLarge
         "c3.large"    -> pure C3_Large
         "c3.xlarge"   -> pure C3_XLarge
+        "c4.2xlarge"  -> pure C4_2XLarge
+        "c4.4xlarge"  -> pure C4_4XLarge
+        "c4.8xlarge"  -> pure C4_8XLarge
+        "c4.large"    -> pure C4_Large
+        "c4.xlarge"   -> pure C4_XLarge
         "cc1.4xlarge" -> pure CC1_4XLarge
         "cc2.8xlarge" -> pure CC2_8XLarge
         "cg1.4xlarge" -> pure CG1_4XLarge
@@ -6742,6 +6848,11 @@
         C3_8XLarge  -> "c3.8xlarge"
         C3_Large    -> "c3.large"
         C3_XLarge   -> "c3.xlarge"
+        C4_2XLarge  -> "c4.2xlarge"
+        C4_4XLarge  -> "c4.4xlarge"
+        C4_8XLarge  -> "c4.8xlarge"
+        C4_Large    -> "c4.large"
+        C4_XLarge   -> "c4.xlarge"
         CC1_4XLarge -> "cc1.4xlarge"
         CC2_8XLarge -> "cc2.8xlarge"
         CG1_4XLarge -> "cg1.4xlarge"
@@ -6920,7 +7031,7 @@
     , _sdsFault   = Nothing
     }
 
--- | The Amazon S3 bucket where the Spot Instance datafeed is located.
+-- | The Amazon S3 bucket where the Spot Instance data feed is located.
 sdsBucket :: Lens' SpotDatafeedSubscription (Maybe Text)
 sdsBucket = lens _sdsBucket (\s a -> s { _sdsBucket = a })
 
@@ -6932,11 +7043,11 @@
 sdsOwnerId :: Lens' SpotDatafeedSubscription (Maybe Text)
 sdsOwnerId = lens _sdsOwnerId (\s a -> s { _sdsOwnerId = a })
 
--- | The prefix that is prepended to datafeed files.
+-- | The prefix that is prepended to data feed files.
 sdsPrefix :: Lens' SpotDatafeedSubscription (Maybe Text)
 sdsPrefix = lens _sdsPrefix (\s a -> s { _sdsPrefix = a })
 
--- | The state of the Spot Instance datafeed subscription.
+-- | The state of the Spot Instance data feed subscription.
 sdsState :: Lens' SpotDatafeedSubscription (Maybe DatafeedSubscriptionState)
 sdsState = lens _sdsState (\s a -> s { _sdsState = a })
 
@@ -7287,6 +7398,33 @@
 instance FromXML ExportEnvironment where
     parseXML = parseXMLText "ExportEnvironment"
 
+newtype UserData = UserData
+    { _udData :: Maybe Text
+    } deriving (Eq, Ord, Show, Monoid)
+
+-- | 'UserData' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'udData' @::@ 'Maybe' 'Text'
+--
+userData :: UserData
+userData = UserData
+    { _udData = Nothing
+    }
+
+udData :: Lens' UserData (Maybe Text)
+udData = lens _udData (\s a -> s { _udData = a })
+
+instance FromXML UserData where
+    parseXML x = UserData
+        <$> x .@? "data"
+
+instance ToQuery UserData where
+    toQuery UserData{..} = mconcat
+        [ "data" =? _udData
+        ]
+
 data VolumeAttachment = VolumeAttachment
     { _vaAttachTime          :: Maybe ISO8601
     , _vaDeleteOnTermination :: Maybe Bool
@@ -9415,7 +9553,7 @@
 -- provisioned for the volume. For General Purpose (SSD) volumes, this
 -- represents the baseline performance of the volume and the rate at which the
 -- volume accumulates I/O credits for bursting. For more information on General
--- Purpose (SSD) baseline performance, I/O credits, and bursting, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html Amazon EBSVolume Types> in the /Amazon Elastic Compute Cloud User Guide/.
+-- Purpose (SSD) baseline performance, I/O credits, and bursting, see <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html Amazon EBSVolume Types> in the /Amazon Elastic Compute Cloud User Guide for Linux/.
 --
 -- Constraint: Range is 100 to 4000 for Provisioned IOPS (SSD) volumes and 3 to
 -- 3072 for General Purpose (SSD) volumes.
@@ -9695,26 +9833,35 @@
         ]
 
 data OfferingTypeValues
-    = HeavyUtilization  -- ^ Heavy Utilization
+    = AllUpfront        -- ^ All Upfront
+    | HeavyUtilization  -- ^ Heavy Utilization
     | LightUtilization  -- ^ Light Utilization
     | MediumUtilization -- ^ Medium Utilization
+    | NoUpfront         -- ^ No Upfront
+    | PartialUpfront    -- ^ Partial Upfront
       deriving (Eq, Ord, Show, Generic, Enum)
 
 instance Hashable OfferingTypeValues
 
 instance FromText OfferingTypeValues where
     parser = takeLowerText >>= \case
+        "all upfront"        -> pure AllUpfront
         "heavy utilization"  -> pure HeavyUtilization
         "light utilization"  -> pure LightUtilization
         "medium utilization" -> pure MediumUtilization
+        "no upfront"         -> pure NoUpfront
+        "partial upfront"    -> pure PartialUpfront
         e                    -> fail $
             "Failure parsing OfferingTypeValues from " ++ show e
 
 instance ToText OfferingTypeValues where
     toText = \case
+        AllUpfront        -> "All Upfront"
         HeavyUtilization  -> "Heavy Utilization"
         LightUtilization  -> "Light Utilization"
         MediumUtilization -> "Medium Utilization"
+        NoUpfront         -> "No Upfront"
+        PartialUpfront    -> "Partial Upfront"
 
 instance ToByteString OfferingTypeValues
 instance ToHeader     OfferingTypeValues
@@ -11809,7 +11956,7 @@
     , _i1InstanceLifecycle     :: Maybe InstanceLifecycleType
     , _i1InstanceType          :: InstanceType
     , _i1KernelId              :: Maybe Text
-    , _i1KeyName               :: Text
+    , _i1KeyName               :: Maybe Text
     , _i1LaunchTime            :: ISO8601
     , _i1Monitoring            :: Monitoring
     , _i1NetworkInterfaces     :: List "item" InstanceNetworkInterface
@@ -11864,7 +12011,7 @@
 --
 -- * 'i1KernelId' @::@ 'Maybe' 'Text'
 --
--- * 'i1KeyName' @::@ 'Text'
+-- * 'i1KeyName' @::@ 'Maybe' 'Text'
 --
 -- * 'i1LaunchTime' @::@ 'UTCTime'
 --
@@ -11917,7 +12064,6 @@
 instance' :: Text -- ^ 'i1InstanceId'
           -> Text -- ^ 'i1ImageId'
           -> InstanceState -- ^ 'i1State'
-          -> Text -- ^ 'i1KeyName'
           -> Int -- ^ 'i1AmiLaunchIndex'
           -> InstanceType -- ^ 'i1InstanceType'
           -> UTCTime -- ^ 'i1LaunchTime'
@@ -11929,24 +12075,24 @@
           -> HypervisorType -- ^ 'i1Hypervisor'
           -> Bool -- ^ 'i1EbsOptimized'
           -> Instance
-instance' p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 = Instance
+instance' p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 = Instance
     { _i1InstanceId            = p1
     , _i1ImageId               = p2
     , _i1State                 = p3
-    , _i1KeyName               = p4
-    , _i1AmiLaunchIndex        = p5
-    , _i1InstanceType          = p6
-    , _i1LaunchTime            = withIso _Time (const id) p7
-    , _i1Placement             = p8
-    , _i1Monitoring            = p9
-    , _i1Architecture          = p10
-    , _i1RootDeviceType        = p11
-    , _i1VirtualizationType    = p12
-    , _i1Hypervisor            = p13
-    , _i1EbsOptimized          = p14
+    , _i1AmiLaunchIndex        = p4
+    , _i1InstanceType          = p5
+    , _i1LaunchTime            = withIso _Time (const id) p6
+    , _i1Placement             = p7
+    , _i1Monitoring            = p8
+    , _i1Architecture          = p9
+    , _i1RootDeviceType        = p10
+    , _i1VirtualizationType    = p11
+    , _i1Hypervisor            = p12
+    , _i1EbsOptimized          = p13
     , _i1PrivateDnsName        = Nothing
     , _i1PublicDnsName         = Nothing
     , _i1StateTransitionReason = Nothing
+    , _i1KeyName               = Nothing
     , _i1ProductCodes          = mempty
     , _i1KernelId              = Nothing
     , _i1RamdiskId             = Nothing
@@ -12028,7 +12174,7 @@
 
 -- | The name of the key pair, if this instance was launched with an associated
 -- key pair.
-i1KeyName :: Lens' Instance Text
+i1KeyName :: Lens' Instance (Maybe Text)
 i1KeyName = lens _i1KeyName (\s a -> s { _i1KeyName = a })
 
 -- | The time the instance was launched.
@@ -12159,7 +12305,7 @@
         <*> x .@? "instanceLifecycle"
         <*> x .@  "instanceType"
         <*> x .@? "kernelId"
-        <*> x .@  "keyName"
+        <*> x .@? "keyName"
         <*> x .@  "launchTime"
         <*> x .@  "monitoring"
         <*> x .@? "networkInterfaceSet" .!@ mempty
@@ -12478,7 +12624,7 @@
     lens _rslsSecurityGroups (\s a -> s { _rslsSecurityGroups = a })
         . _List
 
--- | The ID of the subnet in which to launch the Spot Instance.
+-- | The ID of the subnet in which to launch the instance.
 rslsSubnetId :: Lens' RequestSpotLaunchSpecification (Maybe Text)
 rslsSubnetId = lens _rslsSubnetId (\s a -> s { _rslsSubnetId = a })
 
@@ -12719,6 +12865,55 @@
     toQuery BundleTaskError{..} = mconcat
         [ "code"    =? _bteCode
         , "message" =? _bteMessage
+        ]
+
+data VpcClassicLink = VpcClassicLink
+    { _vclClassicLinkEnabled :: Maybe Bool
+    , _vclTags               :: List "item" Tag
+    , _vclVpcId              :: Maybe Text
+    } deriving (Eq, Show)
+
+-- | 'VpcClassicLink' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'vclClassicLinkEnabled' @::@ 'Maybe' 'Bool'
+--
+-- * 'vclTags' @::@ ['Tag']
+--
+-- * 'vclVpcId' @::@ 'Maybe' 'Text'
+--
+vpcClassicLink :: VpcClassicLink
+vpcClassicLink = VpcClassicLink
+    { _vclVpcId              = Nothing
+    , _vclClassicLinkEnabled = Nothing
+    , _vclTags               = mempty
+    }
+
+-- | Indicates whether the VPC is enabled for ClassicLink.
+vclClassicLinkEnabled :: Lens' VpcClassicLink (Maybe Bool)
+vclClassicLinkEnabled =
+    lens _vclClassicLinkEnabled (\s a -> s { _vclClassicLinkEnabled = a })
+
+-- | Any tags assigned to the VPC.
+vclTags :: Lens' VpcClassicLink [Tag]
+vclTags = lens _vclTags (\s a -> s { _vclTags = a }) . _List
+
+-- | The ID of the VPC.
+vclVpcId :: Lens' VpcClassicLink (Maybe Text)
+vclVpcId = lens _vclVpcId (\s a -> s { _vclVpcId = a })
+
+instance FromXML VpcClassicLink where
+    parseXML x = VpcClassicLink
+        <$> x .@? "classicLinkEnabled"
+        <*> x .@? "tagSet" .!@ mempty
+        <*> x .@? "vpcId"
+
+instance ToQuery VpcClassicLink where
+    toQuery VpcClassicLink{..} = mconcat
+        [ "classicLinkEnabled" =? _vclClassicLinkEnabled
+        , "tagSet"             `toQueryList` _vclTags
+        , "vpcId"              =? _vclVpcId
         ]
 
 data VolumeStatusItem = VolumeStatusItem
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
@@ -23,7 +23,7 @@
 -- 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/.
+-- 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 for Linux/.
 --
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-UnmonitorInstances.html>
 module Network.AWS.EC2.UnmonitorInstances
