diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`1.3.7`
+`1.4.0`
 
 
 ## Description
@@ -41,8 +41,15 @@
     Provides a list of each of the regions and endpoints available for
     use with AWS Storage Gateway.
 
+AWS Storage Gateway resource IDs are in uppercase. When you use these
+resource IDs with the Amazon EC2 API, EC2 expects resource IDs in
+lowercase. You must change your resource ID to lowercase to use it with
+the EC2 API. For example, in Storage Gateway the ID for a volume might
+be vol-1122AABB. When you use this ID with the EC2 API, you must change
+it to vol-1122aabb. Otherwise, the EC2 API might not behave as expected.
+
 Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-storagegateway)
-and the [AWS API Reference](http://docs.aws.amazon.com/storagegateway/latest/APIReference/Welcome.html).
+and the [AWS API Reference](https://aws.amazon.com/documentation/).
 
 The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/amazonka),
 which provides mechanisms for specifying AuthN/AuthZ information and sending requests.
diff --git a/amazonka-storagegateway.cabal b/amazonka-storagegateway.cabal
--- a/amazonka-storagegateway.cabal
+++ b/amazonka-storagegateway.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-storagegateway
-version:               1.3.7
+version:               1.4.0
 synopsis:              Amazon Storage Gateway SDK.
 homepage:              https://github.com/brendanhay/amazonka
 bug-reports:           https://github.com/brendanhay/amazonka/issues
@@ -7,7 +7,7 @@
 license-file:          LICENSE
 author:                Brendan Hay
 maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
-copyright:             Copyright (c) 2013-2015 Brendan Hay
+copyright:             Copyright (c) 2013-2016 Brendan Hay
 category:              Network, AWS, Cloud, Distributed Computing
 build-type:            Simple
 cabal-version:         >= 1.10
@@ -40,6 +40,13 @@
     -   <http://docs.aws.amazon.com/general/latest/gr/index.html?rande.html AWS Storage Gateway Regions and Endpoints>:
         Provides a list of each of the regions and endpoints available for
         use with AWS Storage Gateway.
+
+    AWS Storage Gateway resource IDs are in uppercase. When you use these
+    resource IDs with the Amazon EC2 API, EC2 expects resource IDs in
+    lowercase. You must change your resource ID to lowercase to use it with
+    the EC2 API. For example, in Storage Gateway the ID for a volume might
+    be vol-1122AABB. When you use this ID with the EC2 API, you must change
+    it to vol-1122aabb. Otherwise, the EC2 API might not behave as expected.
     .
     The types from this library are intended to be used with
     <http://hackage.haskell.org/package/amazonka amazonka>, which provides
@@ -52,7 +59,7 @@
     such as <http://hackage.haskell.org/package/lens lens> or
     <http://hackage.haskell.org/package/lens-family-core lens-family-core>.
     .
-    See "Network.AWS.StorageGateway" and the <http://docs.aws.amazon.com/storagegateway/latest/APIReference/Welcome.html AWS API Reference>
+    See "Network.AWS.StorageGateway" or <https://aws.amazon.com/documentation/ the AWS Documentation>
     to get started.
 
 source-repository head
@@ -78,6 +85,7 @@
         , Network.AWS.StorageGateway.CreateSnapshot
         , Network.AWS.StorageGateway.CreateSnapshotFromVolumeRecoveryPoint
         , Network.AWS.StorageGateway.CreateStorediSCSIVolume
+        , Network.AWS.StorageGateway.CreateTapeWithBarcode
         , Network.AWS.StorageGateway.CreateTapes
         , Network.AWS.StorageGateway.DeleteBandwidthRateLimit
         , Network.AWS.StorageGateway.DeleteChapCredentials
@@ -128,7 +136,7 @@
         , Network.AWS.StorageGateway.Types.Sum
 
     build-depends:
-          amazonka-core == 1.3.7.*
+          amazonka-core == 1.4.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-storagegateway-test
@@ -148,9 +156,9 @@
         , Test.AWS.StorageGateway.Internal
 
     build-depends:
-          amazonka-core == 1.3.7.*
-        , amazonka-test == 1.3.7.*
-        , amazonka-storagegateway == 1.3.7.*
+          amazonka-core == 1.4.0.*
+        , amazonka-test == 1.4.0.*
+        , amazonka-storagegateway == 1.4.0.*
         , base
         , bytestring
         , tasty
diff --git a/fixture/CreateTapeWithBarcode.yaml b/fixture/CreateTapeWithBarcode.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateTapeWithBarcode.yaml
diff --git a/fixture/CreateTapeWithBarcodeResponse.proto b/fixture/CreateTapeWithBarcodeResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateTapeWithBarcodeResponse.proto
diff --git a/gen/Network/AWS/StorageGateway.hs b/gen/Network/AWS/StorageGateway.hs
--- a/gen/Network/AWS/StorageGateway.hs
+++ b/gen/Network/AWS/StorageGateway.hs
@@ -5,7 +5,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -39,7 +39,12 @@
 --     Provides a list of each of the regions and endpoints available for
 --     use with AWS Storage Gateway.
 --
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/Welcome.html AWS API Reference>
+-- AWS Storage Gateway resource IDs are in uppercase. When you use these
+-- resource IDs with the Amazon EC2 API, EC2 expects resource IDs in
+-- lowercase. You must change your resource ID to lowercase to use it with
+-- the EC2 API. For example, in Storage Gateway the ID for a volume might
+-- be vol-1122AABB. When you use this ID with the EC2 API, you must change
+-- it to vol-1122aabb. Otherwise, the EC2 API might not behave as expected.
 module Network.AWS.StorageGateway
     (
     -- * Service Configuration
@@ -159,6 +164,9 @@
     -- ** DescribeSnapshotSchedule
     , module Network.AWS.StorageGateway.DescribeSnapshotSchedule
 
+    -- ** CreateTapeWithBarcode
+    , module Network.AWS.StorageGateway.CreateTapeWithBarcode
+
     -- ** DescribeBandwidthRateLimit
     , module Network.AWS.StorageGateway.DescribeBandwidthRateLimit
 
@@ -368,6 +376,7 @@
 import           Network.AWS.StorageGateway.CreateSnapshotFromVolumeRecoveryPoint
 import           Network.AWS.StorageGateway.CreateStorediSCSIVolume
 import           Network.AWS.StorageGateway.CreateTapes
+import           Network.AWS.StorageGateway.CreateTapeWithBarcode
 import           Network.AWS.StorageGateway.DeleteBandwidthRateLimit
 import           Network.AWS.StorageGateway.DeleteChapCredentials
 import           Network.AWS.StorageGateway.DeleteGateway
diff --git a/gen/Network/AWS/StorageGateway/ActivateGateway.hs b/gen/Network/AWS/StorageGateway/ActivateGateway.hs
--- a/gen/Network/AWS/StorageGateway/ActivateGateway.hs
+++ b/gen/Network/AWS/StorageGateway/ActivateGateway.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.ActivateGateway
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,11 +26,9 @@
 -- snapshots the gateway snapshot schedule window, an activation key, and a
 -- name for your gateway. The activation process also associates your
 -- gateway with your account; for more information, see
--- UpdateGatewayInformation.
+-- < UpdateGatewayInformation>.
 --
 -- You must turn on the gateway VM before you can activate your gateway.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_ActivateGateway.html AWS API Reference> for ActivateGateway.
 module Network.AWS.StorageGateway.ActivateGateway
     (
     -- * Creating a Request
@@ -62,13 +60,13 @@
 
 -- | A JSON object containing one or more of the following fields:
 --
--- -   ActivateGatewayInput$ActivationKey
--- -   GatewayName
--- -   ActivateGatewayInput$GatewayRegion
--- -   ActivateGatewayInput$GatewayTimezone
--- -   ActivateGatewayInput$GatewayType
--- -   ActivateGatewayInput$TapeDriveType
--- -   ActivateGatewayInput$MediumChangerType
+-- -   < ActivateGatewayInput$ActivationKey>
+-- -   < ActivateGatewayInput$GatewayName>
+-- -   < ActivateGatewayInput$GatewayRegion>
+-- -   < ActivateGatewayInput$GatewayTimezone>
+-- -   < ActivateGatewayInput$GatewayType>
+-- -   < ActivateGatewayInput$TapeDriveType>
+-- -   < ActivateGatewayInput$MediumChangerType>
 --
 -- /See:/ 'activateGateway' smart constructor.
 data ActivateGateway = ActivateGateway'
@@ -129,9 +127,9 @@
 agTapeDriveType :: Lens' ActivateGateway (Maybe Text)
 agTapeDriveType = lens _agTapeDriveType (\ s a -> s{_agTapeDriveType = a});
 
--- | One of the values that defines the type of gateway to activate. The type
--- specified is critical to all later functions of the gateway and cannot
--- be changed after activation. The default value is 'STORED'.
+-- | A value that defines the type of gateway to activate. The type specified
+-- is critical to all later functions of the gateway and cannot be changed
+-- after activation. The default value is 'STORED'.
 agGatewayType :: Lens' ActivateGateway (Maybe Text)
 agGatewayType = lens _agGatewayType (\ s a -> s{_agGatewayType = a});
 
@@ -146,20 +144,20 @@
 agActivationKey :: Lens' ActivateGateway Text
 agActivationKey = lens _agActivationKey (\ s a -> s{_agActivationKey = a});
 
--- | Undocumented member.
+-- | The name you configured for your gateway.
 agGatewayName :: Lens' ActivateGateway Text
 agGatewayName = lens _agGatewayName (\ s a -> s{_agGatewayName = a});
 
--- | One of the values that indicates the time zone you want to set for the
--- gateway. The time zone is used, for example, for scheduling snapshots
--- and your gateway\'s maintenance schedule.
+-- | A value that indicates the time zone you want to set for the gateway.
+-- The time zone is used, for example, for scheduling snapshots and your
+-- gateway\'s maintenance schedule.
 agGatewayTimezone :: Lens' ActivateGateway Text
 agGatewayTimezone = lens _agGatewayTimezone (\ s a -> s{_agGatewayTimezone = a});
 
--- | One of the values that indicates the region where you want to store the
--- snapshot backups. The gateway region specified must be the same region
--- as the region in your 'Host' header in the request. For more information
--- about available regions and endpoints for AWS Storage Gateway, see
+-- | A value that indicates the region where you want to store the snapshot
+-- backups. The gateway region specified must be the same region as the
+-- region in your 'Host' header in the request. For more information about
+-- available regions and endpoints for AWS Storage Gateway, see
 -- <http://docs.aws.amazon.com/general/latest/gr/rande.html#sg_region Regions and Endpoints>
 -- in the /Amazon Web Services Glossary/.
 --
@@ -178,6 +176,8 @@
                  ActivateGatewayResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
 
+instance Hashable ActivateGateway
+
 instance ToHeaders ActivateGateway where
         toHeaders
           = const
@@ -210,6 +210,10 @@
 -- activated gateway. It is a string made of information such as your
 -- account, gateway name, and region. This ARN is used to reference the
 -- gateway in other API operations as well as resource-based authorization.
+--
+-- For Gateways activated prior to September 02, 2015 the gateway ARN
+-- contains the gateway name rather than the gateway id. Changing the name
+-- of the gateway has no effect on the gateway ARN.
 --
 -- /See:/ 'activateGatewayResponse' smart constructor.
 data ActivateGatewayResponse = ActivateGatewayResponse'
diff --git a/gen/Network/AWS/StorageGateway/AddCache.hs b/gen/Network/AWS/StorageGateway/AddCache.hs
--- a/gen/Network/AWS/StorageGateway/AddCache.hs
+++ b/gen/Network/AWS/StorageGateway/AddCache.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.AddCache
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,8 +26,6 @@
 -- In the request, you specify the gateway Amazon Resource Name (ARN) to
 -- which you want to add cache, and one or more disk IDs that you want to
 -- configure as cache.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_AddCache.html AWS API Reference> for AddCache.
 module Network.AWS.StorageGateway.AddCache
     (
     -- * Creating a Request
@@ -90,6 +88,8 @@
               (\ s h x ->
                  AddCacheResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
+
+instance Hashable AddCache
 
 instance ToHeaders AddCache where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/AddTagsToResource.hs b/gen/Network/AWS/StorageGateway/AddTagsToResource.hs
--- a/gen/Network/AWS/StorageGateway/AddTagsToResource.hs
+++ b/gen/Network/AWS/StorageGateway/AddTagsToResource.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.AddTagsToResource
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -32,8 +32,6 @@
 --
 -- You can create a maximum of 10 tags for each resource. Virtual tapes and
 -- storage volumes that are recovered to a new gateway maintain their tags.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_AddTagsToResource.html AWS API Reference> for AddTagsToResource.
 module Network.AWS.StorageGateway.AddTagsToResource
     (
     -- * Creating a Request
@@ -103,6 +101,8 @@
               (\ s h x ->
                  AddTagsToResourceResponse' <$>
                    (x .?> "ResourceARN") <*> (pure (fromEnum s)))
+
+instance Hashable AddTagsToResource
 
 instance ToHeaders AddTagsToResource where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/AddUploadBuffer.hs b/gen/Network/AWS/StorageGateway/AddUploadBuffer.hs
--- a/gen/Network/AWS/StorageGateway/AddUploadBuffer.hs
+++ b/gen/Network/AWS/StorageGateway/AddUploadBuffer.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.AddUploadBuffer
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -25,8 +25,6 @@
 -- In the request, you specify the gateway Amazon Resource Name (ARN) to
 -- which you want to add upload buffer, and one or more disk IDs that you
 -- want to configure as upload buffer.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_AddUploadBuffer.html AWS API Reference> for AddUploadBuffer.
 module Network.AWS.StorageGateway.AddUploadBuffer
     (
     -- * Creating a Request
@@ -89,6 +87,8 @@
               (\ s h x ->
                  AddUploadBufferResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
+
+instance Hashable AddUploadBuffer
 
 instance ToHeaders AddUploadBuffer where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/AddWorkingStorage.hs b/gen/Network/AWS/StorageGateway/AddWorkingStorage.hs
--- a/gen/Network/AWS/StorageGateway/AddWorkingStorage.hs
+++ b/gen/Network/AWS/StorageGateway/AddWorkingStorage.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.AddWorkingStorage
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -24,14 +24,12 @@
 -- in cached-volumes API version (20120630). Use AddUploadBuffer instead.
 --
 -- Working storage is also referred to as upload buffer. You can also use
--- the AddUploadBuffer operation to add upload buffer to a stored-volume
+-- the < AddUploadBuffer> operation to add upload buffer to a stored-volume
 -- gateway.
 --
 -- In the request, you specify the gateway Amazon Resource Name (ARN) to
 -- which you want to add working storage, and one or more disk IDs that you
 -- want to configure as working storage.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_AddWorkingStorage.html AWS API Reference> for AddWorkingStorage.
 module Network.AWS.StorageGateway.AddWorkingStorage
     (
     -- * Creating a Request
@@ -58,7 +56,7 @@
 
 -- | A JSON object containing one or more of the following fields:
 --
--- -   AddWorkingStorageInput$DiskIds
+-- -   < AddWorkingStorageInput$DiskIds>
 --
 -- /See:/ 'addWorkingStorage' smart constructor.
 data AddWorkingStorage = AddWorkingStorage'
@@ -88,7 +86,7 @@
 
 -- | An array of strings that identify disks that are to be configured as
 -- working storage. Each string have a minimum length of 1 and maximum
--- length of 300. You can get the disk IDs from the ListLocalDisks API.
+-- length of 300. You can get the disk IDs from the < ListLocalDisks> API.
 awsDiskIds :: Lens' AddWorkingStorage [Text]
 awsDiskIds = lens _awsDiskIds (\ s a -> s{_awsDiskIds = a}) . _Coerce;
 
@@ -100,6 +98,8 @@
               (\ s h x ->
                  AddWorkingStorageResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
+
+instance Hashable AddWorkingStorage
 
 instance ToHeaders AddWorkingStorage where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/CancelArchival.hs b/gen/Network/AWS/StorageGateway/CancelArchival.hs
--- a/gen/Network/AWS/StorageGateway/CancelArchival.hs
+++ b/gen/Network/AWS/StorageGateway/CancelArchival.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.CancelArchival
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -20,8 +20,6 @@
 --
 -- Cancels archiving of a virtual tape to the virtual tape shelf (VTS)
 -- after the archiving process is initiated.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CancelArchival.html AWS API Reference> for CancelArchival.
 module Network.AWS.StorageGateway.CancelArchival
     (
     -- * Creating a Request
@@ -88,6 +86,8 @@
               (\ s h x ->
                  CancelArchivalResponse' <$>
                    (x .?> "TapeARN") <*> (pure (fromEnum s)))
+
+instance Hashable CancelArchival
 
 instance ToHeaders CancelArchival where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/CancelRetrieval.hs b/gen/Network/AWS/StorageGateway/CancelRetrieval.hs
--- a/gen/Network/AWS/StorageGateway/CancelRetrieval.hs
+++ b/gen/Network/AWS/StorageGateway/CancelRetrieval.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.CancelRetrieval
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -21,8 +21,6 @@
 -- Cancels retrieval of a virtual tape from the virtual tape shelf (VTS) to
 -- a gateway after the retrieval process is initiated. The virtual tape is
 -- returned to the VTS.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CancelRetrieval.html AWS API Reference> for CancelRetrieval.
 module Network.AWS.StorageGateway.CancelRetrieval
     (
     -- * Creating a Request
@@ -89,6 +87,8 @@
               (\ s h x ->
                  CancelRetrievalResponse' <$>
                    (x .?> "TapeARN") <*> (pure (fromEnum s)))
+
+instance Hashable CancelRetrieval
 
 instance ToHeaders CancelRetrieval where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/CreateCachediSCSIVolume.hs b/gen/Network/AWS/StorageGateway/CreateCachediSCSIVolume.hs
--- a/gen/Network/AWS/StorageGateway/CreateCachediSCSIVolume.hs
+++ b/gen/Network/AWS/StorageGateway/CreateCachediSCSIVolume.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.CreateCachediSCSIVolume
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -23,7 +23,7 @@
 -- architecture.
 --
 -- Cache storage must be allocated to the gateway before you can create a
--- cached volume. Use the AddCache operation to add cache storage to a
+-- cached volume. Use the < AddCache> operation to add cache storage to a
 -- gateway.
 --
 -- In the request, you must specify the gateway, size of the volume in
@@ -32,8 +32,6 @@
 -- creates the volume and returns information about it such as the volume
 -- Amazon Resource Name (ARN), its size, and the iSCSI target ARN that
 -- initiators can use to connect to the volume target.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateCachediSCSIVolume.html AWS API Reference> for CreateCachediSCSIVolume.
 module Network.AWS.StorageGateway.CreateCachediSCSIVolume
     (
     -- * Creating a Request
@@ -139,6 +137,8 @@
                  CreateCachediSCSIVolumeResponse' <$>
                    (x .?> "TargetARN") <*> (x .?> "VolumeARN") <*>
                      (pure (fromEnum s)))
+
+instance Hashable CreateCachediSCSIVolume
 
 instance ToHeaders CreateCachediSCSIVolume where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/CreateSnapshot.hs b/gen/Network/AWS/StorageGateway/CreateSnapshot.hs
--- a/gen/Network/AWS/StorageGateway/CreateSnapshot.hs
+++ b/gen/Network/AWS/StorageGateway/CreateSnapshot.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.CreateSnapshot
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -39,8 +39,6 @@
 -- To list or delete a snapshot, you must use the Amazon EC2 API. For more
 -- information, see DescribeSnapshots or DeleteSnapshot in the
 -- <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Operations.html EC2 API reference>.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateSnapshot.html AWS API Reference> for CreateSnapshot.
 module Network.AWS.StorageGateway.CreateSnapshot
     (
     -- * Creating a Request
@@ -68,8 +66,8 @@
 
 -- | A JSON object containing one or more of the following fields:
 --
--- -   CreateSnapshotInput$SnapshotDescription
--- -   CreateSnapshotInput$VolumeARN
+-- -   < CreateSnapshotInput$SnapshotDescription>
+-- -   < CreateSnapshotInput$VolumeARN>
 --
 -- /See:/ 'createSnapshot' smart constructor.
 data CreateSnapshot = CreateSnapshot'
@@ -94,7 +92,7 @@
     , _csSnapshotDescription = pSnapshotDescription_
     }
 
--- | The Amazon Resource Name (ARN) of the volume. Use the ListVolumes
+-- | The Amazon Resource Name (ARN) of the volume. Use the < ListVolumes>
 -- operation to return a list of gateway volumes.
 csVolumeARN :: Lens' CreateSnapshot Text
 csVolumeARN = lens _csVolumeARN (\ s a -> s{_csVolumeARN = a});
@@ -116,6 +114,8 @@
                    (x .?> "VolumeARN") <*> (x .?> "SnapshotId") <*>
                      (pure (fromEnum s)))
 
+instance Hashable CreateSnapshot
+
 instance ToHeaders CreateSnapshot where
         toHeaders
           = const
@@ -176,7 +176,7 @@
 -- | The snapshot ID that is used to refer to the snapshot in future
 -- operations such as describing snapshots (Amazon Elastic Compute Cloud
 -- API 'DescribeSnapshots') or creating a volume from a snapshot
--- (CreateStorediSCSIVolume).
+-- (< CreateStorediSCSIVolume>).
 csrsSnapshotId :: Lens' CreateSnapshotResponse (Maybe Text)
 csrsSnapshotId = lens _csrsSnapshotId (\ s a -> s{_csrsSnapshotId = a});
 
diff --git a/gen/Network/AWS/StorageGateway/CreateSnapshotFromVolumeRecoveryPoint.hs b/gen/Network/AWS/StorageGateway/CreateSnapshotFromVolumeRecoveryPoint.hs
--- a/gen/Network/AWS/StorageGateway/CreateSnapshotFromVolumeRecoveryPoint.hs
+++ b/gen/Network/AWS/StorageGateway/CreateSnapshotFromVolumeRecoveryPoint.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.CreateSnapshotFromVolumeRecoveryPoint
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -25,7 +25,7 @@
 -- A volume recovery point is a point in time at which all data of the
 -- volume is consistent and from which you can create a snapshot. To get a
 -- list of volume recovery point for gateway-cached volumes, use
--- ListVolumeRecoveryPoints.
+-- < ListVolumeRecoveryPoints>.
 --
 -- In the 'CreateSnapshotFromVolumeRecoveryPoint' request, you identify the
 -- volume by providing its Amazon Resource Name (ARN). You must also
@@ -38,8 +38,6 @@
 --
 -- To list or delete a snapshot, you must use the Amazon EC2 API. For more
 -- information, in /Amazon Elastic Compute Cloud API Reference/.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateSnapshotFromVolumeRecoveryPoint.html AWS API Reference> for CreateSnapshotFromVolumeRecoveryPoint.
 module Network.AWS.StorageGateway.CreateSnapshotFromVolumeRecoveryPoint
     (
     -- * Creating a Request
@@ -110,6 +108,9 @@
                      (x .?> "VolumeARN")
                      <*> (x .?> "SnapshotId")
                      <*> (pure (fromEnum s)))
+
+instance Hashable
+         CreateSnapshotFromVolumeRecoveryPoint
 
 instance ToHeaders
          CreateSnapshotFromVolumeRecoveryPoint where
diff --git a/gen/Network/AWS/StorageGateway/CreateStorediSCSIVolume.hs b/gen/Network/AWS/StorageGateway/CreateStorediSCSIVolume.hs
--- a/gen/Network/AWS/StorageGateway/CreateStorediSCSIVolume.hs
+++ b/gen/Network/AWS/StorageGateway/CreateStorediSCSIVolume.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.CreateStorediSCSIVolume
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -31,8 +31,6 @@
 -- creates the volume and returns volume information such as the volume
 -- Amazon Resource Name (ARN), its size, and the iSCSI target ARN that
 -- initiators can use to connect to the volume target.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateStorediSCSIVolume.html AWS API Reference> for CreateStorediSCSIVolume.
 module Network.AWS.StorageGateway.CreateStorediSCSIVolume
     (
     -- * Creating a Request
@@ -65,11 +63,11 @@
 
 -- | A JSON object containing one or more of the following fields:
 --
--- -   CreateStorediSCSIVolumeInput$DiskId
--- -   CreateStorediSCSIVolumeInput$NetworkInterfaceId
--- -   CreateStorediSCSIVolumeInput$PreserveExistingData
--- -   CreateStorediSCSIVolumeInput$SnapshotId
--- -   CreateStorediSCSIVolumeInput$TargetName
+-- -   < CreateStorediSCSIVolumeInput$DiskId>
+-- -   < CreateStorediSCSIVolumeInput$NetworkInterfaceId>
+-- -   < CreateStorediSCSIVolumeInput$PreserveExistingData>
+-- -   < CreateStorediSCSIVolumeInput$SnapshotId>
+-- -   < CreateStorediSCSIVolumeInput$TargetName>
 --
 -- /See:/ 'createStorediSCSIVolume' smart constructor.
 data CreateStorediSCSIVolume = CreateStorediSCSIVolume'
@@ -143,14 +141,15 @@
 -- | The name of the iSCSI target used by initiators to connect to the target
 -- and as a suffix for the target ARN. For example, specifying 'TargetName'
 -- as /myvolume/ results in the target ARN of
--- arn:aws:storagegateway:us-east-1:111122223333:gateway\/mygateway\/target\/iqn.1997-05.com.amazon:myvolume.
+-- arn:aws:storagegateway:us-east-1:111122223333:gateway\/sgw-12A3456B\/target\/iqn.1997-05.com.amazon:myvolume.
 -- The target name must be unique across all volumes of a gateway.
 csscsivTargetName :: Lens' CreateStorediSCSIVolume Text
 csscsivTargetName = lens _csscsivTargetName (\ s a -> s{_csscsivTargetName = a});
 
 -- | The network interface of the gateway on which to expose the iSCSI
--- target. Only IPv4 addresses are accepted. Use DescribeGatewayInformation
--- to get a list of the network interfaces available on a gateway.
+-- target. Only IPv4 addresses are accepted. Use
+-- < DescribeGatewayInformation> to get a list of the network interfaces
+-- available on a gateway.
 --
 -- /Valid Values/: A valid IP address.
 csscsivNetworkInterfaceId :: Lens' CreateStorediSCSIVolume Text
@@ -167,6 +166,8 @@
                    (x .?> "TargetARN") <*> (x .?> "VolumeARN") <*>
                      (x .?> "VolumeSizeInBytes")
                      <*> (pure (fromEnum s)))
+
+instance Hashable CreateStorediSCSIVolume
 
 instance ToHeaders CreateStorediSCSIVolume where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/CreateTapeWithBarcode.hs b/gen/Network/AWS/StorageGateway/CreateTapeWithBarcode.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/StorageGateway/CreateTapeWithBarcode.hs
@@ -0,0 +1,165 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Network.AWS.StorageGateway.CreateTapeWithBarcode
+-- Copyright   : (c) 2013-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a virtual tape by using your own barcode. You write data to the
+-- virtual tape and then archive the tape.
+--
+-- Cache storage must be allocated to the gateway before you can create a
+-- virtual tape. Use the < AddCache> operation to add cache storage to a
+-- gateway.
+module Network.AWS.StorageGateway.CreateTapeWithBarcode
+    (
+    -- * Creating a Request
+      createTapeWithBarcode
+    , CreateTapeWithBarcode
+    -- * Request Lenses
+    , ctwbGatewayARN
+    , ctwbTapeSizeInBytes
+    , ctwbTapeBarcode
+
+    -- * Destructuring the Response
+    , createTapeWithBarcodeResponse
+    , CreateTapeWithBarcodeResponse
+    -- * Response Lenses
+    , ctwbrsTapeARN
+    , ctwbrsResponseStatus
+    ) where
+
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+import           Network.AWS.StorageGateway.Types
+import           Network.AWS.StorageGateway.Types.Product
+
+-- | CreateTapeWithBarcodeInput
+--
+-- /See:/ 'createTapeWithBarcode' smart constructor.
+data CreateTapeWithBarcode = CreateTapeWithBarcode'
+    { _ctwbGatewayARN      :: !Text
+    , _ctwbTapeSizeInBytes :: !Integer
+    , _ctwbTapeBarcode     :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreateTapeWithBarcode' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ctwbGatewayARN'
+--
+-- * 'ctwbTapeSizeInBytes'
+--
+-- * 'ctwbTapeBarcode'
+createTapeWithBarcode
+    :: Text -- ^ 'ctwbGatewayARN'
+    -> Integer -- ^ 'ctwbTapeSizeInBytes'
+    -> Text -- ^ 'ctwbTapeBarcode'
+    -> CreateTapeWithBarcode
+createTapeWithBarcode pGatewayARN_ pTapeSizeInBytes_ pTapeBarcode_ =
+    CreateTapeWithBarcode'
+    { _ctwbGatewayARN = pGatewayARN_
+    , _ctwbTapeSizeInBytes = pTapeSizeInBytes_
+    , _ctwbTapeBarcode = pTapeBarcode_
+    }
+
+-- | The unique Amazon Resource Name (ARN) that represents the gateway to
+-- associate the virtual tape with. Use the < ListGateways> operation to
+-- return a list of gateways for your account and region.
+ctwbGatewayARN :: Lens' CreateTapeWithBarcode Text
+ctwbGatewayARN = lens _ctwbGatewayARN (\ s a -> s{_ctwbGatewayARN = a});
+
+-- | The size, in bytes, of the virtual tape that you want to create.
+--
+-- The size must be aligned by gigabyte (1024*1024*1024 byte).
+ctwbTapeSizeInBytes :: Lens' CreateTapeWithBarcode Integer
+ctwbTapeSizeInBytes = lens _ctwbTapeSizeInBytes (\ s a -> s{_ctwbTapeSizeInBytes = a});
+
+-- | The barcode that you want to assign to the tape.
+ctwbTapeBarcode :: Lens' CreateTapeWithBarcode Text
+ctwbTapeBarcode = lens _ctwbTapeBarcode (\ s a -> s{_ctwbTapeBarcode = a});
+
+instance AWSRequest CreateTapeWithBarcode where
+        type Rs CreateTapeWithBarcode =
+             CreateTapeWithBarcodeResponse
+        request = postJSON storageGateway
+        response
+          = receiveJSON
+              (\ s h x ->
+                 CreateTapeWithBarcodeResponse' <$>
+                   (x .?> "TapeARN") <*> (pure (fromEnum s)))
+
+instance Hashable CreateTapeWithBarcode
+
+instance ToHeaders CreateTapeWithBarcode where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("StorageGateway_20130630.CreateTapeWithBarcode" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON CreateTapeWithBarcode where
+        toJSON CreateTapeWithBarcode'{..}
+          = object
+              (catMaybes
+                 [Just ("GatewayARN" .= _ctwbGatewayARN),
+                  Just ("TapeSizeInBytes" .= _ctwbTapeSizeInBytes),
+                  Just ("TapeBarcode" .= _ctwbTapeBarcode)])
+
+instance ToPath CreateTapeWithBarcode where
+        toPath = const "/"
+
+instance ToQuery CreateTapeWithBarcode where
+        toQuery = const mempty
+
+-- | CreateTapeOutput
+--
+-- /See:/ 'createTapeWithBarcodeResponse' smart constructor.
+data CreateTapeWithBarcodeResponse = CreateTapeWithBarcodeResponse'
+    { _ctwbrsTapeARN        :: !(Maybe Text)
+    , _ctwbrsResponseStatus :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreateTapeWithBarcodeResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ctwbrsTapeARN'
+--
+-- * 'ctwbrsResponseStatus'
+createTapeWithBarcodeResponse
+    :: Int -- ^ 'ctwbrsResponseStatus'
+    -> CreateTapeWithBarcodeResponse
+createTapeWithBarcodeResponse pResponseStatus_ =
+    CreateTapeWithBarcodeResponse'
+    { _ctwbrsTapeARN = Nothing
+    , _ctwbrsResponseStatus = pResponseStatus_
+    }
+
+-- | A unique Amazon Resource Name (ARN) that represents the virtual tape
+-- that was created.
+ctwbrsTapeARN :: Lens' CreateTapeWithBarcodeResponse (Maybe Text)
+ctwbrsTapeARN = lens _ctwbrsTapeARN (\ s a -> s{_ctwbrsTapeARN = a});
+
+-- | The response status code.
+ctwbrsResponseStatus :: Lens' CreateTapeWithBarcodeResponse Int
+ctwbrsResponseStatus = lens _ctwbrsResponseStatus (\ s a -> s{_ctwbrsResponseStatus = a});
diff --git a/gen/Network/AWS/StorageGateway/CreateTapes.hs b/gen/Network/AWS/StorageGateway/CreateTapes.hs
--- a/gen/Network/AWS/StorageGateway/CreateTapes.hs
+++ b/gen/Network/AWS/StorageGateway/CreateTapes.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.CreateTapes
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -22,10 +22,8 @@
 -- and then archive the tapes.
 --
 -- Cache storage must be allocated to the gateway before you can create
--- virtual tapes. Use the AddCache operation to add cache storage to a
+-- virtual tapes. Use the < AddCache> operation to add cache storage to a
 -- gateway.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateTapes.html AWS API Reference> for CreateTapes.
 module Network.AWS.StorageGateway.CreateTapes
     (
     -- * Creating a Request
@@ -93,15 +91,15 @@
     , _ctTapeBarcodePrefix = pTapeBarcodePrefix_
     }
 
--- | The unique Amazon Resource Name(ARN) that represents the gateway to
--- associate the virtual tapes with. Use the ListGateways operation to
+-- | The unique Amazon Resource Name (ARN) that represents the gateway to
+-- associate the virtual tapes with. Use the < ListGateways> operation to
 -- return a list of gateways for your account and region.
 ctGatewayARN :: Lens' CreateTapes Text
 ctGatewayARN = lens _ctGatewayARN (\ s a -> s{_ctGatewayARN = a});
 
--- | The size, in bytes, of the virtual tapes you want to create.
+-- | The size, in bytes, of the virtual tapes that you want to create.
 --
--- The size must be gigabyte (1024*1024*1024 byte) aligned.
+-- The size must be aligned by gigabyte (1024*1024*1024 byte).
 ctTapeSizeInBytes :: Lens' CreateTapes Integer
 ctTapeSizeInBytes = lens _ctTapeSizeInBytes (\ s a -> s{_ctTapeSizeInBytes = a});
 
@@ -113,15 +111,15 @@
 ctClientToken :: Lens' CreateTapes Text
 ctClientToken = lens _ctClientToken (\ s a -> s{_ctClientToken = a});
 
--- | The number of virtual tapes you want to create.
+-- | The number of virtual tapes that you want to create.
 ctNumTapesToCreate :: Lens' CreateTapes Natural
 ctNumTapesToCreate = lens _ctNumTapesToCreate (\ s a -> s{_ctNumTapesToCreate = a}) . _Nat;
 
--- | A prefix you append to the barcode of the virtual tape you are creating.
--- This makes a barcode unique.
+-- | A prefix that you append to the barcode of the virtual tape you are
+-- creating. This prefix makes the barcode unique.
 --
--- The prefix must be 1 to 4 characters in length and must be upper-case
--- letters A-Z.
+-- The prefix must be 1 to 4 characters in length and must be one of the
+-- uppercase letters from A to Z.
 ctTapeBarcodePrefix :: Lens' CreateTapes Text
 ctTapeBarcodePrefix = lens _ctTapeBarcodePrefix (\ s a -> s{_ctTapeBarcodePrefix = a});
 
@@ -135,6 +133,8 @@
                    (x .?> "TapeARNs" .!@ mempty) <*>
                      (pure (fromEnum s)))
 
+instance Hashable CreateTapes
+
 instance ToHeaders CreateTapes where
         toHeaders
           = const
@@ -185,8 +185,8 @@
     , _ctrsResponseStatus = pResponseStatus_
     }
 
--- | A list of unique Amazon Resource Named (ARN) that represents the virtual
--- tapes that were created.
+-- | A list of unique Amazon Resource Names (ARNs) that represents the
+-- virtual tapes that were created.
 ctrsTapeARNs :: Lens' CreateTapesResponse [Text]
 ctrsTapeARNs = lens _ctrsTapeARNs (\ s a -> s{_ctrsTapeARNs = a}) . _Default . _Coerce;
 
diff --git a/gen/Network/AWS/StorageGateway/DeleteBandwidthRateLimit.hs b/gen/Network/AWS/StorageGateway/DeleteBandwidthRateLimit.hs
--- a/gen/Network/AWS/StorageGateway/DeleteBandwidthRateLimit.hs
+++ b/gen/Network/AWS/StorageGateway/DeleteBandwidthRateLimit.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DeleteBandwidthRateLimit
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -23,8 +23,6 @@
 -- delete both. If you delete only one of the limits, the other limit
 -- remains unchanged. To specify which gateway to work with, use the Amazon
 -- Resource Name (ARN) of the gateway in your request.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DeleteBandwidthRateLimit.html AWS API Reference> for DeleteBandwidthRateLimit.
 module Network.AWS.StorageGateway.DeleteBandwidthRateLimit
     (
     -- * Creating a Request
@@ -89,6 +87,8 @@
               (\ s h x ->
                  DeleteBandwidthRateLimitResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
+
+instance Hashable DeleteBandwidthRateLimit
 
 instance ToHeaders DeleteBandwidthRateLimit where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/DeleteChapCredentials.hs b/gen/Network/AWS/StorageGateway/DeleteChapCredentials.hs
--- a/gen/Network/AWS/StorageGateway/DeleteChapCredentials.hs
+++ b/gen/Network/AWS/StorageGateway/DeleteChapCredentials.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DeleteChapCredentials
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -20,8 +20,6 @@
 --
 -- This operation deletes Challenge-Handshake Authentication Protocol
 -- (CHAP) credentials for a specified iSCSI target and initiator pair.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DeleteChapCredentials.html AWS API Reference> for DeleteChapCredentials.
 module Network.AWS.StorageGateway.DeleteChapCredentials
     (
     -- * Creating a Request
@@ -49,8 +47,8 @@
 
 -- | A JSON object containing one or more of the following fields:
 --
--- -   DeleteChapCredentialsInput$InitiatorName
--- -   DeleteChapCredentialsInput$TargetARN
+-- -   < DeleteChapCredentialsInput$InitiatorName>
+-- -   < DeleteChapCredentialsInput$TargetARN>
 --
 -- /See:/ 'deleteChapCredentials' smart constructor.
 data DeleteChapCredentials = DeleteChapCredentials'
@@ -76,8 +74,8 @@
     }
 
 -- | The Amazon Resource Name (ARN) of the iSCSI volume target. Use the
--- DescribeStorediSCSIVolumes operation to return to retrieve the TargetARN
--- for specified VolumeARN.
+-- < DescribeStorediSCSIVolumes> operation to return to retrieve the
+-- TargetARN for specified VolumeARN.
 dTargetARN :: Lens' DeleteChapCredentials Text
 dTargetARN = lens _dTargetARN (\ s a -> s{_dTargetARN = a});
 
@@ -95,6 +93,8 @@
                  DeleteChapCredentialsResponse' <$>
                    (x .?> "TargetARN") <*> (x .?> "InitiatorName") <*>
                      (pure (fromEnum s)))
+
+instance Hashable DeleteChapCredentials
 
 instance ToHeaders DeleteChapCredentials where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/DeleteGateway.hs b/gen/Network/AWS/StorageGateway/DeleteGateway.hs
--- a/gen/Network/AWS/StorageGateway/DeleteGateway.hs
+++ b/gen/Network/AWS/StorageGateway/DeleteGateway.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DeleteGateway
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -36,8 +36,6 @@
 -- you can delete your snapshots using the Amazon EC2 console. For more
 -- information, see the
 -- <http://aws.amazon.com/storagegateway AWS Storage Gateway Detail Page>.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DeleteGateway.html AWS API Reference> for DeleteGateway.
 module Network.AWS.StorageGateway.DeleteGateway
     (
     -- * Creating a Request
@@ -93,6 +91,8 @@
               (\ s h x ->
                  DeleteGatewayResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
+
+instance Hashable DeleteGateway
 
 instance ToHeaders DeleteGateway where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/DeleteSnapshotSchedule.hs b/gen/Network/AWS/StorageGateway/DeleteSnapshotSchedule.hs
--- a/gen/Network/AWS/StorageGateway/DeleteSnapshotSchedule.hs
+++ b/gen/Network/AWS/StorageGateway/DeleteSnapshotSchedule.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DeleteSnapshotSchedule
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -29,8 +29,6 @@
 --
 -- To list or delete a snapshot, you must use the Amazon EC2 API. in
 -- /Amazon Elastic Compute Cloud API Reference/.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DeleteSnapshotSchedule.html AWS API Reference> for DeleteSnapshotSchedule.
 module Network.AWS.StorageGateway.DeleteSnapshotSchedule
     (
     -- * Creating a Request
@@ -85,6 +83,8 @@
               (\ s h x ->
                  DeleteSnapshotScheduleResponse' <$>
                    (x .?> "VolumeARN") <*> (pure (fromEnum s)))
+
+instance Hashable DeleteSnapshotSchedule
 
 instance ToHeaders DeleteSnapshotSchedule where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/DeleteTape.hs b/gen/Network/AWS/StorageGateway/DeleteTape.hs
--- a/gen/Network/AWS/StorageGateway/DeleteTape.hs
+++ b/gen/Network/AWS/StorageGateway/DeleteTape.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DeleteTape
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Deletes the specified virtual tape.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DeleteTape.html AWS API Reference> for DeleteTape.
 module Network.AWS.StorageGateway.DeleteTape
     (
     -- * Creating a Request
@@ -71,7 +69,7 @@
     }
 
 -- | The unique Amazon Resource Name (ARN) of the gateway that the virtual
--- tape to delete is associated with. Use the ListGateways operation to
+-- tape to delete is associated with. Use the < ListGateways> operation to
 -- return a list of gateways for your account and region.
 delGatewayARN :: Lens' DeleteTape Text
 delGatewayARN = lens _delGatewayARN (\ s a -> s{_delGatewayARN = a});
@@ -88,6 +86,8 @@
               (\ s h x ->
                  DeleteTapeResponse' <$>
                    (x .?> "TapeARN") <*> (pure (fromEnum s)))
+
+instance Hashable DeleteTape
 
 instance ToHeaders DeleteTape where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/DeleteTapeArchive.hs b/gen/Network/AWS/StorageGateway/DeleteTapeArchive.hs
--- a/gen/Network/AWS/StorageGateway/DeleteTapeArchive.hs
+++ b/gen/Network/AWS/StorageGateway/DeleteTapeArchive.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DeleteTapeArchive
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Deletes the specified virtual tape from the virtual tape shelf (VTS).
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DeleteTapeArchive.html AWS API Reference> for DeleteTapeArchive.
 module Network.AWS.StorageGateway.DeleteTapeArchive
     (
     -- * Creating a Request
@@ -77,6 +75,8 @@
               (\ s h x ->
                  DeleteTapeArchiveResponse' <$>
                    (x .?> "TapeARN") <*> (pure (fromEnum s)))
+
+instance Hashable DeleteTapeArchive
 
 instance ToHeaders DeleteTapeArchive where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/DeleteVolume.hs b/gen/Network/AWS/StorageGateway/DeleteVolume.hs
--- a/gen/Network/AWS/StorageGateway/DeleteVolume.hs
+++ b/gen/Network/AWS/StorageGateway/DeleteVolume.hs
@@ -12,17 +12,17 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DeleteVolume
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- This operation deletes the specified gateway volume that you previously
--- created using the CreateCachediSCSIVolume or CreateStorediSCSIVolume
--- API. For gateway-stored volumes, the local disk that was configured as
--- the storage volume is not deleted. You can reuse the local disk to
--- create another storage volume.
+-- created using the < CreateCachediSCSIVolume> or
+-- < CreateStorediSCSIVolume> API. For gateway-stored volumes, the local
+-- disk that was configured as the storage volume is not deleted. You can
+-- reuse the local disk to create another storage volume.
 --
 -- Before you delete a gateway volume, make sure there are no iSCSI
 -- connections to the volume you are deleting. You should also make sure
@@ -34,8 +34,6 @@
 --
 -- In the request, you must provide the Amazon Resource Name (ARN) of the
 -- storage volume you want to delete.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DeleteVolume.html AWS API Reference> for DeleteVolume.
 module Network.AWS.StorageGateway.DeleteVolume
     (
     -- * Creating a Request
@@ -59,7 +57,7 @@
 import           Network.AWS.StorageGateway.Types
 import           Network.AWS.StorageGateway.Types.Product
 
--- | A JSON object containing the DeleteVolumeInput$VolumeARN to delete.
+-- | A JSON object containing the < DeleteVolumeInput$VolumeARN> to delete.
 --
 -- /See:/ 'deleteVolume' smart constructor.
 newtype DeleteVolume = DeleteVolume'
@@ -79,7 +77,7 @@
     { _dvVolumeARN = pVolumeARN_
     }
 
--- | The Amazon Resource Name (ARN) of the volume. Use the ListVolumes
+-- | The Amazon Resource Name (ARN) of the volume. Use the < ListVolumes>
 -- operation to return a list of gateway volumes.
 dvVolumeARN :: Lens' DeleteVolume Text
 dvVolumeARN = lens _dvVolumeARN (\ s a -> s{_dvVolumeARN = a});
@@ -92,6 +90,8 @@
               (\ s h x ->
                  DeleteVolumeResponse' <$>
                    (x .?> "VolumeARN") <*> (pure (fromEnum s)))
+
+instance Hashable DeleteVolume
 
 instance ToHeaders DeleteVolume where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/DescribeBandwidthRateLimit.hs b/gen/Network/AWS/StorageGateway/DescribeBandwidthRateLimit.hs
--- a/gen/Network/AWS/StorageGateway/DescribeBandwidthRateLimit.hs
+++ b/gen/Network/AWS/StorageGateway/DescribeBandwidthRateLimit.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeBandwidthRateLimit
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -27,8 +27,6 @@
 -- operation returns only the gateway ARN in the response body. To specify
 -- which gateway to describe, use the Amazon Resource Name (ARN) of the
 -- gateway in your request.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeBandwidthRateLimit.html AWS API Reference> for DescribeBandwidthRateLimit.
 module Network.AWS.StorageGateway.DescribeBandwidthRateLimit
     (
     -- * Creating a Request
@@ -90,6 +88,8 @@
                      (x .?> "AverageUploadRateLimitInBitsPerSec")
                      <*> (x .?> "AverageDownloadRateLimitInBitsPerSec")
                      <*> (pure (fromEnum s)))
+
+instance Hashable DescribeBandwidthRateLimit
 
 instance ToHeaders DescribeBandwidthRateLimit where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/DescribeCache.hs b/gen/Network/AWS/StorageGateway/DescribeCache.hs
--- a/gen/Network/AWS/StorageGateway/DescribeCache.hs
+++ b/gen/Network/AWS/StorageGateway/DescribeCache.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeCache
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -23,8 +23,6 @@
 --
 -- The response includes disk IDs that are configured as cache, and it
 -- includes the amount of cache allocated and used.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeCache.html AWS API Reference> for DescribeCache.
 module Network.AWS.StorageGateway.DescribeCache
     (
     -- * Creating a Request
@@ -90,6 +88,8 @@
                      <*> (x .?> "CacheAllocatedInBytes")
                      <*> (x .?> "CacheDirtyPercentage")
                      <*> (pure (fromEnum s)))
+
+instance Hashable DescribeCache
 
 instance ToHeaders DescribeCache where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/DescribeCachediSCSIVolumes.hs b/gen/Network/AWS/StorageGateway/DescribeCachediSCSIVolumes.hs
--- a/gen/Network/AWS/StorageGateway/DescribeCachediSCSIVolumes.hs
+++ b/gen/Network/AWS/StorageGateway/DescribeCachediSCSIVolumes.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeCachediSCSIVolumes
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -25,8 +25,6 @@
 -- The list of gateway volumes in the request must be from one gateway. In
 -- the response Amazon Storage Gateway returns volume information sorted by
 -- volume Amazon Resource Name (ARN).
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeCachediSCSIVolumes.html AWS API Reference> for DescribeCachediSCSIVolumes.
 module Network.AWS.StorageGateway.DescribeCachediSCSIVolumes
     (
     -- * Creating a Request
@@ -81,6 +79,8 @@
                  DescribeCachediSCSIVolumesResponse' <$>
                    (x .?> "CachediSCSIVolumes" .!@ mempty) <*>
                      (pure (fromEnum s)))
+
+instance Hashable DescribeCachediSCSIVolumes
 
 instance ToHeaders DescribeCachediSCSIVolumes where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/DescribeChapCredentials.hs b/gen/Network/AWS/StorageGateway/DescribeChapCredentials.hs
--- a/gen/Network/AWS/StorageGateway/DescribeChapCredentials.hs
+++ b/gen/Network/AWS/StorageGateway/DescribeChapCredentials.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeChapCredentials
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -21,8 +21,6 @@
 -- This operation returns an array of Challenge-Handshake Authentication
 -- Protocol (CHAP) credentials information for a specified iSCSI target,
 -- one for each target-initiator pair.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeChapCredentials.html AWS API Reference> for DescribeChapCredentials.
 module Network.AWS.StorageGateway.DescribeChapCredentials
     (
     -- * Creating a Request
@@ -68,8 +66,8 @@
     }
 
 -- | The Amazon Resource Name (ARN) of the iSCSI volume target. Use the
--- DescribeStorediSCSIVolumes operation to return to retrieve the TargetARN
--- for specified VolumeARN.
+-- < DescribeStorediSCSIVolumes> operation to return to retrieve the
+-- TargetARN for specified VolumeARN.
 dccTargetARN :: Lens' DescribeChapCredentials Text
 dccTargetARN = lens _dccTargetARN (\ s a -> s{_dccTargetARN = a});
 
@@ -84,6 +82,8 @@
                    (x .?> "ChapCredentials" .!@ mempty) <*>
                      (pure (fromEnum s)))
 
+instance Hashable DescribeChapCredentials
+
 instance ToHeaders DescribeChapCredentials where
         toHeaders
           = const
@@ -129,7 +129,7 @@
     , _dccrsResponseStatus = pResponseStatus_
     }
 
--- | An array of ChapInfo objects that represent CHAP credentials. Each
+-- | An array of < ChapInfo> objects that represent CHAP credentials. Each
 -- object in the array contains CHAP credential information for one
 -- target-initiator pair. If no CHAP credentials are set, an empty array is
 -- returned. CHAP credential information is provided in a JSON object with
diff --git a/gen/Network/AWS/StorageGateway/DescribeGatewayInformation.hs b/gen/Network/AWS/StorageGateway/DescribeGatewayInformation.hs
--- a/gen/Network/AWS/StorageGateway/DescribeGatewayInformation.hs
+++ b/gen/Network/AWS/StorageGateway/DescribeGatewayInformation.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeGatewayInformation
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -22,8 +22,6 @@
 -- network interfaces, configured time zone, and the state (whether the
 -- gateway is running or not). To specify which gateway to describe, use
 -- the Amazon Resource Name (ARN) of the gateway in your request.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeGatewayInformation.html AWS API Reference> for DescribeGatewayInformation.
 module Network.AWS.StorageGateway.DescribeGatewayInformation
     (
     -- * Creating a Request
@@ -97,6 +95,8 @@
                      <*> (x .?> "GatewayTimezone")
                      <*> (pure (fromEnum s)))
 
+instance Hashable DescribeGatewayInformation
+
 instance ToHeaders DescribeGatewayInformation where
         toHeaders
           = const
@@ -174,7 +174,7 @@
     , _dgirsResponseStatus = pResponseStatus_
     }
 
--- | One of the values that indicates the operating state of the gateway.
+-- | A value that indicates the operating state of the gateway.
 dgirsGatewayState :: Lens' DescribeGatewayInformationResponse (Maybe Text)
 dgirsGatewayState = lens _dgirsGatewayState (\ s a -> s{_dgirsGatewayState = a});
 
@@ -182,7 +182,7 @@
 dgirsGatewayARN :: Lens' DescribeGatewayInformationResponse (Maybe Text)
 dgirsGatewayARN = lens _dgirsGatewayARN (\ s a -> s{_dgirsGatewayARN = a});
 
--- | A NetworkInterface array that contains descriptions of the gateway
+-- | A < NetworkInterface> array that contains descriptions of the gateway
 -- network interfaces.
 dgirsGatewayNetworkInterfaces :: Lens' DescribeGatewayInformationResponse [NetworkInterface]
 dgirsGatewayNetworkInterfaces = lens _dgirsGatewayNetworkInterfaces (\ s a -> s{_dgirsGatewayNetworkInterfaces = a}) . _Default . _Coerce;
@@ -199,11 +199,13 @@
 dgirsLastSoftwareUpdate :: Lens' DescribeGatewayInformationResponse (Maybe Text)
 dgirsLastSoftwareUpdate = lens _dgirsLastSoftwareUpdate (\ s a -> s{_dgirsLastSoftwareUpdate = a});
 
--- | The gateway name.
+-- | The name you configured for your gateway.
 dgirsGatewayName :: Lens' DescribeGatewayInformationResponse (Maybe Text)
 dgirsGatewayName = lens _dgirsGatewayName (\ s a -> s{_dgirsGatewayName = a});
 
--- | The gateway ID.
+-- | The unique identifier assigned to your gateway during activation. This
+-- id becomes part of the gateway Amazon Resources Name (ARN) which you use
+-- as input for other operations.
 dgirsGatewayId :: Lens' DescribeGatewayInformationResponse (Maybe Text)
 dgirsGatewayId = lens _dgirsGatewayId (\ s a -> s{_dgirsGatewayId = a});
 
@@ -211,8 +213,7 @@
 dgirsGatewayType :: Lens' DescribeGatewayInformationResponse (Maybe Text)
 dgirsGatewayType = lens _dgirsGatewayType (\ s a -> s{_dgirsGatewayType = a});
 
--- | One of the values that indicates the time zone configured for the
--- gateway.
+-- | A value that indicates the time zone configured for the gateway.
 dgirsGatewayTimezone :: Lens' DescribeGatewayInformationResponse (Maybe Text)
 dgirsGatewayTimezone = lens _dgirsGatewayTimezone (\ s a -> s{_dgirsGatewayTimezone = a});
 
diff --git a/gen/Network/AWS/StorageGateway/DescribeMaintenanceStartTime.hs b/gen/Network/AWS/StorageGateway/DescribeMaintenanceStartTime.hs
--- a/gen/Network/AWS/StorageGateway/DescribeMaintenanceStartTime.hs
+++ b/gen/Network/AWS/StorageGateway/DescribeMaintenanceStartTime.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeMaintenanceStartTime
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -21,8 +21,6 @@
 -- This operation returns your gateway\'s weekly maintenance start time
 -- including the day and time of the week. Note that values are in terms of
 -- the gateway\'s time zone.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeMaintenanceStartTime.html AWS API Reference> for DescribeMaintenanceStartTime.
 module Network.AWS.StorageGateway.DescribeMaintenanceStartTime
     (
     -- * Creating a Request
@@ -88,6 +86,8 @@
                      <*> (x .?> "Timezone")
                      <*> (x .?> "DayOfWeek")
                      <*> (pure (fromEnum s)))
+
+instance Hashable DescribeMaintenanceStartTime
 
 instance ToHeaders DescribeMaintenanceStartTime where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/DescribeSnapshotSchedule.hs b/gen/Network/AWS/StorageGateway/DescribeSnapshotSchedule.hs
--- a/gen/Network/AWS/StorageGateway/DescribeSnapshotSchedule.hs
+++ b/gen/Network/AWS/StorageGateway/DescribeSnapshotSchedule.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeSnapshotSchedule
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -21,8 +21,6 @@
 -- This operation describes the snapshot schedule for the specified gateway
 -- volume. The snapshot schedule information includes intervals at which
 -- snapshots are automatically initiated on the volume.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeSnapshotSchedule.html AWS API Reference> for DescribeSnapshotSchedule.
 module Network.AWS.StorageGateway.DescribeSnapshotSchedule
     (
     -- * Creating a Request
@@ -50,8 +48,8 @@
 import           Network.AWS.StorageGateway.Types
 import           Network.AWS.StorageGateway.Types.Product
 
--- | A JSON object containing the DescribeSnapshotScheduleInput$VolumeARN of
--- the volume.
+-- | A JSON object containing the < DescribeSnapshotScheduleInput$VolumeARN>
+-- of the volume.
 --
 -- /See:/ 'describeSnapshotSchedule' smart constructor.
 newtype DescribeSnapshotSchedule = DescribeSnapshotSchedule'
@@ -71,7 +69,7 @@
     { _dssVolumeARN = pVolumeARN_
     }
 
--- | The Amazon Resource Name (ARN) of the volume. Use the ListVolumes
+-- | The Amazon Resource Name (ARN) of the volume. Use the < ListVolumes>
 -- operation to return a list of gateway volumes.
 dssVolumeARN :: Lens' DescribeSnapshotSchedule Text
 dssVolumeARN = lens _dssVolumeARN (\ s a -> s{_dssVolumeARN = a});
@@ -89,6 +87,8 @@
                      <*> (x .?> "Timezone")
                      <*> (x .?> "Description")
                      <*> (pure (fromEnum s)))
+
+instance Hashable DescribeSnapshotSchedule
 
 instance ToHeaders DescribeSnapshotSchedule where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/DescribeStorediSCSIVolumes.hs b/gen/Network/AWS/StorageGateway/DescribeStorediSCSIVolumes.hs
--- a/gen/Network/AWS/StorageGateway/DescribeStorediSCSIVolumes.hs
+++ b/gen/Network/AWS/StorageGateway/DescribeStorediSCSIVolumes.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeStorediSCSIVolumes
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -22,8 +22,6 @@
 -- in the request. The list of gateway volumes in the request must be from
 -- one gateway. In the response Amazon Storage Gateway returns volume
 -- information sorted by volume ARNs.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeStorediSCSIVolumes.html AWS API Reference> for DescribeStorediSCSIVolumes.
 module Network.AWS.StorageGateway.DescribeStorediSCSIVolumes
     (
     -- * Creating a Request
@@ -48,7 +46,7 @@
 import           Network.AWS.StorageGateway.Types.Product
 
 -- | A JSON Object containing a list of
--- DescribeStorediSCSIVolumesInput$VolumeARNs.
+-- < DescribeStorediSCSIVolumesInput$VolumeARNs>.
 --
 -- /See:/ 'describeStorediSCSIVolumes' smart constructor.
 newtype DescribeStorediSCSIVolumes = DescribeStorediSCSIVolumes'
@@ -69,7 +67,8 @@
 
 -- | An array of strings where each string represents the Amazon Resource
 -- Name (ARN) of a stored volume. All of the specified stored volumes must
--- from the same gateway. Use ListVolumes to get volume ARNs for a gateway.
+-- from the same gateway. Use < ListVolumes> to get volume ARNs for a
+-- gateway.
 dsscsivVolumeARNs :: Lens' DescribeStorediSCSIVolumes [Text]
 dsscsivVolumeARNs = lens _dsscsivVolumeARNs (\ s a -> s{_dsscsivVolumeARNs = a}) . _Coerce;
 
@@ -83,6 +82,8 @@
                  DescribeStorediSCSIVolumesResponse' <$>
                    (x .?> "StorediSCSIVolumes" .!@ mempty) <*>
                      (pure (fromEnum s)))
+
+instance Hashable DescribeStorediSCSIVolumes
 
 instance ToHeaders DescribeStorediSCSIVolumes where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/DescribeTapeArchives.hs b/gen/Network/AWS/StorageGateway/DescribeTapeArchives.hs
--- a/gen/Network/AWS/StorageGateway/DescribeTapeArchives.hs
+++ b/gen/Network/AWS/StorageGateway/DescribeTapeArchives.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeTapeArchives
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -25,8 +25,6 @@
 -- description of all virtual tapes found in the VTS associated with your
 -- account.
 --
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeTapeArchives.html AWS API Reference> for DescribeTapeArchives.
---
 -- This operation returns paginated results.
 module Network.AWS.StorageGateway.DescribeTapeArchives
     (
@@ -115,6 +113,8 @@
                    (x .?> "TapeArchives" .!@ mempty) <*>
                      (x .?> "Marker")
                      <*> (pure (fromEnum s)))
+
+instance Hashable DescribeTapeArchives
 
 instance ToHeaders DescribeTapeArchives where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/DescribeTapeRecoveryPoints.hs b/gen/Network/AWS/StorageGateway/DescribeTapeRecoveryPoints.hs
--- a/gen/Network/AWS/StorageGateway/DescribeTapeRecoveryPoints.hs
+++ b/gen/Network/AWS/StorageGateway/DescribeTapeRecoveryPoints.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeTapeRecoveryPoints
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,8 +26,6 @@
 -- virtual tapes that have recovery points can be recovered to a new
 -- gateway.
 --
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeTapeRecoveryPoints.html AWS API Reference> for DescribeTapeRecoveryPoints.
---
 -- This operation returns paginated results.
 module Network.AWS.StorageGateway.DescribeTapeRecoveryPoints
     (
@@ -118,6 +116,8 @@
                      (x .?> "GatewayARN")
                      <*> (x .?> "Marker")
                      <*> (pure (fromEnum s)))
+
+instance Hashable DescribeTapeRecoveryPoints
 
 instance ToHeaders DescribeTapeRecoveryPoints where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/DescribeTapes.hs b/gen/Network/AWS/StorageGateway/DescribeTapes.hs
--- a/gen/Network/AWS/StorageGateway/DescribeTapes.hs
+++ b/gen/Network/AWS/StorageGateway/DescribeTapes.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeTapes
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -22,8 +22,6 @@
 -- virtual tapes. If a 'TapeARN' is not specified, returns a description of
 -- all virtual tapes associated with the specified gateway.
 --
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeTapes.html AWS API Reference> for DescribeTapes.
---
 -- This operation returns paginated results.
 module Network.AWS.StorageGateway.DescribeTapes
     (
@@ -126,6 +124,8 @@
                  DescribeTapesResponse' <$>
                    (x .?> "Marker") <*> (x .?> "Tapes" .!@ mempty) <*>
                      (pure (fromEnum s)))
+
+instance Hashable DescribeTapes
 
 instance ToHeaders DescribeTapes where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/DescribeUploadBuffer.hs b/gen/Network/AWS/StorageGateway/DescribeUploadBuffer.hs
--- a/gen/Network/AWS/StorageGateway/DescribeUploadBuffer.hs
+++ b/gen/Network/AWS/StorageGateway/DescribeUploadBuffer.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeUploadBuffer
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -25,8 +25,6 @@
 -- The response includes disk IDs that are configured as upload buffer
 -- space, and it includes the amount of upload buffer space allocated and
 -- used.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeUploadBuffer.html AWS API Reference> for DescribeUploadBuffer.
 module Network.AWS.StorageGateway.DescribeUploadBuffer
     (
     -- * Creating a Request
@@ -88,6 +86,8 @@
                      <*> (x .?> "DiskIds" .!@ mempty)
                      <*> (x .?> "UploadBufferUsedInBytes")
                      <*> (pure (fromEnum s)))
+
+instance Hashable DescribeUploadBuffer
 
 instance ToHeaders DescribeUploadBuffer where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/DescribeVTLDevices.hs b/gen/Network/AWS/StorageGateway/DescribeVTLDevices.hs
--- a/gen/Network/AWS/StorageGateway/DescribeVTLDevices.hs
+++ b/gen/Network/AWS/StorageGateway/DescribeVTLDevices.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeVTLDevices
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -24,8 +24,6 @@
 --
 -- The list of VTL devices must be from one gateway.
 --
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeVTLDevices.html AWS API Reference> for DescribeVTLDevices.
---
 -- This operation returns paginated results.
 module Network.AWS.StorageGateway.DescribeVTLDevices
     (
@@ -130,6 +128,8 @@
                      (x .?> "GatewayARN")
                      <*> (x .?> "Marker")
                      <*> (pure (fromEnum s)))
+
+instance Hashable DescribeVTLDevices
 
 instance ToHeaders DescribeVTLDevices where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/DescribeWorkingStorage.hs b/gen/Network/AWS/StorageGateway/DescribeWorkingStorage.hs
--- a/gen/Network/AWS/StorageGateway/DescribeWorkingStorage.hs
+++ b/gen/Network/AWS/StorageGateway/DescribeWorkingStorage.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeWorkingStorage
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -29,8 +29,6 @@
 --
 -- The response includes disk IDs that are configured as working storage,
 -- and it includes the amount of working storage allocated and used.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeWorkingStorage.html AWS API Reference> for DescribeWorkingStorage.
 module Network.AWS.StorageGateway.DescribeWorkingStorage
     (
     -- * Creating a Request
@@ -93,6 +91,8 @@
                      <*> (x .?> "WorkingStorageAllocatedInBytes")
                      <*> (x .?> "WorkingStorageUsedInBytes")
                      <*> (pure (fromEnum s)))
+
+instance Hashable DescribeWorkingStorage
 
 instance ToHeaders DescribeWorkingStorage where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/DisableGateway.hs b/gen/Network/AWS/StorageGateway/DisableGateway.hs
--- a/gen/Network/AWS/StorageGateway/DisableGateway.hs
+++ b/gen/Network/AWS/StorageGateway/DisableGateway.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DisableGateway
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,8 +26,6 @@
 -- functioning.
 --
 -- Once a gateway is disabled it cannot be enabled.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DisableGateway.html AWS API Reference> for DisableGateway.
 module Network.AWS.StorageGateway.DisableGateway
     (
     -- * Creating a Request
@@ -83,6 +81,8 @@
               (\ s h x ->
                  DisableGatewayResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
+
+instance Hashable DisableGateway
 
 instance ToHeaders DisableGateway where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/ListGateways.hs b/gen/Network/AWS/StorageGateway/ListGateways.hs
--- a/gen/Network/AWS/StorageGateway/ListGateways.hs
+++ b/gen/Network/AWS/StorageGateway/ListGateways.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.ListGateways
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -31,8 +31,6 @@
 -- contains a marker that you can specify in your next request to fetch the
 -- next page of gateways.
 --
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_ListGateways.html AWS API Reference> for ListGateways.
---
 -- This operation returns paginated results.
 module Network.AWS.StorageGateway.ListGateways
     (
@@ -62,8 +60,8 @@
 
 -- | A JSON object containing zero or more of the following fields:
 --
--- -   ListGatewaysInput$Limit
--- -   ListGatewaysInput$Marker
+-- -   < ListGatewaysInput$Limit>
+-- -   < ListGatewaysInput$Marker>
 --
 -- /See:/ 'listGateways' smart constructor.
 data ListGateways = ListGateways'
@@ -112,6 +110,8 @@
                  ListGatewaysResponse' <$>
                    (x .?> "Marker") <*> (x .?> "Gateways" .!@ mempty)
                      <*> (pure (fromEnum s)))
+
+instance Hashable ListGateways
 
 instance ToHeaders ListGateways where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/ListLocalDisks.hs b/gen/Network/AWS/StorageGateway/ListLocalDisks.hs
--- a/gen/Network/AWS/StorageGateway/ListLocalDisks.hs
+++ b/gen/Network/AWS/StorageGateway/ListLocalDisks.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.ListLocalDisks
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -28,8 +28,6 @@
 -- value of present (the disk is available to use), missing (the disk is no
 -- longer connected to the gateway), or mismatch (the disk node is occupied
 -- by a disk that has incorrect metadata or the disk content is corrupted).
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_ListLocalDisks.html AWS API Reference> for ListLocalDisks.
 module Network.AWS.StorageGateway.ListLocalDisks
     (
     -- * Creating a Request
@@ -87,6 +85,8 @@
                  ListLocalDisksResponse' <$>
                    (x .?> "GatewayARN") <*> (x .?> "Disks" .!@ mempty)
                      <*> (pure (fromEnum s)))
+
+instance Hashable ListLocalDisks
 
 instance ToHeaders ListLocalDisks where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/ListTagsForResource.hs b/gen/Network/AWS/StorageGateway/ListTagsForResource.hs
--- a/gen/Network/AWS/StorageGateway/ListTagsForResource.hs
+++ b/gen/Network/AWS/StorageGateway/ListTagsForResource.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.ListTagsForResource
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -20,17 +20,15 @@
 --
 -- This operation lists the tags that have been added to the specified
 -- resource.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_ListTagsForResource.html AWS API Reference> for ListTagsForResource.
 module Network.AWS.StorageGateway.ListTagsForResource
     (
     -- * Creating a Request
       listTagsForResource
     , ListTagsForResource
     -- * Request Lenses
-    , ltfrResourceARN
     , ltfrMarker
     , ltfrLimit
+    , ltfrResourceARN
 
     -- * Destructuring the Response
     , listTagsForResourceResponse
@@ -53,34 +51,30 @@
 --
 -- /See:/ 'listTagsForResource' smart constructor.
 data ListTagsForResource = ListTagsForResource'
-    { _ltfrResourceARN :: !(Maybe Text)
-    , _ltfrMarker      :: !(Maybe Text)
+    { _ltfrMarker      :: !(Maybe Text)
     , _ltfrLimit       :: !(Maybe Nat)
+    , _ltfrResourceARN :: !Text
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'ListTagsForResource' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ltfrResourceARN'
---
 -- * 'ltfrMarker'
 --
 -- * 'ltfrLimit'
+--
+-- * 'ltfrResourceARN'
 listTagsForResource
-    :: ListTagsForResource
-listTagsForResource =
+    :: Text -- ^ 'ltfrResourceARN'
+    -> ListTagsForResource
+listTagsForResource pResourceARN_ =
     ListTagsForResource'
-    { _ltfrResourceARN = Nothing
-    , _ltfrMarker = Nothing
+    { _ltfrMarker = Nothing
     , _ltfrLimit = Nothing
+    , _ltfrResourceARN = pResourceARN_
     }
 
--- | The Amazon Resource Name (ARN) of the resource for which you want to
--- list tags.
-ltfrResourceARN :: Lens' ListTagsForResource (Maybe Text)
-ltfrResourceARN = lens _ltfrResourceARN (\ s a -> s{_ltfrResourceARN = a});
-
 -- | An opaque string that indicates the position at which to begin returning
 -- the list of tags.
 ltfrMarker :: Lens' ListTagsForResource (Maybe Text)
@@ -91,6 +85,11 @@
 ltfrLimit :: Lens' ListTagsForResource (Maybe Natural)
 ltfrLimit = lens _ltfrLimit (\ s a -> s{_ltfrLimit = a}) . mapping _Nat;
 
+-- | The Amazon Resource Name (ARN) of the resource for which you want to
+-- list tags.
+ltfrResourceARN :: Lens' ListTagsForResource Text
+ltfrResourceARN = lens _ltfrResourceARN (\ s a -> s{_ltfrResourceARN = a});
+
 instance AWSRequest ListTagsForResource where
         type Rs ListTagsForResource =
              ListTagsForResourceResponse
@@ -103,6 +102,8 @@
                      (x .?> "Tags" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
+instance Hashable ListTagsForResource
+
 instance ToHeaders ListTagsForResource where
         toHeaders
           = const
@@ -117,9 +118,9 @@
         toJSON ListTagsForResource'{..}
           = object
               (catMaybes
-                 [("ResourceARN" .=) <$> _ltfrResourceARN,
-                  ("Marker" .=) <$> _ltfrMarker,
-                  ("Limit" .=) <$> _ltfrLimit])
+                 [("Marker" .=) <$> _ltfrMarker,
+                  ("Limit" .=) <$> _ltfrLimit,
+                  Just ("ResourceARN" .= _ltfrResourceARN)])
 
 instance ToPath ListTagsForResource where
         toPath = const "/"
diff --git a/gen/Network/AWS/StorageGateway/ListVolumeInitiators.hs b/gen/Network/AWS/StorageGateway/ListVolumeInitiators.hs
--- a/gen/Network/AWS/StorageGateway/ListVolumeInitiators.hs
+++ b/gen/Network/AWS/StorageGateway/ListVolumeInitiators.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.ListVolumeInitiators
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -21,8 +21,6 @@
 -- This operation lists iSCSI initiators that are connected to a volume.
 -- You can use this operation to determine whether a volume is being used
 -- or not.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_ListVolumeInitiators.html AWS API Reference> for ListVolumeInitiators.
 module Network.AWS.StorageGateway.ListVolumeInitiators
     (
     -- * Creating a Request
@@ -66,7 +64,7 @@
     { _lviVolumeARN = pVolumeARN_
     }
 
--- | The Amazon Resource Name (ARN) of the volume. Use the ListVolumes
+-- | The Amazon Resource Name (ARN) of the volume. Use the < ListVolumes>
 -- operation to return a list of gateway volumes for the gateway.
 lviVolumeARN :: Lens' ListVolumeInitiators Text
 lviVolumeARN = lens _lviVolumeARN (\ s a -> s{_lviVolumeARN = a});
@@ -81,6 +79,8 @@
                  ListVolumeInitiatorsResponse' <$>
                    (x .?> "Initiators" .!@ mempty) <*>
                      (pure (fromEnum s)))
+
+instance Hashable ListVolumeInitiators
 
 instance ToHeaders ListVolumeInitiators where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/ListVolumeRecoveryPoints.hs b/gen/Network/AWS/StorageGateway/ListVolumeRecoveryPoints.hs
--- a/gen/Network/AWS/StorageGateway/ListVolumeRecoveryPoints.hs
+++ b/gen/Network/AWS/StorageGateway/ListVolumeRecoveryPoints.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.ListVolumeRecoveryPoints
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -24,10 +24,8 @@
 -- Each gateway-cached volume has one recovery point. A volume recovery
 -- point is a point in time at which all data of the volume is consistent
 -- and from which you can create a snapshot. To create a snapshot from a
--- volume recovery point use the CreateSnapshotFromVolumeRecoveryPoint
+-- volume recovery point use the < CreateSnapshotFromVolumeRecoveryPoint>
 -- operation.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_ListVolumeRecoveryPoints.html AWS API Reference> for ListVolumeRecoveryPoints.
 module Network.AWS.StorageGateway.ListVolumeRecoveryPoints
     (
     -- * Creating a Request
@@ -85,6 +83,8 @@
                    (x .?> "VolumeRecoveryPointInfos" .!@ mempty) <*>
                      (x .?> "GatewayARN")
                      <*> (pure (fromEnum s)))
+
+instance Hashable ListVolumeRecoveryPoints
 
 instance ToHeaders ListVolumeRecoveryPoints where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/ListVolumes.hs b/gen/Network/AWS/StorageGateway/ListVolumes.hs
--- a/gen/Network/AWS/StorageGateway/ListVolumes.hs
+++ b/gen/Network/AWS/StorageGateway/ListVolumes.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.ListVolumes
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -20,8 +20,8 @@
 --
 -- This operation lists the iSCSI stored volumes of a gateway. Results are
 -- sorted by volume ARN. The response includes only the volume ARNs. If you
--- want additional volume information, use the DescribeStorediSCSIVolumes
--- API.
+-- want additional volume information, use the
+-- < DescribeStorediSCSIVolumes> API.
 --
 -- The operation supports pagination. By default, the operation returns a
 -- maximum of up to 100 volumes. You can optionally specify the 'Limit'
@@ -30,8 +30,6 @@
 -- includes a Marker field. You can use this Marker value in your
 -- subsequent request to retrieve the next set of volumes.
 --
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_ListVolumes.html AWS API Reference> for ListVolumes.
---
 -- This operation returns paginated results.
 module Network.AWS.StorageGateway.ListVolumes
     (
@@ -63,8 +61,8 @@
 
 -- | A JSON object that contains one or more of the following fields:
 --
--- -   ListVolumesInput$Limit
--- -   ListVolumesInput$Marker
+-- -   < ListVolumesInput$Limit>
+-- -   < ListVolumesInput$Marker>
 --
 -- /See:/ 'listVolumes' smart constructor.
 data ListVolumes = ListVolumes'
@@ -124,6 +122,8 @@
                    (x .?> "GatewayARN") <*> (x .?> "Marker") <*>
                      (x .?> "VolumeInfos" .!@ mempty)
                      <*> (pure (fromEnum s)))
+
+instance Hashable ListVolumes
 
 instance ToHeaders ListVolumes where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/RemoveTagsFromResource.hs b/gen/Network/AWS/StorageGateway/RemoveTagsFromResource.hs
--- a/gen/Network/AWS/StorageGateway/RemoveTagsFromResource.hs
+++ b/gen/Network/AWS/StorageGateway/RemoveTagsFromResource.hs
@@ -12,23 +12,21 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.RemoveTagsFromResource
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- This operation removes one or more tags from the specified resource.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_RemoveTagsFromResource.html AWS API Reference> for RemoveTagsFromResource.
 module Network.AWS.StorageGateway.RemoveTagsFromResource
     (
     -- * Creating a Request
       removeTagsFromResource
     , RemoveTagsFromResource
     -- * Request Lenses
-    , rtfrTagKeys
     , rtfrResourceARN
+    , rtfrTagKeys
 
     -- * Destructuring the Response
     , removeTagsFromResourceResponse
@@ -49,35 +47,36 @@
 --
 -- /See:/ 'removeTagsFromResource' smart constructor.
 data RemoveTagsFromResource = RemoveTagsFromResource'
-    { _rtfrTagKeys     :: !(Maybe [Text])
-    , _rtfrResourceARN :: !(Maybe Text)
+    { _rtfrResourceARN :: !Text
+    , _rtfrTagKeys     :: ![Text]
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'RemoveTagsFromResource' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'rtfrTagKeys'
---
 -- * 'rtfrResourceARN'
+--
+-- * 'rtfrTagKeys'
 removeTagsFromResource
-    :: RemoveTagsFromResource
-removeTagsFromResource =
+    :: Text -- ^ 'rtfrResourceARN'
+    -> RemoveTagsFromResource
+removeTagsFromResource pResourceARN_ =
     RemoveTagsFromResource'
-    { _rtfrTagKeys = Nothing
-    , _rtfrResourceARN = Nothing
+    { _rtfrResourceARN = pResourceARN_
+    , _rtfrTagKeys = mempty
     }
 
--- | The keys of the tags you want to remove from the specified resource. A
--- tag is composed of a key\/value pair.
-rtfrTagKeys :: Lens' RemoveTagsFromResource [Text]
-rtfrTagKeys = lens _rtfrTagKeys (\ s a -> s{_rtfrTagKeys = a}) . _Default . _Coerce;
-
 -- | The Amazon Resource Name (ARN) of the resource you want to remove the
 -- tags from.
-rtfrResourceARN :: Lens' RemoveTagsFromResource (Maybe Text)
+rtfrResourceARN :: Lens' RemoveTagsFromResource Text
 rtfrResourceARN = lens _rtfrResourceARN (\ s a -> s{_rtfrResourceARN = a});
 
+-- | The keys of the tags you want to remove from the specified resource. A
+-- tag is composed of a key\/value pair.
+rtfrTagKeys :: Lens' RemoveTagsFromResource [Text]
+rtfrTagKeys = lens _rtfrTagKeys (\ s a -> s{_rtfrTagKeys = a}) . _Coerce;
+
 instance AWSRequest RemoveTagsFromResource where
         type Rs RemoveTagsFromResource =
              RemoveTagsFromResourceResponse
@@ -88,6 +87,8 @@
                  RemoveTagsFromResourceResponse' <$>
                    (x .?> "ResourceARN") <*> (pure (fromEnum s)))
 
+instance Hashable RemoveTagsFromResource
+
 instance ToHeaders RemoveTagsFromResource where
         toHeaders
           = const
@@ -102,8 +103,8 @@
         toJSON RemoveTagsFromResource'{..}
           = object
               (catMaybes
-                 [("TagKeys" .=) <$> _rtfrTagKeys,
-                  ("ResourceARN" .=) <$> _rtfrResourceARN])
+                 [Just ("ResourceARN" .= _rtfrResourceARN),
+                  Just ("TagKeys" .= _rtfrTagKeys)])
 
 instance ToPath RemoveTagsFromResource where
         toPath = const "/"
diff --git a/gen/Network/AWS/StorageGateway/ResetCache.hs b/gen/Network/AWS/StorageGateway/ResetCache.hs
--- a/gen/Network/AWS/StorageGateway/ResetCache.hs
+++ b/gen/Network/AWS/StorageGateway/ResetCache.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.ResetCache
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -31,8 +31,6 @@
 -- disks, there will be no configured cache disks left in the gateway, so
 -- you must configure at least one new cache disk for your gateway to
 -- function properly.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_ResetCache.html AWS API Reference> for ResetCache.
 module Network.AWS.StorageGateway.ResetCache
     (
     -- * Creating a Request
@@ -86,6 +84,8 @@
               (\ s h x ->
                  ResetCacheResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
+
+instance Hashable ResetCache
 
 instance ToHeaders ResetCache where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/RetrieveTapeArchive.hs b/gen/Network/AWS/StorageGateway/RetrieveTapeArchive.hs
--- a/gen/Network/AWS/StorageGateway/RetrieveTapeArchive.hs
+++ b/gen/Network/AWS/StorageGateway/RetrieveTapeArchive.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.RetrieveTapeArchive
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -26,8 +26,6 @@
 -- Once a tape is successfully retrieved to a gateway, it cannot be
 -- retrieved again to another gateway. You must archive the tape again
 -- before you can retrieve it to another gateway.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_RetrieveTapeArchive.html AWS API Reference> for RetrieveTapeArchive.
 module Network.AWS.StorageGateway.RetrieveTapeArchive
     (
     -- * Creating a Request
@@ -83,7 +81,7 @@
 rtaTapeARN = lens _rtaTapeARN (\ s a -> s{_rtaTapeARN = a});
 
 -- | The Amazon Resource Name (ARN) of the gateway you want to retrieve the
--- virtual tape to. Use the ListGateways operation to return a list of
+-- virtual tape to. Use the < ListGateways> operation to return a list of
 -- gateways for your account and region.
 --
 -- You retrieve archived virtual tapes to only one gateway and the gateway
@@ -100,6 +98,8 @@
               (\ s h x ->
                  RetrieveTapeArchiveResponse' <$>
                    (x .?> "TapeARN") <*> (pure (fromEnum s)))
+
+instance Hashable RetrieveTapeArchive
 
 instance ToHeaders RetrieveTapeArchive where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/RetrieveTapeRecoveryPoint.hs b/gen/Network/AWS/StorageGateway/RetrieveTapeRecoveryPoint.hs
--- a/gen/Network/AWS/StorageGateway/RetrieveTapeRecoveryPoint.hs
+++ b/gen/Network/AWS/StorageGateway/RetrieveTapeRecoveryPoint.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.RetrieveTapeRecoveryPoint
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -27,8 +27,6 @@
 -- The virtual tape can be retrieved to only one gateway. The retrieved
 -- tape is read-only. The virtual tape can be retrieved to only a
 -- gateway-VTL. There is no charge for retrieving recovery points.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_RetrieveTapeRecoveryPoint.html AWS API Reference> for RetrieveTapeRecoveryPoint.
 module Network.AWS.StorageGateway.RetrieveTapeRecoveryPoint
     (
     -- * Creating a Request
@@ -96,6 +94,8 @@
               (\ s h x ->
                  RetrieveTapeRecoveryPointResponse' <$>
                    (x .?> "TapeARN") <*> (pure (fromEnum s)))
+
+instance Hashable RetrieveTapeRecoveryPoint
 
 instance ToHeaders RetrieveTapeRecoveryPoint where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/ShutdownGateway.hs b/gen/Network/AWS/StorageGateway/ShutdownGateway.hs
--- a/gen/Network/AWS/StorageGateway/ShutdownGateway.hs
+++ b/gen/Network/AWS/StorageGateway/ShutdownGateway.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.ShutdownGateway
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -29,21 +29,19 @@
 -- down the gateway component in the VM to avoid unpredictable conditions.
 --
 -- After the gateway is shutdown, you cannot call any other API except
--- StartGateway, DescribeGatewayInformation, and ListGateways. For more
--- information, see ActivateGateway. Your applications cannot read from or
--- write to the gateway\'s storage volumes, and there are no snapshots
--- taken.
+-- < StartGateway>, < DescribeGatewayInformation>, and < ListGateways>. For
+-- more information, see < ActivateGateway>. Your applications cannot read
+-- from or write to the gateway\'s storage volumes, and there are no
+-- snapshots taken.
 --
 -- When you make a shutdown request, you will get a '200 OK' success
 -- response immediately. However, it might take some time for the gateway
--- to shut down. You can call the DescribeGatewayInformation API to check
--- the status. For more information, see ActivateGateway.
+-- to shut down. You can call the < DescribeGatewayInformation> API to
+-- check the status. For more information, see < ActivateGateway>.
 --
 -- If do not intend to use the gateway again, you must delete the gateway
--- (using DeleteGateway) to no longer pay software charges associated with
--- the gateway.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_ShutdownGateway.html AWS API Reference> for ShutdownGateway.
+-- (using < DeleteGateway>) to no longer pay software charges associated
+-- with the gateway.
 module Network.AWS.StorageGateway.ShutdownGateway
     (
     -- * Creating a Request
@@ -99,6 +97,8 @@
               (\ s h x ->
                  ShutdownGatewayResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
+
+instance Hashable ShutdownGateway
 
 instance ToHeaders ShutdownGateway where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/StartGateway.hs b/gen/Network/AWS/StorageGateway/StartGateway.hs
--- a/gen/Network/AWS/StorageGateway/StartGateway.hs
+++ b/gen/Network/AWS/StorageGateway/StartGateway.hs
@@ -12,27 +12,25 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.StartGateway
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- This operation starts a gateway that you previously shut down (see
--- ShutdownGateway). After the gateway starts, you can then make other API
--- calls, your applications can read from or write to the gateway\'s
+-- < ShutdownGateway>). After the gateway starts, you can then make other
+-- API calls, your applications can read from or write to the gateway\'s
 -- storage volumes and you will be able to take snapshot backups.
 --
 -- When you make a request, you will get a 200 OK success response
 -- immediately. However, it might take some time for the gateway to be
--- ready. You should call DescribeGatewayInformation and check the status
--- before making any additional API calls. For more information, see
--- ActivateGateway.
+-- ready. You should call < DescribeGatewayInformation> and check the
+-- status before making any additional API calls. For more information, see
+-- < ActivateGateway>.
 --
 -- To specify which gateway to start, use the Amazon Resource Name (ARN) of
 -- the gateway in your request.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_StartGateway.html AWS API Reference> for StartGateway.
 module Network.AWS.StorageGateway.StartGateway
     (
     -- * Creating a Request
@@ -88,6 +86,8 @@
               (\ s h x ->
                  StartGatewayResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
+
+instance Hashable StartGateway
 
 instance ToHeaders StartGateway where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/Types.hs b/gen/Network/AWS/StorageGateway/Types.hs
--- a/gen/Network/AWS/StorageGateway/Types.hs
+++ b/gen/Network/AWS/StorageGateway/Types.hs
@@ -4,7 +4,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.Types
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -183,6 +183,7 @@
         , _retryCheck = check
         }
     check e
+      | has (hasStatus 429) e = Just "too_many_requests"
       | has (hasCode "ThrottlingException" . hasStatus 400) e =
           Just "throttling_exception"
       | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"
@@ -195,10 +196,9 @@
 -- the service. See the error and message fields for more information.
 _InvalidGatewayRequestException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidGatewayRequestException =
-    _ServiceError . hasStatus 400 . hasCode "InvalidGatewayRequestException"
+    _ServiceError . hasCode "InvalidGatewayRequestException"
 
 -- | An internal server error has occurred during the request. See the error
 -- and message fields for more information.
 _InternalServerError :: AsError a => Getting (First ServiceError) a ServiceError
-_InternalServerError =
-    _ServiceError . hasStatus 500 . hasCode "InternalServerError"
+_InternalServerError = _ServiceError . hasCode "InternalServerError"
diff --git a/gen/Network/AWS/StorageGateway/Types/Product.hs b/gen/Network/AWS/StorageGateway/Types/Product.hs
--- a/gen/Network/AWS/StorageGateway/Types/Product.hs
+++ b/gen/Network/AWS/StorageGateway/Types/Product.hs
@@ -9,7 +9,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.Types.Product
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -112,6 +112,8 @@
                      <*> (x .:? "VolumeId")
                      <*> (x .:? "VolumeType"))
 
+instance Hashable CachediSCSIVolume
+
 -- | Describes Challenge-Handshake Authentication Protocol (CHAP) information
 -- that supports authentication between your gateway and iSCSI initiators.
 --
@@ -175,6 +177,8 @@
                      <*> (x .:? "InitiatorName")
                      <*> (x .:? "SecretToAuthenticateTarget"))
 
+instance Hashable ChapInfo
+
 -- | Lists iSCSI information about a VTL device.
 --
 -- /See:/ 'deviceiSCSIAttributes' smart constructor.
@@ -232,6 +236,8 @@
                      (x .:? "NetworkInterfaceId")
                      <*> (x .:? "NetworkInterfacePort"))
 
+instance Hashable DeviceiSCSIAttributes
+
 -- | /See:/ 'disk' smart constructor.
 data Disk = Disk'
     { _dDiskAllocationResource :: !(Maybe Text)
@@ -314,6 +320,8 @@
                      <*> (x .:? "DiskStatus")
                      <*> (x .:? "DiskId"))
 
+instance Hashable Disk
+
 -- | /See:/ 'gatewayInfo' smart constructor.
 data GatewayInfo = GatewayInfo'
     { _giGatewayARN              :: !(Maybe Text)
@@ -369,6 +377,8 @@
                      <*> (x .:? "GatewayName")
                      <*> (x .:? "GatewayType"))
 
+instance Hashable GatewayInfo
+
 -- | Describes a gateway\'s network interface.
 --
 -- /See:/ 'networkInterface' smart constructor.
@@ -419,6 +429,8 @@
                    (x .:? "Ipv6Address") <*> (x .:? "MacAddress") <*>
                      (x .:? "Ipv4Address"))
 
+instance Hashable NetworkInterface
+
 -- | /See:/ 'storediSCSIVolume' smart constructor.
 data StorediSCSIVolume = StorediSCSIVolume'
     { _sscsivVolumeiSCSIAttributes :: !(Maybe VolumeiSCSIAttributes)
@@ -528,6 +540,8 @@
                      <*> (x .:? "VolumeDiskId")
                      <*> (x .:? "VolumeType"))
 
+instance Hashable StorediSCSIVolume
+
 -- | /See:/ 'tag' smart constructor.
 data Tag = Tag'
     { _tagKey   :: !Text
@@ -564,6 +578,8 @@
           = withObject "Tag"
               (\ x -> Tag' <$> (x .: "Key") <*> (x .: "Value"))
 
+instance Hashable Tag
+
 instance ToJSON Tag where
         toJSON Tag'{..}
           = object
@@ -649,6 +665,8 @@
                      <*> (x .:? "TapeSizeInBytes")
                      <*> (x .:? "VTLDevice"))
 
+instance Hashable Tape
+
 -- | Represents a virtual tape that is archived in the virtual tape shelf
 -- (VTS).
 --
@@ -730,6 +748,8 @@
                      <*> (x .:? "CompletionTime")
                      <*> (x .:? "RetrievedTo"))
 
+instance Hashable TapeArchive
+
 -- | Describes a recovery point.
 --
 -- /See:/ 'tapeRecoveryPointInfo' smart constructor.
@@ -791,6 +811,8 @@
                      <*> (x .:? "TapeARN")
                      <*> (x .:? "TapeSizeInBytes"))
 
+instance Hashable TapeRecoveryPointInfo
+
 -- | Represents a device object associated with a gateway-VTL.
 --
 -- /See:/ 'vTLDevice' smart constructor.
@@ -858,6 +880,8 @@
                      <*> (x .:? "VTLDeviceType")
                      <*> (x .:? "VTLDeviceProductIdentifier"))
 
+instance Hashable VTLDevice
+
 -- | /See:/ 'volumeInfo' smart constructor.
 data VolumeInfo = VolumeInfo'
     { _viVolumeARN  :: !(Maybe Text)
@@ -894,6 +918,8 @@
                  VolumeInfo' <$>
                    (x .:? "VolumeARN") <*> (x .:? "VolumeType"))
 
+instance Hashable VolumeInfo
+
 -- | /See:/ 'volumeRecoveryPointInfo' smart constructor.
 data VolumeRecoveryPointInfo = VolumeRecoveryPointInfo'
     { _vrpiVolumeRecoveryPointTime :: !(Maybe Text)
@@ -949,6 +975,8 @@
                      <*> (x .:? "VolumeSizeInBytes")
                      <*> (x .:? "VolumeUsageInBytes"))
 
+instance Hashable VolumeRecoveryPointInfo
+
 -- | Lists iSCSI information about a volume.
 --
 -- /See:/ 'volumeiSCSIAttributes' smart constructor.
@@ -1013,3 +1041,5 @@
                      (x .:? "ChapEnabled")
                      <*> (x .:? "NetworkInterfaceId")
                      <*> (x .:? "NetworkInterfacePort"))
+
+instance Hashable VolumeiSCSIAttributes
diff --git a/gen/Network/AWS/StorageGateway/Types/Sum.hs b/gen/Network/AWS/StorageGateway/Types/Sum.hs
--- a/gen/Network/AWS/StorageGateway/Types/Sum.hs
+++ b/gen/Network/AWS/StorageGateway/Types/Sum.hs
@@ -9,7 +9,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.Types.Sum
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
diff --git a/gen/Network/AWS/StorageGateway/UpdateBandwidthRateLimit.hs b/gen/Network/AWS/StorageGateway/UpdateBandwidthRateLimit.hs
--- a/gen/Network/AWS/StorageGateway/UpdateBandwidthRateLimit.hs
+++ b/gen/Network/AWS/StorageGateway/UpdateBandwidthRateLimit.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.UpdateBandwidthRateLimit
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -30,8 +30,6 @@
 --
 -- To specify which gateway to update, use the Amazon Resource Name (ARN)
 -- of the gateway in your request.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_UpdateBandwidthRateLimit.html AWS API Reference> for UpdateBandwidthRateLimit.
 module Network.AWS.StorageGateway.UpdateBandwidthRateLimit
     (
     -- * Creating a Request
@@ -59,8 +57,8 @@
 
 -- | A JSON object containing one or more of the following fields:
 --
--- -   UpdateBandwidthRateLimitInput$AverageDownloadRateLimitInBitsPerSec
--- -   UpdateBandwidthRateLimitInput$AverageUploadRateLimitInBitsPerSec
+-- -   < UpdateBandwidthRateLimitInput$AverageDownloadRateLimitInBitsPerSec>
+-- -   < UpdateBandwidthRateLimitInput$AverageUploadRateLimitInBitsPerSec>
 --
 -- /See:/ 'updateBandwidthRateLimit' smart constructor.
 data UpdateBandwidthRateLimit = UpdateBandwidthRateLimit'
@@ -109,6 +107,8 @@
               (\ s h x ->
                  UpdateBandwidthRateLimitResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
+
+instance Hashable UpdateBandwidthRateLimit
 
 instance ToHeaders UpdateBandwidthRateLimit where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/UpdateChapCredentials.hs b/gen/Network/AWS/StorageGateway/UpdateChapCredentials.hs
--- a/gen/Network/AWS/StorageGateway/UpdateChapCredentials.hs
+++ b/gen/Network/AWS/StorageGateway/UpdateChapCredentials.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.UpdateChapCredentials
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -25,8 +25,6 @@
 --
 -- When you update CHAP credentials, all existing connections on the target
 -- are closed and initiators must reconnect with the new credentials.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_UpdateChapCredentials.html AWS API Reference> for UpdateChapCredentials.
 module Network.AWS.StorageGateway.UpdateChapCredentials
     (
     -- * Creating a Request
@@ -56,10 +54,10 @@
 
 -- | A JSON object containing one or more of the following fields:
 --
--- -   UpdateChapCredentialsInput$InitiatorName
--- -   UpdateChapCredentialsInput$SecretToAuthenticateInitiator
--- -   UpdateChapCredentialsInput$SecretToAuthenticateTarget
--- -   UpdateChapCredentialsInput$TargetARN
+-- -   < UpdateChapCredentialsInput$InitiatorName>
+-- -   < UpdateChapCredentialsInput$SecretToAuthenticateInitiator>
+-- -   < UpdateChapCredentialsInput$SecretToAuthenticateTarget>
+-- -   < UpdateChapCredentialsInput$TargetARN>
 --
 -- /See:/ 'updateChapCredentials' smart constructor.
 data UpdateChapCredentials = UpdateChapCredentials'
@@ -103,7 +101,7 @@
 uccSecretToAuthenticateTarget = lens _uccSecretToAuthenticateTarget (\ s a -> s{_uccSecretToAuthenticateTarget = a});
 
 -- | The Amazon Resource Name (ARN) of the iSCSI volume target. Use the
--- DescribeStorediSCSIVolumes operation to return the TargetARN for
+-- < DescribeStorediSCSIVolumes> operation to return the TargetARN for
 -- specified VolumeARN.
 uccTargetARN :: Lens' UpdateChapCredentials Text
 uccTargetARN = lens _uccTargetARN (\ s a -> s{_uccTargetARN = a});
@@ -129,6 +127,8 @@
                  UpdateChapCredentialsResponse' <$>
                    (x .?> "TargetARN") <*> (x .?> "InitiatorName") <*>
                      (pure (fromEnum s)))
+
+instance Hashable UpdateChapCredentials
 
 instance ToHeaders UpdateChapCredentials where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/UpdateGatewayInformation.hs b/gen/Network/AWS/StorageGateway/UpdateGatewayInformation.hs
--- a/gen/Network/AWS/StorageGateway/UpdateGatewayInformation.hs
+++ b/gen/Network/AWS/StorageGateway/UpdateGatewayInformation.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.UpdateGatewayInformation
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -22,7 +22,9 @@
 -- gateway\'s name and time zone. To specify which gateway to update, use
 -- the Amazon Resource Name (ARN) of the gateway in your request.
 --
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_UpdateGatewayInformation.html AWS API Reference> for UpdateGatewayInformation.
+-- For Gateways activated after September 02, 2015, the gateway\'s ARN
+-- contains the gateway id rather than the gateway name. However changing
+-- the name of the gateway has no effect on the gateway\'s ARN.
 module Network.AWS.StorageGateway.UpdateGatewayInformation
     (
     -- * Creating a Request
@@ -98,6 +100,8 @@
                    (x .?> "GatewayARN") <*> (x .?> "GatewayName") <*>
                      (pure (fromEnum s)))
 
+instance Hashable UpdateGatewayInformation
+
 instance ToHeaders UpdateGatewayInformation where
         toHeaders
           = const
@@ -122,7 +126,7 @@
 instance ToQuery UpdateGatewayInformation where
         toQuery = const mempty
 
--- | A JSON object containing the of the gateway that was updated.
+-- | A JSON object containing the ARN of the gateway that was updated.
 --
 -- /See:/ 'updateGatewayInformationResponse' smart constructor.
 data UpdateGatewayInformationResponse = UpdateGatewayInformationResponse'
diff --git a/gen/Network/AWS/StorageGateway/UpdateGatewaySoftwareNow.hs b/gen/Network/AWS/StorageGateway/UpdateGatewaySoftwareNow.hs
--- a/gen/Network/AWS/StorageGateway/UpdateGatewaySoftwareNow.hs
+++ b/gen/Network/AWS/StorageGateway/UpdateGatewaySoftwareNow.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.UpdateGatewaySoftwareNow
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -23,8 +23,8 @@
 --
 -- When you make this request, you get a '200 OK' success response
 -- immediately. However, it might take some time for the update to
--- complete. You can call DescribeGatewayInformation to verify the gateway
--- is in the 'STATE_RUNNING' state.
+-- complete. You can call < DescribeGatewayInformation> to verify the
+-- gateway is in the 'STATE_RUNNING' state.
 --
 -- A software update forces a system restart of your gateway. You can
 -- minimize the chance of any disruption to your applications by increasing
@@ -34,8 +34,6 @@
 -- and
 -- <http://docs.aws.amazon.com/storagegateway/latest/userguide/ConfiguringiSCSIClientInitiatorRedHatClient.html#CustomizeLinuxiSCSISettings Customizing Your Linux iSCSI Settings>,
 -- respectively.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_UpdateGatewaySoftwareNow.html AWS API Reference> for UpdateGatewaySoftwareNow.
 module Network.AWS.StorageGateway.UpdateGatewaySoftwareNow
     (
     -- * Creating a Request
@@ -92,6 +90,8 @@
               (\ s h x ->
                  UpdateGatewaySoftwareNowResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
+
+instance Hashable UpdateGatewaySoftwareNow
 
 instance ToHeaders UpdateGatewaySoftwareNow where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/UpdateMaintenanceStartTime.hs b/gen/Network/AWS/StorageGateway/UpdateMaintenanceStartTime.hs
--- a/gen/Network/AWS/StorageGateway/UpdateMaintenanceStartTime.hs
+++ b/gen/Network/AWS/StorageGateway/UpdateMaintenanceStartTime.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.UpdateMaintenanceStartTime
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -21,8 +21,6 @@
 -- This operation updates a gateway\'s weekly maintenance start time
 -- information, including day and time of the week. The maintenance time is
 -- the time in your gateway\'s time zone.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_UpdateMaintenanceStartTime.html AWS API Reference> for UpdateMaintenanceStartTime.
 module Network.AWS.StorageGateway.UpdateMaintenanceStartTime
     (
     -- * Creating a Request
@@ -51,9 +49,9 @@
 
 -- | A JSON object containing the following fields:
 --
--- -   UpdateMaintenanceStartTimeInput$DayOfWeek
--- -   UpdateMaintenanceStartTimeInput$HourOfDay
--- -   UpdateMaintenanceStartTimeInput$MinuteOfHour
+-- -   < UpdateMaintenanceStartTimeInput$DayOfWeek>
+-- -   < UpdateMaintenanceStartTimeInput$HourOfDay>
+-- -   < UpdateMaintenanceStartTimeInput$MinuteOfHour>
 --
 -- /See:/ 'updateMaintenanceStartTime' smart constructor.
 data UpdateMaintenanceStartTime = UpdateMaintenanceStartTime'
@@ -117,6 +115,8 @@
               (\ s h x ->
                  UpdateMaintenanceStartTimeResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
+
+instance Hashable UpdateMaintenanceStartTime
 
 instance ToHeaders UpdateMaintenanceStartTime where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/UpdateSnapshotSchedule.hs b/gen/Network/AWS/StorageGateway/UpdateSnapshotSchedule.hs
--- a/gen/Network/AWS/StorageGateway/UpdateSnapshotSchedule.hs
+++ b/gen/Network/AWS/StorageGateway/UpdateSnapshotSchedule.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.UpdateSnapshotSchedule
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -29,8 +29,6 @@
 -- schedule you want to update, and the schedule information, including
 -- when you want the snapshot to begin on a day and the frequency (in
 -- hours) of snapshots.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_UpdateSnapshotSchedule.html AWS API Reference> for UpdateSnapshotSchedule.
 module Network.AWS.StorageGateway.UpdateSnapshotSchedule
     (
     -- * Creating a Request
@@ -59,10 +57,10 @@
 
 -- | A JSON object containing one or more of the following fields:
 --
--- -   UpdateSnapshotScheduleInput$Description
--- -   UpdateSnapshotScheduleInput$RecurrenceInHours
--- -   UpdateSnapshotScheduleInput$StartAt
--- -   UpdateSnapshotScheduleInput$VolumeARN
+-- -   < UpdateSnapshotScheduleInput$Description>
+-- -   < UpdateSnapshotScheduleInput$RecurrenceInHours>
+-- -   < UpdateSnapshotScheduleInput$StartAt>
+-- -   < UpdateSnapshotScheduleInput$VolumeARN>
 --
 -- /See:/ 'updateSnapshotSchedule' smart constructor.
 data UpdateSnapshotSchedule = UpdateSnapshotSchedule'
@@ -101,7 +99,7 @@
 ussDescription :: Lens' UpdateSnapshotSchedule (Maybe Text)
 ussDescription = lens _ussDescription (\ s a -> s{_ussDescription = a});
 
--- | The Amazon Resource Name (ARN) of the volume. Use the ListVolumes
+-- | The Amazon Resource Name (ARN) of the volume. Use the < ListVolumes>
 -- operation to return a list of gateway volumes.
 ussVolumeARN :: Lens' UpdateSnapshotSchedule Text
 ussVolumeARN = lens _ussVolumeARN (\ s a -> s{_ussVolumeARN = a});
@@ -125,6 +123,8 @@
               (\ s h x ->
                  UpdateSnapshotScheduleResponse' <$>
                    (x .?> "VolumeARN") <*> (pure (fromEnum s)))
+
+instance Hashable UpdateSnapshotSchedule
 
 instance ToHeaders UpdateSnapshotSchedule where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/UpdateVTLDeviceType.hs b/gen/Network/AWS/StorageGateway/UpdateVTLDeviceType.hs
--- a/gen/Network/AWS/StorageGateway/UpdateVTLDeviceType.hs
+++ b/gen/Network/AWS/StorageGateway/UpdateVTLDeviceType.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.UpdateVTLDeviceType
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -22,8 +22,6 @@
 -- you activate a gateway-VTL, you select a medium changer type for the
 -- gateway-VTL. This operation enables you to select a different type of
 -- medium changer after a gateway-VTL is activated.
---
--- /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_UpdateVTLDeviceType.html AWS API Reference> for UpdateVTLDeviceType.
 module Network.AWS.StorageGateway.UpdateVTLDeviceType
     (
     -- * Creating a Request
@@ -92,6 +90,8 @@
               (\ s h x ->
                  UpdateVTLDeviceTypeResponse' <$>
                    (x .?> "VTLDeviceARN") <*> (pure (fromEnum s)))
+
+instance Hashable UpdateVTLDeviceType
 
 instance ToHeaders UpdateVTLDeviceType where
         toHeaders
diff --git a/gen/Network/AWS/StorageGateway/Waiters.hs b/gen/Network/AWS/StorageGateway/Waiters.hs
--- a/gen/Network/AWS/StorageGateway/Waiters.hs
+++ b/gen/Network/AWS/StorageGateway/Waiters.hs
@@ -7,7 +7,7 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.Waiters
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -2,7 +2,7 @@
 
 -- |
 -- Module      : Main
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
diff --git a/test/Test/AWS/Gen/StorageGateway.hs b/test/Test/AWS/Gen/StorageGateway.hs
--- a/test/Test/AWS/Gen/StorageGateway.hs
+++ b/test/Test/AWS/Gen/StorageGateway.hs
@@ -5,7 +5,7 @@
 
 -- |
 -- Module      : Test.AWS.Gen.StorageGateway
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -127,6 +127,9 @@
 --         , testDescribeSnapshotSchedule $
 --             describeSnapshotSchedule
 --
+--         , testCreateTapeWithBarcode $
+--             createTapeWithBarcode
+--
 --         , testDescribeBandwidthRateLimit $
 --             describeBandwidthRateLimit
 --
@@ -289,6 +292,9 @@
 --         , testDescribeSnapshotScheduleResponse $
 --             describeSnapshotScheduleResponse
 --
+--         , testCreateTapeWithBarcodeResponse $
+--             createTapeWithBarcodeResponse
+--
 --         , testDescribeBandwidthRateLimitResponse $
 --             describeBandwidthRateLimitResponse
 --
@@ -519,6 +525,11 @@
     "DescribeSnapshotSchedule"
     "fixture/DescribeSnapshotSchedule.yaml"
 
+testCreateTapeWithBarcode :: CreateTapeWithBarcode -> TestTree
+testCreateTapeWithBarcode = req
+    "CreateTapeWithBarcode"
+    "fixture/CreateTapeWithBarcode.yaml"
+
 testDescribeBandwidthRateLimit :: DescribeBandwidthRateLimit -> TestTree
 testDescribeBandwidthRateLimit = req
     "DescribeBandwidthRateLimit"
@@ -851,6 +862,13 @@
     "fixture/DescribeSnapshotScheduleResponse.proto"
     storageGateway
     (Proxy :: Proxy DescribeSnapshotSchedule)
+
+testCreateTapeWithBarcodeResponse :: CreateTapeWithBarcodeResponse -> TestTree
+testCreateTapeWithBarcodeResponse = res
+    "CreateTapeWithBarcodeResponse"
+    "fixture/CreateTapeWithBarcodeResponse.proto"
+    storageGateway
+    (Proxy :: Proxy CreateTapeWithBarcode)
 
 testDescribeBandwidthRateLimitResponse :: DescribeBandwidthRateLimitResponse -> TestTree
 testDescribeBandwidthRateLimitResponse = res
diff --git a/test/Test/AWS/StorageGateway.hs b/test/Test/AWS/StorageGateway.hs
--- a/test/Test/AWS/StorageGateway.hs
+++ b/test/Test/AWS/StorageGateway.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE OverloadedStrings #-}
 
 -- Module      : Test.AWS.StorageGateway
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- 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
diff --git a/test/Test/AWS/StorageGateway/Internal.hs b/test/Test/AWS/StorageGateway/Internal.hs
--- a/test/Test/AWS/StorageGateway/Internal.hs
+++ b/test/Test/AWS/StorageGateway/Internal.hs
@@ -2,7 +2,7 @@
 {-# OPTIONS_GHC -fno-warn-unused-imports #-}
 
 -- Module      : Test.AWS.StorageGateway.Internal
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- 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
