diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`1.4.5`
+`1.5.0`
 
 
 ## Description
diff --git a/amazonka-storagegateway.cabal b/amazonka-storagegateway.cabal
--- a/amazonka-storagegateway.cabal
+++ b/amazonka-storagegateway.cabal
@@ -1,13 +1,13 @@
 name:                  amazonka-storagegateway
-version:               1.4.5
+version:               1.5.0
 synopsis:              Amazon Storage Gateway SDK.
 homepage:              https://github.com/brendanhay/amazonka
 bug-reports:           https://github.com/brendanhay/amazonka/issues
-license:               OtherLicense
+license:               MPL-2.0
 license-file:          LICENSE
 author:                Brendan Hay
-maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
-copyright:             Copyright (c) 2013-2016 Brendan Hay
+maintainer:            Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+copyright:             Copyright (c) 2013-2017 Brendan Hay
 category:              Network, AWS, Cloud, Distributed Computing
 build-type:            Simple
 cabal-version:         >= 1.10
@@ -29,14 +29,19 @@
     to get started.
 
 source-repository head
-    type:     git
-    location: git://github.com/brendanhay/amazonka.git
+    type:              git
+    location:          git://github.com/brendanhay/amazonka.git
+    subdir:            amazonka-storagegateway
 
 library
     default-language:  Haskell2010
     hs-source-dirs:    src gen
 
-    ghc-options:       -Wall
+    ghc-options:
+        -Wall
+        -fwarn-incomplete-uni-patterns
+        -fwarn-incomplete-record-updates
+        -funbox-strict-fields
 
     exposed-modules:
           Network.AWS.StorageGateway
@@ -48,6 +53,7 @@
         , Network.AWS.StorageGateway.CancelArchival
         , Network.AWS.StorageGateway.CancelRetrieval
         , Network.AWS.StorageGateway.CreateCachediSCSIVolume
+        , Network.AWS.StorageGateway.CreateNFSFileShare
         , Network.AWS.StorageGateway.CreateSnapshot
         , Network.AWS.StorageGateway.CreateSnapshotFromVolumeRecoveryPoint
         , Network.AWS.StorageGateway.CreateStorediSCSIVolume
@@ -55,6 +61,7 @@
         , Network.AWS.StorageGateway.CreateTapes
         , Network.AWS.StorageGateway.DeleteBandwidthRateLimit
         , Network.AWS.StorageGateway.DeleteChapCredentials
+        , Network.AWS.StorageGateway.DeleteFileShare
         , Network.AWS.StorageGateway.DeleteGateway
         , Network.AWS.StorageGateway.DeleteSnapshotSchedule
         , Network.AWS.StorageGateway.DeleteTape
@@ -66,6 +73,7 @@
         , Network.AWS.StorageGateway.DescribeChapCredentials
         , Network.AWS.StorageGateway.DescribeGatewayInformation
         , Network.AWS.StorageGateway.DescribeMaintenanceStartTime
+        , Network.AWS.StorageGateway.DescribeNFSFileShares
         , Network.AWS.StorageGateway.DescribeSnapshotSchedule
         , Network.AWS.StorageGateway.DescribeStorediSCSIVolumes
         , Network.AWS.StorageGateway.DescribeTapeArchives
@@ -75,6 +83,7 @@
         , Network.AWS.StorageGateway.DescribeVTLDevices
         , Network.AWS.StorageGateway.DescribeWorkingStorage
         , Network.AWS.StorageGateway.DisableGateway
+        , Network.AWS.StorageGateway.ListFileShares
         , Network.AWS.StorageGateway.ListGateways
         , Network.AWS.StorageGateway.ListLocalDisks
         , Network.AWS.StorageGateway.ListTagsForResource
@@ -82,6 +91,7 @@
         , Network.AWS.StorageGateway.ListVolumeInitiators
         , Network.AWS.StorageGateway.ListVolumeRecoveryPoints
         , Network.AWS.StorageGateway.ListVolumes
+        , Network.AWS.StorageGateway.RefreshCache
         , Network.AWS.StorageGateway.RemoveTagsFromResource
         , Network.AWS.StorageGateway.ResetCache
         , Network.AWS.StorageGateway.RetrieveTapeArchive
@@ -95,6 +105,7 @@
         , Network.AWS.StorageGateway.UpdateGatewayInformation
         , Network.AWS.StorageGateway.UpdateGatewaySoftwareNow
         , Network.AWS.StorageGateway.UpdateMaintenanceStartTime
+        , Network.AWS.StorageGateway.UpdateNFSFileShare
         , Network.AWS.StorageGateway.UpdateSnapshotSchedule
         , Network.AWS.StorageGateway.UpdateVTLDeviceType
         , Network.AWS.StorageGateway.Waiters
@@ -104,7 +115,7 @@
         , Network.AWS.StorageGateway.Types.Sum
 
     build-depends:
-          amazonka-core == 1.4.5.*
+          amazonka-core == 1.5.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-storagegateway-test
@@ -124,9 +135,9 @@
         , Test.AWS.StorageGateway.Internal
 
     build-depends:
-          amazonka-core == 1.4.5.*
-        , amazonka-test == 1.4.5.*
-        , amazonka-storagegateway == 1.4.5.*
+          amazonka-core == 1.5.0.*
+        , amazonka-test == 1.5.0.*
+        , amazonka-storagegateway
         , base
         , bytestring
         , tasty
diff --git a/fixture/CreateNFSFileShare.yaml b/fixture/CreateNFSFileShare.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateNFSFileShare.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/storagegateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  storagegateway.us-east-1.amazonaws.com
+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8
+  X-Amz-Content-SHA256:  abcdef
+  X-Amz-Date:            20091028T223200Z
+body:
+  ''
diff --git a/fixture/CreateNFSFileShareResponse.proto b/fixture/CreateNFSFileShareResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateNFSFileShareResponse.proto
diff --git a/fixture/DeleteFileShare.yaml b/fixture/DeleteFileShare.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteFileShare.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/storagegateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  storagegateway.us-east-1.amazonaws.com
+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8
+  X-Amz-Content-SHA256:  abcdef
+  X-Amz-Date:            20091028T223200Z
+body:
+  ''
diff --git a/fixture/DeleteFileShareResponse.proto b/fixture/DeleteFileShareResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteFileShareResponse.proto
diff --git a/fixture/DescribeNFSFileShares.yaml b/fixture/DescribeNFSFileShares.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeNFSFileShares.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/storagegateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  storagegateway.us-east-1.amazonaws.com
+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8
+  X-Amz-Content-SHA256:  abcdef
+  X-Amz-Date:            20091028T223200Z
+body:
+  ''
diff --git a/fixture/DescribeNFSFileSharesResponse.proto b/fixture/DescribeNFSFileSharesResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeNFSFileSharesResponse.proto
diff --git a/fixture/ListFileShares.yaml b/fixture/ListFileShares.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListFileShares.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/storagegateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  storagegateway.us-east-1.amazonaws.com
+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8
+  X-Amz-Content-SHA256:  abcdef
+  X-Amz-Date:            20091028T223200Z
+body:
+  ''
diff --git a/fixture/ListFileSharesResponse.proto b/fixture/ListFileSharesResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListFileSharesResponse.proto
diff --git a/fixture/RefreshCache.yaml b/fixture/RefreshCache.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/RefreshCache.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/storagegateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  storagegateway.us-east-1.amazonaws.com
+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8
+  X-Amz-Content-SHA256:  abcdef
+  X-Amz-Date:            20091028T223200Z
+body:
+  ''
diff --git a/fixture/RefreshCacheResponse.proto b/fixture/RefreshCacheResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/RefreshCacheResponse.proto
diff --git a/fixture/UpdateNFSFileShare.yaml b/fixture/UpdateNFSFileShare.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateNFSFileShare.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/storagegateway/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  storagegateway.us-east-1.amazonaws.com
+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8
+  X-Amz-Content-SHA256:  abcdef
+  X-Amz-Date:            20091028T223200Z
+body:
+  ''
diff --git a/fixture/UpdateNFSFileShareResponse.proto b/fixture/UpdateNFSFileShareResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateNFSFileShareResponse.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,9 +5,9 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -17,25 +17,25 @@
 --
 -- Use the following links to get started using the /AWS Storage Gateway Service API Reference/ :
 --
---     * <http://docs.aws.amazon.com/storagegateway/latest/userguide/AWSStorageGatewayHTTPRequestsHeaders.html AWS Storage Gateway Required Request Headers> : Describes the required headers that you must send with every POST request to AWS Storage Gateway.
+--     * <http://docs.aws.amazon.com/storagegateway/latest/userguide/AWSStorageGatewayAPI.html#AWSStorageGatewayHTTPRequestsHeaders AWS Storage Gateway Required Request Headers> : Describes the required headers that you must send with every POST request to AWS Storage Gateway.
 --
---     * <http://docs.aws.amazon.com/storagegateway/latest/userguide/AWSStorageGatewaySigningRequests.html Signing Requests> : AWS Storage Gateway requires that you authenticate every request you send; this topic describes how sign such a request.
+--     * <http://docs.aws.amazon.com/storagegateway/latest/userguide/AWSStorageGatewayAPI.html#AWSStorageGatewaySigningRequests Signing Requests> : AWS Storage Gateway requires that you authenticate every request you send; this topic describes how sign such a request.
 --
---     * <http://docs.aws.amazon.com/storagegateway/latest/userguide/APIErrorResponses.html Error Responses> : Provides reference information about AWS Storage Gateway errors.
+--     * <http://docs.aws.amazon.com/storagegateway/latest/userguide/AWSStorageGatewayAPI.html#APIErrorResponses Error Responses> : Provides reference information about AWS Storage Gateway errors.
 --
---     * <http://docs.aws.amazon.com/storagegateway/latest/userguide/AWSStorageGatewayAPIOperations.html Operations in AWS Storage Gateway> : Contains detailed descriptions of all AWS Storage Gateway operations, their request parameters, response elements, possible errors, and examples of requests and responses.
+--     * <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_Operations.html Operations in AWS Storage Gateway> : Contains detailed descriptions of all AWS Storage Gateway operations, their request parameters, response elements, possible errors, and examples of requests and responses.
 --
---     * <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 s and endpoints available for use with AWS Storage Gateway.
+--     * <http://docs.aws.amazon.com/general/latest/gr/rande.html#sg_region AWS Storage Gateway Regions and Endpoints:> Provides a list of each region and endpoints available for use with AWS Storage Gateway.
 --
 --
 --
 -- /Important:/ IDs for Storage Gateway volumes and Amazon EBS snapshots created from gateway volumes are changing to a longer format. Starting in December 2016, all new volumes and snapshots will be created with a 17-character string. Starting in April 2016, you will be able to use these longer IDs so you can test your systems with the new format. For more information, see <https://aws.amazon.com/ec2/faqs/#longer-ids Longer EC2 and EBS Resource IDs> .
 --
--- For example, a volume ARN with the longer volume ID format will look like this:
+-- For example, a volume Amazon Resource Name (ARN) with the longer volume ID format looks like the following:
 --
 -- @arn:aws:storagegateway:us-west-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABBCCDDEEFFG@ .
 --
--- A snapshot ID with the longer ID format will look like this: @snap-78e226633445566ee@ .
+-- A snapshot ID with the longer ID format looks like the following: @snap-78e226633445566ee@ .
 --
 -- For more information, see <https://forums.aws.amazon.com/ann.jspa?annID=3557 Announcement: Heads-up – Longer AWS Storage Gateway volume and snapshot IDs coming in 2016> .
 --
@@ -50,6 +50,9 @@
     -- ** InvalidGatewayRequestException
     , _InvalidGatewayRequestException
 
+    -- ** ServiceUnavailableError
+    , _ServiceUnavailableError
+
     -- ** InternalServerError
     , _InternalServerError
 
@@ -65,6 +68,9 @@
     -- ** CreateStorediSCSIVolume
     , module Network.AWS.StorageGateway.CreateStorediSCSIVolume
 
+    -- ** CreateNFSFileShare
+    , module Network.AWS.StorageGateway.CreateNFSFileShare
+
     -- ** DescribeChapCredentials
     , module Network.AWS.StorageGateway.DescribeChapCredentials
 
@@ -80,6 +86,12 @@
     -- ** CreateCachediSCSIVolume
     , module Network.AWS.StorageGateway.CreateCachediSCSIVolume
 
+    -- ** ListFileShares
+    , module Network.AWS.StorageGateway.ListFileShares
+
+    -- ** DeleteFileShare
+    , module Network.AWS.StorageGateway.DeleteFileShare
+
     -- ** ListVolumeInitiators
     , module Network.AWS.StorageGateway.ListVolumeInitiators
 
@@ -149,6 +161,12 @@
     -- ** DescribeGatewayInformation
     , module Network.AWS.StorageGateway.DescribeGatewayInformation
 
+    -- ** RefreshCache
+    , module Network.AWS.StorageGateway.RefreshCache
+
+    -- ** UpdateNFSFileShare
+    , module Network.AWS.StorageGateway.UpdateNFSFileShare
+
     -- ** RetrieveTapeArchive
     , module Network.AWS.StorageGateway.RetrieveTapeArchive
 
@@ -185,6 +203,9 @@
     -- ** DeleteTapeArchive
     , module Network.AWS.StorageGateway.DeleteTapeArchive
 
+    -- ** DescribeNFSFileShares
+    , module Network.AWS.StorageGateway.DescribeNFSFileShares
+
     -- ** ListVolumeRecoveryPoints
     , module Network.AWS.StorageGateway.ListVolumeRecoveryPoints
 
@@ -238,6 +259,7 @@
     , cscsivVolumeARN
     , cscsivVolumeProgress
     , cscsivVolumeSizeInBytes
+    , cscsivCreatedDate
     , cscsivVolumeId
     , cscsivVolumeType
 
@@ -268,6 +290,14 @@
     , dDiskStatus
     , dDiskId
 
+    -- ** FileShareInfo
+    , FileShareInfo
+    , fileShareInfo
+    , fsiFileShareStatus
+    , fsiGatewayARN
+    , fsiFileShareId
+    , fsiFileShareARN
+
     -- ** GatewayInfo
     , GatewayInfo
     , gatewayInfo
@@ -277,6 +307,32 @@
     , giGatewayId
     , giGatewayType
 
+    -- ** NFSFileShareDefaults
+    , NFSFileShareDefaults
+    , nFSFileShareDefaults
+    , nfsfsdFileMode
+    , nfsfsdOwnerId
+    , nfsfsdDirectoryMode
+    , nfsfsdGroupId
+
+    -- ** NFSFileShareInfo
+    , NFSFileShareInfo
+    , nFSFileShareInfo
+    , nfsfsiFileShareStatus
+    , nfsfsiKMSKey
+    , nfsfsiGatewayARN
+    , nfsfsiPath
+    , nfsfsiKMSEncrypted
+    , nfsfsiFileShareId
+    , nfsfsiFileShareARN
+    , nfsfsiDefaultStorageClass
+    , nfsfsiRole
+    , nfsfsiSquash
+    , nfsfsiNFSFileShareDefaults
+    , nfsfsiLocationARN
+    , nfsfsiClientList
+    , nfsfsiReadOnly
+
     -- ** NetworkInterface
     , NetworkInterface
     , networkInterface
@@ -294,6 +350,7 @@
     , sscsivVolumeARN
     , sscsivVolumeProgress
     , sscsivVolumeSizeInBytes
+    , sscsivCreatedDate
     , sscsivVolumeId
     , sscsivVolumeDiskId
     , sscsivVolumeType
@@ -313,6 +370,8 @@
     , tProgress
     , tTapeSizeInBytes
     , tVTLDevice
+    , tTapeUsedInBytes
+    , tTapeCreatedDate
 
     -- ** TapeArchive
     , TapeArchive
@@ -322,6 +381,8 @@
     , taTapeARN
     , taTapeSizeInBytes
     , taCompletionTime
+    , taTapeUsedInBytes
+    , taTapeCreatedDate
     , taRetrievedTo
 
     -- ** TapeInfo
@@ -378,64 +439,70 @@
     , vscsiaNetworkInterfacePort
     ) where
 
-import           Network.AWS.StorageGateway.ActivateGateway
-import           Network.AWS.StorageGateway.AddCache
-import           Network.AWS.StorageGateway.AddTagsToResource
-import           Network.AWS.StorageGateway.AddUploadBuffer
-import           Network.AWS.StorageGateway.AddWorkingStorage
-import           Network.AWS.StorageGateway.CancelArchival
-import           Network.AWS.StorageGateway.CancelRetrieval
-import           Network.AWS.StorageGateway.CreateCachediSCSIVolume
-import           Network.AWS.StorageGateway.CreateSnapshot
-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
-import           Network.AWS.StorageGateway.DeleteSnapshotSchedule
-import           Network.AWS.StorageGateway.DeleteTape
-import           Network.AWS.StorageGateway.DeleteTapeArchive
-import           Network.AWS.StorageGateway.DeleteVolume
-import           Network.AWS.StorageGateway.DescribeBandwidthRateLimit
-import           Network.AWS.StorageGateway.DescribeCache
-import           Network.AWS.StorageGateway.DescribeCachediSCSIVolumes
-import           Network.AWS.StorageGateway.DescribeChapCredentials
-import           Network.AWS.StorageGateway.DescribeGatewayInformation
-import           Network.AWS.StorageGateway.DescribeMaintenanceStartTime
-import           Network.AWS.StorageGateway.DescribeSnapshotSchedule
-import           Network.AWS.StorageGateway.DescribeStorediSCSIVolumes
-import           Network.AWS.StorageGateway.DescribeTapeArchives
-import           Network.AWS.StorageGateway.DescribeTapeRecoveryPoints
-import           Network.AWS.StorageGateway.DescribeTapes
-import           Network.AWS.StorageGateway.DescribeUploadBuffer
-import           Network.AWS.StorageGateway.DescribeVTLDevices
-import           Network.AWS.StorageGateway.DescribeWorkingStorage
-import           Network.AWS.StorageGateway.DisableGateway
-import           Network.AWS.StorageGateway.ListGateways
-import           Network.AWS.StorageGateway.ListLocalDisks
-import           Network.AWS.StorageGateway.ListTagsForResource
-import           Network.AWS.StorageGateway.ListTapes
-import           Network.AWS.StorageGateway.ListVolumeInitiators
-import           Network.AWS.StorageGateway.ListVolumeRecoveryPoints
-import           Network.AWS.StorageGateway.ListVolumes
-import           Network.AWS.StorageGateway.RemoveTagsFromResource
-import           Network.AWS.StorageGateway.ResetCache
-import           Network.AWS.StorageGateway.RetrieveTapeArchive
-import           Network.AWS.StorageGateway.RetrieveTapeRecoveryPoint
-import           Network.AWS.StorageGateway.SetLocalConsolePassword
-import           Network.AWS.StorageGateway.ShutdownGateway
-import           Network.AWS.StorageGateway.StartGateway
-import           Network.AWS.StorageGateway.Types
-import           Network.AWS.StorageGateway.UpdateBandwidthRateLimit
-import           Network.AWS.StorageGateway.UpdateChapCredentials
-import           Network.AWS.StorageGateway.UpdateGatewayInformation
-import           Network.AWS.StorageGateway.UpdateGatewaySoftwareNow
-import           Network.AWS.StorageGateway.UpdateMaintenanceStartTime
-import           Network.AWS.StorageGateway.UpdateSnapshotSchedule
-import           Network.AWS.StorageGateway.UpdateVTLDeviceType
-import           Network.AWS.StorageGateway.Waiters
+import Network.AWS.StorageGateway.ActivateGateway
+import Network.AWS.StorageGateway.AddCache
+import Network.AWS.StorageGateway.AddTagsToResource
+import Network.AWS.StorageGateway.AddUploadBuffer
+import Network.AWS.StorageGateway.AddWorkingStorage
+import Network.AWS.StorageGateway.CancelArchival
+import Network.AWS.StorageGateway.CancelRetrieval
+import Network.AWS.StorageGateway.CreateCachediSCSIVolume
+import Network.AWS.StorageGateway.CreateNFSFileShare
+import Network.AWS.StorageGateway.CreateSnapshot
+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.DeleteFileShare
+import Network.AWS.StorageGateway.DeleteGateway
+import Network.AWS.StorageGateway.DeleteSnapshotSchedule
+import Network.AWS.StorageGateway.DeleteTape
+import Network.AWS.StorageGateway.DeleteTapeArchive
+import Network.AWS.StorageGateway.DeleteVolume
+import Network.AWS.StorageGateway.DescribeBandwidthRateLimit
+import Network.AWS.StorageGateway.DescribeCache
+import Network.AWS.StorageGateway.DescribeCachediSCSIVolumes
+import Network.AWS.StorageGateway.DescribeChapCredentials
+import Network.AWS.StorageGateway.DescribeGatewayInformation
+import Network.AWS.StorageGateway.DescribeMaintenanceStartTime
+import Network.AWS.StorageGateway.DescribeNFSFileShares
+import Network.AWS.StorageGateway.DescribeSnapshotSchedule
+import Network.AWS.StorageGateway.DescribeStorediSCSIVolumes
+import Network.AWS.StorageGateway.DescribeTapeArchives
+import Network.AWS.StorageGateway.DescribeTapeRecoveryPoints
+import Network.AWS.StorageGateway.DescribeTapes
+import Network.AWS.StorageGateway.DescribeUploadBuffer
+import Network.AWS.StorageGateway.DescribeVTLDevices
+import Network.AWS.StorageGateway.DescribeWorkingStorage
+import Network.AWS.StorageGateway.DisableGateway
+import Network.AWS.StorageGateway.ListFileShares
+import Network.AWS.StorageGateway.ListGateways
+import Network.AWS.StorageGateway.ListLocalDisks
+import Network.AWS.StorageGateway.ListTagsForResource
+import Network.AWS.StorageGateway.ListTapes
+import Network.AWS.StorageGateway.ListVolumeInitiators
+import Network.AWS.StorageGateway.ListVolumeRecoveryPoints
+import Network.AWS.StorageGateway.ListVolumes
+import Network.AWS.StorageGateway.RefreshCache
+import Network.AWS.StorageGateway.RemoveTagsFromResource
+import Network.AWS.StorageGateway.ResetCache
+import Network.AWS.StorageGateway.RetrieveTapeArchive
+import Network.AWS.StorageGateway.RetrieveTapeRecoveryPoint
+import Network.AWS.StorageGateway.SetLocalConsolePassword
+import Network.AWS.StorageGateway.ShutdownGateway
+import Network.AWS.StorageGateway.StartGateway
+import Network.AWS.StorageGateway.Types
+import Network.AWS.StorageGateway.UpdateBandwidthRateLimit
+import Network.AWS.StorageGateway.UpdateChapCredentials
+import Network.AWS.StorageGateway.UpdateGatewayInformation
+import Network.AWS.StorageGateway.UpdateGatewaySoftwareNow
+import Network.AWS.StorageGateway.UpdateMaintenanceStartTime
+import Network.AWS.StorageGateway.UpdateNFSFileShare
+import Network.AWS.StorageGateway.UpdateSnapshotSchedule
+import Network.AWS.StorageGateway.UpdateVTLDeviceType
+import Network.AWS.StorageGateway.Waiters
 
 {- $errors
 Error matchers are designed for use with the functions provided by
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,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.ActivateGateway
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Activates the gateway you previously deployed on your host. For more information, see <http://docs.aws.amazon.com/storagegateway/latest/userguide/GettingStartedActivateGateway-common.html Activate the AWS Storage Gateway> . In the activation process, you specify information such as the you want to use for storing snapshots, the time zone for scheduled 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' .
+-- Activates the gateway you previously deployed on your host. For more information, see <http://docs.aws.amazon.com/storagegateway/latest/userguide/GettingStartedActivateGateway-common.html Activate the AWS Storage Gateway> . In the activation process, you specify information such as the region you want to use for storing snapshots or tapes, the time zone for scheduled 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' .
 --
 --
 module Network.AWS.StorageGateway.ActivateGateway
@@ -43,12 +43,12 @@
     , agrsResponseStatus
     ) 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
+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
 
 -- | A JSON object containing one or more of the following fields:
 --
@@ -72,32 +72,33 @@
 --
 -- /See:/ 'activateGateway' smart constructor.
 data ActivateGateway = ActivateGateway'
-    { _agMediumChangerType :: !(Maybe Text)
-    , _agTapeDriveType     :: !(Maybe Text)
-    , _agGatewayType       :: !(Maybe Text)
-    , _agActivationKey     :: !Text
-    , _agGatewayName       :: !Text
-    , _agGatewayTimezone   :: !Text
-    , _agGatewayRegion     :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _agMediumChangerType :: !(Maybe Text)
+  , _agTapeDriveType     :: !(Maybe Text)
+  , _agGatewayType       :: !(Maybe Text)
+  , _agActivationKey     :: !Text
+  , _agGatewayName       :: !Text
+  , _agGatewayTimezone   :: !Text
+  , _agGatewayRegion     :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ActivateGateway' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'agMediumChangerType' - The value that indicates the type of medium changer to use for gateway-VTL. This field is optional. Valid Values: "STK-L700", "AWS-Gateway-VTL"
+-- * 'agMediumChangerType' - The value that indicates the type of medium changer to use for tape gateway. This field is optional. Valid Values: "STK-L700", "AWS-Gateway-VTL"
 --
--- * 'agTapeDriveType' - The value that indicates the type of tape drive to use for gateway-VTL. This field is optional. Valid Values: "IBM-ULT3580-TD5"
+-- * 'agTapeDriveType' - The value that indicates the type of tape drive to use for tape gateway. This field is optional. Valid Values: "IBM-ULT3580-TD5"
 --
--- * 'agGatewayType' - 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' - 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@ .  Valid Values: "STORED", "CACHED", "VTL", "FILE_S3"
 --
 -- * 'agActivationKey' - Your gateway activation key. You can obtain the activation key by sending an HTTP GET request with redirects enabled to the gateway IP address (port 80). The redirect URL returned in the response provides you the activation key for your gateway in the query string parameter @activationKey@ . It may also include other activation-related parameters, however, these are merely defaults -- the arguments you pass to the @ActivateGateway@ API call determine the actual configuration of your gateway.
 --
 -- * 'agGatewayName' - The name you configured for your gateway.
 --
--- * 'agGatewayTimezone' - 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' - A value that indicates the time zone you want to set for the gateway. The time zone is of the format "GMT-hr:mm" or "GMT+hr:mm". For example, GMT-4:00 indicates the time is 4 hours behind GMT. GMT+2:00 indicates the time is 2 hours ahead of GMT. The time zone is used, for example, for scheduling snapshots and your gateway's maintenance schedule.
 --
--- * 'agGatewayRegion' - 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/ . Valid Values: "us-east-1", "us-west-1", "us-west-2", "eu-west-1", "eu-central-1", "ap-northeast-1", "ap-northeast-2", "ap-southeast-1", "ap-southeast-2", "sa-east-1"
+-- * 'agGatewayRegion' - A value that indicates the region where you want to store your data. 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/ . Valid Values: "us-east-1", "us-east-2", "us-west-1", "us-west-2", "ca-central-1", "eu-west-1", "eu-central-1", "eu-west-2", "ap-northeast-1", "ap-northeast-2", "ap-southeast-1", "ap-southeast-2", "ap-south-1", "sa-east-1"
 activateGateway
     :: Text -- ^ 'agActivationKey'
     -> Text -- ^ 'agGatewayName'
@@ -105,25 +106,26 @@
     -> Text -- ^ 'agGatewayRegion'
     -> ActivateGateway
 activateGateway pActivationKey_ pGatewayName_ pGatewayTimezone_ pGatewayRegion_ =
-    ActivateGateway'
-    { _agMediumChangerType = Nothing
-    , _agTapeDriveType = Nothing
-    , _agGatewayType = Nothing
-    , _agActivationKey = pActivationKey_
-    , _agGatewayName = pGatewayName_
-    , _agGatewayTimezone = pGatewayTimezone_
-    , _agGatewayRegion = pGatewayRegion_
-    }
+  ActivateGateway'
+  { _agMediumChangerType = Nothing
+  , _agTapeDriveType = Nothing
+  , _agGatewayType = Nothing
+  , _agActivationKey = pActivationKey_
+  , _agGatewayName = pGatewayName_
+  , _agGatewayTimezone = pGatewayTimezone_
+  , _agGatewayRegion = pGatewayRegion_
+  }
 
--- | The value that indicates the type of medium changer to use for gateway-VTL. This field is optional. Valid Values: "STK-L700", "AWS-Gateway-VTL"
+
+-- | The value that indicates the type of medium changer to use for tape gateway. This field is optional. Valid Values: "STK-L700", "AWS-Gateway-VTL"
 agMediumChangerType :: Lens' ActivateGateway (Maybe Text)
 agMediumChangerType = lens _agMediumChangerType (\ s a -> s{_agMediumChangerType = a});
 
--- | The value that indicates the type of tape drive to use for gateway-VTL. This field is optional. Valid Values: "IBM-ULT3580-TD5"
+-- | The value that indicates the type of tape drive to use for tape gateway. This field is optional. Valid Values: "IBM-ULT3580-TD5"
 agTapeDriveType :: Lens' ActivateGateway (Maybe Text)
 agTapeDriveType = lens _agTapeDriveType (\ s a -> s{_agTapeDriveType = a});
 
--- | 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@ .
+-- | 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@ .  Valid Values: "STORED", "CACHED", "VTL", "FILE_S3"
 agGatewayType :: Lens' ActivateGateway (Maybe Text)
 agGatewayType = lens _agGatewayType (\ s a -> s{_agGatewayType = a});
 
@@ -135,11 +137,11 @@
 agGatewayName :: Lens' ActivateGateway Text
 agGatewayName = lens _agGatewayName (\ s a -> s{_agGatewayName = a});
 
--- | 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.
+-- | A value that indicates the time zone you want to set for the gateway. The time zone is of the format "GMT-hr:mm" or "GMT+hr:mm". For example, GMT-4:00 indicates the time is 4 hours behind GMT. GMT+2:00 indicates the time is 2 hours ahead of GMT. 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});
 
--- | 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/ . Valid Values: "us-east-1", "us-west-1", "us-west-2", "eu-west-1", "eu-central-1", "ap-northeast-1", "ap-northeast-2", "ap-southeast-1", "ap-southeast-2", "sa-east-1"
+-- | A value that indicates the region where you want to store your data. 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/ . Valid Values: "us-east-1", "us-east-2", "us-west-1", "us-west-2", "ca-central-1", "eu-west-1", "eu-central-1", "eu-west-2", "ap-northeast-1", "ap-northeast-2", "ap-southeast-1", "ap-southeast-2", "ap-south-1", "sa-east-1"
 agGatewayRegion :: Lens' ActivateGateway Text
 agGatewayRegion = lens _agGatewayRegion (\ s a -> s{_agGatewayRegion = a});
 
@@ -152,9 +154,9 @@
                  ActivateGatewayResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
 
-instance Hashable ActivateGateway
+instance Hashable ActivateGateway where
 
-instance NFData ActivateGateway
+instance NFData ActivateGateway where
 
 instance ToHeaders ActivateGateway where
         toHeaders
@@ -190,10 +192,11 @@
 --
 -- /See:/ 'activateGatewayResponse' smart constructor.
 data ActivateGatewayResponse = ActivateGatewayResponse'
-    { _agrsGatewayARN     :: !(Maybe Text)
-    , _agrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _agrsGatewayARN     :: !(Maybe Text)
+  , _agrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ActivateGatewayResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -205,11 +208,10 @@
     :: Int -- ^ 'agrsResponseStatus'
     -> ActivateGatewayResponse
 activateGatewayResponse pResponseStatus_ =
-    ActivateGatewayResponse'
-    { _agrsGatewayARN = Nothing
-    , _agrsResponseStatus = pResponseStatus_
-    }
+  ActivateGatewayResponse'
+  {_agrsGatewayARN = Nothing, _agrsResponseStatus = pResponseStatus_}
 
+
 -- | Undocumented member.
 agrsGatewayARN :: Lens' ActivateGatewayResponse (Maybe Text)
 agrsGatewayARN = lens _agrsGatewayARN (\ s a -> s{_agrsGatewayARN = a});
@@ -218,4 +220,4 @@
 agrsResponseStatus :: Lens' ActivateGatewayResponse Int
 agrsResponseStatus = lens _agrsResponseStatus (\ s a -> s{_agrsResponseStatus = a});
 
-instance NFData ActivateGatewayResponse
+instance NFData ActivateGatewayResponse where
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,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.AddCache
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Configures one or more gateway local disks as cache for a cached-volume gateway. This operation is supported only for the gateway-cached volume architecture (see <http://docs.aws.amazon.com/storagegateway/latest/userguide/StorageGatewayConcepts.html Storage Gateway Concepts> ).
+-- Configures one or more gateway local disks as cache for a gateway. This operation is only supported in the cached volume, tape and file gateway architectures (see <http://docs.aws.amazon.com/storagegateway/latest/userguide/StorageGatewayConcepts.html Storage Gateway Concepts> ).
 --
 --
 -- 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.
@@ -40,19 +40,20 @@
     , acrsResponseStatus
     ) 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
+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
 
 -- | /See:/ 'addCache' smart constructor.
 data AddCache = AddCache'
-    { _acGatewayARN :: !Text
-    , _acDiskIds    :: ![Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _acGatewayARN :: !Text
+  , _acDiskIds    :: ![Text]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'AddCache' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -64,11 +65,9 @@
     :: Text -- ^ 'acGatewayARN'
     -> AddCache
 addCache pGatewayARN_ =
-    AddCache'
-    { _acGatewayARN = pGatewayARN_
-    , _acDiskIds = mempty
-    }
+  AddCache' {_acGatewayARN = pGatewayARN_, _acDiskIds = mempty}
 
+
 -- | Undocumented member.
 acGatewayARN :: Lens' AddCache Text
 acGatewayARN = lens _acGatewayARN (\ s a -> s{_acGatewayARN = a});
@@ -86,9 +85,9 @@
                  AddCacheResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
 
-instance Hashable AddCache
+instance Hashable AddCache where
 
-instance NFData AddCache
+instance NFData AddCache where
 
 instance ToHeaders AddCache where
         toHeaders
@@ -114,10 +113,11 @@
 
 -- | /See:/ 'addCacheResponse' smart constructor.
 data AddCacheResponse = AddCacheResponse'
-    { _acrsGatewayARN     :: !(Maybe Text)
-    , _acrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _acrsGatewayARN     :: !(Maybe Text)
+  , _acrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'AddCacheResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -129,11 +129,10 @@
     :: Int -- ^ 'acrsResponseStatus'
     -> AddCacheResponse
 addCacheResponse pResponseStatus_ =
-    AddCacheResponse'
-    { _acrsGatewayARN = Nothing
-    , _acrsResponseStatus = pResponseStatus_
-    }
+  AddCacheResponse'
+  {_acrsGatewayARN = Nothing, _acrsResponseStatus = pResponseStatus_}
 
+
 -- | Undocumented member.
 acrsGatewayARN :: Lens' AddCacheResponse (Maybe Text)
 acrsGatewayARN = lens _acrsGatewayARN (\ s a -> s{_acrsGatewayARN = a});
@@ -142,4 +141,4 @@
 acrsResponseStatus :: Lens' AddCacheResponse Int
 acrsResponseStatus = lens _acrsResponseStatus (\ s a -> s{_acrsResponseStatus = a});
 
-instance NFData AddCacheResponse
+instance NFData AddCacheResponse where
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,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.AddTagsToResource
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -52,12 +52,12 @@
     , attrrsResponseStatus
     ) 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
+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
 
 -- | AddTagsToResourceInput
 --
@@ -65,10 +65,11 @@
 --
 -- /See:/ 'addTagsToResource' smart constructor.
 data AddTagsToResource = AddTagsToResource'
-    { _attrResourceARN :: !Text
-    , _attrTags        :: ![Tag]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _attrResourceARN :: !Text
+  , _attrTags        :: ![Tag]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'AddTagsToResource' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -80,11 +81,9 @@
     :: Text -- ^ 'attrResourceARN'
     -> AddTagsToResource
 addTagsToResource pResourceARN_ =
-    AddTagsToResource'
-    { _attrResourceARN = pResourceARN_
-    , _attrTags = mempty
-    }
+  AddTagsToResource' {_attrResourceARN = pResourceARN_, _attrTags = mempty}
 
+
 -- | The Amazon Resource Name (ARN) of the resource you want to add tags to.
 attrResourceARN :: Lens' AddTagsToResource Text
 attrResourceARN = lens _attrResourceARN (\ s a -> s{_attrResourceARN = a});
@@ -102,9 +101,9 @@
                  AddTagsToResourceResponse' <$>
                    (x .?> "ResourceARN") <*> (pure (fromEnum s)))
 
-instance Hashable AddTagsToResource
+instance Hashable AddTagsToResource where
 
-instance NFData AddTagsToResource
+instance NFData AddTagsToResource where
 
 instance ToHeaders AddTagsToResource where
         toHeaders
@@ -135,10 +134,11 @@
 --
 -- /See:/ 'addTagsToResourceResponse' smart constructor.
 data AddTagsToResourceResponse = AddTagsToResourceResponse'
-    { _attrrsResourceARN    :: !(Maybe Text)
-    , _attrrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _attrrsResourceARN    :: !(Maybe Text)
+  , _attrrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'AddTagsToResourceResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -150,11 +150,10 @@
     :: Int -- ^ 'attrrsResponseStatus'
     -> AddTagsToResourceResponse
 addTagsToResourceResponse pResponseStatus_ =
-    AddTagsToResourceResponse'
-    { _attrrsResourceARN = Nothing
-    , _attrrsResponseStatus = pResponseStatus_
-    }
+  AddTagsToResourceResponse'
+  {_attrrsResourceARN = Nothing, _attrrsResponseStatus = pResponseStatus_}
 
+
 -- | The Amazon Resource Name (ARN) of the resource you want to add tags to.
 attrrsResourceARN :: Lens' AddTagsToResourceResponse (Maybe Text)
 attrrsResourceARN = lens _attrrsResourceARN (\ s a -> s{_attrrsResourceARN = a});
@@ -163,4 +162,4 @@
 attrrsResponseStatus :: Lens' AddTagsToResourceResponse Int
 attrrsResponseStatus = lens _attrrsResponseStatus (\ s a -> s{_attrrsResponseStatus = a});
 
-instance NFData AddTagsToResourceResponse
+instance NFData AddTagsToResourceResponse where
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,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.AddUploadBuffer
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Configures one or more gateway local disks as upload buffer for a specified gateway. This operation is supported for both the gateway-stored and gateway-cached volume architectures.
+-- Configures one or more gateway local disks as upload buffer for a specified gateway. This operation is supported for the stored volume, cached volume and tape gateway architectures.
 --
 --
 -- 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.
@@ -40,19 +40,20 @@
     , aubrsResponseStatus
     ) 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
+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
 
 -- | /See:/ 'addUploadBuffer' smart constructor.
 data AddUploadBuffer = AddUploadBuffer'
-    { _aubGatewayARN :: !Text
-    , _aubDiskIds    :: ![Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _aubGatewayARN :: !Text
+  , _aubDiskIds    :: ![Text]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'AddUploadBuffer' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -64,11 +65,9 @@
     :: Text -- ^ 'aubGatewayARN'
     -> AddUploadBuffer
 addUploadBuffer pGatewayARN_ =
-    AddUploadBuffer'
-    { _aubGatewayARN = pGatewayARN_
-    , _aubDiskIds = mempty
-    }
+  AddUploadBuffer' {_aubGatewayARN = pGatewayARN_, _aubDiskIds = mempty}
 
+
 -- | Undocumented member.
 aubGatewayARN :: Lens' AddUploadBuffer Text
 aubGatewayARN = lens _aubGatewayARN (\ s a -> s{_aubGatewayARN = a});
@@ -86,9 +85,9 @@
                  AddUploadBufferResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
 
-instance Hashable AddUploadBuffer
+instance Hashable AddUploadBuffer where
 
-instance NFData AddUploadBuffer
+instance NFData AddUploadBuffer where
 
 instance ToHeaders AddUploadBuffer where
         toHeaders
@@ -115,10 +114,11 @@
 
 -- | /See:/ 'addUploadBufferResponse' smart constructor.
 data AddUploadBufferResponse = AddUploadBufferResponse'
-    { _aubrsGatewayARN     :: !(Maybe Text)
-    , _aubrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _aubrsGatewayARN     :: !(Maybe Text)
+  , _aubrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'AddUploadBufferResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -130,11 +130,10 @@
     :: Int -- ^ 'aubrsResponseStatus'
     -> AddUploadBufferResponse
 addUploadBufferResponse pResponseStatus_ =
-    AddUploadBufferResponse'
-    { _aubrsGatewayARN = Nothing
-    , _aubrsResponseStatus = pResponseStatus_
-    }
+  AddUploadBufferResponse'
+  {_aubrsGatewayARN = Nothing, _aubrsResponseStatus = pResponseStatus_}
 
+
 -- | Undocumented member.
 aubrsGatewayARN :: Lens' AddUploadBufferResponse (Maybe Text)
 aubrsGatewayARN = lens _aubrsGatewayARN (\ s a -> s{_aubrsGatewayARN = a});
@@ -143,4 +142,4 @@
 aubrsResponseStatus :: Lens' AddUploadBufferResponse Int
 aubrsResponseStatus = lens _aubrsResponseStatus (\ s a -> s{_aubrsResponseStatus = a});
 
-instance NFData AddUploadBufferResponse
+instance NFData AddUploadBufferResponse where
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,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.AddWorkingStorage
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Configures one or more gateway local disks as working storage for a gateway. This operation is supported only for the gateway-stored volume architecture. This operation is deprecated in cached-volumes API version 20120630. Use 'AddUploadBuffer' instead.
+-- Configures one or more gateway local disks as working storage for a gateway. This operation is only supported in the stored volume gateway architecture. This operation is deprecated in cached volume API version 20120630. Use 'AddUploadBuffer' instead.
 --
 --
 -- 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.
@@ -40,12 +40,12 @@
     , awsrsResponseStatus
     ) 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
+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
 
 -- | A JSON object containing one or more of the following fields:
 --
@@ -57,10 +57,11 @@
 --
 -- /See:/ 'addWorkingStorage' smart constructor.
 data AddWorkingStorage = AddWorkingStorage'
-    { _awsGatewayARN :: !Text
-    , _awsDiskIds    :: ![Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _awsGatewayARN :: !Text
+  , _awsDiskIds    :: ![Text]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'AddWorkingStorage' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -72,11 +73,9 @@
     :: Text -- ^ 'awsGatewayARN'
     -> AddWorkingStorage
 addWorkingStorage pGatewayARN_ =
-    AddWorkingStorage'
-    { _awsGatewayARN = pGatewayARN_
-    , _awsDiskIds = mempty
-    }
+  AddWorkingStorage' {_awsGatewayARN = pGatewayARN_, _awsDiskIds = mempty}
 
+
 -- | Undocumented member.
 awsGatewayARN :: Lens' AddWorkingStorage Text
 awsGatewayARN = lens _awsGatewayARN (\ s a -> s{_awsGatewayARN = a});
@@ -94,9 +93,9 @@
                  AddWorkingStorageResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
 
-instance Hashable AddWorkingStorage
+instance Hashable AddWorkingStorage where
 
-instance NFData AddWorkingStorage
+instance NFData AddWorkingStorage where
 
 instance ToHeaders AddWorkingStorage where
         toHeaders
@@ -127,10 +126,11 @@
 --
 -- /See:/ 'addWorkingStorageResponse' smart constructor.
 data AddWorkingStorageResponse = AddWorkingStorageResponse'
-    { _awsrsGatewayARN     :: !(Maybe Text)
-    , _awsrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _awsrsGatewayARN     :: !(Maybe Text)
+  , _awsrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'AddWorkingStorageResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -142,11 +142,10 @@
     :: Int -- ^ 'awsrsResponseStatus'
     -> AddWorkingStorageResponse
 addWorkingStorageResponse pResponseStatus_ =
-    AddWorkingStorageResponse'
-    { _awsrsGatewayARN = Nothing
-    , _awsrsResponseStatus = pResponseStatus_
-    }
+  AddWorkingStorageResponse'
+  {_awsrsGatewayARN = Nothing, _awsrsResponseStatus = pResponseStatus_}
 
+
 -- | Undocumented member.
 awsrsGatewayARN :: Lens' AddWorkingStorageResponse (Maybe Text)
 awsrsGatewayARN = lens _awsrsGatewayARN (\ s a -> s{_awsrsGatewayARN = a});
@@ -155,4 +154,4 @@
 awsrsResponseStatus :: Lens' AddWorkingStorageResponse Int
 awsrsResponseStatus = lens _awsrsResponseStatus (\ s a -> s{_awsrsResponseStatus = a});
 
-instance NFData AddWorkingStorageResponse
+instance NFData AddWorkingStorageResponse where
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,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.CancelArchival
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Cancels archiving of a virtual tape to the virtual tape shelf (VTS) after the archiving process is initiated.
+-- Cancels archiving of a virtual tape to the virtual tape shelf (VTS) after the archiving process is initiated. This operation is only supported in the tape gateway architecture.
 --
 --
 module Network.AWS.StorageGateway.CancelArchival
@@ -38,12 +38,12 @@
     , carsResponseStatus
     ) 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
+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
 
 -- | CancelArchivalInput
 --
@@ -51,10 +51,11 @@
 --
 -- /See:/ 'cancelArchival' smart constructor.
 data CancelArchival = CancelArchival'
-    { _caGatewayARN :: !Text
-    , _caTapeARN    :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _caGatewayARN :: !Text
+  , _caTapeARN    :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CancelArchival' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -67,11 +68,9 @@
     -> Text -- ^ 'caTapeARN'
     -> CancelArchival
 cancelArchival pGatewayARN_ pTapeARN_ =
-    CancelArchival'
-    { _caGatewayARN = pGatewayARN_
-    , _caTapeARN = pTapeARN_
-    }
+  CancelArchival' {_caGatewayARN = pGatewayARN_, _caTapeARN = pTapeARN_}
 
+
 -- | Undocumented member.
 caGatewayARN :: Lens' CancelArchival Text
 caGatewayARN = lens _caGatewayARN (\ s a -> s{_caGatewayARN = a});
@@ -89,9 +88,9 @@
                  CancelArchivalResponse' <$>
                    (x .?> "TapeARN") <*> (pure (fromEnum s)))
 
-instance Hashable CancelArchival
+instance Hashable CancelArchival where
 
-instance NFData CancelArchival
+instance NFData CancelArchival where
 
 instance ToHeaders CancelArchival where
         toHeaders
@@ -122,10 +121,11 @@
 --
 -- /See:/ 'cancelArchivalResponse' smart constructor.
 data CancelArchivalResponse = CancelArchivalResponse'
-    { _carsTapeARN        :: !(Maybe Text)
-    , _carsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _carsTapeARN        :: !(Maybe Text)
+  , _carsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CancelArchivalResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -137,11 +137,10 @@
     :: Int -- ^ 'carsResponseStatus'
     -> CancelArchivalResponse
 cancelArchivalResponse pResponseStatus_ =
-    CancelArchivalResponse'
-    { _carsTapeARN = Nothing
-    , _carsResponseStatus = pResponseStatus_
-    }
+  CancelArchivalResponse'
+  {_carsTapeARN = Nothing, _carsResponseStatus = pResponseStatus_}
 
+
 -- | The Amazon Resource Name (ARN) of the virtual tape for which archiving was canceled.
 carsTapeARN :: Lens' CancelArchivalResponse (Maybe Text)
 carsTapeARN = lens _carsTapeARN (\ s a -> s{_carsTapeARN = a});
@@ -150,4 +149,4 @@
 carsResponseStatus :: Lens' CancelArchivalResponse Int
 carsResponseStatus = lens _carsResponseStatus (\ s a -> s{_carsResponseStatus = a});
 
-instance NFData CancelArchivalResponse
+instance NFData CancelArchivalResponse where
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,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.CancelRetrieval
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -38,12 +38,12 @@
     , crrsResponseStatus
     ) 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
+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
 
 -- | CancelRetrievalInput
 --
@@ -51,10 +51,11 @@
 --
 -- /See:/ 'cancelRetrieval' smart constructor.
 data CancelRetrieval = CancelRetrieval'
-    { _crGatewayARN :: !Text
-    , _crTapeARN    :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _crGatewayARN :: !Text
+  , _crTapeARN    :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CancelRetrieval' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -67,11 +68,9 @@
     -> Text -- ^ 'crTapeARN'
     -> CancelRetrieval
 cancelRetrieval pGatewayARN_ pTapeARN_ =
-    CancelRetrieval'
-    { _crGatewayARN = pGatewayARN_
-    , _crTapeARN = pTapeARN_
-    }
+  CancelRetrieval' {_crGatewayARN = pGatewayARN_, _crTapeARN = pTapeARN_}
 
+
 -- | Undocumented member.
 crGatewayARN :: Lens' CancelRetrieval Text
 crGatewayARN = lens _crGatewayARN (\ s a -> s{_crGatewayARN = a});
@@ -89,9 +88,9 @@
                  CancelRetrievalResponse' <$>
                    (x .?> "TapeARN") <*> (pure (fromEnum s)))
 
-instance Hashable CancelRetrieval
+instance Hashable CancelRetrieval where
 
-instance NFData CancelRetrieval
+instance NFData CancelRetrieval where
 
 instance ToHeaders CancelRetrieval where
         toHeaders
@@ -122,10 +121,11 @@
 --
 -- /See:/ 'cancelRetrievalResponse' smart constructor.
 data CancelRetrievalResponse = CancelRetrievalResponse'
-    { _crrsTapeARN        :: !(Maybe Text)
-    , _crrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _crrsTapeARN        :: !(Maybe Text)
+  , _crrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CancelRetrievalResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -137,11 +137,10 @@
     :: Int -- ^ 'crrsResponseStatus'
     -> CancelRetrievalResponse
 cancelRetrievalResponse pResponseStatus_ =
-    CancelRetrievalResponse'
-    { _crrsTapeARN = Nothing
-    , _crrsResponseStatus = pResponseStatus_
-    }
+  CancelRetrievalResponse'
+  {_crrsTapeARN = Nothing, _crrsResponseStatus = pResponseStatus_}
 
+
 -- | The Amazon Resource Name (ARN) of the virtual tape for which retrieval was canceled.
 crrsTapeARN :: Lens' CancelRetrievalResponse (Maybe Text)
 crrsTapeARN = lens _crrsTapeARN (\ s a -> s{_crrsTapeARN = a});
@@ -150,4 +149,4 @@
 crrsResponseStatus :: Lens' CancelRetrievalResponse Int
 crrsResponseStatus = lens _crrsResponseStatus (\ s a -> s{_crrsResponseStatus = a});
 
-instance NFData CancelRetrievalResponse
+instance NFData CancelRetrievalResponse where
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,23 +12,26 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.CreateCachediSCSIVolume
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Creates a cached volume on a specified cached gateway. This operation is supported only for the gateway-cached volume architecture.
+-- Creates a cached volume on a specified cached volume gateway. This operation is only supported in the cached volume gateway architecture.
 --
 --
--- In the request, you must specify the gateway, size of the volume in bytes, the iSCSI target name, an IP address on which to expose the target, and a unique client token. In response, AWS Storage Gateway 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.
+-- In the request, you must specify the gateway, size of the volume in bytes, the iSCSI target name, an IP address on which to expose the target, and a unique client token. In response, the gateway creates the volume and returns information about it. This information includes the volume Amazon Resource Name (ARN), its size, and the iSCSI target ARN that initiators can use to connect to the volume target.
 --
+-- Optionally, you can provide the ARN for an existing volume as the @SourceVolumeARN@ for this cached volume, which creates an exact copy of the existing volume’s latest recovery point. The @VolumeSizeInBytes@ value must be equal to or larger than the size of the copied volume, in bytes.
+--
 module Network.AWS.StorageGateway.CreateCachediSCSIVolume
     (
     -- * Creating a Request
       createCachediSCSIVolume
     , CreateCachediSCSIVolume
     -- * Request Lenses
+    , ccscsivSourceVolumeARN
     , ccscsivSnapshotId
     , ccscsivGatewayARN
     , ccscsivVolumeSizeInBytes
@@ -45,27 +48,31 @@
     , ccscsivrsResponseStatus
     ) 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
+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
 
 -- | /See:/ 'createCachediSCSIVolume' smart constructor.
 data CreateCachediSCSIVolume = CreateCachediSCSIVolume'
-    { _ccscsivSnapshotId         :: !(Maybe Text)
-    , _ccscsivGatewayARN         :: !Text
-    , _ccscsivVolumeSizeInBytes  :: !Integer
-    , _ccscsivTargetName         :: !Text
-    , _ccscsivNetworkInterfaceId :: !Text
-    , _ccscsivClientToken        :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ccscsivSourceVolumeARN    :: !(Maybe Text)
+  , _ccscsivSnapshotId         :: !(Maybe Text)
+  , _ccscsivGatewayARN         :: !Text
+  , _ccscsivVolumeSizeInBytes  :: !Integer
+  , _ccscsivTargetName         :: !Text
+  , _ccscsivNetworkInterfaceId :: !Text
+  , _ccscsivClientToken        :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateCachediSCSIVolume' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
+-- * 'ccscsivSourceVolumeARN' - The ARN for an existing volume. Specifying this ARN makes the new volume into an exact copy of the specified existing volume's latest recovery point. The @VolumeSizeInBytes@ value for this new volume must be equal to or larger than the size of the existing volume, in bytes.
+--
 -- * 'ccscsivSnapshotId' - Undocumented member.
 --
 -- * 'ccscsivGatewayARN' - Undocumented member.
@@ -85,15 +92,21 @@
     -> Text -- ^ 'ccscsivClientToken'
     -> CreateCachediSCSIVolume
 createCachediSCSIVolume pGatewayARN_ pVolumeSizeInBytes_ pTargetName_ pNetworkInterfaceId_ pClientToken_ =
-    CreateCachediSCSIVolume'
-    { _ccscsivSnapshotId = Nothing
-    , _ccscsivGatewayARN = pGatewayARN_
-    , _ccscsivVolumeSizeInBytes = pVolumeSizeInBytes_
-    , _ccscsivTargetName = pTargetName_
-    , _ccscsivNetworkInterfaceId = pNetworkInterfaceId_
-    , _ccscsivClientToken = pClientToken_
-    }
+  CreateCachediSCSIVolume'
+  { _ccscsivSourceVolumeARN = Nothing
+  , _ccscsivSnapshotId = Nothing
+  , _ccscsivGatewayARN = pGatewayARN_
+  , _ccscsivVolumeSizeInBytes = pVolumeSizeInBytes_
+  , _ccscsivTargetName = pTargetName_
+  , _ccscsivNetworkInterfaceId = pNetworkInterfaceId_
+  , _ccscsivClientToken = pClientToken_
+  }
 
+
+-- | The ARN for an existing volume. Specifying this ARN makes the new volume into an exact copy of the specified existing volume's latest recovery point. The @VolumeSizeInBytes@ value for this new volume must be equal to or larger than the size of the existing volume, in bytes.
+ccscsivSourceVolumeARN :: Lens' CreateCachediSCSIVolume (Maybe Text)
+ccscsivSourceVolumeARN = lens _ccscsivSourceVolumeARN (\ s a -> s{_ccscsivSourceVolumeARN = a});
+
 -- | Undocumented member.
 ccscsivSnapshotId :: Lens' CreateCachediSCSIVolume (Maybe Text)
 ccscsivSnapshotId = lens _ccscsivSnapshotId (\ s a -> s{_ccscsivSnapshotId = a});
@@ -129,9 +142,9 @@
                    (x .?> "TargetARN") <*> (x .?> "VolumeARN") <*>
                      (pure (fromEnum s)))
 
-instance Hashable CreateCachediSCSIVolume
+instance Hashable CreateCachediSCSIVolume where
 
-instance NFData CreateCachediSCSIVolume
+instance NFData CreateCachediSCSIVolume where
 
 instance ToHeaders CreateCachediSCSIVolume where
         toHeaders
@@ -147,7 +160,8 @@
         toJSON CreateCachediSCSIVolume'{..}
           = object
               (catMaybes
-                 [("SnapshotId" .=) <$> _ccscsivSnapshotId,
+                 [("SourceVolumeARN" .=) <$> _ccscsivSourceVolumeARN,
+                  ("SnapshotId" .=) <$> _ccscsivSnapshotId,
                   Just ("GatewayARN" .= _ccscsivGatewayARN),
                   Just
                     ("VolumeSizeInBytes" .= _ccscsivVolumeSizeInBytes),
@@ -164,11 +178,12 @@
 
 -- | /See:/ 'createCachediSCSIVolumeResponse' smart constructor.
 data CreateCachediSCSIVolumeResponse = CreateCachediSCSIVolumeResponse'
-    { _ccscsivrsTargetARN      :: !(Maybe Text)
-    , _ccscsivrsVolumeARN      :: !(Maybe Text)
-    , _ccscsivrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ccscsivrsTargetARN      :: !(Maybe Text)
+  , _ccscsivrsVolumeARN      :: !(Maybe Text)
+  , _ccscsivrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateCachediSCSIVolumeResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -182,12 +197,13 @@
     :: Int -- ^ 'ccscsivrsResponseStatus'
     -> CreateCachediSCSIVolumeResponse
 createCachediSCSIVolumeResponse pResponseStatus_ =
-    CreateCachediSCSIVolumeResponse'
-    { _ccscsivrsTargetARN = Nothing
-    , _ccscsivrsVolumeARN = Nothing
-    , _ccscsivrsResponseStatus = pResponseStatus_
-    }
+  CreateCachediSCSIVolumeResponse'
+  { _ccscsivrsTargetARN = Nothing
+  , _ccscsivrsVolumeARN = Nothing
+  , _ccscsivrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Undocumented member.
 ccscsivrsTargetARN :: Lens' CreateCachediSCSIVolumeResponse (Maybe Text)
 ccscsivrsTargetARN = lens _ccscsivrsTargetARN (\ s a -> s{_ccscsivrsTargetARN = a});
@@ -200,4 +216,4 @@
 ccscsivrsResponseStatus :: Lens' CreateCachediSCSIVolumeResponse Int
 ccscsivrsResponseStatus = lens _ccscsivrsResponseStatus (\ s a -> s{_ccscsivrsResponseStatus = a});
 
-instance NFData CreateCachediSCSIVolumeResponse
+instance NFData CreateCachediSCSIVolumeResponse where
diff --git a/gen/Network/AWS/StorageGateway/CreateNFSFileShare.hs b/gen/Network/AWS/StorageGateway/CreateNFSFileShare.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/StorageGateway/CreateNFSFileShare.hs
@@ -0,0 +1,254 @@
+{-# 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.CreateNFSFileShare
+-- Copyright   : (c) 2013-2017 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a file share on an existing file gateway. In Storage Gateway, a file share is a file system mount point backed by Amazon S3 cloud storage. Storage Gateway exposes file shares using a Network File System (NFS) interface. This operation is only supported in the file gateway architecture.
+--
+--
+-- /Important:/ File gateway requires AWS Security Token Service (AWS STS) to be activated to enable you create a file share. Make sure AWS STS is activated in the region you are creating your file gateway in. If AWS STS is not activated in the region, activate it. For information about how to activate AWS STS, see Activating and Deactivating AWS STS in an AWS Region in the AWS Identity and Access Management User Guide.
+--
+-- File gateway does not support creating hard or symbolic links on a file share.
+--
+module Network.AWS.StorageGateway.CreateNFSFileShare
+    (
+    -- * Creating a Request
+      createNFSFileShare
+    , CreateNFSFileShare
+    -- * Request Lenses
+    , cnfsfsKMSKey
+    , cnfsfsKMSEncrypted
+    , cnfsfsDefaultStorageClass
+    , cnfsfsSquash
+    , cnfsfsNFSFileShareDefaults
+    , cnfsfsClientList
+    , cnfsfsReadOnly
+    , cnfsfsClientToken
+    , cnfsfsGatewayARN
+    , cnfsfsRole
+    , cnfsfsLocationARN
+
+    -- * Destructuring the Response
+    , createNFSFileShareResponse
+    , CreateNFSFileShareResponse
+    -- * Response Lenses
+    , cnfsfsrsFileShareARN
+    , cnfsfsrsResponseStatus
+    ) 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
+
+-- | CreateNFSFileShareInput
+--
+--
+--
+-- /See:/ 'createNFSFileShare' smart constructor.
+data CreateNFSFileShare = CreateNFSFileShare'
+  { _cnfsfsKMSKey               :: !(Maybe Text)
+  , _cnfsfsKMSEncrypted         :: !(Maybe Bool)
+  , _cnfsfsDefaultStorageClass  :: !(Maybe Text)
+  , _cnfsfsSquash               :: !(Maybe Text)
+  , _cnfsfsNFSFileShareDefaults :: !(Maybe NFSFileShareDefaults)
+  , _cnfsfsClientList           :: !(Maybe (List1 Text))
+  , _cnfsfsReadOnly             :: !(Maybe Bool)
+  , _cnfsfsClientToken          :: !Text
+  , _cnfsfsGatewayARN           :: !Text
+  , _cnfsfsRole                 :: !Text
+  , _cnfsfsLocationARN          :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CreateNFSFileShare' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cnfsfsKMSKey' - The KMS key used for Amazon S3 server side encryption. This value can only be set when KmsEncrypted is true. Optional.
+--
+-- * 'cnfsfsKMSEncrypted' - True to use Amazon S3 server side encryption with your own AWS KMS key, or false to use a key managed by Amazon S3. Optional.
+--
+-- * 'cnfsfsDefaultStorageClass' - The default storage class for objects put into an Amazon S3 bucket by file gateway. Possible values are S3_STANDARD or S3_STANDARD_IA. If this field is not populated, the default value S3_STANDARD is used. Optional.
+--
+-- * 'cnfsfsSquash' - Maps a user to anonymous user. Valid options are the following:      * "RootSquash" - Only root is mapped to anonymous user.     * "NoSquash" - No one is mapped to anonymous user.     * "AllSquash" - Everyone is mapped to anonymous user.
+--
+-- * 'cnfsfsNFSFileShareDefaults' - File share default values. Optional.
+--
+-- * 'cnfsfsClientList' - The list of clients that are allowed to access the file gateway. The list must contain either valid IP addresses or valid CIDR blocks.
+--
+-- * 'cnfsfsReadOnly' - Sets the write status of a file share: "true" if the write status is read-only, and otherwise "false".
+--
+-- * 'cnfsfsClientToken' - A unique string value that you supply that is used by file gateway to ensure idempotent file share creation.
+--
+-- * 'cnfsfsGatewayARN' - The Amazon Resource Name (ARN) of the file gateway on which you want to create a file share.
+--
+-- * 'cnfsfsRole' - The ARN of the AWS Identity and Access Management (IAM) role that a file gateway assumes when it accesses the underlying storage.
+--
+-- * 'cnfsfsLocationARN' - The ARN of the backed storage used for storing file data.
+createNFSFileShare
+    :: Text -- ^ 'cnfsfsClientToken'
+    -> Text -- ^ 'cnfsfsGatewayARN'
+    -> Text -- ^ 'cnfsfsRole'
+    -> Text -- ^ 'cnfsfsLocationARN'
+    -> CreateNFSFileShare
+createNFSFileShare pClientToken_ pGatewayARN_ pRole_ pLocationARN_ =
+  CreateNFSFileShare'
+  { _cnfsfsKMSKey = Nothing
+  , _cnfsfsKMSEncrypted = Nothing
+  , _cnfsfsDefaultStorageClass = Nothing
+  , _cnfsfsSquash = Nothing
+  , _cnfsfsNFSFileShareDefaults = Nothing
+  , _cnfsfsClientList = Nothing
+  , _cnfsfsReadOnly = Nothing
+  , _cnfsfsClientToken = pClientToken_
+  , _cnfsfsGatewayARN = pGatewayARN_
+  , _cnfsfsRole = pRole_
+  , _cnfsfsLocationARN = pLocationARN_
+  }
+
+
+-- | The KMS key used for Amazon S3 server side encryption. This value can only be set when KmsEncrypted is true. Optional.
+cnfsfsKMSKey :: Lens' CreateNFSFileShare (Maybe Text)
+cnfsfsKMSKey = lens _cnfsfsKMSKey (\ s a -> s{_cnfsfsKMSKey = a});
+
+-- | True to use Amazon S3 server side encryption with your own AWS KMS key, or false to use a key managed by Amazon S3. Optional.
+cnfsfsKMSEncrypted :: Lens' CreateNFSFileShare (Maybe Bool)
+cnfsfsKMSEncrypted = lens _cnfsfsKMSEncrypted (\ s a -> s{_cnfsfsKMSEncrypted = a});
+
+-- | The default storage class for objects put into an Amazon S3 bucket by file gateway. Possible values are S3_STANDARD or S3_STANDARD_IA. If this field is not populated, the default value S3_STANDARD is used. Optional.
+cnfsfsDefaultStorageClass :: Lens' CreateNFSFileShare (Maybe Text)
+cnfsfsDefaultStorageClass = lens _cnfsfsDefaultStorageClass (\ s a -> s{_cnfsfsDefaultStorageClass = a});
+
+-- | Maps a user to anonymous user. Valid options are the following:      * "RootSquash" - Only root is mapped to anonymous user.     * "NoSquash" - No one is mapped to anonymous user.     * "AllSquash" - Everyone is mapped to anonymous user.
+cnfsfsSquash :: Lens' CreateNFSFileShare (Maybe Text)
+cnfsfsSquash = lens _cnfsfsSquash (\ s a -> s{_cnfsfsSquash = a});
+
+-- | File share default values. Optional.
+cnfsfsNFSFileShareDefaults :: Lens' CreateNFSFileShare (Maybe NFSFileShareDefaults)
+cnfsfsNFSFileShareDefaults = lens _cnfsfsNFSFileShareDefaults (\ s a -> s{_cnfsfsNFSFileShareDefaults = a});
+
+-- | The list of clients that are allowed to access the file gateway. The list must contain either valid IP addresses or valid CIDR blocks.
+cnfsfsClientList :: Lens' CreateNFSFileShare (Maybe (NonEmpty Text))
+cnfsfsClientList = lens _cnfsfsClientList (\ s a -> s{_cnfsfsClientList = a}) . mapping _List1;
+
+-- | Sets the write status of a file share: "true" if the write status is read-only, and otherwise "false".
+cnfsfsReadOnly :: Lens' CreateNFSFileShare (Maybe Bool)
+cnfsfsReadOnly = lens _cnfsfsReadOnly (\ s a -> s{_cnfsfsReadOnly = a});
+
+-- | A unique string value that you supply that is used by file gateway to ensure idempotent file share creation.
+cnfsfsClientToken :: Lens' CreateNFSFileShare Text
+cnfsfsClientToken = lens _cnfsfsClientToken (\ s a -> s{_cnfsfsClientToken = a});
+
+-- | The Amazon Resource Name (ARN) of the file gateway on which you want to create a file share.
+cnfsfsGatewayARN :: Lens' CreateNFSFileShare Text
+cnfsfsGatewayARN = lens _cnfsfsGatewayARN (\ s a -> s{_cnfsfsGatewayARN = a});
+
+-- | The ARN of the AWS Identity and Access Management (IAM) role that a file gateway assumes when it accesses the underlying storage.
+cnfsfsRole :: Lens' CreateNFSFileShare Text
+cnfsfsRole = lens _cnfsfsRole (\ s a -> s{_cnfsfsRole = a});
+
+-- | The ARN of the backed storage used for storing file data.
+cnfsfsLocationARN :: Lens' CreateNFSFileShare Text
+cnfsfsLocationARN = lens _cnfsfsLocationARN (\ s a -> s{_cnfsfsLocationARN = a});
+
+instance AWSRequest CreateNFSFileShare where
+        type Rs CreateNFSFileShare =
+             CreateNFSFileShareResponse
+        request = postJSON storageGateway
+        response
+          = receiveJSON
+              (\ s h x ->
+                 CreateNFSFileShareResponse' <$>
+                   (x .?> "FileShareARN") <*> (pure (fromEnum s)))
+
+instance Hashable CreateNFSFileShare where
+
+instance NFData CreateNFSFileShare where
+
+instance ToHeaders CreateNFSFileShare where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("StorageGateway_20130630.CreateNFSFileShare" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON CreateNFSFileShare where
+        toJSON CreateNFSFileShare'{..}
+          = object
+              (catMaybes
+                 [("KMSKey" .=) <$> _cnfsfsKMSKey,
+                  ("KMSEncrypted" .=) <$> _cnfsfsKMSEncrypted,
+                  ("DefaultStorageClass" .=) <$>
+                    _cnfsfsDefaultStorageClass,
+                  ("Squash" .=) <$> _cnfsfsSquash,
+                  ("NFSFileShareDefaults" .=) <$>
+                    _cnfsfsNFSFileShareDefaults,
+                  ("ClientList" .=) <$> _cnfsfsClientList,
+                  ("ReadOnly" .=) <$> _cnfsfsReadOnly,
+                  Just ("ClientToken" .= _cnfsfsClientToken),
+                  Just ("GatewayARN" .= _cnfsfsGatewayARN),
+                  Just ("Role" .= _cnfsfsRole),
+                  Just ("LocationARN" .= _cnfsfsLocationARN)])
+
+instance ToPath CreateNFSFileShare where
+        toPath = const "/"
+
+instance ToQuery CreateNFSFileShare where
+        toQuery = const mempty
+
+-- | CreateNFSFileShareOutput
+--
+--
+--
+-- /See:/ 'createNFSFileShareResponse' smart constructor.
+data CreateNFSFileShareResponse = CreateNFSFileShareResponse'
+  { _cnfsfsrsFileShareARN   :: !(Maybe Text)
+  , _cnfsfsrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'CreateNFSFileShareResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cnfsfsrsFileShareARN' - The Amazon Resource Name (ARN) of the newly created file share.
+--
+-- * 'cnfsfsrsResponseStatus' - -- | The response status code.
+createNFSFileShareResponse
+    :: Int -- ^ 'cnfsfsrsResponseStatus'
+    -> CreateNFSFileShareResponse
+createNFSFileShareResponse pResponseStatus_ =
+  CreateNFSFileShareResponse'
+  {_cnfsfsrsFileShareARN = Nothing, _cnfsfsrsResponseStatus = pResponseStatus_}
+
+
+-- | The Amazon Resource Name (ARN) of the newly created file share.
+cnfsfsrsFileShareARN :: Lens' CreateNFSFileShareResponse (Maybe Text)
+cnfsfsrsFileShareARN = lens _cnfsfsrsFileShareARN (\ s a -> s{_cnfsfsrsFileShareARN = a});
+
+-- | -- | The response status code.
+cnfsfsrsResponseStatus :: Lens' CreateNFSFileShareResponse Int
+cnfsfsrsResponseStatus = lens _cnfsfsrsResponseStatus (\ s a -> s{_cnfsfsrsResponseStatus = a});
+
+instance NFData CreateNFSFileShareResponse where
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,18 +12,18 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.CreateSnapshot
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Initiates a snapshot of a volume.
 --
 --
--- AWS Storage Gateway provides the ability to back up point-in-time snapshots of your data to Amazon Simple Storage (S3) for durable off-site recovery, as well as import the data to an Amazon Elastic Block Store (EBS) volume in Amazon Elastic Compute Cloud (EC2). You can take snapshots of your gateway volume on a scheduled or ad-hoc basis. This API enables you to take ad-hoc snapshot. For more information, see <http://docs.aws.amazon.com/storagegateway/latest/userguide/WorkingWithSnapshots.html Working With Snapshots in the AWS Storage Gateway Console> .
+-- AWS Storage Gateway provides the ability to back up point-in-time snapshots of your data to Amazon Simple Storage (S3) for durable off-site recovery, as well as import the data to an Amazon Elastic Block Store (EBS) volume in Amazon Elastic Compute Cloud (EC2). You can take snapshots of your gateway volume on a scheduled or ad-hoc basis. This API enables you to take ad-hoc snapshot. For more information, see <http://docs.aws.amazon.com/storagegateway/latest/userguide/managing-volumes.html#SchedulingSnapshot Editing a Snapshot Schedule> .
 --
--- In the CreateSnapshot request you identify the volume by providing its Amazon Resource Name (ARN). You must also provide description for the snapshot. When AWS Storage Gateway takes the snapshot of specified volume, the snapshot and description appears in the AWS Storage Gateway Console. In response, AWS Storage Gateway returns you a snapshot ID. You can use this snapshot ID to check the snapshot progress or later use it when you want to create a volume from a snapshot.
+-- In the CreateSnapshot request you identify the volume by providing its Amazon Resource Name (ARN). You must also provide description for the snapshot. When AWS Storage Gateway takes the snapshot of specified volume, the snapshot and description appears in the AWS Storage Gateway Console. In response, AWS Storage Gateway returns you a snapshot ID. You can use this snapshot ID to check the snapshot progress or later use it when you want to create a volume from a snapshot. This operation is only supported in stored and cached volume gateway architecture.
 --
 -- /Important:/ Volume and snapshot IDs are changing to a longer length ID format. For more information, see the important note on the <http://docs.aws.amazon.com/storagegateway/latest/APIReference/Welcome.html Welcome> page.
 --
@@ -45,12 +45,12 @@
     , csrsResponseStatus
     ) 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
+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
 
 -- | A JSON object containing one or more of the following fields:
 --
@@ -64,10 +64,11 @@
 --
 -- /See:/ 'createSnapshot' smart constructor.
 data CreateSnapshot = CreateSnapshot'
-    { _csVolumeARN           :: !Text
-    , _csSnapshotDescription :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _csVolumeARN           :: !Text
+  , _csSnapshotDescription :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateSnapshot' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -80,11 +81,10 @@
     -> Text -- ^ 'csSnapshotDescription'
     -> CreateSnapshot
 createSnapshot pVolumeARN_ pSnapshotDescription_ =
-    CreateSnapshot'
-    { _csVolumeARN = pVolumeARN_
-    , _csSnapshotDescription = pSnapshotDescription_
-    }
+  CreateSnapshot'
+  {_csVolumeARN = pVolumeARN_, _csSnapshotDescription = pSnapshotDescription_}
 
+
 -- | 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});
@@ -103,9 +103,9 @@
                    (x .?> "VolumeARN") <*> (x .?> "SnapshotId") <*>
                      (pure (fromEnum s)))
 
-instance Hashable CreateSnapshot
+instance Hashable CreateSnapshot where
 
-instance NFData CreateSnapshot
+instance NFData CreateSnapshot where
 
 instance ToHeaders CreateSnapshot where
         toHeaders
@@ -137,11 +137,12 @@
 --
 -- /See:/ 'createSnapshotResponse' smart constructor.
 data CreateSnapshotResponse = CreateSnapshotResponse'
-    { _csrsVolumeARN      :: !(Maybe Text)
-    , _csrsSnapshotId     :: !(Maybe Text)
-    , _csrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _csrsVolumeARN      :: !(Maybe Text)
+  , _csrsSnapshotId     :: !(Maybe Text)
+  , _csrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateSnapshotResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -155,12 +156,13 @@
     :: Int -- ^ 'csrsResponseStatus'
     -> CreateSnapshotResponse
 createSnapshotResponse pResponseStatus_ =
-    CreateSnapshotResponse'
-    { _csrsVolumeARN = Nothing
-    , _csrsSnapshotId = Nothing
-    , _csrsResponseStatus = pResponseStatus_
-    }
+  CreateSnapshotResponse'
+  { _csrsVolumeARN = Nothing
+  , _csrsSnapshotId = Nothing
+  , _csrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | The Amazon Resource Name (ARN) of the volume of which the snapshot was taken.
 csrsVolumeARN :: Lens' CreateSnapshotResponse (Maybe Text)
 csrsVolumeARN = lens _csrsVolumeARN (\ s a -> s{_csrsVolumeARN = a});
@@ -173,4 +175,4 @@
 csrsResponseStatus :: Lens' CreateSnapshotResponse Int
 csrsResponseStatus = lens _csrsResponseStatus (\ s a -> s{_csrsResponseStatus = a});
 
-instance NFData CreateSnapshotResponse
+instance NFData CreateSnapshotResponse where
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,18 +12,18 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.CreateSnapshotFromVolumeRecoveryPoint
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Initiates a snapshot of a gateway from a volume recovery point. This operation is supported only for the gateway-cached volume architecture.
+-- Initiates a snapshot of a gateway from a volume recovery point. This operation is only supported in the cached volume gateway architecture.
 --
 --
--- 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' .
+-- 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 cached volume gateway, use 'ListVolumeRecoveryPoints' .
 --
--- In the @CreateSnapshotFromVolumeRecoveryPoint@ request, you identify the volume by providing its Amazon Resource Name (ARN). You must also provide a description for the snapshot. When AWS Storage Gateway takes a snapshot of the specified volume, the snapshot and its description appear in the AWS Storage Gateway console. In response, AWS Storage Gateway returns you a snapshot ID. You can use this snapshot ID to check the snapshot progress or later use it when you want to create a volume from a snapshot.
+-- In the @CreateSnapshotFromVolumeRecoveryPoint@ request, you identify the volume by providing its Amazon Resource Name (ARN). You must also provide a description for the snapshot. When the gateway takes a snapshot of the specified volume, the snapshot and its description appear in the AWS Storage Gateway console. In response, the gateway returns you a snapshot ID. You can use this snapshot ID to check the snapshot progress or later use it when you want to create a volume from a snapshot.
 --
 module Network.AWS.StorageGateway.CreateSnapshotFromVolumeRecoveryPoint
     (
@@ -44,19 +44,20 @@
     , csfvrprsResponseStatus
     ) 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
+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
 
 -- | /See:/ 'createSnapshotFromVolumeRecoveryPoint' smart constructor.
 data CreateSnapshotFromVolumeRecoveryPoint = CreateSnapshotFromVolumeRecoveryPoint'
-    { _csfvrpVolumeARN           :: !Text
-    , _csfvrpSnapshotDescription :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _csfvrpVolumeARN           :: !Text
+  , _csfvrpSnapshotDescription :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateSnapshotFromVolumeRecoveryPoint' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -69,11 +70,12 @@
     -> Text -- ^ 'csfvrpSnapshotDescription'
     -> CreateSnapshotFromVolumeRecoveryPoint
 createSnapshotFromVolumeRecoveryPoint pVolumeARN_ pSnapshotDescription_ =
-    CreateSnapshotFromVolumeRecoveryPoint'
-    { _csfvrpVolumeARN = pVolumeARN_
-    , _csfvrpSnapshotDescription = pSnapshotDescription_
-    }
+  CreateSnapshotFromVolumeRecoveryPoint'
+  { _csfvrpVolumeARN = pVolumeARN_
+  , _csfvrpSnapshotDescription = pSnapshotDescription_
+  }
 
+
 -- | Undocumented member.
 csfvrpVolumeARN :: Lens' CreateSnapshotFromVolumeRecoveryPoint Text
 csfvrpVolumeARN = lens _csfvrpVolumeARN (\ s a -> s{_csfvrpVolumeARN = a});
@@ -83,7 +85,8 @@
 csfvrpSnapshotDescription = lens _csfvrpSnapshotDescription (\ s a -> s{_csfvrpSnapshotDescription = a});
 
 instance AWSRequest
-         CreateSnapshotFromVolumeRecoveryPoint where
+           CreateSnapshotFromVolumeRecoveryPoint
+         where
         type Rs CreateSnapshotFromVolumeRecoveryPoint =
              CreateSnapshotFromVolumeRecoveryPointResponse
         request = postJSON storageGateway
@@ -97,12 +100,15 @@
                      <*> (pure (fromEnum s)))
 
 instance Hashable
-         CreateSnapshotFromVolumeRecoveryPoint
+           CreateSnapshotFromVolumeRecoveryPoint
+         where
 
 instance NFData CreateSnapshotFromVolumeRecoveryPoint
+         where
 
 instance ToHeaders
-         CreateSnapshotFromVolumeRecoveryPoint where
+           CreateSnapshotFromVolumeRecoveryPoint
+         where
         toHeaders
           = const
               (mconcat
@@ -127,17 +133,19 @@
         toPath = const "/"
 
 instance ToQuery
-         CreateSnapshotFromVolumeRecoveryPoint where
+           CreateSnapshotFromVolumeRecoveryPoint
+         where
         toQuery = const mempty
 
 -- | /See:/ 'createSnapshotFromVolumeRecoveryPointResponse' smart constructor.
 data CreateSnapshotFromVolumeRecoveryPointResponse = CreateSnapshotFromVolumeRecoveryPointResponse'
-    { _csfvrprsVolumeRecoveryPointTime :: !(Maybe Text)
-    , _csfvrprsVolumeARN               :: !(Maybe Text)
-    , _csfvrprsSnapshotId              :: !(Maybe Text)
-    , _csfvrprsResponseStatus          :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _csfvrprsVolumeRecoveryPointTime :: !(Maybe Text)
+  , _csfvrprsVolumeARN               :: !(Maybe Text)
+  , _csfvrprsSnapshotId              :: !(Maybe Text)
+  , _csfvrprsResponseStatus          :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateSnapshotFromVolumeRecoveryPointResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -153,13 +161,14 @@
     :: Int -- ^ 'csfvrprsResponseStatus'
     -> CreateSnapshotFromVolumeRecoveryPointResponse
 createSnapshotFromVolumeRecoveryPointResponse pResponseStatus_ =
-    CreateSnapshotFromVolumeRecoveryPointResponse'
-    { _csfvrprsVolumeRecoveryPointTime = Nothing
-    , _csfvrprsVolumeARN = Nothing
-    , _csfvrprsSnapshotId = Nothing
-    , _csfvrprsResponseStatus = pResponseStatus_
-    }
+  CreateSnapshotFromVolumeRecoveryPointResponse'
+  { _csfvrprsVolumeRecoveryPointTime = Nothing
+  , _csfvrprsVolumeARN = Nothing
+  , _csfvrprsSnapshotId = Nothing
+  , _csfvrprsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Undocumented member.
 csfvrprsVolumeRecoveryPointTime :: Lens' CreateSnapshotFromVolumeRecoveryPointResponse (Maybe Text)
 csfvrprsVolumeRecoveryPointTime = lens _csfvrprsVolumeRecoveryPointTime (\ s a -> s{_csfvrprsVolumeRecoveryPointTime = a});
@@ -177,4 +186,5 @@
 csfvrprsResponseStatus = lens _csfvrprsResponseStatus (\ s a -> s{_csfvrprsResponseStatus = a});
 
 instance NFData
-         CreateSnapshotFromVolumeRecoveryPointResponse
+           CreateSnapshotFromVolumeRecoveryPointResponse
+         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,18 +12,18 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.CreateStorediSCSIVolume
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Creates a volume on a specified gateway. This operation is supported only for the gateway-stored volume architecture.
+-- Creates a volume on a specified gateway. This operation is only supported in the stored volume gateway architecture.
 --
 --
 -- The size of the volume to create is inferred from the disk size. You can choose to preserve existing data on the disk, create volume from an existing snapshot, or create an empty volume. If you choose to create an empty gateway volume, then any existing data on the disk is erased.
 --
--- In the request you must specify the gateway and the disk information on which you are creating the volume. In response, AWS Storage Gateway 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.
+-- In the request you must specify the gateway and the disk information on which you are creating the volume. In response, the gateway 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.
 --
 module Network.AWS.StorageGateway.CreateStorediSCSIVolume
     (
@@ -48,12 +48,12 @@
     , csscsivrsResponseStatus
     ) 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
+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
 
 -- | A JSON object containing one or more of the following fields:
 --
@@ -73,14 +73,15 @@
 --
 -- /See:/ 'createStorediSCSIVolume' smart constructor.
 data CreateStorediSCSIVolume = CreateStorediSCSIVolume'
-    { _csscsivSnapshotId           :: !(Maybe Text)
-    , _csscsivGatewayARN           :: !Text
-    , _csscsivDiskId               :: !Text
-    , _csscsivPreserveExistingData :: !Bool
-    , _csscsivTargetName           :: !Text
-    , _csscsivNetworkInterfaceId   :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _csscsivSnapshotId           :: !(Maybe Text)
+  , _csscsivGatewayARN           :: !Text
+  , _csscsivDiskId               :: !Text
+  , _csscsivPreserveExistingData :: !Bool
+  , _csscsivTargetName           :: !Text
+  , _csscsivNetworkInterfaceId   :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateStorediSCSIVolume' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -93,7 +94,7 @@
 --
 -- * 'csscsivPreserveExistingData' - Specify this field as true if you want to preserve the data on the local disk. Otherwise, specifying this field as false creates an empty volume. Valid Values: true, false
 --
--- * 'csscsivTargetName' - 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/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume. The target name must be unique across all volumes of a gateway.
+-- * 'csscsivTargetName' - 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-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume. The target name must be unique across all volumes of a gateway.
 --
 -- * 'csscsivNetworkInterfaceId' - 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. Valid Values: A valid IP address.
 createStorediSCSIVolume
@@ -104,15 +105,16 @@
     -> Text -- ^ 'csscsivNetworkInterfaceId'
     -> CreateStorediSCSIVolume
 createStorediSCSIVolume pGatewayARN_ pDiskId_ pPreserveExistingData_ pTargetName_ pNetworkInterfaceId_ =
-    CreateStorediSCSIVolume'
-    { _csscsivSnapshotId = Nothing
-    , _csscsivGatewayARN = pGatewayARN_
-    , _csscsivDiskId = pDiskId_
-    , _csscsivPreserveExistingData = pPreserveExistingData_
-    , _csscsivTargetName = pTargetName_
-    , _csscsivNetworkInterfaceId = pNetworkInterfaceId_
-    }
+  CreateStorediSCSIVolume'
+  { _csscsivSnapshotId = Nothing
+  , _csscsivGatewayARN = pGatewayARN_
+  , _csscsivDiskId = pDiskId_
+  , _csscsivPreserveExistingData = pPreserveExistingData_
+  , _csscsivTargetName = pTargetName_
+  , _csscsivNetworkInterfaceId = pNetworkInterfaceId_
+  }
 
+
 -- | The snapshot ID (e.g. "snap-1122aabb") of the snapshot to restore as the new stored volume. Specify this field if you want to create the iSCSI storage volume from a snapshot otherwise do not include this field. To list snapshots for your account use <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html DescribeSnapshots> in the /Amazon Elastic Compute Cloud API Reference/ .
 csscsivSnapshotId :: Lens' CreateStorediSCSIVolume (Maybe Text)
 csscsivSnapshotId = lens _csscsivSnapshotId (\ s a -> s{_csscsivSnapshotId = a});
@@ -129,7 +131,7 @@
 csscsivPreserveExistingData :: Lens' CreateStorediSCSIVolume Bool
 csscsivPreserveExistingData = lens _csscsivPreserveExistingData (\ s a -> s{_csscsivPreserveExistingData = a});
 
--- | 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/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume. The target name must be unique across all volumes of a gateway.
+-- | 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-2: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});
 
@@ -149,9 +151,9 @@
                      (x .?> "VolumeSizeInBytes")
                      <*> (pure (fromEnum s)))
 
-instance Hashable CreateStorediSCSIVolume
+instance Hashable CreateStorediSCSIVolume where
 
-instance NFData CreateStorediSCSIVolume
+instance NFData CreateStorediSCSIVolume where
 
 instance ToHeaders CreateStorediSCSIVolume where
         toHeaders
@@ -190,12 +192,13 @@
 --
 -- /See:/ 'createStorediSCSIVolumeResponse' smart constructor.
 data CreateStorediSCSIVolumeResponse = CreateStorediSCSIVolumeResponse'
-    { _csscsivrsTargetARN         :: !(Maybe Text)
-    , _csscsivrsVolumeARN         :: !(Maybe Text)
-    , _csscsivrsVolumeSizeInBytes :: !(Maybe Integer)
-    , _csscsivrsResponseStatus    :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _csscsivrsTargetARN         :: !(Maybe Text)
+  , _csscsivrsVolumeARN         :: !(Maybe Text)
+  , _csscsivrsVolumeSizeInBytes :: !(Maybe Integer)
+  , _csscsivrsResponseStatus    :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateStorediSCSIVolumeResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -211,13 +214,14 @@
     :: Int -- ^ 'csscsivrsResponseStatus'
     -> CreateStorediSCSIVolumeResponse
 createStorediSCSIVolumeResponse pResponseStatus_ =
-    CreateStorediSCSIVolumeResponse'
-    { _csscsivrsTargetARN = Nothing
-    , _csscsivrsVolumeARN = Nothing
-    , _csscsivrsVolumeSizeInBytes = Nothing
-    , _csscsivrsResponseStatus = pResponseStatus_
-    }
+  CreateStorediSCSIVolumeResponse'
+  { _csscsivrsTargetARN = Nothing
+  , _csscsivrsVolumeARN = Nothing
+  , _csscsivrsVolumeSizeInBytes = Nothing
+  , _csscsivrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | he Amazon Resource Name (ARN) of the volume target that includes the iSCSI name that initiators can use to connect to the target.
 csscsivrsTargetARN :: Lens' CreateStorediSCSIVolumeResponse (Maybe Text)
 csscsivrsTargetARN = lens _csscsivrsTargetARN (\ s a -> s{_csscsivrsTargetARN = a});
@@ -234,4 +238,4 @@
 csscsivrsResponseStatus :: Lens' CreateStorediSCSIVolumeResponse Int
 csscsivrsResponseStatus = lens _csscsivrsResponseStatus (\ s a -> s{_csscsivrsResponseStatus = a});
 
-instance NFData CreateStorediSCSIVolumeResponse
+instance NFData CreateStorediSCSIVolumeResponse where
diff --git a/gen/Network/AWS/StorageGateway/CreateTapeWithBarcode.hs b/gen/Network/AWS/StorageGateway/CreateTapeWithBarcode.hs
--- a/gen/Network/AWS/StorageGateway/CreateTapeWithBarcode.hs
+++ b/gen/Network/AWS/StorageGateway/CreateTapeWithBarcode.hs
@@ -12,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.CreateTapeWithBarcode
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@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.
+-- Creates a virtual tape by using your own barcode. You write data to the virtual tape and then archive the tape. A barcode is unique and can not be reused if it has already been used on a tape . This applies to barcodes used on deleted tapes. This operation is only supported in the tape gateway. architecture.
 --
 --
 module Network.AWS.StorageGateway.CreateTapeWithBarcode
@@ -39,12 +39,12 @@
     , 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
+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
 --
@@ -52,11 +52,12 @@
 --
 -- /See:/ 'createTapeWithBarcode' smart constructor.
 data CreateTapeWithBarcode = CreateTapeWithBarcode'
-    { _ctwbGatewayARN      :: !Text
-    , _ctwbTapeSizeInBytes :: !Integer
-    , _ctwbTapeBarcode     :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _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:
@@ -72,12 +73,13 @@
     -> Text -- ^ 'ctwbTapeBarcode'
     -> CreateTapeWithBarcode
 createTapeWithBarcode pGatewayARN_ pTapeSizeInBytes_ pTapeBarcode_ =
-    CreateTapeWithBarcode'
-    { _ctwbGatewayARN = pGatewayARN_
-    , _ctwbTapeSizeInBytes = pTapeSizeInBytes_
-    , _ctwbTapeBarcode = 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});
@@ -100,9 +102,9 @@
                  CreateTapeWithBarcodeResponse' <$>
                    (x .?> "TapeARN") <*> (pure (fromEnum s)))
 
-instance Hashable CreateTapeWithBarcode
+instance Hashable CreateTapeWithBarcode where
 
-instance NFData CreateTapeWithBarcode
+instance NFData CreateTapeWithBarcode where
 
 instance ToHeaders CreateTapeWithBarcode where
         toHeaders
@@ -134,10 +136,11 @@
 --
 -- /See:/ 'createTapeWithBarcodeResponse' smart constructor.
 data CreateTapeWithBarcodeResponse = CreateTapeWithBarcodeResponse'
-    { _ctwbrsTapeARN        :: !(Maybe Text)
-    , _ctwbrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _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:
@@ -149,11 +152,10 @@
     :: Int -- ^ 'ctwbrsResponseStatus'
     -> CreateTapeWithBarcodeResponse
 createTapeWithBarcodeResponse pResponseStatus_ =
-    CreateTapeWithBarcodeResponse'
-    { _ctwbrsTapeARN = Nothing
-    , _ctwbrsResponseStatus = 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});
@@ -162,4 +164,4 @@
 ctwbrsResponseStatus :: Lens' CreateTapeWithBarcodeResponse Int
 ctwbrsResponseStatus = lens _ctwbrsResponseStatus (\ s a -> s{_ctwbrsResponseStatus = a});
 
-instance NFData CreateTapeWithBarcodeResponse
+instance NFData CreateTapeWithBarcodeResponse where
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,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.CreateTapes
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Creates one or more virtual tapes. You write data to the virtual tapes and then archive the tapes.
+-- Creates one or more virtual tapes. You write data to the virtual tapes and then archive the tapes. This operation is only supported in the tape gateway architecture.
 --
 --
 module Network.AWS.StorageGateway.CreateTapes
@@ -41,12 +41,12 @@
     , ctrsResponseStatus
     ) 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
+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
 
 -- | CreateTapesInput
 --
@@ -54,13 +54,14 @@
 --
 -- /See:/ 'createTapes' smart constructor.
 data CreateTapes = CreateTapes'
-    { _ctGatewayARN        :: !Text
-    , _ctTapeSizeInBytes   :: !Integer
-    , _ctClientToken       :: !Text
-    , _ctNumTapesToCreate  :: !Nat
-    , _ctTapeBarcodePrefix :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ctGatewayARN        :: !Text
+  , _ctTapeSizeInBytes   :: !Integer
+  , _ctClientToken       :: !Text
+  , _ctNumTapesToCreate  :: !Nat
+  , _ctTapeBarcodePrefix :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateTapes' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -82,14 +83,15 @@
     -> Text -- ^ 'ctTapeBarcodePrefix'
     -> CreateTapes
 createTapes pGatewayARN_ pTapeSizeInBytes_ pClientToken_ pNumTapesToCreate_ pTapeBarcodePrefix_ =
-    CreateTapes'
-    { _ctGatewayARN = pGatewayARN_
-    , _ctTapeSizeInBytes = pTapeSizeInBytes_
-    , _ctClientToken = pClientToken_
-    , _ctNumTapesToCreate = _Nat # pNumTapesToCreate_
-    , _ctTapeBarcodePrefix = pTapeBarcodePrefix_
-    }
+  CreateTapes'
+  { _ctGatewayARN = pGatewayARN_
+  , _ctTapeSizeInBytes = pTapeSizeInBytes_
+  , _ctClientToken = pClientToken_
+  , _ctNumTapesToCreate = _Nat # pNumTapesToCreate_
+  , _ctTapeBarcodePrefix = pTapeBarcodePrefix_
+  }
 
+
 -- | 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});
@@ -120,9 +122,9 @@
                    (x .?> "TapeARNs" .!@ mempty) <*>
                      (pure (fromEnum s)))
 
-instance Hashable CreateTapes
+instance Hashable CreateTapes where
 
-instance NFData CreateTapes
+instance NFData CreateTapes where
 
 instance ToHeaders CreateTapes where
         toHeaders
@@ -156,10 +158,11 @@
 --
 -- /See:/ 'createTapesResponse' smart constructor.
 data CreateTapesResponse = CreateTapesResponse'
-    { _ctrsTapeARNs       :: !(Maybe [Text])
-    , _ctrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ctrsTapeARNs       :: !(Maybe [Text])
+  , _ctrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateTapesResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -171,11 +174,10 @@
     :: Int -- ^ 'ctrsResponseStatus'
     -> CreateTapesResponse
 createTapesResponse pResponseStatus_ =
-    CreateTapesResponse'
-    { _ctrsTapeARNs = Nothing
-    , _ctrsResponseStatus = pResponseStatus_
-    }
+  CreateTapesResponse'
+  {_ctrsTapeARNs = Nothing, _ctrsResponseStatus = pResponseStatus_}
 
+
 -- | 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;
@@ -184,4 +186,4 @@
 ctrsResponseStatus :: Lens' CreateTapesResponse Int
 ctrsResponseStatus = lens _ctrsResponseStatus (\ s a -> s{_ctrsResponseStatus = a});
 
-instance NFData CreateTapesResponse
+instance NFData CreateTapesResponse where
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,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DeleteBandwidthRateLimit
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -38,41 +38,49 @@
     , delrsResponseStatus
     ) 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
+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
 
--- | /See:/ 'deleteBandwidthRateLimit' smart constructor.
+-- | A JSON object containing the following fields:
+--
+--
+--     * 'DeleteBandwidthRateLimitInput$BandwidthType'
+--
+--
+--
+--
+-- /See:/ 'deleteBandwidthRateLimit' smart constructor.
 data DeleteBandwidthRateLimit = DeleteBandwidthRateLimit'
-    { _dbrlbGatewayARN    :: !Text
-    , _dbrlbBandwidthType :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dbrlbGatewayARN    :: !Text
+  , _dbrlbBandwidthType :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteBandwidthRateLimit' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
 -- * 'dbrlbGatewayARN' - Undocumented member.
 --
--- * 'dbrlbBandwidthType' - Undocumented member.
+-- * 'dbrlbBandwidthType' - One of the BandwidthType values that indicates the gateway bandwidth rate limit to delete. Valid Values: @Upload@ , @Download@ , @All@ .
 deleteBandwidthRateLimit
     :: Text -- ^ 'dbrlbGatewayARN'
     -> Text -- ^ 'dbrlbBandwidthType'
     -> DeleteBandwidthRateLimit
 deleteBandwidthRateLimit pGatewayARN_ pBandwidthType_ =
-    DeleteBandwidthRateLimit'
-    { _dbrlbGatewayARN = pGatewayARN_
-    , _dbrlbBandwidthType = pBandwidthType_
-    }
+  DeleteBandwidthRateLimit'
+  {_dbrlbGatewayARN = pGatewayARN_, _dbrlbBandwidthType = pBandwidthType_}
 
+
 -- | Undocumented member.
 dbrlbGatewayARN :: Lens' DeleteBandwidthRateLimit Text
 dbrlbGatewayARN = lens _dbrlbGatewayARN (\ s a -> s{_dbrlbGatewayARN = a});
 
--- | Undocumented member.
+-- | One of the BandwidthType values that indicates the gateway bandwidth rate limit to delete. Valid Values: @Upload@ , @Download@ , @All@ .
 dbrlbBandwidthType :: Lens' DeleteBandwidthRateLimit Text
 dbrlbBandwidthType = lens _dbrlbBandwidthType (\ s a -> s{_dbrlbBandwidthType = a});
 
@@ -86,9 +94,9 @@
                  DeleteBandwidthRateLimitResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
 
-instance Hashable DeleteBandwidthRateLimit
+instance Hashable DeleteBandwidthRateLimit where
 
-instance NFData DeleteBandwidthRateLimit
+instance NFData DeleteBandwidthRateLimit where
 
 instance ToHeaders DeleteBandwidthRateLimit where
         toHeaders
@@ -119,10 +127,11 @@
 --
 -- /See:/ 'deleteBandwidthRateLimitResponse' smart constructor.
 data DeleteBandwidthRateLimitResponse = DeleteBandwidthRateLimitResponse'
-    { _delrsGatewayARN     :: !(Maybe Text)
-    , _delrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _delrsGatewayARN     :: !(Maybe Text)
+  , _delrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteBandwidthRateLimitResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -134,11 +143,10 @@
     :: Int -- ^ 'delrsResponseStatus'
     -> DeleteBandwidthRateLimitResponse
 deleteBandwidthRateLimitResponse pResponseStatus_ =
-    DeleteBandwidthRateLimitResponse'
-    { _delrsGatewayARN = Nothing
-    , _delrsResponseStatus = pResponseStatus_
-    }
+  DeleteBandwidthRateLimitResponse'
+  {_delrsGatewayARN = Nothing, _delrsResponseStatus = pResponseStatus_}
 
+
 -- | Undocumented member.
 delrsGatewayARN :: Lens' DeleteBandwidthRateLimitResponse (Maybe Text)
 delrsGatewayARN = lens _delrsGatewayARN (\ s a -> s{_delrsGatewayARN = a});
@@ -148,3 +156,4 @@
 delrsResponseStatus = lens _delrsResponseStatus (\ s a -> s{_delrsResponseStatus = a});
 
 instance NFData DeleteBandwidthRateLimitResponse
+         where
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,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DeleteChapCredentials
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -39,12 +39,12 @@
     , drsResponseStatus
     ) 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
+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
 
 -- | A JSON object containing one or more of the following fields:
 --
@@ -58,10 +58,11 @@
 --
 -- /See:/ 'deleteChapCredentials' smart constructor.
 data DeleteChapCredentials = DeleteChapCredentials'
-    { _dTargetARN     :: !Text
-    , _dInitiatorName :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dTargetARN     :: !Text
+  , _dInitiatorName :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteChapCredentials' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -74,11 +75,10 @@
     -> Text -- ^ 'dInitiatorName'
     -> DeleteChapCredentials
 deleteChapCredentials pTargetARN_ pInitiatorName_ =
-    DeleteChapCredentials'
-    { _dTargetARN = pTargetARN_
-    , _dInitiatorName = pInitiatorName_
-    }
+  DeleteChapCredentials'
+  {_dTargetARN = pTargetARN_, _dInitiatorName = pInitiatorName_}
 
+
 -- | The Amazon Resource Name (ARN) of the iSCSI volume target. Use the 'DescribeStorediSCSIVolumes' operation to return to retrieve the TargetARN for specified VolumeARN.
 dTargetARN :: Lens' DeleteChapCredentials Text
 dTargetARN = lens _dTargetARN (\ s a -> s{_dTargetARN = a});
@@ -98,9 +98,9 @@
                    (x .?> "TargetARN") <*> (x .?> "InitiatorName") <*>
                      (pure (fromEnum s)))
 
-instance Hashable DeleteChapCredentials
+instance Hashable DeleteChapCredentials where
 
-instance NFData DeleteChapCredentials
+instance NFData DeleteChapCredentials where
 
 instance ToHeaders DeleteChapCredentials where
         toHeaders
@@ -131,11 +131,12 @@
 --
 -- /See:/ 'deleteChapCredentialsResponse' smart constructor.
 data DeleteChapCredentialsResponse = DeleteChapCredentialsResponse'
-    { _drsTargetARN      :: !(Maybe Text)
-    , _drsInitiatorName  :: !(Maybe Text)
-    , _drsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _drsTargetARN      :: !(Maybe Text)
+  , _drsInitiatorName  :: !(Maybe Text)
+  , _drsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteChapCredentialsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -149,12 +150,13 @@
     :: Int -- ^ 'drsResponseStatus'
     -> DeleteChapCredentialsResponse
 deleteChapCredentialsResponse pResponseStatus_ =
-    DeleteChapCredentialsResponse'
-    { _drsTargetARN = Nothing
-    , _drsInitiatorName = Nothing
-    , _drsResponseStatus = pResponseStatus_
-    }
+  DeleteChapCredentialsResponse'
+  { _drsTargetARN = Nothing
+  , _drsInitiatorName = Nothing
+  , _drsResponseStatus = pResponseStatus_
+  }
 
+
 -- | The Amazon Resource Name (ARN) of the target.
 drsTargetARN :: Lens' DeleteChapCredentialsResponse (Maybe Text)
 drsTargetARN = lens _drsTargetARN (\ s a -> s{_drsTargetARN = a});
@@ -167,4 +169,4 @@
 drsResponseStatus :: Lens' DeleteChapCredentialsResponse Int
 drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a});
 
-instance NFData DeleteChapCredentialsResponse
+instance NFData DeleteChapCredentialsResponse where
diff --git a/gen/Network/AWS/StorageGateway/DeleteFileShare.hs b/gen/Network/AWS/StorageGateway/DeleteFileShare.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/StorageGateway/DeleteFileShare.hs
@@ -0,0 +1,152 @@
+{-# 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.DeleteFileShare
+-- Copyright   : (c) 2013-2017 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a file share from a file gateway. This operation is only supported in the file gateway architecture.
+--
+--
+module Network.AWS.StorageGateway.DeleteFileShare
+    (
+    -- * Creating a Request
+      deleteFileShare
+    , DeleteFileShare
+    -- * Request Lenses
+    , dfsForceDelete
+    , dfsFileShareARN
+
+    -- * Destructuring the Response
+    , deleteFileShareResponse
+    , DeleteFileShareResponse
+    -- * Response Lenses
+    , dfsrsFileShareARN
+    , dfsrsResponseStatus
+    ) 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
+
+-- | DeleteFileShareInput
+--
+--
+--
+-- /See:/ 'deleteFileShare' smart constructor.
+data DeleteFileShare = DeleteFileShare'
+  { _dfsForceDelete  :: !(Maybe Bool)
+  , _dfsFileShareARN :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DeleteFileShare' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dfsForceDelete' - If set to true, deletes a file share immediately and aborts all data uploads to AWS. Otherwise the file share is not deleted until all data is uploaded to AWS. This process aborts the data upload process and the file share enters the FORCE_DELETING status.
+--
+-- * 'dfsFileShareARN' - The Amazon Resource Name (ARN) of the file share to be deleted.
+deleteFileShare
+    :: Text -- ^ 'dfsFileShareARN'
+    -> DeleteFileShare
+deleteFileShare pFileShareARN_ =
+  DeleteFileShare'
+  {_dfsForceDelete = Nothing, _dfsFileShareARN = pFileShareARN_}
+
+
+-- | If set to true, deletes a file share immediately and aborts all data uploads to AWS. Otherwise the file share is not deleted until all data is uploaded to AWS. This process aborts the data upload process and the file share enters the FORCE_DELETING status.
+dfsForceDelete :: Lens' DeleteFileShare (Maybe Bool)
+dfsForceDelete = lens _dfsForceDelete (\ s a -> s{_dfsForceDelete = a});
+
+-- | The Amazon Resource Name (ARN) of the file share to be deleted.
+dfsFileShareARN :: Lens' DeleteFileShare Text
+dfsFileShareARN = lens _dfsFileShareARN (\ s a -> s{_dfsFileShareARN = a});
+
+instance AWSRequest DeleteFileShare where
+        type Rs DeleteFileShare = DeleteFileShareResponse
+        request = postJSON storageGateway
+        response
+          = receiveJSON
+              (\ s h x ->
+                 DeleteFileShareResponse' <$>
+                   (x .?> "FileShareARN") <*> (pure (fromEnum s)))
+
+instance Hashable DeleteFileShare where
+
+instance NFData DeleteFileShare where
+
+instance ToHeaders DeleteFileShare where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("StorageGateway_20130630.DeleteFileShare" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DeleteFileShare where
+        toJSON DeleteFileShare'{..}
+          = object
+              (catMaybes
+                 [("ForceDelete" .=) <$> _dfsForceDelete,
+                  Just ("FileShareARN" .= _dfsFileShareARN)])
+
+instance ToPath DeleteFileShare where
+        toPath = const "/"
+
+instance ToQuery DeleteFileShare where
+        toQuery = const mempty
+
+-- | DeleteFileShareOutput
+--
+--
+--
+-- /See:/ 'deleteFileShareResponse' smart constructor.
+data DeleteFileShareResponse = DeleteFileShareResponse'
+  { _dfsrsFileShareARN   :: !(Maybe Text)
+  , _dfsrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DeleteFileShareResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dfsrsFileShareARN' - The Amazon Resource Name (ARN) of the deleted file share.
+--
+-- * 'dfsrsResponseStatus' - -- | The response status code.
+deleteFileShareResponse
+    :: Int -- ^ 'dfsrsResponseStatus'
+    -> DeleteFileShareResponse
+deleteFileShareResponse pResponseStatus_ =
+  DeleteFileShareResponse'
+  {_dfsrsFileShareARN = Nothing, _dfsrsResponseStatus = pResponseStatus_}
+
+
+-- | The Amazon Resource Name (ARN) of the deleted file share.
+dfsrsFileShareARN :: Lens' DeleteFileShareResponse (Maybe Text)
+dfsrsFileShareARN = lens _dfsrsFileShareARN (\ s a -> s{_dfsrsFileShareARN = a});
+
+-- | -- | The response status code.
+dfsrsResponseStatus :: Lens' DeleteFileShareResponse Int
+dfsrsResponseStatus = lens _dfsrsResponseStatus (\ s a -> s{_dfsrsResponseStatus = a});
+
+instance NFData DeleteFileShareResponse where
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,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DeleteGateway
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -41,12 +41,12 @@
     , dgrsResponseStatus
     ) 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
+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
 
 -- | A JSON object containing the id of the gateway to delete.
 --
@@ -54,9 +54,10 @@
 --
 -- /See:/ 'deleteGateway' smart constructor.
 newtype DeleteGateway = DeleteGateway'
-    { _dgGatewayARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dgGatewayARN :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteGateway' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -65,11 +66,9 @@
 deleteGateway
     :: Text -- ^ 'dgGatewayARN'
     -> DeleteGateway
-deleteGateway pGatewayARN_ =
-    DeleteGateway'
-    { _dgGatewayARN = pGatewayARN_
-    }
+deleteGateway pGatewayARN_ = DeleteGateway' {_dgGatewayARN = pGatewayARN_}
 
+
 -- | Undocumented member.
 dgGatewayARN :: Lens' DeleteGateway Text
 dgGatewayARN = lens _dgGatewayARN (\ s a -> s{_dgGatewayARN = a});
@@ -83,9 +82,9 @@
                  DeleteGatewayResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
 
-instance Hashable DeleteGateway
+instance Hashable DeleteGateway where
 
-instance NFData DeleteGateway
+instance NFData DeleteGateway where
 
 instance ToHeaders DeleteGateway where
         toHeaders
@@ -114,10 +113,11 @@
 --
 -- /See:/ 'deleteGatewayResponse' smart constructor.
 data DeleteGatewayResponse = DeleteGatewayResponse'
-    { _dgrsGatewayARN     :: !(Maybe Text)
-    , _dgrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dgrsGatewayARN     :: !(Maybe Text)
+  , _dgrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteGatewayResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -129,11 +129,10 @@
     :: Int -- ^ 'dgrsResponseStatus'
     -> DeleteGatewayResponse
 deleteGatewayResponse pResponseStatus_ =
-    DeleteGatewayResponse'
-    { _dgrsGatewayARN = Nothing
-    , _dgrsResponseStatus = pResponseStatus_
-    }
+  DeleteGatewayResponse'
+  {_dgrsGatewayARN = Nothing, _dgrsResponseStatus = pResponseStatus_}
 
+
 -- | Undocumented member.
 dgrsGatewayARN :: Lens' DeleteGatewayResponse (Maybe Text)
 dgrsGatewayARN = lens _dgrsGatewayARN (\ s a -> s{_dgrsGatewayARN = a});
@@ -142,4 +141,4 @@
 dgrsResponseStatus :: Lens' DeleteGatewayResponse Int
 dgrsResponseStatus = lens _dgrsResponseStatus (\ s a -> s{_dgrsResponseStatus = a});
 
-instance NFData DeleteGatewayResponse
+instance NFData DeleteGatewayResponse where
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,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DeleteSnapshotSchedule
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -39,18 +39,19 @@
     , dsssrsResponseStatus
     ) 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
+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
 
 -- | /See:/ 'deleteSnapshotSchedule' smart constructor.
 newtype DeleteSnapshotSchedule = DeleteSnapshotSchedule'
-    { _dVolumeARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dVolumeARN :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteSnapshotSchedule' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -60,10 +61,9 @@
     :: Text -- ^ 'dVolumeARN'
     -> DeleteSnapshotSchedule
 deleteSnapshotSchedule pVolumeARN_ =
-    DeleteSnapshotSchedule'
-    { _dVolumeARN = pVolumeARN_
-    }
+  DeleteSnapshotSchedule' {_dVolumeARN = pVolumeARN_}
 
+
 -- | Undocumented member.
 dVolumeARN :: Lens' DeleteSnapshotSchedule Text
 dVolumeARN = lens _dVolumeARN (\ s a -> s{_dVolumeARN = a});
@@ -78,9 +78,9 @@
                  DeleteSnapshotScheduleResponse' <$>
                    (x .?> "VolumeARN") <*> (pure (fromEnum s)))
 
-instance Hashable DeleteSnapshotSchedule
+instance Hashable DeleteSnapshotSchedule where
 
-instance NFData DeleteSnapshotSchedule
+instance NFData DeleteSnapshotSchedule where
 
 instance ToHeaders DeleteSnapshotSchedule where
         toHeaders
@@ -105,10 +105,11 @@
 
 -- | /See:/ 'deleteSnapshotScheduleResponse' smart constructor.
 data DeleteSnapshotScheduleResponse = DeleteSnapshotScheduleResponse'
-    { _dsssrsVolumeARN      :: !(Maybe Text)
-    , _dsssrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dsssrsVolumeARN      :: !(Maybe Text)
+  , _dsssrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteSnapshotScheduleResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -120,11 +121,10 @@
     :: Int -- ^ 'dsssrsResponseStatus'
     -> DeleteSnapshotScheduleResponse
 deleteSnapshotScheduleResponse pResponseStatus_ =
-    DeleteSnapshotScheduleResponse'
-    { _dsssrsVolumeARN = Nothing
-    , _dsssrsResponseStatus = pResponseStatus_
-    }
+  DeleteSnapshotScheduleResponse'
+  {_dsssrsVolumeARN = Nothing, _dsssrsResponseStatus = pResponseStatus_}
 
+
 -- | Undocumented member.
 dsssrsVolumeARN :: Lens' DeleteSnapshotScheduleResponse (Maybe Text)
 dsssrsVolumeARN = lens _dsssrsVolumeARN (\ s a -> s{_dsssrsVolumeARN = a});
@@ -133,4 +133,4 @@
 dsssrsResponseStatus :: Lens' DeleteSnapshotScheduleResponse Int
 dsssrsResponseStatus = lens _dsssrsResponseStatus (\ s a -> s{_dsssrsResponseStatus = a});
 
-instance NFData DeleteSnapshotScheduleResponse
+instance NFData DeleteSnapshotScheduleResponse where
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,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DeleteTape
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Deletes the specified virtual tape.
+-- Deletes the specified virtual tape. This operation is only supported in the tape gateway architecture.
 --
 --
 module Network.AWS.StorageGateway.DeleteTape
@@ -38,12 +38,12 @@
     , dtrsResponseStatus
     ) 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
+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
 
 -- | DeleteTapeInput
 --
@@ -51,10 +51,11 @@
 --
 -- /See:/ 'deleteTape' smart constructor.
 data DeleteTape = DeleteTape'
-    { _delGatewayARN :: !Text
-    , _delTapeARN    :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _delGatewayARN :: !Text
+  , _delTapeARN    :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteTape' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -67,11 +68,9 @@
     -> Text -- ^ 'delTapeARN'
     -> DeleteTape
 deleteTape pGatewayARN_ pTapeARN_ =
-    DeleteTape'
-    { _delGatewayARN = pGatewayARN_
-    , _delTapeARN = pTapeARN_
-    }
+  DeleteTape' {_delGatewayARN = pGatewayARN_, _delTapeARN = pTapeARN_}
 
+
 -- | The unique Amazon Resource Name (ARN) of the gateway that the virtual 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});
@@ -89,9 +88,9 @@
                  DeleteTapeResponse' <$>
                    (x .?> "TapeARN") <*> (pure (fromEnum s)))
 
-instance Hashable DeleteTape
+instance Hashable DeleteTape where
 
-instance NFData DeleteTape
+instance NFData DeleteTape where
 
 instance ToHeaders DeleteTape where
         toHeaders
@@ -121,10 +120,11 @@
 --
 -- /See:/ 'deleteTapeResponse' smart constructor.
 data DeleteTapeResponse = DeleteTapeResponse'
-    { _dtrsTapeARN        :: !(Maybe Text)
-    , _dtrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dtrsTapeARN        :: !(Maybe Text)
+  , _dtrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteTapeResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -136,11 +136,10 @@
     :: Int -- ^ 'dtrsResponseStatus'
     -> DeleteTapeResponse
 deleteTapeResponse pResponseStatus_ =
-    DeleteTapeResponse'
-    { _dtrsTapeARN = Nothing
-    , _dtrsResponseStatus = pResponseStatus_
-    }
+  DeleteTapeResponse'
+  {_dtrsTapeARN = Nothing, _dtrsResponseStatus = pResponseStatus_}
 
+
 -- | The Amazon Resource Name (ARN) of the deleted virtual tape.
 dtrsTapeARN :: Lens' DeleteTapeResponse (Maybe Text)
 dtrsTapeARN = lens _dtrsTapeARN (\ s a -> s{_dtrsTapeARN = a});
@@ -149,4 +148,4 @@
 dtrsResponseStatus :: Lens' DeleteTapeResponse Int
 dtrsResponseStatus = lens _dtrsResponseStatus (\ s a -> s{_dtrsResponseStatus = a});
 
-instance NFData DeleteTapeResponse
+instance NFData DeleteTapeResponse where
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,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DeleteTapeArchive
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Deletes the specified virtual tape from the virtual tape shelf (VTS).
+-- Deletes the specified virtual tape from the virtual tape shelf (VTS). This operation is only supported in the tape gateway architecture.
 --
 --
 module Network.AWS.StorageGateway.DeleteTapeArchive
@@ -37,12 +37,12 @@
     , dtatrsResponseStatus
     ) 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
+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
 
 -- | DeleteTapeArchiveInput
 --
@@ -50,9 +50,10 @@
 --
 -- /See:/ 'deleteTapeArchive' smart constructor.
 newtype DeleteTapeArchive = DeleteTapeArchive'
-    { _dtaTapeARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dtaTapeARN :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteTapeArchive' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -61,11 +62,9 @@
 deleteTapeArchive
     :: Text -- ^ 'dtaTapeARN'
     -> DeleteTapeArchive
-deleteTapeArchive pTapeARN_ =
-    DeleteTapeArchive'
-    { _dtaTapeARN = pTapeARN_
-    }
+deleteTapeArchive pTapeARN_ = DeleteTapeArchive' {_dtaTapeARN = pTapeARN_}
 
+
 -- | The Amazon Resource Name (ARN) of the virtual tape to delete from the virtual tape shelf (VTS).
 dtaTapeARN :: Lens' DeleteTapeArchive Text
 dtaTapeARN = lens _dtaTapeARN (\ s a -> s{_dtaTapeARN = a});
@@ -79,9 +78,9 @@
                  DeleteTapeArchiveResponse' <$>
                    (x .?> "TapeARN") <*> (pure (fromEnum s)))
 
-instance Hashable DeleteTapeArchive
+instance Hashable DeleteTapeArchive where
 
-instance NFData DeleteTapeArchive
+instance NFData DeleteTapeArchive where
 
 instance ToHeaders DeleteTapeArchive where
         toHeaders
@@ -110,10 +109,11 @@
 --
 -- /See:/ 'deleteTapeArchiveResponse' smart constructor.
 data DeleteTapeArchiveResponse = DeleteTapeArchiveResponse'
-    { _dtatrsTapeARN        :: !(Maybe Text)
-    , _dtatrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dtatrsTapeARN        :: !(Maybe Text)
+  , _dtatrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteTapeArchiveResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -125,11 +125,10 @@
     :: Int -- ^ 'dtatrsResponseStatus'
     -> DeleteTapeArchiveResponse
 deleteTapeArchiveResponse pResponseStatus_ =
-    DeleteTapeArchiveResponse'
-    { _dtatrsTapeARN = Nothing
-    , _dtatrsResponseStatus = pResponseStatus_
-    }
+  DeleteTapeArchiveResponse'
+  {_dtatrsTapeARN = Nothing, _dtatrsResponseStatus = pResponseStatus_}
 
+
 -- | The Amazon Resource Name (ARN) of the virtual tape that was deleted from the virtual tape shelf (VTS).
 dtatrsTapeARN :: Lens' DeleteTapeArchiveResponse (Maybe Text)
 dtatrsTapeARN = lens _dtatrsTapeARN (\ s a -> s{_dtatrsTapeARN = a});
@@ -138,4 +137,4 @@
 dtatrsResponseStatus :: Lens' DeleteTapeArchiveResponse Int
 dtatrsResponseStatus = lens _dtatrsResponseStatus (\ s a -> s{_dtatrsResponseStatus = a});
 
-instance NFData DeleteTapeArchiveResponse
+instance NFData DeleteTapeArchiveResponse where
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,16 +12,16 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DeleteVolume
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- 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.
+-- Deletes the specified storage volume that you previously created using the 'CreateCachediSCSIVolume' or 'CreateStorediSCSIVolume' API. This operation is only supported in the cached volume and stored volume architectures. For stored volume gateways, 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 there is no snapshot in progress. You can use the Amazon Elastic Compute Cloud (Amazon EC2) API to query snapshots on the volume you are deleting and check the snapshot status. For more information, go to <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html DescribeSnapshots> in the /Amazon Elastic Compute Cloud API Reference/ .
+-- Before you delete a volume, make sure there are no iSCSI connections to the volume you are deleting. You should also make sure there is no snapshot in progress. You can use the Amazon Elastic Compute Cloud (Amazon EC2) API to query snapshots on the volume you are deleting and check the snapshot status. For more information, go to <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html DescribeSnapshots> in the /Amazon Elastic Compute Cloud API Reference/ .
 --
 -- In the request, you must provide the Amazon Resource Name (ARN) of the storage volume you want to delete.
 --
@@ -41,12 +41,12 @@
     , dvrsResponseStatus
     ) 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
+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
 
 -- | A JSON object containing the 'DeleteVolumeInput$VolumeARN' to delete.
 --
@@ -54,9 +54,10 @@
 --
 -- /See:/ 'deleteVolume' smart constructor.
 newtype DeleteVolume = DeleteVolume'
-    { _dvVolumeARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dvVolumeARN :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteVolume' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -65,11 +66,9 @@
 deleteVolume
     :: Text -- ^ 'dvVolumeARN'
     -> DeleteVolume
-deleteVolume pVolumeARN_ =
-    DeleteVolume'
-    { _dvVolumeARN = pVolumeARN_
-    }
+deleteVolume pVolumeARN_ = DeleteVolume' {_dvVolumeARN = pVolumeARN_}
 
+
 -- | 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});
@@ -83,9 +82,9 @@
                  DeleteVolumeResponse' <$>
                    (x .?> "VolumeARN") <*> (pure (fromEnum s)))
 
-instance Hashable DeleteVolume
+instance Hashable DeleteVolume where
 
-instance NFData DeleteVolume
+instance NFData DeleteVolume where
 
 instance ToHeaders DeleteVolume where
         toHeaders
@@ -114,10 +113,11 @@
 --
 -- /See:/ 'deleteVolumeResponse' smart constructor.
 data DeleteVolumeResponse = DeleteVolumeResponse'
-    { _dvrsVolumeARN      :: !(Maybe Text)
-    , _dvrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dvrsVolumeARN      :: !(Maybe Text)
+  , _dvrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteVolumeResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -129,11 +129,10 @@
     :: Int -- ^ 'dvrsResponseStatus'
     -> DeleteVolumeResponse
 deleteVolumeResponse pResponseStatus_ =
-    DeleteVolumeResponse'
-    { _dvrsVolumeARN = Nothing
-    , _dvrsResponseStatus = pResponseStatus_
-    }
+  DeleteVolumeResponse'
+  {_dvrsVolumeARN = Nothing, _dvrsResponseStatus = pResponseStatus_}
 
+
 -- | The Amazon Resource Name (ARN) of the storage volume that was deleted. It is the same ARN you provided in the request.
 dvrsVolumeARN :: Lens' DeleteVolumeResponse (Maybe Text)
 dvrsVolumeARN = lens _dvrsVolumeARN (\ s a -> s{_dvrsVolumeARN = a});
@@ -142,4 +141,4 @@
 dvrsResponseStatus :: Lens' DeleteVolumeResponse Int
 dvrsResponseStatus = lens _dvrsResponseStatus (\ s a -> s{_dvrsResponseStatus = a});
 
-instance NFData DeleteVolumeResponse
+instance NFData DeleteVolumeResponse where
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,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeBandwidthRateLimit
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -41,12 +41,12 @@
     , dbrlrsResponseStatus
     ) 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
+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
 
 -- | A JSON object containing the of the gateway.
 --
@@ -54,9 +54,10 @@
 --
 -- /See:/ 'describeBandwidthRateLimit' smart constructor.
 newtype DescribeBandwidthRateLimit = DescribeBandwidthRateLimit'
-    { _dbrlGatewayARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dbrlGatewayARN :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeBandwidthRateLimit' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -66,10 +67,9 @@
     :: Text -- ^ 'dbrlGatewayARN'
     -> DescribeBandwidthRateLimit
 describeBandwidthRateLimit pGatewayARN_ =
-    DescribeBandwidthRateLimit'
-    { _dbrlGatewayARN = pGatewayARN_
-    }
+  DescribeBandwidthRateLimit' {_dbrlGatewayARN = pGatewayARN_}
 
+
 -- | Undocumented member.
 dbrlGatewayARN :: Lens' DescribeBandwidthRateLimit Text
 dbrlGatewayARN = lens _dbrlGatewayARN (\ s a -> s{_dbrlGatewayARN = a});
@@ -87,9 +87,9 @@
                      <*> (x .?> "AverageDownloadRateLimitInBitsPerSec")
                      <*> (pure (fromEnum s)))
 
-instance Hashable DescribeBandwidthRateLimit
+instance Hashable DescribeBandwidthRateLimit where
 
-instance NFData DescribeBandwidthRateLimit
+instance NFData DescribeBandwidthRateLimit where
 
 instance ToHeaders DescribeBandwidthRateLimit where
         toHeaders
@@ -118,12 +118,13 @@
 --
 -- /See:/ 'describeBandwidthRateLimitResponse' smart constructor.
 data DescribeBandwidthRateLimitResponse = DescribeBandwidthRateLimitResponse'
-    { _dbrlrsGatewayARN                           :: !(Maybe Text)
-    , _dbrlrsAverageUploadRateLimitInBitsPerSec   :: !(Maybe Nat)
-    , _dbrlrsAverageDownloadRateLimitInBitsPerSec :: !(Maybe Nat)
-    , _dbrlrsResponseStatus                       :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dbrlrsGatewayARN                           :: !(Maybe Text)
+  , _dbrlrsAverageUploadRateLimitInBitsPerSec   :: !(Maybe Nat)
+  , _dbrlrsAverageDownloadRateLimitInBitsPerSec :: !(Maybe Nat)
+  , _dbrlrsResponseStatus                       :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeBandwidthRateLimitResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -139,13 +140,14 @@
     :: Int -- ^ 'dbrlrsResponseStatus'
     -> DescribeBandwidthRateLimitResponse
 describeBandwidthRateLimitResponse pResponseStatus_ =
-    DescribeBandwidthRateLimitResponse'
-    { _dbrlrsGatewayARN = Nothing
-    , _dbrlrsAverageUploadRateLimitInBitsPerSec = Nothing
-    , _dbrlrsAverageDownloadRateLimitInBitsPerSec = Nothing
-    , _dbrlrsResponseStatus = pResponseStatus_
-    }
+  DescribeBandwidthRateLimitResponse'
+  { _dbrlrsGatewayARN = Nothing
+  , _dbrlrsAverageUploadRateLimitInBitsPerSec = Nothing
+  , _dbrlrsAverageDownloadRateLimitInBitsPerSec = Nothing
+  , _dbrlrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Undocumented member.
 dbrlrsGatewayARN :: Lens' DescribeBandwidthRateLimitResponse (Maybe Text)
 dbrlrsGatewayARN = lens _dbrlrsGatewayARN (\ s a -> s{_dbrlrsGatewayARN = a});
@@ -163,3 +165,4 @@
 dbrlrsResponseStatus = lens _dbrlrsResponseStatus (\ s a -> s{_dbrlrsResponseStatus = a});
 
 instance NFData DescribeBandwidthRateLimitResponse
+         where
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,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeCache
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Returns information about the cache of a gateway. This operation is supported only for the gateway-cached volume architecture.
+-- Returns information about the cache of a gateway. This operation is only supported in the cached volume,tape and file gateway architectures.
 --
 --
 -- The response includes disk IDs that are configured as cache, and it includes the amount of cache allocated and used.
@@ -45,18 +45,19 @@
     , dcrsResponseStatus
     ) 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
+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
 
 -- | /See:/ 'describeCache' smart constructor.
 newtype DescribeCache = DescribeCache'
-    { _dcGatewayARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dcGatewayARN :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeCache' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -65,11 +66,9 @@
 describeCache
     :: Text -- ^ 'dcGatewayARN'
     -> DescribeCache
-describeCache pGatewayARN_ =
-    DescribeCache'
-    { _dcGatewayARN = pGatewayARN_
-    }
+describeCache pGatewayARN_ = DescribeCache' {_dcGatewayARN = pGatewayARN_}
 
+
 -- | Undocumented member.
 dcGatewayARN :: Lens' DescribeCache Text
 dcGatewayARN = lens _dcGatewayARN (\ s a -> s{_dcGatewayARN = a});
@@ -89,9 +88,9 @@
                      <*> (x .?> "CacheDirtyPercentage")
                      <*> (pure (fromEnum s)))
 
-instance Hashable DescribeCache
+instance Hashable DescribeCache where
 
-instance NFData DescribeCache
+instance NFData DescribeCache where
 
 instance ToHeaders DescribeCache where
         toHeaders
@@ -116,16 +115,17 @@
 
 -- | /See:/ 'describeCacheResponse' smart constructor.
 data DescribeCacheResponse = DescribeCacheResponse'
-    { _dcrsGatewayARN            :: !(Maybe Text)
-    , _dcrsDiskIds               :: !(Maybe [Text])
-    , _dcrsCacheUsedPercentage   :: !(Maybe Double)
-    , _dcrsCacheHitPercentage    :: !(Maybe Double)
-    , _dcrsCacheMissPercentage   :: !(Maybe Double)
-    , _dcrsCacheAllocatedInBytes :: !(Maybe Integer)
-    , _dcrsCacheDirtyPercentage  :: !(Maybe Double)
-    , _dcrsResponseStatus        :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dcrsGatewayARN            :: !(Maybe Text)
+  , _dcrsDiskIds               :: !(Maybe [Text])
+  , _dcrsCacheUsedPercentage   :: !(Maybe Double)
+  , _dcrsCacheHitPercentage    :: !(Maybe Double)
+  , _dcrsCacheMissPercentage   :: !(Maybe Double)
+  , _dcrsCacheAllocatedInBytes :: !(Maybe Integer)
+  , _dcrsCacheDirtyPercentage  :: !(Maybe Double)
+  , _dcrsResponseStatus        :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeCacheResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -149,17 +149,18 @@
     :: Int -- ^ 'dcrsResponseStatus'
     -> DescribeCacheResponse
 describeCacheResponse pResponseStatus_ =
-    DescribeCacheResponse'
-    { _dcrsGatewayARN = Nothing
-    , _dcrsDiskIds = Nothing
-    , _dcrsCacheUsedPercentage = Nothing
-    , _dcrsCacheHitPercentage = Nothing
-    , _dcrsCacheMissPercentage = Nothing
-    , _dcrsCacheAllocatedInBytes = Nothing
-    , _dcrsCacheDirtyPercentage = Nothing
-    , _dcrsResponseStatus = pResponseStatus_
-    }
+  DescribeCacheResponse'
+  { _dcrsGatewayARN = Nothing
+  , _dcrsDiskIds = Nothing
+  , _dcrsCacheUsedPercentage = Nothing
+  , _dcrsCacheHitPercentage = Nothing
+  , _dcrsCacheMissPercentage = Nothing
+  , _dcrsCacheAllocatedInBytes = Nothing
+  , _dcrsCacheDirtyPercentage = Nothing
+  , _dcrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Undocumented member.
 dcrsGatewayARN :: Lens' DescribeCacheResponse (Maybe Text)
 dcrsGatewayARN = lens _dcrsGatewayARN (\ s a -> s{_dcrsGatewayARN = a});
@@ -192,4 +193,4 @@
 dcrsResponseStatus :: Lens' DescribeCacheResponse Int
 dcrsResponseStatus = lens _dcrsResponseStatus (\ s a -> s{_dcrsResponseStatus = a});
 
-instance NFData DescribeCacheResponse
+instance NFData DescribeCacheResponse where
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,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeCachediSCSIVolumes
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Returns a description of the gateway volumes specified in the request. This operation is supported only for the gateway-cached volume architecture.
+-- Returns a description of the gateway volumes specified in the request. This operation is only supported in the cached volume gateway architecture.
 --
 --
 -- 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).
@@ -39,18 +39,19 @@
     , dcscsivrsResponseStatus
     ) 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
+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
 
 -- | /See:/ 'describeCachediSCSIVolumes' smart constructor.
 newtype DescribeCachediSCSIVolumes = DescribeCachediSCSIVolumes'
-    { _dcscsivVolumeARNs :: [Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dcscsivVolumeARNs :: [Text]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeCachediSCSIVolumes' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -59,10 +60,9 @@
 describeCachediSCSIVolumes
     :: DescribeCachediSCSIVolumes
 describeCachediSCSIVolumes =
-    DescribeCachediSCSIVolumes'
-    { _dcscsivVolumeARNs = mempty
-    }
+  DescribeCachediSCSIVolumes' {_dcscsivVolumeARNs = mempty}
 
+
 -- | Undocumented member.
 dcscsivVolumeARNs :: Lens' DescribeCachediSCSIVolumes [Text]
 dcscsivVolumeARNs = lens _dcscsivVolumeARNs (\ s a -> s{_dcscsivVolumeARNs = a}) . _Coerce;
@@ -78,9 +78,9 @@
                    (x .?> "CachediSCSIVolumes" .!@ mempty) <*>
                      (pure (fromEnum s)))
 
-instance Hashable DescribeCachediSCSIVolumes
+instance Hashable DescribeCachediSCSIVolumes where
 
-instance NFData DescribeCachediSCSIVolumes
+instance NFData DescribeCachediSCSIVolumes where
 
 instance ToHeaders DescribeCachediSCSIVolumes where
         toHeaders
@@ -110,10 +110,11 @@
 --
 -- /See:/ 'describeCachediSCSIVolumesResponse' smart constructor.
 data DescribeCachediSCSIVolumesResponse = DescribeCachediSCSIVolumesResponse'
-    { _dcscsivrsCachediSCSIVolumes :: !(Maybe [CachediSCSIVolume])
-    , _dcscsivrsResponseStatus     :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dcscsivrsCachediSCSIVolumes :: !(Maybe [CachediSCSIVolume])
+  , _dcscsivrsResponseStatus     :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeCachediSCSIVolumesResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -125,11 +126,12 @@
     :: Int -- ^ 'dcscsivrsResponseStatus'
     -> DescribeCachediSCSIVolumesResponse
 describeCachediSCSIVolumesResponse pResponseStatus_ =
-    DescribeCachediSCSIVolumesResponse'
-    { _dcscsivrsCachediSCSIVolumes = Nothing
-    , _dcscsivrsResponseStatus = pResponseStatus_
-    }
+  DescribeCachediSCSIVolumesResponse'
+  { _dcscsivrsCachediSCSIVolumes = Nothing
+  , _dcscsivrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | An array of objects where each object contains metadata about one cached volume.
 dcscsivrsCachediSCSIVolumes :: Lens' DescribeCachediSCSIVolumesResponse [CachediSCSIVolume]
 dcscsivrsCachediSCSIVolumes = lens _dcscsivrsCachediSCSIVolumes (\ s a -> s{_dcscsivrsCachediSCSIVolumes = a}) . _Default . _Coerce;
@@ -139,3 +141,4 @@
 dcscsivrsResponseStatus = lens _dcscsivrsResponseStatus (\ s a -> s{_dcscsivrsResponseStatus = a});
 
 instance NFData DescribeCachediSCSIVolumesResponse
+         where
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,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeChapCredentials
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -37,12 +37,12 @@
     , dccrsResponseStatus
     ) 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
+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
 
 -- | A JSON object containing the Amazon Resource Name (ARN) of the iSCSI volume target.
 --
@@ -50,9 +50,10 @@
 --
 -- /See:/ 'describeChapCredentials' smart constructor.
 newtype DescribeChapCredentials = DescribeChapCredentials'
-    { _dccTargetARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dccTargetARN :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeChapCredentials' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -62,10 +63,9 @@
     :: Text -- ^ 'dccTargetARN'
     -> DescribeChapCredentials
 describeChapCredentials pTargetARN_ =
-    DescribeChapCredentials'
-    { _dccTargetARN = pTargetARN_
-    }
+  DescribeChapCredentials' {_dccTargetARN = pTargetARN_}
 
+
 -- | The Amazon Resource Name (ARN) of the iSCSI volume target. Use the 'DescribeStorediSCSIVolumes' operation to return to retrieve the TargetARN for specified VolumeARN.
 dccTargetARN :: Lens' DescribeChapCredentials Text
 dccTargetARN = lens _dccTargetARN (\ s a -> s{_dccTargetARN = a});
@@ -81,9 +81,9 @@
                    (x .?> "ChapCredentials" .!@ mempty) <*>
                      (pure (fromEnum s)))
 
-instance Hashable DescribeChapCredentials
+instance Hashable DescribeChapCredentials where
 
-instance NFData DescribeChapCredentials
+instance NFData DescribeChapCredentials where
 
 instance ToHeaders DescribeChapCredentials where
         toHeaders
@@ -112,10 +112,11 @@
 --
 -- /See:/ 'describeChapCredentialsResponse' smart constructor.
 data DescribeChapCredentialsResponse = DescribeChapCredentialsResponse'
-    { _dccrsChapCredentials :: !(Maybe [ChapInfo])
-    , _dccrsResponseStatus  :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dccrsChapCredentials :: !(Maybe [ChapInfo])
+  , _dccrsResponseStatus  :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeChapCredentialsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -127,11 +128,10 @@
     :: Int -- ^ 'dccrsResponseStatus'
     -> DescribeChapCredentialsResponse
 describeChapCredentialsResponse pResponseStatus_ =
-    DescribeChapCredentialsResponse'
-    { _dccrsChapCredentials = Nothing
-    , _dccrsResponseStatus = pResponseStatus_
-    }
+  DescribeChapCredentialsResponse'
+  {_dccrsChapCredentials = Nothing, _dccrsResponseStatus = pResponseStatus_}
 
+
 -- | 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 the following fields:     * __InitiatorName__ : The iSCSI initiator that connects to the target.     * __SecretToAuthenticateInitiator__ : The secret key that the initiator (for example, the Windows client) must provide to participate in mutual CHAP with the target.     * __SecretToAuthenticateTarget__ : The secret key that the target must provide to participate in mutual CHAP with the initiator (e.g. Windows client).     * __TargetARN__ : The Amazon Resource Name (ARN) of the storage volume.
 dccrsChapCredentials :: Lens' DescribeChapCredentialsResponse [ChapInfo]
 dccrsChapCredentials = lens _dccrsChapCredentials (\ s a -> s{_dccrsChapCredentials = a}) . _Default . _Coerce;
@@ -140,4 +140,4 @@
 dccrsResponseStatus :: Lens' DescribeChapCredentialsResponse Int
 dccrsResponseStatus = lens _dccrsResponseStatus (\ s a -> s{_dccrsResponseStatus = a});
 
-instance NFData DescribeChapCredentialsResponse
+instance NFData DescribeChapCredentialsResponse where
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,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeGatewayInformation
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -45,12 +45,12 @@
     , dgirsResponseStatus
     ) 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
+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
 
 -- | A JSON object containing the id of the gateway.
 --
@@ -58,9 +58,10 @@
 --
 -- /See:/ 'describeGatewayInformation' smart constructor.
 newtype DescribeGatewayInformation = DescribeGatewayInformation'
-    { _dgiGatewayARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dgiGatewayARN :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeGatewayInformation' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -70,10 +71,9 @@
     :: Text -- ^ 'dgiGatewayARN'
     -> DescribeGatewayInformation
 describeGatewayInformation pGatewayARN_ =
-    DescribeGatewayInformation'
-    { _dgiGatewayARN = pGatewayARN_
-    }
+  DescribeGatewayInformation' {_dgiGatewayARN = pGatewayARN_}
 
+
 -- | Undocumented member.
 dgiGatewayARN :: Lens' DescribeGatewayInformation Text
 dgiGatewayARN = lens _dgiGatewayARN (\ s a -> s{_dgiGatewayARN = a});
@@ -96,9 +96,9 @@
                      <*> (x .?> "GatewayTimezone")
                      <*> (pure (fromEnum s)))
 
-instance Hashable DescribeGatewayInformation
+instance Hashable DescribeGatewayInformation where
 
-instance NFData DescribeGatewayInformation
+instance NFData DescribeGatewayInformation where
 
 instance ToHeaders DescribeGatewayInformation where
         toHeaders
@@ -127,18 +127,19 @@
 --
 -- /See:/ 'describeGatewayInformationResponse' smart constructor.
 data DescribeGatewayInformationResponse = DescribeGatewayInformationResponse'
-    { _dgirsGatewayState               :: !(Maybe Text)
-    , _dgirsGatewayARN                 :: !(Maybe Text)
-    , _dgirsGatewayNetworkInterfaces   :: !(Maybe [NetworkInterface])
-    , _dgirsNextUpdateAvailabilityDate :: !(Maybe Text)
-    , _dgirsLastSoftwareUpdate         :: !(Maybe Text)
-    , _dgirsGatewayName                :: !(Maybe Text)
-    , _dgirsGatewayId                  :: !(Maybe Text)
-    , _dgirsGatewayType                :: !(Maybe Text)
-    , _dgirsGatewayTimezone            :: !(Maybe Text)
-    , _dgirsResponseStatus             :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dgirsGatewayState               :: !(Maybe Text)
+  , _dgirsGatewayARN                 :: !(Maybe Text)
+  , _dgirsGatewayNetworkInterfaces   :: !(Maybe [NetworkInterface])
+  , _dgirsNextUpdateAvailabilityDate :: !(Maybe Text)
+  , _dgirsLastSoftwareUpdate         :: !(Maybe Text)
+  , _dgirsGatewayName                :: !(Maybe Text)
+  , _dgirsGatewayId                  :: !(Maybe Text)
+  , _dgirsGatewayType                :: !(Maybe Text)
+  , _dgirsGatewayTimezone            :: !(Maybe Text)
+  , _dgirsResponseStatus             :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeGatewayInformationResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -166,19 +167,20 @@
     :: Int -- ^ 'dgirsResponseStatus'
     -> DescribeGatewayInformationResponse
 describeGatewayInformationResponse pResponseStatus_ =
-    DescribeGatewayInformationResponse'
-    { _dgirsGatewayState = Nothing
-    , _dgirsGatewayARN = Nothing
-    , _dgirsGatewayNetworkInterfaces = Nothing
-    , _dgirsNextUpdateAvailabilityDate = Nothing
-    , _dgirsLastSoftwareUpdate = Nothing
-    , _dgirsGatewayName = Nothing
-    , _dgirsGatewayId = Nothing
-    , _dgirsGatewayType = Nothing
-    , _dgirsGatewayTimezone = Nothing
-    , _dgirsResponseStatus = pResponseStatus_
-    }
+  DescribeGatewayInformationResponse'
+  { _dgirsGatewayState = Nothing
+  , _dgirsGatewayARN = Nothing
+  , _dgirsGatewayNetworkInterfaces = Nothing
+  , _dgirsNextUpdateAvailabilityDate = Nothing
+  , _dgirsLastSoftwareUpdate = Nothing
+  , _dgirsGatewayName = Nothing
+  , _dgirsGatewayId = Nothing
+  , _dgirsGatewayType = Nothing
+  , _dgirsGatewayTimezone = Nothing
+  , _dgirsResponseStatus = pResponseStatus_
+  }
 
+
 -- | A value that indicates the operating state of the gateway.
 dgirsGatewayState :: Lens' DescribeGatewayInformationResponse (Maybe Text)
 dgirsGatewayState = lens _dgirsGatewayState (\ s a -> s{_dgirsGatewayState = a});
@@ -220,3 +222,4 @@
 dgirsResponseStatus = lens _dgirsResponseStatus (\ s a -> s{_dgirsResponseStatus = a});
 
 instance NFData DescribeGatewayInformationResponse
+         where
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,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeMaintenanceStartTime
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -41,12 +41,12 @@
     , dmstrsResponseStatus
     ) 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
+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
 
 -- | A JSON object containing the of the gateway.
 --
@@ -54,9 +54,10 @@
 --
 -- /See:/ 'describeMaintenanceStartTime' smart constructor.
 newtype DescribeMaintenanceStartTime = DescribeMaintenanceStartTime'
-    { _dmstGatewayARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dmstGatewayARN :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeMaintenanceStartTime' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -66,10 +67,9 @@
     :: Text -- ^ 'dmstGatewayARN'
     -> DescribeMaintenanceStartTime
 describeMaintenanceStartTime pGatewayARN_ =
-    DescribeMaintenanceStartTime'
-    { _dmstGatewayARN = pGatewayARN_
-    }
+  DescribeMaintenanceStartTime' {_dmstGatewayARN = pGatewayARN_}
 
+
 -- | Undocumented member.
 dmstGatewayARN :: Lens' DescribeMaintenanceStartTime Text
 dmstGatewayARN = lens _dmstGatewayARN (\ s a -> s{_dmstGatewayARN = a});
@@ -89,9 +89,9 @@
                      <*> (x .?> "DayOfWeek")
                      <*> (pure (fromEnum s)))
 
-instance Hashable DescribeMaintenanceStartTime
+instance Hashable DescribeMaintenanceStartTime where
 
-instance NFData DescribeMaintenanceStartTime
+instance NFData DescribeMaintenanceStartTime where
 
 instance ToHeaders DescribeMaintenanceStartTime where
         toHeaders
@@ -114,53 +114,69 @@
 instance ToQuery DescribeMaintenanceStartTime where
         toQuery = const mempty
 
--- | /See:/ 'describeMaintenanceStartTimeResponse' smart constructor.
+-- | A JSON object containing the following fields:
+--
+--
+--     * 'DescribeMaintenanceStartTimeOutput$DayOfWeek'
+--
+--     * 'DescribeMaintenanceStartTimeOutput$HourOfDay'
+--
+--     * 'DescribeMaintenanceStartTimeOutput$MinuteOfHour'
+--
+--     * 'DescribeMaintenanceStartTimeOutput$Timezone'
+--
+--
+--
+--
+-- /See:/ 'describeMaintenanceStartTimeResponse' smart constructor.
 data DescribeMaintenanceStartTimeResponse = DescribeMaintenanceStartTimeResponse'
-    { _dmstrsGatewayARN     :: !(Maybe Text)
-    , _dmstrsMinuteOfHour   :: !(Maybe Nat)
-    , _dmstrsHourOfDay      :: !(Maybe Nat)
-    , _dmstrsTimezone       :: !(Maybe Text)
-    , _dmstrsDayOfWeek      :: !(Maybe Nat)
-    , _dmstrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dmstrsGatewayARN     :: !(Maybe Text)
+  , _dmstrsMinuteOfHour   :: !(Maybe Nat)
+  , _dmstrsHourOfDay      :: !(Maybe Nat)
+  , _dmstrsTimezone       :: !(Maybe Text)
+  , _dmstrsDayOfWeek      :: !(Maybe Nat)
+  , _dmstrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeMaintenanceStartTimeResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
 -- * 'dmstrsGatewayARN' - Undocumented member.
 --
--- * 'dmstrsMinuteOfHour' - Undocumented member.
+-- * 'dmstrsMinuteOfHour' - The minute component of the maintenance start time represented as /mm/ , where /mm/ is the minute (0 to 59). The minute of the hour is in the time zone of the gateway.
 --
--- * 'dmstrsHourOfDay' - Undocumented member.
+-- * 'dmstrsHourOfDay' - The hour component of the maintenance start time represented as /hh/ , where /hh/ is the hour (0 to 23). The hour of the day is in the time zone of the gateway.
 --
 -- * 'dmstrsTimezone' - Undocumented member.
 --
--- * 'dmstrsDayOfWeek' - Undocumented member.
+-- * 'dmstrsDayOfWeek' - An ordinal number between 0 and 6 that represents the day of the week, where 0 represents Sunday and 6 represents Saturday. The day of week is in the time zone of the gateway.
 --
 -- * 'dmstrsResponseStatus' - -- | The response status code.
 describeMaintenanceStartTimeResponse
     :: Int -- ^ 'dmstrsResponseStatus'
     -> DescribeMaintenanceStartTimeResponse
 describeMaintenanceStartTimeResponse pResponseStatus_ =
-    DescribeMaintenanceStartTimeResponse'
-    { _dmstrsGatewayARN = Nothing
-    , _dmstrsMinuteOfHour = Nothing
-    , _dmstrsHourOfDay = Nothing
-    , _dmstrsTimezone = Nothing
-    , _dmstrsDayOfWeek = Nothing
-    , _dmstrsResponseStatus = pResponseStatus_
-    }
+  DescribeMaintenanceStartTimeResponse'
+  { _dmstrsGatewayARN = Nothing
+  , _dmstrsMinuteOfHour = Nothing
+  , _dmstrsHourOfDay = Nothing
+  , _dmstrsTimezone = Nothing
+  , _dmstrsDayOfWeek = Nothing
+  , _dmstrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Undocumented member.
 dmstrsGatewayARN :: Lens' DescribeMaintenanceStartTimeResponse (Maybe Text)
 dmstrsGatewayARN = lens _dmstrsGatewayARN (\ s a -> s{_dmstrsGatewayARN = a});
 
--- | Undocumented member.
+-- | The minute component of the maintenance start time represented as /mm/ , where /mm/ is the minute (0 to 59). The minute of the hour is in the time zone of the gateway.
 dmstrsMinuteOfHour :: Lens' DescribeMaintenanceStartTimeResponse (Maybe Natural)
 dmstrsMinuteOfHour = lens _dmstrsMinuteOfHour (\ s a -> s{_dmstrsMinuteOfHour = a}) . mapping _Nat;
 
--- | Undocumented member.
+-- | The hour component of the maintenance start time represented as /hh/ , where /hh/ is the hour (0 to 23). The hour of the day is in the time zone of the gateway.
 dmstrsHourOfDay :: Lens' DescribeMaintenanceStartTimeResponse (Maybe Natural)
 dmstrsHourOfDay = lens _dmstrsHourOfDay (\ s a -> s{_dmstrsHourOfDay = a}) . mapping _Nat;
 
@@ -168,7 +184,7 @@
 dmstrsTimezone :: Lens' DescribeMaintenanceStartTimeResponse (Maybe Text)
 dmstrsTimezone = lens _dmstrsTimezone (\ s a -> s{_dmstrsTimezone = a});
 
--- | Undocumented member.
+-- | An ordinal number between 0 and 6 that represents the day of the week, where 0 represents Sunday and 6 represents Saturday. The day of week is in the time zone of the gateway.
 dmstrsDayOfWeek :: Lens' DescribeMaintenanceStartTimeResponse (Maybe Natural)
 dmstrsDayOfWeek = lens _dmstrsDayOfWeek (\ s a -> s{_dmstrsDayOfWeek = a}) . mapping _Nat;
 
@@ -177,3 +193,4 @@
 dmstrsResponseStatus = lens _dmstrsResponseStatus (\ s a -> s{_dmstrsResponseStatus = a});
 
 instance NFData DescribeMaintenanceStartTimeResponse
+         where
diff --git a/gen/Network/AWS/StorageGateway/DescribeNFSFileShares.hs b/gen/Network/AWS/StorageGateway/DescribeNFSFileShares.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/StorageGateway/DescribeNFSFileShares.hs
@@ -0,0 +1,147 @@
+{-# 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.DescribeNFSFileShares
+-- Copyright   : (c) 2013-2017 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets a description for one or more file shares from a file gateway. This operation is only supported in file gateways.
+--
+--
+module Network.AWS.StorageGateway.DescribeNFSFileShares
+    (
+    -- * Creating a Request
+      describeNFSFileShares
+    , DescribeNFSFileShares
+    -- * Request Lenses
+    , dnfsfsFileShareARNList
+
+    -- * Destructuring the Response
+    , describeNFSFileSharesResponse
+    , DescribeNFSFileSharesResponse
+    -- * Response Lenses
+    , dnfsfsrsNFSFileShareInfoList
+    , dnfsfsrsResponseStatus
+    ) 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
+
+-- | DescribeNFSFileSharesInput
+--
+--
+--
+-- /See:/ 'describeNFSFileShares' smart constructor.
+newtype DescribeNFSFileShares = DescribeNFSFileShares'
+  { _dnfsfsFileShareARNList :: List1 Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DescribeNFSFileShares' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dnfsfsFileShareARNList' - An array containing the Amazon Resource Name (ARN) of each file share to be described.
+describeNFSFileShares
+    :: NonEmpty Text -- ^ 'dnfsfsFileShareARNList'
+    -> DescribeNFSFileShares
+describeNFSFileShares pFileShareARNList_ =
+  DescribeNFSFileShares' {_dnfsfsFileShareARNList = _List1 # pFileShareARNList_}
+
+
+-- | An array containing the Amazon Resource Name (ARN) of each file share to be described.
+dnfsfsFileShareARNList :: Lens' DescribeNFSFileShares (NonEmpty Text)
+dnfsfsFileShareARNList = lens _dnfsfsFileShareARNList (\ s a -> s{_dnfsfsFileShareARNList = a}) . _List1;
+
+instance AWSRequest DescribeNFSFileShares where
+        type Rs DescribeNFSFileShares =
+             DescribeNFSFileSharesResponse
+        request = postJSON storageGateway
+        response
+          = receiveJSON
+              (\ s h x ->
+                 DescribeNFSFileSharesResponse' <$>
+                   (x .?> "NFSFileShareInfoList" .!@ mempty) <*>
+                     (pure (fromEnum s)))
+
+instance Hashable DescribeNFSFileShares where
+
+instance NFData DescribeNFSFileShares where
+
+instance ToHeaders DescribeNFSFileShares where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("StorageGateway_20130630.DescribeNFSFileShares" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DescribeNFSFileShares where
+        toJSON DescribeNFSFileShares'{..}
+          = object
+              (catMaybes
+                 [Just
+                    ("FileShareARNList" .= _dnfsfsFileShareARNList)])
+
+instance ToPath DescribeNFSFileShares where
+        toPath = const "/"
+
+instance ToQuery DescribeNFSFileShares where
+        toQuery = const mempty
+
+-- | DescribeNFSFileSharesOutput
+--
+--
+--
+-- /See:/ 'describeNFSFileSharesResponse' smart constructor.
+data DescribeNFSFileSharesResponse = DescribeNFSFileSharesResponse'
+  { _dnfsfsrsNFSFileShareInfoList :: !(Maybe [NFSFileShareInfo])
+  , _dnfsfsrsResponseStatus       :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DescribeNFSFileSharesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dnfsfsrsNFSFileShareInfoList' - An array containing a description for each requested file share.
+--
+-- * 'dnfsfsrsResponseStatus' - -- | The response status code.
+describeNFSFileSharesResponse
+    :: Int -- ^ 'dnfsfsrsResponseStatus'
+    -> DescribeNFSFileSharesResponse
+describeNFSFileSharesResponse pResponseStatus_ =
+  DescribeNFSFileSharesResponse'
+  { _dnfsfsrsNFSFileShareInfoList = Nothing
+  , _dnfsfsrsResponseStatus = pResponseStatus_
+  }
+
+
+-- | An array containing a description for each requested file share.
+dnfsfsrsNFSFileShareInfoList :: Lens' DescribeNFSFileSharesResponse [NFSFileShareInfo]
+dnfsfsrsNFSFileShareInfoList = lens _dnfsfsrsNFSFileShareInfoList (\ s a -> s{_dnfsfsrsNFSFileShareInfoList = a}) . _Default . _Coerce;
+
+-- | -- | The response status code.
+dnfsfsrsResponseStatus :: Lens' DescribeNFSFileSharesResponse Int
+dnfsfsrsResponseStatus = lens _dnfsfsrsResponseStatus (\ s a -> s{_dnfsfsrsResponseStatus = a});
+
+instance NFData DescribeNFSFileSharesResponse where
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,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeSnapshotSchedule
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Describes the snapshot schedule for the specified gateway volume. The snapshot schedule information includes intervals at which snapshots are automatically initiated on the volume.
+-- Describes the snapshot schedule for the specified gateway volume. The snapshot schedule information includes intervals at which snapshots are automatically initiated on the volume. This operation is only supported in the cached volume and stored volume architectures.
 --
 --
 module Network.AWS.StorageGateway.DescribeSnapshotSchedule
@@ -41,12 +41,12 @@
     , dssrsResponseStatus
     ) 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
+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
 
 -- | A JSON object containing the 'DescribeSnapshotScheduleInput$VolumeARN' of the volume.
 --
@@ -54,9 +54,10 @@
 --
 -- /See:/ 'describeSnapshotSchedule' smart constructor.
 newtype DescribeSnapshotSchedule = DescribeSnapshotSchedule'
-    { _dssVolumeARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dssVolumeARN :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeSnapshotSchedule' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -66,10 +67,9 @@
     :: Text -- ^ 'dssVolumeARN'
     -> DescribeSnapshotSchedule
 describeSnapshotSchedule pVolumeARN_ =
-    DescribeSnapshotSchedule'
-    { _dssVolumeARN = pVolumeARN_
-    }
+  DescribeSnapshotSchedule' {_dssVolumeARN = pVolumeARN_}
 
+
 -- | 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});
@@ -88,9 +88,9 @@
                      <*> (x .?> "Description")
                      <*> (pure (fromEnum s)))
 
-instance Hashable DescribeSnapshotSchedule
+instance Hashable DescribeSnapshotSchedule where
 
-instance NFData DescribeSnapshotSchedule
+instance NFData DescribeSnapshotSchedule where
 
 instance ToHeaders DescribeSnapshotSchedule where
         toHeaders
@@ -115,14 +115,15 @@
 
 -- | /See:/ 'describeSnapshotScheduleResponse' smart constructor.
 data DescribeSnapshotScheduleResponse = DescribeSnapshotScheduleResponse'
-    { _dssrsStartAt           :: !(Maybe Nat)
-    , _dssrsVolumeARN         :: !(Maybe Text)
-    , _dssrsRecurrenceInHours :: !(Maybe Nat)
-    , _dssrsTimezone          :: !(Maybe Text)
-    , _dssrsDescription       :: !(Maybe Text)
-    , _dssrsResponseStatus    :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dssrsStartAt           :: !(Maybe Nat)
+  , _dssrsVolumeARN         :: !(Maybe Text)
+  , _dssrsRecurrenceInHours :: !(Maybe Nat)
+  , _dssrsTimezone          :: !(Maybe Text)
+  , _dssrsDescription       :: !(Maybe Text)
+  , _dssrsResponseStatus    :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeSnapshotScheduleResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -142,15 +143,16 @@
     :: Int -- ^ 'dssrsResponseStatus'
     -> DescribeSnapshotScheduleResponse
 describeSnapshotScheduleResponse pResponseStatus_ =
-    DescribeSnapshotScheduleResponse'
-    { _dssrsStartAt = Nothing
-    , _dssrsVolumeARN = Nothing
-    , _dssrsRecurrenceInHours = Nothing
-    , _dssrsTimezone = Nothing
-    , _dssrsDescription = Nothing
-    , _dssrsResponseStatus = pResponseStatus_
-    }
+  DescribeSnapshotScheduleResponse'
+  { _dssrsStartAt = Nothing
+  , _dssrsVolumeARN = Nothing
+  , _dssrsRecurrenceInHours = Nothing
+  , _dssrsTimezone = Nothing
+  , _dssrsDescription = Nothing
+  , _dssrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Undocumented member.
 dssrsStartAt :: Lens' DescribeSnapshotScheduleResponse (Maybe Natural)
 dssrsStartAt = lens _dssrsStartAt (\ s a -> s{_dssrsStartAt = a}) . mapping _Nat;
@@ -176,3 +178,4 @@
 dssrsResponseStatus = lens _dssrsResponseStatus (\ s a -> s{_dssrsResponseStatus = a});
 
 instance NFData DescribeSnapshotScheduleResponse
+         where
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,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeStorediSCSIVolumes
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Returns the description of the gateway volumes specified 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.
+-- Returns the description of the gateway volumes specified 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. This operation is only supported in stored volume gateway architecture.
 --
 --
 module Network.AWS.StorageGateway.DescribeStorediSCSIVolumes
@@ -37,12 +37,12 @@
     , dsscsivrsResponseStatus
     ) 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
+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
 
 -- | A JSON object containing a list of 'DescribeStorediSCSIVolumesInput$VolumeARNs' .
 --
@@ -50,9 +50,10 @@
 --
 -- /See:/ 'describeStorediSCSIVolumes' smart constructor.
 newtype DescribeStorediSCSIVolumes = DescribeStorediSCSIVolumes'
-    { _dsscsivVolumeARNs :: [Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dsscsivVolumeARNs :: [Text]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeStorediSCSIVolumes' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -61,10 +62,9 @@
 describeStorediSCSIVolumes
     :: DescribeStorediSCSIVolumes
 describeStorediSCSIVolumes =
-    DescribeStorediSCSIVolumes'
-    { _dsscsivVolumeARNs = mempty
-    }
+  DescribeStorediSCSIVolumes' {_dsscsivVolumeARNs = mempty}
 
+
 -- | 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.
 dsscsivVolumeARNs :: Lens' DescribeStorediSCSIVolumes [Text]
 dsscsivVolumeARNs = lens _dsscsivVolumeARNs (\ s a -> s{_dsscsivVolumeARNs = a}) . _Coerce;
@@ -80,9 +80,9 @@
                    (x .?> "StorediSCSIVolumes" .!@ mempty) <*>
                      (pure (fromEnum s)))
 
-instance Hashable DescribeStorediSCSIVolumes
+instance Hashable DescribeStorediSCSIVolumes where
 
-instance NFData DescribeStorediSCSIVolumes
+instance NFData DescribeStorediSCSIVolumes where
 
 instance ToHeaders DescribeStorediSCSIVolumes where
         toHeaders
@@ -108,10 +108,11 @@
 
 -- | /See:/ 'describeStorediSCSIVolumesResponse' smart constructor.
 data DescribeStorediSCSIVolumesResponse = DescribeStorediSCSIVolumesResponse'
-    { _dsscsivrsStorediSCSIVolumes :: !(Maybe [StorediSCSIVolume])
-    , _dsscsivrsResponseStatus     :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dsscsivrsStorediSCSIVolumes :: !(Maybe [StorediSCSIVolume])
+  , _dsscsivrsResponseStatus     :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeStorediSCSIVolumesResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -123,11 +124,12 @@
     :: Int -- ^ 'dsscsivrsResponseStatus'
     -> DescribeStorediSCSIVolumesResponse
 describeStorediSCSIVolumesResponse pResponseStatus_ =
-    DescribeStorediSCSIVolumesResponse'
-    { _dsscsivrsStorediSCSIVolumes = Nothing
-    , _dsscsivrsResponseStatus = pResponseStatus_
-    }
+  DescribeStorediSCSIVolumesResponse'
+  { _dsscsivrsStorediSCSIVolumes = Nothing
+  , _dsscsivrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Undocumented member.
 dsscsivrsStorediSCSIVolumes :: Lens' DescribeStorediSCSIVolumesResponse [StorediSCSIVolume]
 dsscsivrsStorediSCSIVolumes = lens _dsscsivrsStorediSCSIVolumes (\ s a -> s{_dsscsivrsStorediSCSIVolumes = a}) . _Default . _Coerce;
@@ -137,3 +139,4 @@
 dsscsivrsResponseStatus = lens _dsscsivrsResponseStatus (\ s a -> s{_dsscsivrsResponseStatus = a});
 
 instance NFData DescribeStorediSCSIVolumesResponse
+         where
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,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeTapeArchives
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Returns a description of specified virtual tapes in the virtual tape shelf (VTS).
+-- Returns a description of specified virtual tapes in the virtual tape shelf (VTS). This operation is only supported in the tape gateway architecture.
 --
 --
 -- If a specific @TapeARN@ is not specified, AWS Storage Gateway returns a description of all virtual tapes found in the VTS associated with your account.
@@ -44,13 +44,13 @@
     , dtarsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Pager
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.StorageGateway.Types
-import           Network.AWS.StorageGateway.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.StorageGateway.Types
+import Network.AWS.StorageGateway.Types.Product
 
 -- | DescribeTapeArchivesInput
 --
@@ -58,11 +58,12 @@
 --
 -- /See:/ 'describeTapeArchives' smart constructor.
 data DescribeTapeArchives = DescribeTapeArchives'
-    { _dtaMarker   :: !(Maybe Text)
-    , _dtaLimit    :: !(Maybe Nat)
-    , _dtaTapeARNs :: !(Maybe [Text])
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dtaMarker   :: !(Maybe Text)
+  , _dtaLimit    :: !(Maybe Nat)
+  , _dtaTapeARNs :: !(Maybe [Text])
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeTapeArchives' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -75,12 +76,10 @@
 describeTapeArchives
     :: DescribeTapeArchives
 describeTapeArchives =
-    DescribeTapeArchives'
-    { _dtaMarker = Nothing
-    , _dtaLimit = Nothing
-    , _dtaTapeARNs = Nothing
-    }
+  DescribeTapeArchives'
+  {_dtaMarker = Nothing, _dtaLimit = Nothing, _dtaTapeARNs = Nothing}
 
+
 -- | An opaque string that indicates the position at which to begin describing virtual tapes.
 dtaMarker :: Lens' DescribeTapeArchives (Maybe Text)
 dtaMarker = lens _dtaMarker (\ s a -> s{_dtaMarker = a});
@@ -112,9 +111,9 @@
                      (x .?> "Marker")
                      <*> (pure (fromEnum s)))
 
-instance Hashable DescribeTapeArchives
+instance Hashable DescribeTapeArchives where
 
-instance NFData DescribeTapeArchives
+instance NFData DescribeTapeArchives where
 
 instance ToHeaders DescribeTapeArchives where
         toHeaders
@@ -146,11 +145,12 @@
 --
 -- /See:/ 'describeTapeArchivesResponse' smart constructor.
 data DescribeTapeArchivesResponse = DescribeTapeArchivesResponse'
-    { _dtarsTapeArchives   :: !(Maybe [TapeArchive])
-    , _dtarsMarker         :: !(Maybe Text)
-    , _dtarsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dtarsTapeArchives   :: !(Maybe [TapeArchive])
+  , _dtarsMarker         :: !(Maybe Text)
+  , _dtarsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeTapeArchivesResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -164,12 +164,13 @@
     :: Int -- ^ 'dtarsResponseStatus'
     -> DescribeTapeArchivesResponse
 describeTapeArchivesResponse pResponseStatus_ =
-    DescribeTapeArchivesResponse'
-    { _dtarsTapeArchives = Nothing
-    , _dtarsMarker = Nothing
-    , _dtarsResponseStatus = pResponseStatus_
-    }
+  DescribeTapeArchivesResponse'
+  { _dtarsTapeArchives = Nothing
+  , _dtarsMarker = Nothing
+  , _dtarsResponseStatus = pResponseStatus_
+  }
 
+
 -- | An array of virtual tape objects in the virtual tape shelf (VTS). The description includes of the Amazon Resource Name(ARN) of the virtual tapes. The information returned includes the Amazon Resource Names (ARNs) of the tapes, size of the tapes, status of the tapes, progress of the description and tape barcode.
 dtarsTapeArchives :: Lens' DescribeTapeArchivesResponse [TapeArchive]
 dtarsTapeArchives = lens _dtarsTapeArchives (\ s a -> s{_dtarsTapeArchives = a}) . _Default . _Coerce;
@@ -182,4 +183,4 @@
 dtarsResponseStatus :: Lens' DescribeTapeArchivesResponse Int
 dtarsResponseStatus = lens _dtarsResponseStatus (\ s a -> s{_dtarsResponseStatus = a});
 
-instance NFData DescribeTapeArchivesResponse
+instance NFData DescribeTapeArchivesResponse where
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,16 +12,16 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeTapeRecoveryPoints
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Returns a list of virtual tape recovery points that are available for the specified gateway-VTL.
+-- Returns a list of virtual tape recovery points that are available for the specified tape gateway.
 --
 --
--- A recovery point is a point-in-time view of a virtual tape at which all the data on the virtual tape is consistent. If your gateway crashes, virtual tapes that have recovery points can be recovered to a new gateway.
+-- A recovery point is a point-in-time view of a virtual tape at which all the data on the virtual tape is consistent. If your gateway crashes, virtual tapes that have recovery points can be recovered to a new gateway. This operation is only supported in the tape gateway architecture.
 --
 --
 -- This operation returns paginated results.
@@ -45,13 +45,13 @@
     , dtrprsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Pager
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.StorageGateway.Types
-import           Network.AWS.StorageGateway.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.StorageGateway.Types
+import Network.AWS.StorageGateway.Types.Product
 
 -- | DescribeTapeRecoveryPointsInput
 --
@@ -59,11 +59,12 @@
 --
 -- /See:/ 'describeTapeRecoveryPoints' smart constructor.
 data DescribeTapeRecoveryPoints = DescribeTapeRecoveryPoints'
-    { _dtrpMarker     :: !(Maybe Text)
-    , _dtrpLimit      :: !(Maybe Nat)
-    , _dtrpGatewayARN :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dtrpMarker     :: !(Maybe Text)
+  , _dtrpLimit      :: !(Maybe Nat)
+  , _dtrpGatewayARN :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeTapeRecoveryPoints' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -77,12 +78,10 @@
     :: Text -- ^ 'dtrpGatewayARN'
     -> DescribeTapeRecoveryPoints
 describeTapeRecoveryPoints pGatewayARN_ =
-    DescribeTapeRecoveryPoints'
-    { _dtrpMarker = Nothing
-    , _dtrpLimit = Nothing
-    , _dtrpGatewayARN = pGatewayARN_
-    }
+  DescribeTapeRecoveryPoints'
+  {_dtrpMarker = Nothing, _dtrpLimit = Nothing, _dtrpGatewayARN = pGatewayARN_}
 
+
 -- | An opaque string that indicates the position at which to begin describing the virtual tape recovery points.
 dtrpMarker :: Lens' DescribeTapeRecoveryPoints (Maybe Text)
 dtrpMarker = lens _dtrpMarker (\ s a -> s{_dtrpMarker = a});
@@ -115,9 +114,9 @@
                      <*> (x .?> "Marker")
                      <*> (pure (fromEnum s)))
 
-instance Hashable DescribeTapeRecoveryPoints
+instance Hashable DescribeTapeRecoveryPoints where
 
-instance NFData DescribeTapeRecoveryPoints
+instance NFData DescribeTapeRecoveryPoints where
 
 instance ToHeaders DescribeTapeRecoveryPoints where
         toHeaders
@@ -149,12 +148,13 @@
 --
 -- /See:/ 'describeTapeRecoveryPointsResponse' smart constructor.
 data DescribeTapeRecoveryPointsResponse = DescribeTapeRecoveryPointsResponse'
-    { _dtrprsTapeRecoveryPointInfos :: !(Maybe [TapeRecoveryPointInfo])
-    , _dtrprsGatewayARN             :: !(Maybe Text)
-    , _dtrprsMarker                 :: !(Maybe Text)
-    , _dtrprsResponseStatus         :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dtrprsTapeRecoveryPointInfos :: !(Maybe [TapeRecoveryPointInfo])
+  , _dtrprsGatewayARN             :: !(Maybe Text)
+  , _dtrprsMarker                 :: !(Maybe Text)
+  , _dtrprsResponseStatus         :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeTapeRecoveryPointsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -170,13 +170,14 @@
     :: Int -- ^ 'dtrprsResponseStatus'
     -> DescribeTapeRecoveryPointsResponse
 describeTapeRecoveryPointsResponse pResponseStatus_ =
-    DescribeTapeRecoveryPointsResponse'
-    { _dtrprsTapeRecoveryPointInfos = Nothing
-    , _dtrprsGatewayARN = Nothing
-    , _dtrprsMarker = Nothing
-    , _dtrprsResponseStatus = pResponseStatus_
-    }
+  DescribeTapeRecoveryPointsResponse'
+  { _dtrprsTapeRecoveryPointInfos = Nothing
+  , _dtrprsGatewayARN = Nothing
+  , _dtrprsMarker = Nothing
+  , _dtrprsResponseStatus = pResponseStatus_
+  }
 
+
 -- | An array of TapeRecoveryPointInfos that are available for the specified gateway.
 dtrprsTapeRecoveryPointInfos :: Lens' DescribeTapeRecoveryPointsResponse [TapeRecoveryPointInfo]
 dtrprsTapeRecoveryPointInfos = lens _dtrprsTapeRecoveryPointInfos (\ s a -> s{_dtrprsTapeRecoveryPointInfos = a}) . _Default . _Coerce;
@@ -194,3 +195,4 @@
 dtrprsResponseStatus = lens _dtrprsResponseStatus (\ s a -> s{_dtrprsResponseStatus = a});
 
 instance NFData DescribeTapeRecoveryPointsResponse
+         where
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,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeTapes
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Returns a description of the specified Amazon Resource Name (ARN) of virtual tapes. If a @TapeARN@ is not specified, returns a description of all virtual tapes associated with the specified gateway.
+-- Returns a description of the specified Amazon Resource Name (ARN) of virtual tapes. If a @TapeARN@ is not specified, returns a description of all virtual tapes associated with the specified gateway. This operation is only supported in the tape gateway architecture.
 --
 --
 --
@@ -43,13 +43,13 @@
     , dtsrsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Pager
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.StorageGateway.Types
-import           Network.AWS.StorageGateway.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.StorageGateway.Types
+import Network.AWS.StorageGateway.Types.Product
 
 -- | DescribeTapesInput
 --
@@ -57,12 +57,13 @@
 --
 -- /See:/ 'describeTapes' smart constructor.
 data DescribeTapes = DescribeTapes'
-    { _dtMarker     :: !(Maybe Text)
-    , _dtLimit      :: !(Maybe Nat)
-    , _dtTapeARNs   :: !(Maybe [Text])
-    , _dtGatewayARN :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dtMarker     :: !(Maybe Text)
+  , _dtLimit      :: !(Maybe Nat)
+  , _dtTapeARNs   :: !(Maybe [Text])
+  , _dtGatewayARN :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeTapes' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -71,20 +72,21 @@
 --
 -- * 'dtLimit' - Specifies that the number of virtual tapes described be limited to the specified number.
 --
--- * 'dtTapeARNs' - Specifies one or more unique Amazon Resource Names (ARNs) that represent the virtual tapes you want to describe. If this parameter is not specified, AWS Storage Gateway returns a description of all virtual tapes associated with the specified gateway.
+-- * 'dtTapeARNs' - Specifies one or more unique Amazon Resource Names (ARNs) that represent the virtual tapes you want to describe. If this parameter is not specified, Tape gateway returns a description of all virtual tapes associated with the specified gateway.
 --
 -- * 'dtGatewayARN' - Undocumented member.
 describeTapes
     :: Text -- ^ 'dtGatewayARN'
     -> DescribeTapes
 describeTapes pGatewayARN_ =
-    DescribeTapes'
-    { _dtMarker = Nothing
-    , _dtLimit = Nothing
-    , _dtTapeARNs = Nothing
-    , _dtGatewayARN = pGatewayARN_
-    }
+  DescribeTapes'
+  { _dtMarker = Nothing
+  , _dtLimit = Nothing
+  , _dtTapeARNs = Nothing
+  , _dtGatewayARN = pGatewayARN_
+  }
 
+
 -- | A marker value, obtained in a previous call to @DescribeTapes@ . This marker indicates which page of results to retrieve.  If not specified, the first page of results is retrieved.
 dtMarker :: Lens' DescribeTapes (Maybe Text)
 dtMarker = lens _dtMarker (\ s a -> s{_dtMarker = a});
@@ -93,7 +95,7 @@
 dtLimit :: Lens' DescribeTapes (Maybe Natural)
 dtLimit = lens _dtLimit (\ s a -> s{_dtLimit = a}) . mapping _Nat;
 
--- | Specifies one or more unique Amazon Resource Names (ARNs) that represent the virtual tapes you want to describe. If this parameter is not specified, AWS Storage Gateway returns a description of all virtual tapes associated with the specified gateway.
+-- | Specifies one or more unique Amazon Resource Names (ARNs) that represent the virtual tapes you want to describe. If this parameter is not specified, Tape gateway returns a description of all virtual tapes associated with the specified gateway.
 dtTapeARNs :: Lens' DescribeTapes [Text]
 dtTapeARNs = lens _dtTapeARNs (\ s a -> s{_dtTapeARNs = a}) . _Default . _Coerce;
 
@@ -118,9 +120,9 @@
                    (x .?> "Marker") <*> (x .?> "Tapes" .!@ mempty) <*>
                      (pure (fromEnum s)))
 
-instance Hashable DescribeTapes
+instance Hashable DescribeTapes where
 
-instance NFData DescribeTapes
+instance NFData DescribeTapes where
 
 instance ToHeaders DescribeTapes where
         toHeaders
@@ -153,11 +155,12 @@
 --
 -- /See:/ 'describeTapesResponse' smart constructor.
 data DescribeTapesResponse = DescribeTapesResponse'
-    { _dtsrsMarker         :: !(Maybe Text)
-    , _dtsrsTapes          :: !(Maybe [Tape])
-    , _dtsrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dtsrsMarker         :: !(Maybe Text)
+  , _dtsrsTapes          :: !(Maybe [Tape])
+  , _dtsrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeTapesResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -171,12 +174,13 @@
     :: Int -- ^ 'dtsrsResponseStatus'
     -> DescribeTapesResponse
 describeTapesResponse pResponseStatus_ =
-    DescribeTapesResponse'
-    { _dtsrsMarker = Nothing
-    , _dtsrsTapes = Nothing
-    , _dtsrsResponseStatus = pResponseStatus_
-    }
+  DescribeTapesResponse'
+  { _dtsrsMarker = Nothing
+  , _dtsrsTapes = Nothing
+  , _dtsrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | An opaque string which can be used as part of a subsequent DescribeTapes call to retrieve the next page of results. If a response does not contain a marker, then there are no more results to be retrieved.
 dtsrsMarker :: Lens' DescribeTapesResponse (Maybe Text)
 dtsrsMarker = lens _dtsrsMarker (\ s a -> s{_dtsrsMarker = a});
@@ -189,4 +193,4 @@
 dtsrsResponseStatus :: Lens' DescribeTapesResponse Int
 dtsrsResponseStatus = lens _dtsrsResponseStatus (\ s a -> s{_dtsrsResponseStatus = a});
 
-instance NFData DescribeTapesResponse
+instance NFData DescribeTapesResponse where
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,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeUploadBuffer
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Returns information about the upload buffer of a gateway. This operation is supported for both the gateway-stored and gateway-cached volume architectures.
+-- Returns information about the upload buffer of a gateway. This operation is supported for the stored volume, cached volume and tape gateway architectures.
 --
 --
 -- The response includes disk IDs that are configured as upload buffer space, and it includes the amount of upload buffer space allocated and used.
@@ -42,18 +42,19 @@
     , dubrsResponseStatus
     ) 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
+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
 
 -- | /See:/ 'describeUploadBuffer' smart constructor.
 newtype DescribeUploadBuffer = DescribeUploadBuffer'
-    { _dubGatewayARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dubGatewayARN :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeUploadBuffer' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -63,10 +64,9 @@
     :: Text -- ^ 'dubGatewayARN'
     -> DescribeUploadBuffer
 describeUploadBuffer pGatewayARN_ =
-    DescribeUploadBuffer'
-    { _dubGatewayARN = pGatewayARN_
-    }
+  DescribeUploadBuffer' {_dubGatewayARN = pGatewayARN_}
 
+
 -- | Undocumented member.
 dubGatewayARN :: Lens' DescribeUploadBuffer Text
 dubGatewayARN = lens _dubGatewayARN (\ s a -> s{_dubGatewayARN = a});
@@ -85,9 +85,9 @@
                      <*> (x .?> "UploadBufferUsedInBytes")
                      <*> (pure (fromEnum s)))
 
-instance Hashable DescribeUploadBuffer
+instance Hashable DescribeUploadBuffer where
 
-instance NFData DescribeUploadBuffer
+instance NFData DescribeUploadBuffer where
 
 instance ToHeaders DescribeUploadBuffer where
         toHeaders
@@ -112,13 +112,14 @@
 
 -- | /See:/ 'describeUploadBufferResponse' smart constructor.
 data DescribeUploadBufferResponse = DescribeUploadBufferResponse'
-    { _dubrsUploadBufferAllocatedInBytes :: !(Maybe Integer)
-    , _dubrsGatewayARN                   :: !(Maybe Text)
-    , _dubrsDiskIds                      :: !(Maybe [Text])
-    , _dubrsUploadBufferUsedInBytes      :: !(Maybe Integer)
-    , _dubrsResponseStatus               :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dubrsUploadBufferAllocatedInBytes :: !(Maybe Integer)
+  , _dubrsGatewayARN                   :: !(Maybe Text)
+  , _dubrsDiskIds                      :: !(Maybe [Text])
+  , _dubrsUploadBufferUsedInBytes      :: !(Maybe Integer)
+  , _dubrsResponseStatus               :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeUploadBufferResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -136,14 +137,15 @@
     :: Int -- ^ 'dubrsResponseStatus'
     -> DescribeUploadBufferResponse
 describeUploadBufferResponse pResponseStatus_ =
-    DescribeUploadBufferResponse'
-    { _dubrsUploadBufferAllocatedInBytes = Nothing
-    , _dubrsGatewayARN = Nothing
-    , _dubrsDiskIds = Nothing
-    , _dubrsUploadBufferUsedInBytes = Nothing
-    , _dubrsResponseStatus = pResponseStatus_
-    }
+  DescribeUploadBufferResponse'
+  { _dubrsUploadBufferAllocatedInBytes = Nothing
+  , _dubrsGatewayARN = Nothing
+  , _dubrsDiskIds = Nothing
+  , _dubrsUploadBufferUsedInBytes = Nothing
+  , _dubrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Undocumented member.
 dubrsUploadBufferAllocatedInBytes :: Lens' DescribeUploadBufferResponse (Maybe Integer)
 dubrsUploadBufferAllocatedInBytes = lens _dubrsUploadBufferAllocatedInBytes (\ s a -> s{_dubrsUploadBufferAllocatedInBytes = a});
@@ -164,4 +166,4 @@
 dubrsResponseStatus :: Lens' DescribeUploadBufferResponse Int
 dubrsResponseStatus = lens _dubrsResponseStatus (\ s a -> s{_dubrsResponseStatus = a});
 
-instance NFData DescribeUploadBufferResponse
+instance NFData DescribeUploadBufferResponse where
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,16 +12,16 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeVTLDevices
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Returns a description of virtual tape library (VTL) devices for the specified gateway. In the response, AWS Storage Gateway returns VTL device information.
+-- Returns a description of virtual tape library (VTL) devices for the specified tape gateway. In the response, AWS Storage Gateway returns VTL device information.
 --
 --
--- The list of VTL devices must be from one gateway.
+-- This operation is only supported in the tape gateway architecture.
 --
 --
 -- This operation returns paginated results.
@@ -46,13 +46,13 @@
     , dvtldrsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Pager
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.StorageGateway.Types
-import           Network.AWS.StorageGateway.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.StorageGateway.Types
+import Network.AWS.StorageGateway.Types.Product
 
 -- | DescribeVTLDevicesInput
 --
@@ -60,12 +60,13 @@
 --
 -- /See:/ 'describeVTLDevices' smart constructor.
 data DescribeVTLDevices = DescribeVTLDevices'
-    { _dvtldMarker        :: !(Maybe Text)
-    , _dvtldLimit         :: !(Maybe Nat)
-    , _dvtldVTLDeviceARNs :: !(Maybe [Text])
-    , _dvtldGatewayARN    :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dvtldMarker        :: !(Maybe Text)
+  , _dvtldLimit         :: !(Maybe Nat)
+  , _dvtldVTLDeviceARNs :: !(Maybe [Text])
+  , _dvtldGatewayARN    :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeVTLDevices' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -81,13 +82,14 @@
     :: Text -- ^ 'dvtldGatewayARN'
     -> DescribeVTLDevices
 describeVTLDevices pGatewayARN_ =
-    DescribeVTLDevices'
-    { _dvtldMarker = Nothing
-    , _dvtldLimit = Nothing
-    , _dvtldVTLDeviceARNs = Nothing
-    , _dvtldGatewayARN = pGatewayARN_
-    }
+  DescribeVTLDevices'
+  { _dvtldMarker = Nothing
+  , _dvtldLimit = Nothing
+  , _dvtldVTLDeviceARNs = Nothing
+  , _dvtldGatewayARN = pGatewayARN_
+  }
 
+
 -- | An opaque string that indicates the position at which to begin describing the VTL devices.
 dvtldMarker :: Lens' DescribeVTLDevices (Maybe Text)
 dvtldMarker = lens _dvtldMarker (\ s a -> s{_dvtldMarker = a});
@@ -124,9 +126,9 @@
                      <*> (x .?> "Marker")
                      <*> (pure (fromEnum s)))
 
-instance Hashable DescribeVTLDevices
+instance Hashable DescribeVTLDevices where
 
-instance NFData DescribeVTLDevices
+instance NFData DescribeVTLDevices where
 
 instance ToHeaders DescribeVTLDevices where
         toHeaders
@@ -159,12 +161,13 @@
 --
 -- /See:/ 'describeVTLDevicesResponse' smart constructor.
 data DescribeVTLDevicesResponse = DescribeVTLDevicesResponse'
-    { _dvtldrsVTLDevices     :: !(Maybe [VTLDevice])
-    , _dvtldrsGatewayARN     :: !(Maybe Text)
-    , _dvtldrsMarker         :: !(Maybe Text)
-    , _dvtldrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dvtldrsVTLDevices     :: !(Maybe [VTLDevice])
+  , _dvtldrsGatewayARN     :: !(Maybe Text)
+  , _dvtldrsMarker         :: !(Maybe Text)
+  , _dvtldrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeVTLDevicesResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -180,13 +183,14 @@
     :: Int -- ^ 'dvtldrsResponseStatus'
     -> DescribeVTLDevicesResponse
 describeVTLDevicesResponse pResponseStatus_ =
-    DescribeVTLDevicesResponse'
-    { _dvtldrsVTLDevices = Nothing
-    , _dvtldrsGatewayARN = Nothing
-    , _dvtldrsMarker = Nothing
-    , _dvtldrsResponseStatus = pResponseStatus_
-    }
+  DescribeVTLDevicesResponse'
+  { _dvtldrsVTLDevices = Nothing
+  , _dvtldrsGatewayARN = Nothing
+  , _dvtldrsMarker = Nothing
+  , _dvtldrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | An array of VTL device objects composed of the Amazon Resource Name(ARN) of the VTL devices.
 dvtldrsVTLDevices :: Lens' DescribeVTLDevicesResponse [VTLDevice]
 dvtldrsVTLDevices = lens _dvtldrsVTLDevices (\ s a -> s{_dvtldrsVTLDevices = a}) . _Default . _Coerce;
@@ -203,4 +207,4 @@
 dvtldrsResponseStatus :: Lens' DescribeVTLDevicesResponse Int
 dvtldrsResponseStatus = lens _dvtldrsResponseStatus (\ s a -> s{_dvtldrsResponseStatus = a});
 
-instance NFData DescribeVTLDevicesResponse
+instance NFData DescribeVTLDevicesResponse where
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,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DescribeWorkingStorage
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Returns information about the working storage of a gateway. This operation is supported only for the gateway-stored volume architecture. This operation is deprecated in cached-volumes API version (20120630). Use DescribeUploadBuffer instead.
+-- Returns information about the working storage of a gateway. This operation is only supported in the stored volumes gateway architecture. This operation is deprecated in cached volumes API version (20120630). Use DescribeUploadBuffer instead.
 --
 --
 -- The response includes disk IDs that are configured as working storage, and it includes the amount of working storage allocated and used.
@@ -42,12 +42,12 @@
     , dwsrsResponseStatus
     ) 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
+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
 
 -- | A JSON object containing the of the gateway.
 --
@@ -55,9 +55,10 @@
 --
 -- /See:/ 'describeWorkingStorage' smart constructor.
 newtype DescribeWorkingStorage = DescribeWorkingStorage'
-    { _dwsGatewayARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dwsGatewayARN :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeWorkingStorage' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -67,10 +68,9 @@
     :: Text -- ^ 'dwsGatewayARN'
     -> DescribeWorkingStorage
 describeWorkingStorage pGatewayARN_ =
-    DescribeWorkingStorage'
-    { _dwsGatewayARN = pGatewayARN_
-    }
+  DescribeWorkingStorage' {_dwsGatewayARN = pGatewayARN_}
 
+
 -- | Undocumented member.
 dwsGatewayARN :: Lens' DescribeWorkingStorage Text
 dwsGatewayARN = lens _dwsGatewayARN (\ s a -> s{_dwsGatewayARN = a});
@@ -88,9 +88,9 @@
                      <*> (x .?> "WorkingStorageUsedInBytes")
                      <*> (pure (fromEnum s)))
 
-instance Hashable DescribeWorkingStorage
+instance Hashable DescribeWorkingStorage where
 
-instance NFData DescribeWorkingStorage
+instance NFData DescribeWorkingStorage where
 
 instance ToHeaders DescribeWorkingStorage where
         toHeaders
@@ -119,13 +119,14 @@
 --
 -- /See:/ 'describeWorkingStorageResponse' smart constructor.
 data DescribeWorkingStorageResponse = DescribeWorkingStorageResponse'
-    { _dwsrsGatewayARN                     :: !(Maybe Text)
-    , _dwsrsDiskIds                        :: !(Maybe [Text])
-    , _dwsrsWorkingStorageAllocatedInBytes :: !(Maybe Integer)
-    , _dwsrsWorkingStorageUsedInBytes      :: !(Maybe Integer)
-    , _dwsrsResponseStatus                 :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dwsrsGatewayARN                     :: !(Maybe Text)
+  , _dwsrsDiskIds                        :: !(Maybe [Text])
+  , _dwsrsWorkingStorageAllocatedInBytes :: !(Maybe Integer)
+  , _dwsrsWorkingStorageUsedInBytes      :: !(Maybe Integer)
+  , _dwsrsResponseStatus                 :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeWorkingStorageResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -143,14 +144,15 @@
     :: Int -- ^ 'dwsrsResponseStatus'
     -> DescribeWorkingStorageResponse
 describeWorkingStorageResponse pResponseStatus_ =
-    DescribeWorkingStorageResponse'
-    { _dwsrsGatewayARN = Nothing
-    , _dwsrsDiskIds = Nothing
-    , _dwsrsWorkingStorageAllocatedInBytes = Nothing
-    , _dwsrsWorkingStorageUsedInBytes = Nothing
-    , _dwsrsResponseStatus = pResponseStatus_
-    }
+  DescribeWorkingStorageResponse'
+  { _dwsrsGatewayARN = Nothing
+  , _dwsrsDiskIds = Nothing
+  , _dwsrsWorkingStorageAllocatedInBytes = Nothing
+  , _dwsrsWorkingStorageUsedInBytes = Nothing
+  , _dwsrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Undocumented member.
 dwsrsGatewayARN :: Lens' DescribeWorkingStorageResponse (Maybe Text)
 dwsrsGatewayARN = lens _dwsrsGatewayARN (\ s a -> s{_dwsrsGatewayARN = a});
@@ -171,4 +173,4 @@
 dwsrsResponseStatus :: Lens' DescribeWorkingStorageResponse Int
 dwsrsResponseStatus = lens _dwsrsResponseStatus (\ s a -> s{_dwsrsResponseStatus = a});
 
-instance NFData DescribeWorkingStorageResponse
+instance NFData DescribeWorkingStorageResponse where
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,16 +12,16 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.DisableGateway
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Disables a gateway when the gateway is no longer functioning. For example, if your gateway VM is damaged, you can disable the gateway so you can recover virtual tapes.
+-- Disables a tape gateway when the gateway is no longer functioning. For example, if your gateway VM is damaged, you can disable the gateway so you can recover virtual tapes.
 --
 --
--- Use this operation for a gateway-VTL that is not reachable or not functioning.
+-- Use this operation for a tape gateway that is not reachable or not functioning. This operation is only supported in the tape gateway architectures.
 --
 -- /Important:/ Once a gateway is disabled it cannot be enabled.
 --
@@ -41,12 +41,12 @@
     , disrsResponseStatus
     ) 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
+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
 
 -- | DisableGatewayInput
 --
@@ -54,9 +54,10 @@
 --
 -- /See:/ 'disableGateway' smart constructor.
 newtype DisableGateway = DisableGateway'
-    { _dGatewayARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dGatewayARN :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DisableGateway' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -65,11 +66,9 @@
 disableGateway
     :: Text -- ^ 'dGatewayARN'
     -> DisableGateway
-disableGateway pGatewayARN_ =
-    DisableGateway'
-    { _dGatewayARN = pGatewayARN_
-    }
+disableGateway pGatewayARN_ = DisableGateway' {_dGatewayARN = pGatewayARN_}
 
+
 -- | Undocumented member.
 dGatewayARN :: Lens' DisableGateway Text
 dGatewayARN = lens _dGatewayARN (\ s a -> s{_dGatewayARN = a});
@@ -83,9 +82,9 @@
                  DisableGatewayResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
 
-instance Hashable DisableGateway
+instance Hashable DisableGateway where
 
-instance NFData DisableGateway
+instance NFData DisableGateway where
 
 instance ToHeaders DisableGateway where
         toHeaders
@@ -114,10 +113,11 @@
 --
 -- /See:/ 'disableGatewayResponse' smart constructor.
 data DisableGatewayResponse = DisableGatewayResponse'
-    { _disrsGatewayARN     :: !(Maybe Text)
-    , _disrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _disrsGatewayARN     :: !(Maybe Text)
+  , _disrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DisableGatewayResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -129,11 +129,10 @@
     :: Int -- ^ 'disrsResponseStatus'
     -> DisableGatewayResponse
 disableGatewayResponse pResponseStatus_ =
-    DisableGatewayResponse'
-    { _disrsGatewayARN = Nothing
-    , _disrsResponseStatus = pResponseStatus_
-    }
+  DisableGatewayResponse'
+  {_disrsGatewayARN = Nothing, _disrsResponseStatus = pResponseStatus_}
 
+
 -- | The unique Amazon Resource Name of the disabled gateway.
 disrsGatewayARN :: Lens' DisableGatewayResponse (Maybe Text)
 disrsGatewayARN = lens _disrsGatewayARN (\ s a -> s{_disrsGatewayARN = a});
@@ -142,4 +141,4 @@
 disrsResponseStatus :: Lens' DisableGatewayResponse Int
 disrsResponseStatus = lens _disrsResponseStatus (\ s a -> s{_disrsResponseStatus = a});
 
-instance NFData DisableGatewayResponse
+instance NFData DisableGatewayResponse where
diff --git a/gen/Network/AWS/StorageGateway/ListFileShares.hs b/gen/Network/AWS/StorageGateway/ListFileShares.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/StorageGateway/ListFileShares.hs
@@ -0,0 +1,183 @@
+{-# 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.ListFileShares
+-- Copyright   : (c) 2013-2017 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets a list of the file shares for a specific file gateway, or the list of file shares that belong to the calling user account. This operation is only supported in the file gateway architecture.
+--
+--
+module Network.AWS.StorageGateway.ListFileShares
+    (
+    -- * Creating a Request
+      listFileShares
+    , ListFileShares
+    -- * Request Lenses
+    , lfsGatewayARN
+    , lfsMarker
+    , lfsLimit
+
+    -- * Destructuring the Response
+    , listFileSharesResponse
+    , ListFileSharesResponse
+    -- * Response Lenses
+    , lfsrsFileShareInfoList
+    , lfsrsMarker
+    , lfsrsNextMarker
+    , lfsrsResponseStatus
+    ) 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
+
+-- | ListFileShareInput
+--
+--
+--
+-- /See:/ 'listFileShares' smart constructor.
+data ListFileShares = ListFileShares'
+  { _lfsGatewayARN :: !(Maybe Text)
+  , _lfsMarker     :: !(Maybe Text)
+  , _lfsLimit      :: !(Maybe Nat)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListFileShares' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lfsGatewayARN' - The Amazon resource Name (ARN) of the gateway whose file shares you want to list. If this field is not present, all file shares under your account are listed.
+--
+-- * 'lfsMarker' - Opaque pagination token returned from a previous ListFileShares operation. If present, @Marker@ specifies where to continue the list from after a previous call to ListFileShares. Optional.
+--
+-- * 'lfsLimit' - The maximum number of file shares to return in the response. The value must be an integer with a value greater than zero. Optional.
+listFileShares
+    :: ListFileShares
+listFileShares =
+  ListFileShares'
+  {_lfsGatewayARN = Nothing, _lfsMarker = Nothing, _lfsLimit = Nothing}
+
+
+-- | The Amazon resource Name (ARN) of the gateway whose file shares you want to list. If this field is not present, all file shares under your account are listed.
+lfsGatewayARN :: Lens' ListFileShares (Maybe Text)
+lfsGatewayARN = lens _lfsGatewayARN (\ s a -> s{_lfsGatewayARN = a});
+
+-- | Opaque pagination token returned from a previous ListFileShares operation. If present, @Marker@ specifies where to continue the list from after a previous call to ListFileShares. Optional.
+lfsMarker :: Lens' ListFileShares (Maybe Text)
+lfsMarker = lens _lfsMarker (\ s a -> s{_lfsMarker = a});
+
+-- | The maximum number of file shares to return in the response. The value must be an integer with a value greater than zero. Optional.
+lfsLimit :: Lens' ListFileShares (Maybe Natural)
+lfsLimit = lens _lfsLimit (\ s a -> s{_lfsLimit = a}) . mapping _Nat;
+
+instance AWSRequest ListFileShares where
+        type Rs ListFileShares = ListFileSharesResponse
+        request = postJSON storageGateway
+        response
+          = receiveJSON
+              (\ s h x ->
+                 ListFileSharesResponse' <$>
+                   (x .?> "FileShareInfoList" .!@ mempty) <*>
+                     (x .?> "Marker")
+                     <*> (x .?> "NextMarker")
+                     <*> (pure (fromEnum s)))
+
+instance Hashable ListFileShares where
+
+instance NFData ListFileShares where
+
+instance ToHeaders ListFileShares where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("StorageGateway_20130630.ListFileShares" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON ListFileShares where
+        toJSON ListFileShares'{..}
+          = object
+              (catMaybes
+                 [("GatewayARN" .=) <$> _lfsGatewayARN,
+                  ("Marker" .=) <$> _lfsMarker,
+                  ("Limit" .=) <$> _lfsLimit])
+
+instance ToPath ListFileShares where
+        toPath = const "/"
+
+instance ToQuery ListFileShares where
+        toQuery = const mempty
+
+-- | ListFileShareOutput
+--
+--
+--
+-- /See:/ 'listFileSharesResponse' smart constructor.
+data ListFileSharesResponse = ListFileSharesResponse'
+  { _lfsrsFileShareInfoList :: !(Maybe [FileShareInfo])
+  , _lfsrsMarker            :: !(Maybe Text)
+  , _lfsrsNextMarker        :: !(Maybe Text)
+  , _lfsrsResponseStatus    :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListFileSharesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lfsrsFileShareInfoList' - An array of information about the file gateway's file shares.
+--
+-- * 'lfsrsMarker' - If the request includes @Marker@ , the response returns that value in this field.
+--
+-- * 'lfsrsNextMarker' - If a value is present, there are more file shares to return. In a subsequent request, use @NextMarker@ as the value for @Marker@ to retrieve the next set of file shares.
+--
+-- * 'lfsrsResponseStatus' - -- | The response status code.
+listFileSharesResponse
+    :: Int -- ^ 'lfsrsResponseStatus'
+    -> ListFileSharesResponse
+listFileSharesResponse pResponseStatus_ =
+  ListFileSharesResponse'
+  { _lfsrsFileShareInfoList = Nothing
+  , _lfsrsMarker = Nothing
+  , _lfsrsNextMarker = Nothing
+  , _lfsrsResponseStatus = pResponseStatus_
+  }
+
+
+-- | An array of information about the file gateway's file shares.
+lfsrsFileShareInfoList :: Lens' ListFileSharesResponse [FileShareInfo]
+lfsrsFileShareInfoList = lens _lfsrsFileShareInfoList (\ s a -> s{_lfsrsFileShareInfoList = a}) . _Default . _Coerce;
+
+-- | If the request includes @Marker@ , the response returns that value in this field.
+lfsrsMarker :: Lens' ListFileSharesResponse (Maybe Text)
+lfsrsMarker = lens _lfsrsMarker (\ s a -> s{_lfsrsMarker = a});
+
+-- | If a value is present, there are more file shares to return. In a subsequent request, use @NextMarker@ as the value for @Marker@ to retrieve the next set of file shares.
+lfsrsNextMarker :: Lens' ListFileSharesResponse (Maybe Text)
+lfsrsNextMarker = lens _lfsrsNextMarker (\ s a -> s{_lfsrsNextMarker = a});
+
+-- | -- | The response status code.
+lfsrsResponseStatus :: Lens' ListFileSharesResponse Int
+lfsrsResponseStatus = lens _lfsrsResponseStatus (\ s a -> s{_lfsrsResponseStatus = a});
+
+instance NFData ListFileSharesResponse where
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,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.ListGateways
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -45,13 +45,13 @@
     , lgrsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Pager
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.StorageGateway.Types
-import           Network.AWS.StorageGateway.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.StorageGateway.Types
+import Network.AWS.StorageGateway.Types.Product
 
 -- | A JSON object containing zero or more of the following fields:
 --
@@ -65,10 +65,11 @@
 --
 -- /See:/ 'listGateways' smart constructor.
 data ListGateways = ListGateways'
-    { _lgMarker :: !(Maybe Text)
-    , _lgLimit  :: !(Maybe Nat)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _lgMarker :: !(Maybe Text)
+  , _lgLimit  :: !(Maybe Nat)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListGateways' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -78,12 +79,9 @@
 -- * 'lgLimit' - Specifies that the list of gateways returned be limited to the specified number of items.
 listGateways
     :: ListGateways
-listGateways =
-    ListGateways'
-    { _lgMarker = Nothing
-    , _lgLimit = Nothing
-    }
+listGateways = ListGateways' {_lgMarker = Nothing, _lgLimit = Nothing}
 
+
 -- | An opaque string that indicates the position at which to begin the returned list of gateways.
 lgMarker :: Lens' ListGateways (Maybe Text)
 lgMarker = lens _lgMarker (\ s a -> s{_lgMarker = a});
@@ -109,9 +107,9 @@
                    (x .?> "Marker") <*> (x .?> "Gateways" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
-instance Hashable ListGateways
+instance Hashable ListGateways where
 
-instance NFData ListGateways
+instance NFData ListGateways where
 
 instance ToHeaders ListGateways where
         toHeaders
@@ -138,11 +136,12 @@
 
 -- | /See:/ 'listGatewaysResponse' smart constructor.
 data ListGatewaysResponse = ListGatewaysResponse'
-    { _lgrsMarker         :: !(Maybe Text)
-    , _lgrsGateways       :: !(Maybe [GatewayInfo])
-    , _lgrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _lgrsMarker         :: !(Maybe Text)
+  , _lgrsGateways       :: !(Maybe [GatewayInfo])
+  , _lgrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListGatewaysResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -156,12 +155,13 @@
     :: Int -- ^ 'lgrsResponseStatus'
     -> ListGatewaysResponse
 listGatewaysResponse pResponseStatus_ =
-    ListGatewaysResponse'
-    { _lgrsMarker = Nothing
-    , _lgrsGateways = Nothing
-    , _lgrsResponseStatus = pResponseStatus_
-    }
+  ListGatewaysResponse'
+  { _lgrsMarker = Nothing
+  , _lgrsGateways = Nothing
+  , _lgrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Undocumented member.
 lgrsMarker :: Lens' ListGatewaysResponse (Maybe Text)
 lgrsMarker = lens _lgrsMarker (\ s a -> s{_lgrsMarker = a});
@@ -174,4 +174,4 @@
 lgrsResponseStatus :: Lens' ListGatewaysResponse Int
 lgrsResponseStatus = lens _lgrsResponseStatus (\ s a -> s{_lgrsResponseStatus = a});
 
-instance NFData ListGatewaysResponse
+instance NFData ListGatewaysResponse where
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,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.ListLocalDisks
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -40,12 +40,12 @@
     , lldrsResponseStatus
     ) 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
+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
 
 -- | A JSON object containing the of the gateway.
 --
@@ -53,9 +53,10 @@
 --
 -- /See:/ 'listLocalDisks' smart constructor.
 newtype ListLocalDisks = ListLocalDisks'
-    { _lldGatewayARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _lldGatewayARN :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListLocalDisks' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -64,11 +65,9 @@
 listLocalDisks
     :: Text -- ^ 'lldGatewayARN'
     -> ListLocalDisks
-listLocalDisks pGatewayARN_ =
-    ListLocalDisks'
-    { _lldGatewayARN = pGatewayARN_
-    }
+listLocalDisks pGatewayARN_ = ListLocalDisks' {_lldGatewayARN = pGatewayARN_}
 
+
 -- | Undocumented member.
 lldGatewayARN :: Lens' ListLocalDisks Text
 lldGatewayARN = lens _lldGatewayARN (\ s a -> s{_lldGatewayARN = a});
@@ -83,9 +82,9 @@
                    (x .?> "GatewayARN") <*> (x .?> "Disks" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
-instance Hashable ListLocalDisks
+instance Hashable ListLocalDisks where
 
-instance NFData ListLocalDisks
+instance NFData ListLocalDisks where
 
 instance ToHeaders ListLocalDisks where
         toHeaders
@@ -110,11 +109,12 @@
 
 -- | /See:/ 'listLocalDisksResponse' smart constructor.
 data ListLocalDisksResponse = ListLocalDisksResponse'
-    { _lldrsGatewayARN     :: !(Maybe Text)
-    , _lldrsDisks          :: !(Maybe [Disk])
-    , _lldrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _lldrsGatewayARN     :: !(Maybe Text)
+  , _lldrsDisks          :: !(Maybe [Disk])
+  , _lldrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListLocalDisksResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -128,12 +128,13 @@
     :: Int -- ^ 'lldrsResponseStatus'
     -> ListLocalDisksResponse
 listLocalDisksResponse pResponseStatus_ =
-    ListLocalDisksResponse'
-    { _lldrsGatewayARN = Nothing
-    , _lldrsDisks = Nothing
-    , _lldrsResponseStatus = pResponseStatus_
-    }
+  ListLocalDisksResponse'
+  { _lldrsGatewayARN = Nothing
+  , _lldrsDisks = Nothing
+  , _lldrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Undocumented member.
 lldrsGatewayARN :: Lens' ListLocalDisksResponse (Maybe Text)
 lldrsGatewayARN = lens _lldrsGatewayARN (\ s a -> s{_lldrsGatewayARN = a});
@@ -146,4 +147,4 @@
 lldrsResponseStatus :: Lens' ListLocalDisksResponse Int
 lldrsResponseStatus = lens _lldrsResponseStatus (\ s a -> s{_lldrsResponseStatus = a});
 
-instance NFData ListLocalDisksResponse
+instance NFData ListLocalDisksResponse where
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,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.ListTagsForResource
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Lists the tags that have been added to the specified resource.
+-- Lists the tags that have been added to the specified resource. This operation is only supported in the cached volume, stored volume and tape gateway architecture.
 --
 --
 module Network.AWS.StorageGateway.ListTagsForResource
@@ -41,12 +41,12 @@
     , ltfrrsResponseStatus
     ) 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
+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
 
 -- | ListTagsForResourceInput
 --
@@ -54,11 +54,12 @@
 --
 -- /See:/ 'listTagsForResource' smart constructor.
 data ListTagsForResource = ListTagsForResource'
-    { _ltfrMarker      :: !(Maybe Text)
-    , _ltfrLimit       :: !(Maybe Nat)
-    , _ltfrResourceARN :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _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:
@@ -72,12 +73,13 @@
     :: Text -- ^ 'ltfrResourceARN'
     -> ListTagsForResource
 listTagsForResource pResourceARN_ =
-    ListTagsForResource'
-    { _ltfrMarker = Nothing
-    , _ltfrLimit = Nothing
-    , _ltfrResourceARN = pResourceARN_
-    }
+  ListTagsForResource'
+  { _ltfrMarker = Nothing
+  , _ltfrLimit = Nothing
+  , _ltfrResourceARN = pResourceARN_
+  }
 
+
 -- | An opaque string that indicates the position at which to begin returning the list of tags.
 ltfrMarker :: Lens' ListTagsForResource (Maybe Text)
 ltfrMarker = lens _ltfrMarker (\ s a -> s{_ltfrMarker = a});
@@ -102,9 +104,9 @@
                      (x .?> "Tags" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
-instance Hashable ListTagsForResource
+instance Hashable ListTagsForResource where
 
-instance NFData ListTagsForResource
+instance NFData ListTagsForResource where
 
 instance ToHeaders ListTagsForResource where
         toHeaders
@@ -136,12 +138,13 @@
 --
 -- /See:/ 'listTagsForResourceResponse' smart constructor.
 data ListTagsForResourceResponse = ListTagsForResourceResponse'
-    { _ltfrrsResourceARN    :: !(Maybe Text)
-    , _ltfrrsMarker         :: !(Maybe Text)
-    , _ltfrrsTags           :: !(Maybe [Tag])
-    , _ltfrrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ltfrrsResourceARN    :: !(Maybe Text)
+  , _ltfrrsMarker         :: !(Maybe Text)
+  , _ltfrrsTags           :: !(Maybe [Tag])
+  , _ltfrrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListTagsForResourceResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -157,13 +160,14 @@
     :: Int -- ^ 'ltfrrsResponseStatus'
     -> ListTagsForResourceResponse
 listTagsForResourceResponse pResponseStatus_ =
-    ListTagsForResourceResponse'
-    { _ltfrrsResourceARN = Nothing
-    , _ltfrrsMarker = Nothing
-    , _ltfrrsTags = Nothing
-    , _ltfrrsResponseStatus = pResponseStatus_
-    }
+  ListTagsForResourceResponse'
+  { _ltfrrsResourceARN = Nothing
+  , _ltfrrsMarker = Nothing
+  , _ltfrrsTags = Nothing
+  , _ltfrrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | he Amazon Resource Name (ARN) of the resource for which you want to list tags.
 ltfrrsResourceARN :: Lens' ListTagsForResourceResponse (Maybe Text)
 ltfrrsResourceARN = lens _ltfrrsResourceARN (\ s a -> s{_ltfrrsResourceARN = a});
@@ -180,4 +184,4 @@
 ltfrrsResponseStatus :: Lens' ListTagsForResourceResponse Int
 ltfrrsResponseStatus = lens _ltfrrsResponseStatus (\ s a -> s{_ltfrrsResponseStatus = a});
 
-instance NFData ListTagsForResourceResponse
+instance NFData ListTagsForResourceResponse where
diff --git a/gen/Network/AWS/StorageGateway/ListTapes.hs b/gen/Network/AWS/StorageGateway/ListTapes.hs
--- a/gen/Network/AWS/StorageGateway/ListTapes.hs
+++ b/gen/Network/AWS/StorageGateway/ListTapes.hs
@@ -12,16 +12,16 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.ListTapes
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Lists virtual tapes in your virtual tape library (VTL) and your virtual tape shelf (VTS). You specify the tapes to list by specifying one or more tape Amazon Resource Names (ARNs). If you don't specify a tape ARN, the operation lists all virtual tapes in both your VTL and VTS.
 --
 --
--- This operation supports pagination. By default, the operation returns a maximum of up to 100 tapes. You can optionally specify the @Limit@ parameter in the body to limit the number of tapes in the response. If the number of tapes returned in the response is truncated, the response includes a @Marker@ element that you can use in your subsequent request to retrieve the next set of tapes.
+-- This operation supports pagination. By default, the operation returns a maximum of up to 100 tapes. You can optionally specify the @Limit@ parameter in the body to limit the number of tapes in the response. If the number of tapes returned in the response is truncated, the response includes a @Marker@ element that you can use in your subsequent request to retrieve the next set of tapes. This operation is only supported in the tape gateway architecture.
 --
 module Network.AWS.StorageGateway.ListTapes
     (
@@ -42,12 +42,12 @@
     , ltrsResponseStatus
     ) 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
+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
 
 -- | A JSON object that contains one or more of the following fields:
 --
@@ -63,11 +63,12 @@
 --
 -- /See:/ 'listTapes' smart constructor.
 data ListTapes = ListTapes'
-    { _ltMarker   :: !(Maybe Text)
-    , _ltLimit    :: !(Maybe Nat)
-    , _ltTapeARNs :: !(Maybe [Text])
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ltMarker   :: !(Maybe Text)
+  , _ltLimit    :: !(Maybe Nat)
+  , _ltTapeARNs :: !(Maybe [Text])
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListTapes' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -80,12 +81,9 @@
 listTapes
     :: ListTapes
 listTapes =
-    ListTapes'
-    { _ltMarker = Nothing
-    , _ltLimit = Nothing
-    , _ltTapeARNs = Nothing
-    }
+  ListTapes' {_ltMarker = Nothing, _ltLimit = Nothing, _ltTapeARNs = Nothing}
 
+
 -- | A string that indicates the position at which to begin the returned list of tapes.
 ltMarker :: Lens' ListTapes (Maybe Text)
 ltMarker = lens _ltMarker (\ s a -> s{_ltMarker = a});
@@ -108,9 +106,9 @@
                    (x .?> "Marker") <*> (x .?> "TapeInfos" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
-instance Hashable ListTapes
+instance Hashable ListTapes where
 
-instance NFData ListTapes
+instance NFData ListTapes where
 
 instance ToHeaders ListTapes where
         toHeaders
@@ -147,11 +145,12 @@
 --
 -- /See:/ 'listTapesResponse' smart constructor.
 data ListTapesResponse = ListTapesResponse'
-    { _ltrsMarker         :: !(Maybe Text)
-    , _ltrsTapeInfos      :: !(Maybe [TapeInfo])
-    , _ltrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ltrsMarker         :: !(Maybe Text)
+  , _ltrsTapeInfos      :: !(Maybe [TapeInfo])
+  , _ltrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListTapesResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -165,12 +164,13 @@
     :: Int -- ^ 'ltrsResponseStatus'
     -> ListTapesResponse
 listTapesResponse pResponseStatus_ =
-    ListTapesResponse'
-    { _ltrsMarker = Nothing
-    , _ltrsTapeInfos = Nothing
-    , _ltrsResponseStatus = pResponseStatus_
-    }
+  ListTapesResponse'
+  { _ltrsMarker = Nothing
+  , _ltrsTapeInfos = Nothing
+  , _ltrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | A string that indicates the position at which to begin returning the next list of tapes. Use the marker in your next request to continue pagination of tapes. If there are no more tapes to list, this element does not appear in the response body.
 ltrsMarker :: Lens' ListTapesResponse (Maybe Text)
 ltrsMarker = lens _ltrsMarker (\ s a -> s{_ltrsMarker = a});
@@ -183,4 +183,4 @@
 ltrsResponseStatus :: Lens' ListTapesResponse Int
 ltrsResponseStatus = lens _ltrsResponseStatus (\ s a -> s{_ltrsResponseStatus = a});
 
-instance NFData ListTapesResponse
+instance NFData ListTapesResponse where
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,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.ListVolumeInitiators
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Lists iSCSI initiators that are connected to a volume. You can use this operation to determine whether a volume is being used or not.
+-- Lists iSCSI initiators that are connected to a volume. You can use this operation to determine whether a volume is being used or not. This operation is only supported in the cached volume and stored volume gateway architecture.
 --
 --
 module Network.AWS.StorageGateway.ListVolumeInitiators
@@ -37,12 +37,12 @@
     , lvirsResponseStatus
     ) 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
+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
 
 -- | ListVolumeInitiatorsInput
 --
@@ -50,9 +50,10 @@
 --
 -- /See:/ 'listVolumeInitiators' smart constructor.
 newtype ListVolumeInitiators = ListVolumeInitiators'
-    { _lviVolumeARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _lviVolumeARN :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListVolumeInitiators' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -62,10 +63,9 @@
     :: Text -- ^ 'lviVolumeARN'
     -> ListVolumeInitiators
 listVolumeInitiators pVolumeARN_ =
-    ListVolumeInitiators'
-    { _lviVolumeARN = pVolumeARN_
-    }
+  ListVolumeInitiators' {_lviVolumeARN = pVolumeARN_}
 
+
 -- | 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,9 +81,9 @@
                    (x .?> "Initiators" .!@ mempty) <*>
                      (pure (fromEnum s)))
 
-instance Hashable ListVolumeInitiators
+instance Hashable ListVolumeInitiators where
 
-instance NFData ListVolumeInitiators
+instance NFData ListVolumeInitiators where
 
 instance ToHeaders ListVolumeInitiators where
         toHeaders
@@ -112,10 +112,11 @@
 --
 -- /See:/ 'listVolumeInitiatorsResponse' smart constructor.
 data ListVolumeInitiatorsResponse = ListVolumeInitiatorsResponse'
-    { _lvirsInitiators     :: !(Maybe [Text])
-    , _lvirsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _lvirsInitiators     :: !(Maybe [Text])
+  , _lvirsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListVolumeInitiatorsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -127,11 +128,10 @@
     :: Int -- ^ 'lvirsResponseStatus'
     -> ListVolumeInitiatorsResponse
 listVolumeInitiatorsResponse pResponseStatus_ =
-    ListVolumeInitiatorsResponse'
-    { _lvirsInitiators = Nothing
-    , _lvirsResponseStatus = pResponseStatus_
-    }
+  ListVolumeInitiatorsResponse'
+  {_lvirsInitiators = Nothing, _lvirsResponseStatus = pResponseStatus_}
 
+
 -- | The host names and port numbers of all iSCSI initiators that are connected to the gateway.
 lvirsInitiators :: Lens' ListVolumeInitiatorsResponse [Text]
 lvirsInitiators = lens _lvirsInitiators (\ s a -> s{_lvirsInitiators = a}) . _Default . _Coerce;
@@ -140,4 +140,4 @@
 lvirsResponseStatus :: Lens' ListVolumeInitiatorsResponse Int
 lvirsResponseStatus = lens _lvirsResponseStatus (\ s a -> s{_lvirsResponseStatus = a});
 
-instance NFData ListVolumeInitiatorsResponse
+instance NFData ListVolumeInitiatorsResponse where
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,16 +12,16 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.ListVolumeRecoveryPoints
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Lists the recovery points for a specified gateway. This operation is supported only for the gateway-cached volume architecture.
+-- Lists the recovery points for a specified gateway. This operation is only supported in the cached volume gateway architecture.
 --
 --
--- 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' operation.
+-- Each cache 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 or clone a new cached volume from a source volume. To create a snapshot from a volume recovery point use the 'CreateSnapshotFromVolumeRecoveryPoint' operation.
 --
 module Network.AWS.StorageGateway.ListVolumeRecoveryPoints
     (
@@ -40,18 +40,19 @@
     , lvrprsResponseStatus
     ) 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
+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
 
 -- | /See:/ 'listVolumeRecoveryPoints' smart constructor.
 newtype ListVolumeRecoveryPoints = ListVolumeRecoveryPoints'
-    { _lvrpGatewayARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _lvrpGatewayARN :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListVolumeRecoveryPoints' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -61,10 +62,9 @@
     :: Text -- ^ 'lvrpGatewayARN'
     -> ListVolumeRecoveryPoints
 listVolumeRecoveryPoints pGatewayARN_ =
-    ListVolumeRecoveryPoints'
-    { _lvrpGatewayARN = pGatewayARN_
-    }
+  ListVolumeRecoveryPoints' {_lvrpGatewayARN = pGatewayARN_}
 
+
 -- | Undocumented member.
 lvrpGatewayARN :: Lens' ListVolumeRecoveryPoints Text
 lvrpGatewayARN = lens _lvrpGatewayARN (\ s a -> s{_lvrpGatewayARN = a});
@@ -81,9 +81,9 @@
                      (x .?> "GatewayARN")
                      <*> (pure (fromEnum s)))
 
-instance Hashable ListVolumeRecoveryPoints
+instance Hashable ListVolumeRecoveryPoints where
 
-instance NFData ListVolumeRecoveryPoints
+instance NFData ListVolumeRecoveryPoints where
 
 instance ToHeaders ListVolumeRecoveryPoints where
         toHeaders
@@ -108,11 +108,12 @@
 
 -- | /See:/ 'listVolumeRecoveryPointsResponse' smart constructor.
 data ListVolumeRecoveryPointsResponse = ListVolumeRecoveryPointsResponse'
-    { _lvrprsVolumeRecoveryPointInfos :: !(Maybe [VolumeRecoveryPointInfo])
-    , _lvrprsGatewayARN               :: !(Maybe Text)
-    , _lvrprsResponseStatus           :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _lvrprsVolumeRecoveryPointInfos :: !(Maybe [VolumeRecoveryPointInfo])
+  , _lvrprsGatewayARN               :: !(Maybe Text)
+  , _lvrprsResponseStatus           :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListVolumeRecoveryPointsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -126,12 +127,13 @@
     :: Int -- ^ 'lvrprsResponseStatus'
     -> ListVolumeRecoveryPointsResponse
 listVolumeRecoveryPointsResponse pResponseStatus_ =
-    ListVolumeRecoveryPointsResponse'
-    { _lvrprsVolumeRecoveryPointInfos = Nothing
-    , _lvrprsGatewayARN = Nothing
-    , _lvrprsResponseStatus = pResponseStatus_
-    }
+  ListVolumeRecoveryPointsResponse'
+  { _lvrprsVolumeRecoveryPointInfos = Nothing
+  , _lvrprsGatewayARN = Nothing
+  , _lvrprsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Undocumented member.
 lvrprsVolumeRecoveryPointInfos :: Lens' ListVolumeRecoveryPointsResponse [VolumeRecoveryPointInfo]
 lvrprsVolumeRecoveryPointInfos = lens _lvrprsVolumeRecoveryPointInfos (\ s a -> s{_lvrprsVolumeRecoveryPointInfos = a}) . _Default . _Coerce;
@@ -145,3 +147,4 @@
 lvrprsResponseStatus = lens _lvrprsResponseStatus (\ s a -> s{_lvrprsResponseStatus = a});
 
 instance NFData ListVolumeRecoveryPointsResponse
+         where
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,16 +12,16 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.ListVolumes
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- 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.
+-- 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' or the 'DescribeCachediSCSIVolumes' API.
 --
 --
--- The operation supports pagination. By default, the operation returns a maximum of up to 100 volumes. You can optionally specify the @Limit@ field in the body to limit the number of volumes in the response. If the number of volumes returned in the response is truncated, the response includes a Marker field. You can use this Marker value in your subsequent request to retrieve the next set of volumes.
+-- The operation supports pagination. By default, the operation returns a maximum of up to 100 volumes. You can optionally specify the @Limit@ field in the body to limit the number of volumes in the response. If the number of volumes returned in the response is truncated, the response includes a Marker field. You can use this Marker value in your subsequent request to retrieve the next set of volumes. This operation is only supported in the cached volume and stored volume gateway architectures.
 --
 --
 -- This operation returns paginated results.
@@ -45,13 +45,13 @@
     , lvrsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Pager
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.StorageGateway.Types
-import           Network.AWS.StorageGateway.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.StorageGateway.Types
+import Network.AWS.StorageGateway.Types.Product
 
 -- | A JSON object that contains one or more of the following fields:
 --
@@ -65,11 +65,12 @@
 --
 -- /See:/ 'listVolumes' smart constructor.
 data ListVolumes = ListVolumes'
-    { _lvGatewayARN :: !(Maybe Text)
-    , _lvMarker     :: !(Maybe Text)
-    , _lvLimit      :: !(Maybe Nat)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _lvGatewayARN :: !(Maybe Text)
+  , _lvMarker     :: !(Maybe Text)
+  , _lvLimit      :: !(Maybe Nat)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListVolumes' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -82,12 +83,10 @@
 listVolumes
     :: ListVolumes
 listVolumes =
-    ListVolumes'
-    { _lvGatewayARN = Nothing
-    , _lvMarker = Nothing
-    , _lvLimit = Nothing
-    }
+  ListVolumes'
+  {_lvGatewayARN = Nothing, _lvMarker = Nothing, _lvLimit = Nothing}
 
+
 -- | Undocumented member.
 lvGatewayARN :: Lens' ListVolumes (Maybe Text)
 lvGatewayARN = lens _lvGatewayARN (\ s a -> s{_lvGatewayARN = a});
@@ -118,9 +117,9 @@
                      (x .?> "VolumeInfos" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
-instance Hashable ListVolumes
+instance Hashable ListVolumes where
 
-instance NFData ListVolumes
+instance NFData ListVolumes where
 
 instance ToHeaders ListVolumes where
         toHeaders
@@ -148,12 +147,13 @@
 
 -- | /See:/ 'listVolumesResponse' smart constructor.
 data ListVolumesResponse = ListVolumesResponse'
-    { _lvrsGatewayARN     :: !(Maybe Text)
-    , _lvrsMarker         :: !(Maybe Text)
-    , _lvrsVolumeInfos    :: !(Maybe [VolumeInfo])
-    , _lvrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _lvrsGatewayARN     :: !(Maybe Text)
+  , _lvrsMarker         :: !(Maybe Text)
+  , _lvrsVolumeInfos    :: !(Maybe [VolumeInfo])
+  , _lvrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListVolumesResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -169,13 +169,14 @@
     :: Int -- ^ 'lvrsResponseStatus'
     -> ListVolumesResponse
 listVolumesResponse pResponseStatus_ =
-    ListVolumesResponse'
-    { _lvrsGatewayARN = Nothing
-    , _lvrsMarker = Nothing
-    , _lvrsVolumeInfos = Nothing
-    , _lvrsResponseStatus = pResponseStatus_
-    }
+  ListVolumesResponse'
+  { _lvrsGatewayARN = Nothing
+  , _lvrsMarker = Nothing
+  , _lvrsVolumeInfos = Nothing
+  , _lvrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Undocumented member.
 lvrsGatewayARN :: Lens' ListVolumesResponse (Maybe Text)
 lvrsGatewayARN = lens _lvrsGatewayARN (\ s a -> s{_lvrsGatewayARN = a});
@@ -192,4 +193,4 @@
 lvrsResponseStatus :: Lens' ListVolumesResponse Int
 lvrsResponseStatus = lens _lvrsResponseStatus (\ s a -> s{_lvrsResponseStatus = a});
 
-instance NFData ListVolumesResponse
+instance NFData ListVolumesResponse where
diff --git a/gen/Network/AWS/StorageGateway/RefreshCache.hs b/gen/Network/AWS/StorageGateway/RefreshCache.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/StorageGateway/RefreshCache.hs
@@ -0,0 +1,133 @@
+{-# 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.RefreshCache
+-- Copyright   : (c) 2013-2017 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Refreshes the cache for the specified file share. This operation finds objects in the Amazon S3 bucket that were added, removed or replaced since the gateway last listed the bucket's contents and cached the results.
+--
+--
+module Network.AWS.StorageGateway.RefreshCache
+    (
+    -- * Creating a Request
+      refreshCache
+    , RefreshCache
+    -- * Request Lenses
+    , rcFileShareARN
+
+    -- * Destructuring the Response
+    , refreshCacheResponse
+    , RefreshCacheResponse
+    -- * Response Lenses
+    , rcrsFileShareARN
+    , rcrsResponseStatus
+    ) 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
+
+-- | /See:/ 'refreshCache' smart constructor.
+newtype RefreshCache = RefreshCache'
+  { _rcFileShareARN :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'RefreshCache' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rcFileShareARN' - Undocumented member.
+refreshCache
+    :: Text -- ^ 'rcFileShareARN'
+    -> RefreshCache
+refreshCache pFileShareARN_ = RefreshCache' {_rcFileShareARN = pFileShareARN_}
+
+
+-- | Undocumented member.
+rcFileShareARN :: Lens' RefreshCache Text
+rcFileShareARN = lens _rcFileShareARN (\ s a -> s{_rcFileShareARN = a});
+
+instance AWSRequest RefreshCache where
+        type Rs RefreshCache = RefreshCacheResponse
+        request = postJSON storageGateway
+        response
+          = receiveJSON
+              (\ s h x ->
+                 RefreshCacheResponse' <$>
+                   (x .?> "FileShareARN") <*> (pure (fromEnum s)))
+
+instance Hashable RefreshCache where
+
+instance NFData RefreshCache where
+
+instance ToHeaders RefreshCache where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("StorageGateway_20130630.RefreshCache" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON RefreshCache where
+        toJSON RefreshCache'{..}
+          = object
+              (catMaybes
+                 [Just ("FileShareARN" .= _rcFileShareARN)])
+
+instance ToPath RefreshCache where
+        toPath = const "/"
+
+instance ToQuery RefreshCache where
+        toQuery = const mempty
+
+-- | /See:/ 'refreshCacheResponse' smart constructor.
+data RefreshCacheResponse = RefreshCacheResponse'
+  { _rcrsFileShareARN   :: !(Maybe Text)
+  , _rcrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'RefreshCacheResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rcrsFileShareARN' - Undocumented member.
+--
+-- * 'rcrsResponseStatus' - -- | The response status code.
+refreshCacheResponse
+    :: Int -- ^ 'rcrsResponseStatus'
+    -> RefreshCacheResponse
+refreshCacheResponse pResponseStatus_ =
+  RefreshCacheResponse'
+  {_rcrsFileShareARN = Nothing, _rcrsResponseStatus = pResponseStatus_}
+
+
+-- | Undocumented member.
+rcrsFileShareARN :: Lens' RefreshCacheResponse (Maybe Text)
+rcrsFileShareARN = lens _rcrsFileShareARN (\ s a -> s{_rcrsFileShareARN = a});
+
+-- | -- | The response status code.
+rcrsResponseStatus :: Lens' RefreshCacheResponse Int
+rcrsResponseStatus = lens _rcrsResponseStatus (\ s a -> s{_rcrsResponseStatus = a});
+
+instance NFData RefreshCacheResponse where
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,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.RemoveTagsFromResource
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Removes one or more tags from the specified resource.
+-- Removes one or more tags from the specified resource. This operation is only supported in the cached volume, stored volume and tape gateway architectures.
 --
 --
 module Network.AWS.StorageGateway.RemoveTagsFromResource
@@ -38,12 +38,12 @@
     , rtfrrsResponseStatus
     ) 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
+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
 
 -- | RemoveTagsFromResourceInput
 --
@@ -51,10 +51,11 @@
 --
 -- /See:/ 'removeTagsFromResource' smart constructor.
 data RemoveTagsFromResource = RemoveTagsFromResource'
-    { _rtfrResourceARN :: !Text
-    , _rtfrTagKeys     :: ![Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _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:
@@ -66,11 +67,10 @@
     :: Text -- ^ 'rtfrResourceARN'
     -> RemoveTagsFromResource
 removeTagsFromResource pResourceARN_ =
-    RemoveTagsFromResource'
-    { _rtfrResourceARN = pResourceARN_
-    , _rtfrTagKeys = mempty
-    }
+  RemoveTagsFromResource'
+  {_rtfrResourceARN = pResourceARN_, _rtfrTagKeys = mempty}
 
+
 -- | The Amazon Resource Name (ARN) of the resource you want to remove the tags from.
 rtfrResourceARN :: Lens' RemoveTagsFromResource Text
 rtfrResourceARN = lens _rtfrResourceARN (\ s a -> s{_rtfrResourceARN = a});
@@ -89,9 +89,9 @@
                  RemoveTagsFromResourceResponse' <$>
                    (x .?> "ResourceARN") <*> (pure (fromEnum s)))
 
-instance Hashable RemoveTagsFromResource
+instance Hashable RemoveTagsFromResource where
 
-instance NFData RemoveTagsFromResource
+instance NFData RemoveTagsFromResource where
 
 instance ToHeaders RemoveTagsFromResource where
         toHeaders
@@ -122,10 +122,11 @@
 --
 -- /See:/ 'removeTagsFromResourceResponse' smart constructor.
 data RemoveTagsFromResourceResponse = RemoveTagsFromResourceResponse'
-    { _rtfrrsResourceARN    :: !(Maybe Text)
-    , _rtfrrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _rtfrrsResourceARN    :: !(Maybe Text)
+  , _rtfrrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'RemoveTagsFromResourceResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -137,11 +138,10 @@
     :: Int -- ^ 'rtfrrsResponseStatus'
     -> RemoveTagsFromResourceResponse
 removeTagsFromResourceResponse pResponseStatus_ =
-    RemoveTagsFromResourceResponse'
-    { _rtfrrsResourceARN = Nothing
-    , _rtfrrsResponseStatus = pResponseStatus_
-    }
+  RemoveTagsFromResourceResponse'
+  {_rtfrrsResourceARN = Nothing, _rtfrrsResponseStatus = pResponseStatus_}
 
+
 -- | The Amazon Resource Name (ARN) of the resource that the tags were removed from.
 rtfrrsResourceARN :: Lens' RemoveTagsFromResourceResponse (Maybe Text)
 rtfrrsResourceARN = lens _rtfrrsResourceARN (\ s a -> s{_rtfrrsResourceARN = a});
@@ -150,4 +150,4 @@
 rtfrrsResponseStatus :: Lens' RemoveTagsFromResourceResponse Int
 rtfrrsResponseStatus = lens _rtfrrsResponseStatus (\ s a -> s{_rtfrrsResponseStatus = a});
 
-instance NFData RemoveTagsFromResourceResponse
+instance NFData RemoveTagsFromResourceResponse where
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,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.ResetCache
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Resets all cache disks that have encountered a error and makes the disks available for reconfiguration as cache storage. If your cache disk encounters a error, the gateway prevents read and write operations on virtual tapes in the gateway. For example, an error can occur when a disk is corrupted or removed from the gateway. When a cache is reset, the gateway loses its cache storage. At this point you can reconfigure the disks as cache disks.
+-- Resets all cache disks that have encountered a error and makes the disks available for reconfiguration as cache storage. If your cache disk encounters a error, the gateway prevents read and write operations on virtual tapes in the gateway. For example, an error can occur when a disk is corrupted or removed from the gateway. When a cache is reset, the gateway loses its cache storage. At this point you can reconfigure the disks as cache disks. This operation is only supported in the cached volume,tape and file gateway architectures.
 --
 --
 -- /Important:/ If the cache disk you are resetting contains data that has not been uploaded to Amazon S3 yet, that data can be lost. After you reset cache 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.
@@ -35,22 +35,23 @@
     , resetCacheResponse
     , ResetCacheResponse
     -- * Response Lenses
-    , rcrsGatewayARN
-    , rcrsResponseStatus
+    , rrsGatewayARN
+    , rrsResponseStatus
     ) 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
+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
 
 -- | /See:/ 'resetCache' smart constructor.
 newtype ResetCache = ResetCache'
-    { _rcGatewayARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _rcGatewayARN :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ResetCache' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -59,11 +60,9 @@
 resetCache
     :: Text -- ^ 'rcGatewayARN'
     -> ResetCache
-resetCache pGatewayARN_ =
-    ResetCache'
-    { _rcGatewayARN = pGatewayARN_
-    }
+resetCache pGatewayARN_ = ResetCache' {_rcGatewayARN = pGatewayARN_}
 
+
 -- | Undocumented member.
 rcGatewayARN :: Lens' ResetCache Text
 rcGatewayARN = lens _rcGatewayARN (\ s a -> s{_rcGatewayARN = a});
@@ -77,9 +76,9 @@
                  ResetCacheResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
 
-instance Hashable ResetCache
+instance Hashable ResetCache where
 
-instance NFData ResetCache
+instance NFData ResetCache where
 
 instance ToHeaders ResetCache where
         toHeaders
@@ -103,32 +102,32 @@
 
 -- | /See:/ 'resetCacheResponse' smart constructor.
 data ResetCacheResponse = ResetCacheResponse'
-    { _rcrsGatewayARN     :: !(Maybe Text)
-    , _rcrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _rrsGatewayARN     :: !(Maybe Text)
+  , _rrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ResetCacheResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'rcrsGatewayARN' - Undocumented member.
+-- * 'rrsGatewayARN' - Undocumented member.
 --
--- * 'rcrsResponseStatus' - -- | The response status code.
+-- * 'rrsResponseStatus' - -- | The response status code.
 resetCacheResponse
-    :: Int -- ^ 'rcrsResponseStatus'
+    :: Int -- ^ 'rrsResponseStatus'
     -> ResetCacheResponse
 resetCacheResponse pResponseStatus_ =
-    ResetCacheResponse'
-    { _rcrsGatewayARN = Nothing
-    , _rcrsResponseStatus = pResponseStatus_
-    }
+  ResetCacheResponse'
+  {_rrsGatewayARN = Nothing, _rrsResponseStatus = pResponseStatus_}
 
+
 -- | Undocumented member.
-rcrsGatewayARN :: Lens' ResetCacheResponse (Maybe Text)
-rcrsGatewayARN = lens _rcrsGatewayARN (\ s a -> s{_rcrsGatewayARN = a});
+rrsGatewayARN :: Lens' ResetCacheResponse (Maybe Text)
+rrsGatewayARN = lens _rrsGatewayARN (\ s a -> s{_rrsGatewayARN = a});
 
 -- | -- | The response status code.
-rcrsResponseStatus :: Lens' ResetCacheResponse Int
-rcrsResponseStatus = lens _rcrsResponseStatus (\ s a -> s{_rcrsResponseStatus = a});
+rrsResponseStatus :: Lens' ResetCacheResponse Int
+rrsResponseStatus = lens _rrsResponseStatus (\ s a -> s{_rrsResponseStatus = a});
 
-instance NFData ResetCacheResponse
+instance NFData ResetCacheResponse where
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,16 +12,16 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.RetrieveTapeArchive
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Retrieves an archived virtual tape from the virtual tape shelf (VTS) to a gateway-VTL. Virtual tapes archived in the VTS are not associated with any gateway. However after a tape is retrieved, it is associated with a gateway, even though it is also listed in the VTS.
+-- Retrieves an archived virtual tape from the virtual tape shelf (VTS) to a tape gateway. Virtual tapes archived in the VTS are not associated with any gateway. However after a tape is retrieved, it is associated with a gateway, even though it is also listed in the VTS, that is, archive. This operation is only supported in the tape gateway architecture.
 --
 --
--- 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.
+-- 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. This operation is only supported in the tape gateway architecture.
 --
 module Network.AWS.StorageGateway.RetrieveTapeArchive
     (
@@ -40,12 +40,12 @@
     , rtarsResponseStatus
     ) 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
+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
 
 -- | RetrieveTapeArchiveInput
 --
@@ -53,32 +53,31 @@
 --
 -- /See:/ 'retrieveTapeArchive' smart constructor.
 data RetrieveTapeArchive = RetrieveTapeArchive'
-    { _rtaTapeARN    :: !Text
-    , _rtaGatewayARN :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _rtaTapeARN    :: !Text
+  , _rtaGatewayARN :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'RetrieveTapeArchive' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
 -- * 'rtaTapeARN' - The Amazon Resource Name (ARN) of the virtual tape you want to retrieve from the virtual tape shelf (VTS).
 --
--- * 'rtaGatewayARN' - 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 gateways for your account and region. You retrieve archived virtual tapes to only one gateway and the gateway must be a gateway-VTL.
+-- * 'rtaGatewayARN' - 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 gateways for your account and region. You retrieve archived virtual tapes to only one gateway and the gateway must be a tape gateway.
 retrieveTapeArchive
     :: Text -- ^ 'rtaTapeARN'
     -> Text -- ^ 'rtaGatewayARN'
     -> RetrieveTapeArchive
 retrieveTapeArchive pTapeARN_ pGatewayARN_ =
-    RetrieveTapeArchive'
-    { _rtaTapeARN = pTapeARN_
-    , _rtaGatewayARN = pGatewayARN_
-    }
+  RetrieveTapeArchive' {_rtaTapeARN = pTapeARN_, _rtaGatewayARN = pGatewayARN_}
 
+
 -- | The Amazon Resource Name (ARN) of the virtual tape you want to retrieve from the virtual tape shelf (VTS).
 rtaTapeARN :: Lens' RetrieveTapeArchive Text
 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 gateways for your account and region. You retrieve archived virtual tapes to only one gateway and the gateway must be a gateway-VTL.
+-- | 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 gateways for your account and region. You retrieve archived virtual tapes to only one gateway and the gateway must be a tape gateway.
 rtaGatewayARN :: Lens' RetrieveTapeArchive Text
 rtaGatewayARN = lens _rtaGatewayARN (\ s a -> s{_rtaGatewayARN = a});
 
@@ -92,9 +91,9 @@
                  RetrieveTapeArchiveResponse' <$>
                    (x .?> "TapeARN") <*> (pure (fromEnum s)))
 
-instance Hashable RetrieveTapeArchive
+instance Hashable RetrieveTapeArchive where
 
-instance NFData RetrieveTapeArchive
+instance NFData RetrieveTapeArchive where
 
 instance ToHeaders RetrieveTapeArchive where
         toHeaders
@@ -125,10 +124,11 @@
 --
 -- /See:/ 'retrieveTapeArchiveResponse' smart constructor.
 data RetrieveTapeArchiveResponse = RetrieveTapeArchiveResponse'
-    { _rtarsTapeARN        :: !(Maybe Text)
-    , _rtarsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _rtarsTapeARN        :: !(Maybe Text)
+  , _rtarsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'RetrieveTapeArchiveResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -140,11 +140,10 @@
     :: Int -- ^ 'rtarsResponseStatus'
     -> RetrieveTapeArchiveResponse
 retrieveTapeArchiveResponse pResponseStatus_ =
-    RetrieveTapeArchiveResponse'
-    { _rtarsTapeARN = Nothing
-    , _rtarsResponseStatus = pResponseStatus_
-    }
+  RetrieveTapeArchiveResponse'
+  {_rtarsTapeARN = Nothing, _rtarsResponseStatus = pResponseStatus_}
 
+
 -- | The Amazon Resource Name (ARN) of the retrieved virtual tape.
 rtarsTapeARN :: Lens' RetrieveTapeArchiveResponse (Maybe Text)
 rtarsTapeARN = lens _rtarsTapeARN (\ s a -> s{_rtarsTapeARN = a});
@@ -153,4 +152,4 @@
 rtarsResponseStatus :: Lens' RetrieveTapeArchiveResponse Int
 rtarsResponseStatus = lens _rtarsResponseStatus (\ s a -> s{_rtarsResponseStatus = a});
 
-instance NFData RetrieveTapeArchiveResponse
+instance NFData RetrieveTapeArchiveResponse where
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,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.RetrieveTapeRecoveryPoint
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Retrieves the recovery point for the specified virtual tape.
+-- Retrieves the recovery point for the specified virtual tape. This operation is only supported in the tape gateway architecture.
 --
 --
 -- A recovery point is a point in time view of a virtual tape at which all the data on the tape is consistent. If your gateway crashes, virtual tapes that have recovery points can be recovered to a new gateway.
@@ -40,12 +40,12 @@
     , rtrprsResponseStatus
     ) 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
+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
 
 -- | RetrieveTapeRecoveryPointInput
 --
@@ -53,10 +53,11 @@
 --
 -- /See:/ 'retrieveTapeRecoveryPoint' smart constructor.
 data RetrieveTapeRecoveryPoint = RetrieveTapeRecoveryPoint'
-    { _rtrpTapeARN    :: !Text
-    , _rtrpGatewayARN :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _rtrpTapeARN    :: !Text
+  , _rtrpGatewayARN :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'RetrieveTapeRecoveryPoint' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -69,11 +70,10 @@
     -> Text -- ^ 'rtrpGatewayARN'
     -> RetrieveTapeRecoveryPoint
 retrieveTapeRecoveryPoint pTapeARN_ pGatewayARN_ =
-    RetrieveTapeRecoveryPoint'
-    { _rtrpTapeARN = pTapeARN_
-    , _rtrpGatewayARN = pGatewayARN_
-    }
+  RetrieveTapeRecoveryPoint'
+  {_rtrpTapeARN = pTapeARN_, _rtrpGatewayARN = pGatewayARN_}
 
+
 -- | The Amazon Resource Name (ARN) of the virtual tape for which you want to retrieve the recovery point.
 rtrpTapeARN :: Lens' RetrieveTapeRecoveryPoint Text
 rtrpTapeARN = lens _rtrpTapeARN (\ s a -> s{_rtrpTapeARN = a});
@@ -92,9 +92,9 @@
                  RetrieveTapeRecoveryPointResponse' <$>
                    (x .?> "TapeARN") <*> (pure (fromEnum s)))
 
-instance Hashable RetrieveTapeRecoveryPoint
+instance Hashable RetrieveTapeRecoveryPoint where
 
-instance NFData RetrieveTapeRecoveryPoint
+instance NFData RetrieveTapeRecoveryPoint where
 
 instance ToHeaders RetrieveTapeRecoveryPoint where
         toHeaders
@@ -125,10 +125,11 @@
 --
 -- /See:/ 'retrieveTapeRecoveryPointResponse' smart constructor.
 data RetrieveTapeRecoveryPointResponse = RetrieveTapeRecoveryPointResponse'
-    { _rtrprsTapeARN        :: !(Maybe Text)
-    , _rtrprsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _rtrprsTapeARN        :: !(Maybe Text)
+  , _rtrprsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'RetrieveTapeRecoveryPointResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -140,11 +141,10 @@
     :: Int -- ^ 'rtrprsResponseStatus'
     -> RetrieveTapeRecoveryPointResponse
 retrieveTapeRecoveryPointResponse pResponseStatus_ =
-    RetrieveTapeRecoveryPointResponse'
-    { _rtrprsTapeARN = Nothing
-    , _rtrprsResponseStatus = pResponseStatus_
-    }
+  RetrieveTapeRecoveryPointResponse'
+  {_rtrprsTapeARN = Nothing, _rtrprsResponseStatus = pResponseStatus_}
 
+
 -- | The Amazon Resource Name (ARN) of the virtual tape for which the recovery point was retrieved.
 rtrprsTapeARN :: Lens' RetrieveTapeRecoveryPointResponse (Maybe Text)
 rtrprsTapeARN = lens _rtrprsTapeARN (\ s a -> s{_rtrprsTapeARN = a});
@@ -154,3 +154,4 @@
 rtrprsResponseStatus = lens _rtrprsResponseStatus (\ s a -> s{_rtrprsResponseStatus = a});
 
 instance NFData RetrieveTapeRecoveryPointResponse
+         where
diff --git a/gen/Network/AWS/StorageGateway/SetLocalConsolePassword.hs b/gen/Network/AWS/StorageGateway/SetLocalConsolePassword.hs
--- a/gen/Network/AWS/StorageGateway/SetLocalConsolePassword.hs
+++ b/gen/Network/AWS/StorageGateway/SetLocalConsolePassword.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.SetLocalConsolePassword
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -38,12 +38,12 @@
     , slcprsResponseStatus
     ) 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
+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
 
 -- | SetLocalConsolePasswordInput
 --
@@ -51,10 +51,11 @@
 --
 -- /See:/ 'setLocalConsolePassword' smart constructor.
 data SetLocalConsolePassword = SetLocalConsolePassword'
-    { _slcpGatewayARN           :: !Text
-    , _slcpLocalConsolePassword :: !(Sensitive Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _slcpGatewayARN           :: !Text
+  , _slcpLocalConsolePassword :: !(Sensitive Text)
+  } deriving (Eq, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'SetLocalConsolePassword' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -67,11 +68,12 @@
     -> Text -- ^ 'slcpLocalConsolePassword'
     -> SetLocalConsolePassword
 setLocalConsolePassword pGatewayARN_ pLocalConsolePassword_ =
-    SetLocalConsolePassword'
-    { _slcpGatewayARN = pGatewayARN_
-    , _slcpLocalConsolePassword = _Sensitive # pLocalConsolePassword_
-    }
+  SetLocalConsolePassword'
+  { _slcpGatewayARN = pGatewayARN_
+  , _slcpLocalConsolePassword = _Sensitive # pLocalConsolePassword_
+  }
 
+
 -- | Undocumented member.
 slcpGatewayARN :: Lens' SetLocalConsolePassword Text
 slcpGatewayARN = lens _slcpGatewayARN (\ s a -> s{_slcpGatewayARN = a});
@@ -90,9 +92,9 @@
                  SetLocalConsolePasswordResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
 
-instance Hashable SetLocalConsolePassword
+instance Hashable SetLocalConsolePassword where
 
-instance NFData SetLocalConsolePassword
+instance NFData SetLocalConsolePassword where
 
 instance ToHeaders SetLocalConsolePassword where
         toHeaders
@@ -121,10 +123,11 @@
 
 -- | /See:/ 'setLocalConsolePasswordResponse' smart constructor.
 data SetLocalConsolePasswordResponse = SetLocalConsolePasswordResponse'
-    { _slcprsGatewayARN     :: !(Maybe Text)
-    , _slcprsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _slcprsGatewayARN     :: !(Maybe Text)
+  , _slcprsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'SetLocalConsolePasswordResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -136,11 +139,10 @@
     :: Int -- ^ 'slcprsResponseStatus'
     -> SetLocalConsolePasswordResponse
 setLocalConsolePasswordResponse pResponseStatus_ =
-    SetLocalConsolePasswordResponse'
-    { _slcprsGatewayARN = Nothing
-    , _slcprsResponseStatus = pResponseStatus_
-    }
+  SetLocalConsolePasswordResponse'
+  {_slcprsGatewayARN = Nothing, _slcprsResponseStatus = pResponseStatus_}
 
+
 -- | Undocumented member.
 slcprsGatewayARN :: Lens' SetLocalConsolePasswordResponse (Maybe Text)
 slcprsGatewayARN = lens _slcprsGatewayARN (\ s a -> s{_slcprsGatewayARN = a});
@@ -149,4 +151,4 @@
 slcprsResponseStatus :: Lens' SetLocalConsolePasswordResponse Int
 slcprsResponseStatus = lens _slcprsResponseStatus (\ s a -> s{_slcprsResponseStatus = a});
 
-instance NFData SetLocalConsolePasswordResponse
+instance NFData SetLocalConsolePasswordResponse where
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,16 +12,16 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.ShutdownGateway
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Shuts down a gateway. To specify which gateway to shut down, use the Amazon Resource Name (ARN) of the gateway in the body of your request.
 --
 --
--- The operation shuts down the gateway service component running in the storage gateway's virtual machine (VM) and not the VM.
+-- The operation shuts down the gateway service component running in the gateway's virtual machine (VM) and not the host VM.
 --
 -- 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.
 --
@@ -43,12 +43,12 @@
     , srsResponseStatus
     ) 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
+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
 
 -- | A JSON object containing the of the gateway to shut down.
 --
@@ -56,9 +56,10 @@
 --
 -- /See:/ 'shutdownGateway' smart constructor.
 newtype ShutdownGateway = ShutdownGateway'
-    { _sGatewayARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _sGatewayARN :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ShutdownGateway' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -67,11 +68,9 @@
 shutdownGateway
     :: Text -- ^ 'sGatewayARN'
     -> ShutdownGateway
-shutdownGateway pGatewayARN_ =
-    ShutdownGateway'
-    { _sGatewayARN = pGatewayARN_
-    }
+shutdownGateway pGatewayARN_ = ShutdownGateway' {_sGatewayARN = pGatewayARN_}
 
+
 -- | Undocumented member.
 sGatewayARN :: Lens' ShutdownGateway Text
 sGatewayARN = lens _sGatewayARN (\ s a -> s{_sGatewayARN = a});
@@ -85,9 +84,9 @@
                  ShutdownGatewayResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
 
-instance Hashable ShutdownGateway
+instance Hashable ShutdownGateway where
 
-instance NFData ShutdownGateway
+instance NFData ShutdownGateway where
 
 instance ToHeaders ShutdownGateway where
         toHeaders
@@ -116,10 +115,11 @@
 --
 -- /See:/ 'shutdownGatewayResponse' smart constructor.
 data ShutdownGatewayResponse = ShutdownGatewayResponse'
-    { _srsGatewayARN     :: !(Maybe Text)
-    , _srsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _srsGatewayARN     :: !(Maybe Text)
+  , _srsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ShutdownGatewayResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -131,11 +131,10 @@
     :: Int -- ^ 'srsResponseStatus'
     -> ShutdownGatewayResponse
 shutdownGatewayResponse pResponseStatus_ =
-    ShutdownGatewayResponse'
-    { _srsGatewayARN = Nothing
-    , _srsResponseStatus = pResponseStatus_
-    }
+  ShutdownGatewayResponse'
+  {_srsGatewayARN = Nothing, _srsResponseStatus = pResponseStatus_}
 
+
 -- | Undocumented member.
 srsGatewayARN :: Lens' ShutdownGatewayResponse (Maybe Text)
 srsGatewayARN = lens _srsGatewayARN (\ s a -> s{_srsGatewayARN = a});
@@ -144,4 +143,4 @@
 srsResponseStatus :: Lens' ShutdownGatewayResponse Int
 srsResponseStatus = lens _srsResponseStatus (\ s a -> s{_srsResponseStatus = a});
 
-instance NFData ShutdownGatewayResponse
+instance NFData ShutdownGatewayResponse where
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,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.StartGateway
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -39,12 +39,12 @@
     , sgrsResponseStatus
     ) 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
+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
 
 -- | A JSON object containing the of the gateway to start.
 --
@@ -52,9 +52,10 @@
 --
 -- /See:/ 'startGateway' smart constructor.
 newtype StartGateway = StartGateway'
-    { _sgGatewayARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _sgGatewayARN :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'StartGateway' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -63,11 +64,9 @@
 startGateway
     :: Text -- ^ 'sgGatewayARN'
     -> StartGateway
-startGateway pGatewayARN_ =
-    StartGateway'
-    { _sgGatewayARN = pGatewayARN_
-    }
+startGateway pGatewayARN_ = StartGateway' {_sgGatewayARN = pGatewayARN_}
 
+
 -- | Undocumented member.
 sgGatewayARN :: Lens' StartGateway Text
 sgGatewayARN = lens _sgGatewayARN (\ s a -> s{_sgGatewayARN = a});
@@ -81,9 +80,9 @@
                  StartGatewayResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
 
-instance Hashable StartGateway
+instance Hashable StartGateway where
 
-instance NFData StartGateway
+instance NFData StartGateway where
 
 instance ToHeaders StartGateway where
         toHeaders
@@ -112,10 +111,11 @@
 --
 -- /See:/ 'startGatewayResponse' smart constructor.
 data StartGatewayResponse = StartGatewayResponse'
-    { _sgrsGatewayARN     :: !(Maybe Text)
-    , _sgrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _sgrsGatewayARN     :: !(Maybe Text)
+  , _sgrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'StartGatewayResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -127,11 +127,10 @@
     :: Int -- ^ 'sgrsResponseStatus'
     -> StartGatewayResponse
 startGatewayResponse pResponseStatus_ =
-    StartGatewayResponse'
-    { _sgrsGatewayARN = Nothing
-    , _sgrsResponseStatus = pResponseStatus_
-    }
+  StartGatewayResponse'
+  {_sgrsGatewayARN = Nothing, _sgrsResponseStatus = pResponseStatus_}
 
+
 -- | Undocumented member.
 sgrsGatewayARN :: Lens' StartGatewayResponse (Maybe Text)
 sgrsGatewayARN = lens _sgrsGatewayARN (\ s a -> s{_sgrsGatewayARN = a});
@@ -140,4 +139,4 @@
 sgrsResponseStatus :: Lens' StartGatewayResponse Int
 sgrsResponseStatus = lens _sgrsResponseStatus (\ s a -> s{_sgrsResponseStatus = a});
 
-instance NFData StartGatewayResponse
+instance NFData StartGatewayResponse where
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,9 +4,9 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.Types
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -17,6 +17,7 @@
 
     -- * Errors
     , _InvalidGatewayRequestException
+    , _ServiceUnavailableError
     , _InternalServerError
 
     -- * CachediSCSIVolume
@@ -28,6 +29,7 @@
     , cscsivVolumeARN
     , cscsivVolumeProgress
     , cscsivVolumeSizeInBytes
+    , cscsivCreatedDate
     , cscsivVolumeId
     , cscsivVolumeType
 
@@ -58,6 +60,14 @@
     , dDiskStatus
     , dDiskId
 
+    -- * FileShareInfo
+    , FileShareInfo
+    , fileShareInfo
+    , fsiFileShareStatus
+    , fsiGatewayARN
+    , fsiFileShareId
+    , fsiFileShareARN
+
     -- * GatewayInfo
     , GatewayInfo
     , gatewayInfo
@@ -67,6 +77,32 @@
     , giGatewayId
     , giGatewayType
 
+    -- * NFSFileShareDefaults
+    , NFSFileShareDefaults
+    , nFSFileShareDefaults
+    , nfsfsdFileMode
+    , nfsfsdOwnerId
+    , nfsfsdDirectoryMode
+    , nfsfsdGroupId
+
+    -- * NFSFileShareInfo
+    , NFSFileShareInfo
+    , nFSFileShareInfo
+    , nfsfsiFileShareStatus
+    , nfsfsiKMSKey
+    , nfsfsiGatewayARN
+    , nfsfsiPath
+    , nfsfsiKMSEncrypted
+    , nfsfsiFileShareId
+    , nfsfsiFileShareARN
+    , nfsfsiDefaultStorageClass
+    , nfsfsiRole
+    , nfsfsiSquash
+    , nfsfsiNFSFileShareDefaults
+    , nfsfsiLocationARN
+    , nfsfsiClientList
+    , nfsfsiReadOnly
+
     -- * NetworkInterface
     , NetworkInterface
     , networkInterface
@@ -84,6 +120,7 @@
     , sscsivVolumeARN
     , sscsivVolumeProgress
     , sscsivVolumeSizeInBytes
+    , sscsivCreatedDate
     , sscsivVolumeId
     , sscsivVolumeDiskId
     , sscsivVolumeType
@@ -103,6 +140,8 @@
     , tProgress
     , tTapeSizeInBytes
     , tVTLDevice
+    , tTapeUsedInBytes
+    , tTapeCreatedDate
 
     -- * TapeArchive
     , TapeArchive
@@ -112,6 +151,8 @@
     , taTapeARN
     , taTapeSizeInBytes
     , taCompletionTime
+    , taTapeUsedInBytes
+    , taTapeCreatedDate
     , taRetrievedTo
 
     -- * TapeInfo
@@ -168,38 +209,40 @@
     , vscsiaNetworkInterfacePort
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Sign.V4
-import           Network.AWS.StorageGateway.Types.Product
-import           Network.AWS.StorageGateway.Types.Sum
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Sign.V4
+import Network.AWS.StorageGateway.Types.Product
+import Network.AWS.StorageGateway.Types.Sum
 
 -- | API version @2013-06-30@ of the Amazon Storage Gateway SDK configuration.
 storageGateway :: Service
 storageGateway =
-    Service
-    { _svcAbbrev = "StorageGateway"
-    , _svcSigner = v4
-    , _svcPrefix = "storagegateway"
-    , _svcVersion = "2013-06-30"
-    , _svcEndpoint = defaultEndpoint storageGateway
-    , _svcTimeout = Just 70
-    , _svcCheck = statusSuccess
-    , _svcError = parseJSONError "StorageGateway"
-    , _svcRetry = retry
-    }
+  Service
+  { _svcAbbrev = "StorageGateway"
+  , _svcSigner = v4
+  , _svcPrefix = "storagegateway"
+  , _svcVersion = "2013-06-30"
+  , _svcEndpoint = defaultEndpoint storageGateway
+  , _svcTimeout = Just 70
+  , _svcCheck = statusSuccess
+  , _svcError = parseJSONError "StorageGateway"
+  , _svcRetry = retry
+  }
   where
     retry =
-        Exponential
-        { _retryBase = 5.0e-2
-        , _retryGrowth = 2
-        , _retryAttempts = 5
-        , _retryCheck = check
-        }
+      Exponential
+      { _retryBase = 5.0e-2
+      , _retryGrowth = 2
+      , _retryAttempts = 5
+      , _retryCheck = check
+      }
     check e
+      | has (hasCode "ThrottledException" . hasStatus 400) e =
+        Just "throttled_exception"
       | has (hasStatus 429) e = Just "too_many_requests"
       | has (hasCode "ThrottlingException" . hasStatus 400) e =
-          Just "throttling_exception"
+        Just "throttling_exception"
       | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"
       | has (hasStatus 504) e = Just "gateway_timeout"
       | has (hasStatus 502) e = Just "bad_gateway"
@@ -208,15 +251,26 @@
       | has (hasStatus 509) e = Just "limit_exceeded"
       | otherwise = Nothing
 
+
 -- | An exception occurred because an invalid gateway request was issued to the service. For more information, see the error and message fields.
 --
 --
 _InvalidGatewayRequestException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidGatewayRequestException =
-    _ServiceError . hasCode "InvalidGatewayRequestException"
+  _MatchServiceError storageGateway "InvalidGatewayRequestException"
 
+
+-- | An internal server error has occurred because the service is unavailable. For more information, see the error and message fields.
+--
+--
+_ServiceUnavailableError :: AsError a => Getting (First ServiceError) a ServiceError
+_ServiceUnavailableError =
+  _MatchServiceError storageGateway "ServiceUnavailableError"
+
+
 -- | An internal server error has occurred during the request. For more information, see the error and message fields.
 --
 --
 _InternalServerError :: AsError a => Getting (First ServiceError) a ServiceError
-_InternalServerError = _ServiceError . hasCode "InternalServerError"
+_InternalServerError = _MatchServiceError storageGateway "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,92 +9,106 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.Types.Product
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 module Network.AWS.StorageGateway.Types.Product where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.StorageGateway.Types.Sum
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.StorageGateway.Types.Sum
 
--- | /See:/ 'cachediSCSIVolume' smart constructor.
+-- | Describes an iSCSI cached volume.
+--
+--
+--
+-- /See:/ 'cachediSCSIVolume' smart constructor.
 data CachediSCSIVolume = CachediSCSIVolume'
-    { _cscsivVolumeiSCSIAttributes :: !(Maybe VolumeiSCSIAttributes)
-    , _cscsivVolumeStatus          :: !(Maybe Text)
-    , _cscsivSourceSnapshotId      :: !(Maybe Text)
-    , _cscsivVolumeARN             :: !(Maybe Text)
-    , _cscsivVolumeProgress        :: !(Maybe Double)
-    , _cscsivVolumeSizeInBytes     :: !(Maybe Integer)
-    , _cscsivVolumeId              :: !(Maybe Text)
-    , _cscsivVolumeType            :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _cscsivVolumeiSCSIAttributes :: !(Maybe VolumeiSCSIAttributes)
+  , _cscsivVolumeStatus          :: !(Maybe Text)
+  , _cscsivSourceSnapshotId      :: !(Maybe Text)
+  , _cscsivVolumeARN             :: !(Maybe Text)
+  , _cscsivVolumeProgress        :: !(Maybe Double)
+  , _cscsivVolumeSizeInBytes     :: !(Maybe Integer)
+  , _cscsivCreatedDate           :: !(Maybe POSIX)
+  , _cscsivVolumeId              :: !(Maybe Text)
+  , _cscsivVolumeType            :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CachediSCSIVolume' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'cscsivVolumeiSCSIAttributes' - Undocumented member.
+-- * 'cscsivVolumeiSCSIAttributes' - An 'VolumeiSCSIAttributes' object that represents a collection of iSCSI attributes for one stored volume.
 --
--- * 'cscsivVolumeStatus' - Undocumented member.
+-- * 'cscsivVolumeStatus' - One of the VolumeStatus values that indicates the state of the storage volume.
 --
--- * 'cscsivSourceSnapshotId' - Undocumented member.
+-- * 'cscsivSourceSnapshotId' - If the cached volume was created from a snapshot, this field contains the snapshot ID used, e.g. snap-78e22663. Otherwise, this field is not included.
 --
--- * 'cscsivVolumeARN' - Undocumented member.
+-- * 'cscsivVolumeARN' - The Amazon Resource Name (ARN) of the storage volume.
 --
--- * 'cscsivVolumeProgress' - Undocumented member.
+-- * 'cscsivVolumeProgress' - Represents the percentage complete if the volume is restoring or bootstrapping that represents the percent of data transferred. This field does not appear in the response if the cached volume is not restoring or bootstrapping.
 --
--- * 'cscsivVolumeSizeInBytes' - Undocumented member.
+-- * 'cscsivVolumeSizeInBytes' - The size, in bytes, of the volume capacity.
 --
--- * 'cscsivVolumeId' - Undocumented member.
+-- * 'cscsivCreatedDate' - The date the volume was created. Volumes created prior to March 28, 2017 don’t have this time stamp.
 --
--- * 'cscsivVolumeType' - Undocumented member.
+-- * 'cscsivVolumeId' - The unique identifier of the volume, e.g. vol-AE4B946D.
+--
+-- * 'cscsivVolumeType' - One of the VolumeType enumeration values that describes the type of the volume.
 cachediSCSIVolume
     :: CachediSCSIVolume
 cachediSCSIVolume =
-    CachediSCSIVolume'
-    { _cscsivVolumeiSCSIAttributes = Nothing
-    , _cscsivVolumeStatus = Nothing
-    , _cscsivSourceSnapshotId = Nothing
-    , _cscsivVolumeARN = Nothing
-    , _cscsivVolumeProgress = Nothing
-    , _cscsivVolumeSizeInBytes = Nothing
-    , _cscsivVolumeId = Nothing
-    , _cscsivVolumeType = Nothing
-    }
+  CachediSCSIVolume'
+  { _cscsivVolumeiSCSIAttributes = Nothing
+  , _cscsivVolumeStatus = Nothing
+  , _cscsivSourceSnapshotId = Nothing
+  , _cscsivVolumeARN = Nothing
+  , _cscsivVolumeProgress = Nothing
+  , _cscsivVolumeSizeInBytes = Nothing
+  , _cscsivCreatedDate = Nothing
+  , _cscsivVolumeId = Nothing
+  , _cscsivVolumeType = Nothing
+  }
 
--- | Undocumented member.
+
+-- | An 'VolumeiSCSIAttributes' object that represents a collection of iSCSI attributes for one stored volume.
 cscsivVolumeiSCSIAttributes :: Lens' CachediSCSIVolume (Maybe VolumeiSCSIAttributes)
 cscsivVolumeiSCSIAttributes = lens _cscsivVolumeiSCSIAttributes (\ s a -> s{_cscsivVolumeiSCSIAttributes = a});
 
--- | Undocumented member.
+-- | One of the VolumeStatus values that indicates the state of the storage volume.
 cscsivVolumeStatus :: Lens' CachediSCSIVolume (Maybe Text)
 cscsivVolumeStatus = lens _cscsivVolumeStatus (\ s a -> s{_cscsivVolumeStatus = a});
 
--- | Undocumented member.
+-- | If the cached volume was created from a snapshot, this field contains the snapshot ID used, e.g. snap-78e22663. Otherwise, this field is not included.
 cscsivSourceSnapshotId :: Lens' CachediSCSIVolume (Maybe Text)
 cscsivSourceSnapshotId = lens _cscsivSourceSnapshotId (\ s a -> s{_cscsivSourceSnapshotId = a});
 
--- | Undocumented member.
+-- | The Amazon Resource Name (ARN) of the storage volume.
 cscsivVolumeARN :: Lens' CachediSCSIVolume (Maybe Text)
 cscsivVolumeARN = lens _cscsivVolumeARN (\ s a -> s{_cscsivVolumeARN = a});
 
--- | Undocumented member.
+-- | Represents the percentage complete if the volume is restoring or bootstrapping that represents the percent of data transferred. This field does not appear in the response if the cached volume is not restoring or bootstrapping.
 cscsivVolumeProgress :: Lens' CachediSCSIVolume (Maybe Double)
 cscsivVolumeProgress = lens _cscsivVolumeProgress (\ s a -> s{_cscsivVolumeProgress = a});
 
--- | Undocumented member.
+-- | The size, in bytes, of the volume capacity.
 cscsivVolumeSizeInBytes :: Lens' CachediSCSIVolume (Maybe Integer)
 cscsivVolumeSizeInBytes = lens _cscsivVolumeSizeInBytes (\ s a -> s{_cscsivVolumeSizeInBytes = a});
 
--- | Undocumented member.
+-- | The date the volume was created. Volumes created prior to March 28, 2017 don’t have this time stamp.
+cscsivCreatedDate :: Lens' CachediSCSIVolume (Maybe UTCTime)
+cscsivCreatedDate = lens _cscsivCreatedDate (\ s a -> s{_cscsivCreatedDate = a}) . mapping _Time;
+
+-- | The unique identifier of the volume, e.g. vol-AE4B946D.
 cscsivVolumeId :: Lens' CachediSCSIVolume (Maybe Text)
 cscsivVolumeId = lens _cscsivVolumeId (\ s a -> s{_cscsivVolumeId = a});
 
--- | Undocumented member.
+-- | One of the VolumeType enumeration values that describes the type of the volume.
 cscsivVolumeType :: Lens' CachediSCSIVolume (Maybe Text)
 cscsivVolumeType = lens _cscsivVolumeType (\ s a -> s{_cscsivVolumeType = a});
 
@@ -109,12 +123,13 @@
                      <*> (x .:? "VolumeARN")
                      <*> (x .:? "VolumeProgress")
                      <*> (x .:? "VolumeSizeInBytes")
+                     <*> (x .:? "CreatedDate")
                      <*> (x .:? "VolumeId")
                      <*> (x .:? "VolumeType"))
 
-instance Hashable CachediSCSIVolume
+instance Hashable CachediSCSIVolume where
 
-instance NFData CachediSCSIVolume
+instance NFData CachediSCSIVolume where
 
 -- | Describes Challenge-Handshake Authentication Protocol (CHAP) information that supports authentication between your gateway and iSCSI initiators.
 --
@@ -122,12 +137,13 @@
 --
 -- /See:/ 'chapInfo' smart constructor.
 data ChapInfo = ChapInfo'
-    { _ciTargetARN                     :: !(Maybe Text)
-    , _ciSecretToAuthenticateInitiator :: !(Maybe Text)
-    , _ciInitiatorName                 :: !(Maybe Text)
-    , _ciSecretToAuthenticateTarget    :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ciTargetARN                     :: !(Maybe Text)
+  , _ciSecretToAuthenticateInitiator :: !(Maybe Text)
+  , _ciInitiatorName                 :: !(Maybe Text)
+  , _ciSecretToAuthenticateTarget    :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ChapInfo' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -142,13 +158,14 @@
 chapInfo
     :: ChapInfo
 chapInfo =
-    ChapInfo'
-    { _ciTargetARN = Nothing
-    , _ciSecretToAuthenticateInitiator = Nothing
-    , _ciInitiatorName = Nothing
-    , _ciSecretToAuthenticateTarget = Nothing
-    }
+  ChapInfo'
+  { _ciTargetARN = Nothing
+  , _ciSecretToAuthenticateInitiator = Nothing
+  , _ciInitiatorName = Nothing
+  , _ciSecretToAuthenticateTarget = Nothing
+  }
 
+
 -- | The Amazon Resource Name (ARN) of the volume. Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens (-).
 ciTargetARN :: Lens' ChapInfo (Maybe Text)
 ciTargetARN = lens _ciTargetARN (\ s a -> s{_ciTargetARN = a});
@@ -175,9 +192,9 @@
                      <*> (x .:? "InitiatorName")
                      <*> (x .:? "SecretToAuthenticateTarget"))
 
-instance Hashable ChapInfo
+instance Hashable ChapInfo where
 
-instance NFData ChapInfo
+instance NFData ChapInfo where
 
 -- | Lists iSCSI information about a VTL device.
 --
@@ -185,12 +202,13 @@
 --
 -- /See:/ 'deviceiSCSIAttributes' smart constructor.
 data DeviceiSCSIAttributes = DeviceiSCSIAttributes'
-    { _dscsiaTargetARN            :: !(Maybe Text)
-    , _dscsiaChapEnabled          :: !(Maybe Bool)
-    , _dscsiaNetworkInterfaceId   :: !(Maybe Text)
-    , _dscsiaNetworkInterfacePort :: !(Maybe Int)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dscsiaTargetARN            :: !(Maybe Text)
+  , _dscsiaChapEnabled          :: !(Maybe Bool)
+  , _dscsiaNetworkInterfaceId   :: !(Maybe Text)
+  , _dscsiaNetworkInterfacePort :: !(Maybe Int)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeviceiSCSIAttributes' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -205,13 +223,14 @@
 deviceiSCSIAttributes
     :: DeviceiSCSIAttributes
 deviceiSCSIAttributes =
-    DeviceiSCSIAttributes'
-    { _dscsiaTargetARN = Nothing
-    , _dscsiaChapEnabled = Nothing
-    , _dscsiaNetworkInterfaceId = Nothing
-    , _dscsiaNetworkInterfacePort = Nothing
-    }
+  DeviceiSCSIAttributes'
+  { _dscsiaTargetARN = Nothing
+  , _dscsiaChapEnabled = Nothing
+  , _dscsiaNetworkInterfaceId = Nothing
+  , _dscsiaNetworkInterfacePort = Nothing
+  }
 
+
 -- | Specifies the unique Amazon Resource Name(ARN) that encodes the iSCSI qualified name(iqn) of a tape drive or media changer target.
 dscsiaTargetARN :: Lens' DeviceiSCSIAttributes (Maybe Text)
 dscsiaTargetARN = lens _dscsiaTargetARN (\ s a -> s{_dscsiaTargetARN = a});
@@ -237,21 +256,22 @@
                      (x .:? "NetworkInterfaceId")
                      <*> (x .:? "NetworkInterfacePort"))
 
-instance Hashable DeviceiSCSIAttributes
+instance Hashable DeviceiSCSIAttributes where
 
-instance NFData DeviceiSCSIAttributes
+instance NFData DeviceiSCSIAttributes where
 
 -- | /See:/ 'disk' smart constructor.
 data Disk = Disk'
-    { _dDiskAllocationResource :: !(Maybe Text)
-    , _dDiskAllocationType     :: !(Maybe Text)
-    , _dDiskNode               :: !(Maybe Text)
-    , _dDiskPath               :: !(Maybe Text)
-    , _dDiskSizeInBytes        :: !(Maybe Integer)
-    , _dDiskStatus             :: !(Maybe Text)
-    , _dDiskId                 :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dDiskAllocationResource :: !(Maybe Text)
+  , _dDiskAllocationType     :: !(Maybe Text)
+  , _dDiskNode               :: !(Maybe Text)
+  , _dDiskPath               :: !(Maybe Text)
+  , _dDiskSizeInBytes        :: !(Maybe Integer)
+  , _dDiskStatus             :: !(Maybe Text)
+  , _dDiskId                 :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'Disk' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -272,16 +292,17 @@
 disk
     :: Disk
 disk =
-    Disk'
-    { _dDiskAllocationResource = Nothing
-    , _dDiskAllocationType = Nothing
-    , _dDiskNode = Nothing
-    , _dDiskPath = Nothing
-    , _dDiskSizeInBytes = Nothing
-    , _dDiskStatus = Nothing
-    , _dDiskId = Nothing
-    }
+  Disk'
+  { _dDiskAllocationResource = Nothing
+  , _dDiskAllocationType = Nothing
+  , _dDiskNode = Nothing
+  , _dDiskPath = Nothing
+  , _dDiskSizeInBytes = Nothing
+  , _dDiskStatus = Nothing
+  , _dDiskId = Nothing
+  }
 
+
 -- | Undocumented member.
 dDiskAllocationResource :: Lens' Disk (Maybe Text)
 dDiskAllocationResource = lens _dDiskAllocationResource (\ s a -> s{_dDiskAllocationResource = a});
@@ -323,23 +344,88 @@
                      <*> (x .:? "DiskStatus")
                      <*> (x .:? "DiskId"))
 
-instance Hashable Disk
+instance Hashable Disk where
 
-instance NFData Disk
+instance NFData Disk where
 
+-- | Describes a file share.
+--
+--
+--
+-- /See:/ 'fileShareInfo' smart constructor.
+data FileShareInfo = FileShareInfo'
+  { _fsiFileShareStatus :: !(Maybe Text)
+  , _fsiGatewayARN      :: !(Maybe Text)
+  , _fsiFileShareId     :: !(Maybe Text)
+  , _fsiFileShareARN    :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'FileShareInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fsiFileShareStatus' - Undocumented member.
+--
+-- * 'fsiGatewayARN' - Undocumented member.
+--
+-- * 'fsiFileShareId' - Undocumented member.
+--
+-- * 'fsiFileShareARN' - Undocumented member.
+fileShareInfo
+    :: FileShareInfo
+fileShareInfo =
+  FileShareInfo'
+  { _fsiFileShareStatus = Nothing
+  , _fsiGatewayARN = Nothing
+  , _fsiFileShareId = Nothing
+  , _fsiFileShareARN = Nothing
+  }
+
+
+-- | Undocumented member.
+fsiFileShareStatus :: Lens' FileShareInfo (Maybe Text)
+fsiFileShareStatus = lens _fsiFileShareStatus (\ s a -> s{_fsiFileShareStatus = a});
+
+-- | Undocumented member.
+fsiGatewayARN :: Lens' FileShareInfo (Maybe Text)
+fsiGatewayARN = lens _fsiGatewayARN (\ s a -> s{_fsiGatewayARN = a});
+
+-- | Undocumented member.
+fsiFileShareId :: Lens' FileShareInfo (Maybe Text)
+fsiFileShareId = lens _fsiFileShareId (\ s a -> s{_fsiFileShareId = a});
+
+-- | Undocumented member.
+fsiFileShareARN :: Lens' FileShareInfo (Maybe Text)
+fsiFileShareARN = lens _fsiFileShareARN (\ s a -> s{_fsiFileShareARN = a});
+
+instance FromJSON FileShareInfo where
+        parseJSON
+          = withObject "FileShareInfo"
+              (\ x ->
+                 FileShareInfo' <$>
+                   (x .:? "FileShareStatus") <*> (x .:? "GatewayARN")
+                     <*> (x .:? "FileShareId")
+                     <*> (x .:? "FileShareARN"))
+
+instance Hashable FileShareInfo where
+
+instance NFData FileShareInfo where
+
 -- | Describes a gateway object.
 --
 --
 --
 -- /See:/ 'gatewayInfo' smart constructor.
 data GatewayInfo = GatewayInfo'
-    { _giGatewayARN              :: !(Maybe Text)
-    , _giGatewayOperationalState :: !(Maybe Text)
-    , _giGatewayName             :: !(Maybe Text)
-    , _giGatewayId               :: !(Maybe Text)
-    , _giGatewayType             :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _giGatewayARN              :: !(Maybe Text)
+  , _giGatewayOperationalState :: !(Maybe Text)
+  , _giGatewayName             :: !(Maybe Text)
+  , _giGatewayId               :: !(Maybe Text)
+  , _giGatewayType             :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GatewayInfo' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -356,14 +442,15 @@
 gatewayInfo
     :: GatewayInfo
 gatewayInfo =
-    GatewayInfo'
-    { _giGatewayARN = Nothing
-    , _giGatewayOperationalState = Nothing
-    , _giGatewayName = Nothing
-    , _giGatewayId = Nothing
-    , _giGatewayType = Nothing
-    }
+  GatewayInfo'
+  { _giGatewayARN = Nothing
+  , _giGatewayOperationalState = Nothing
+  , _giGatewayName = Nothing
+  , _giGatewayId = Nothing
+  , _giGatewayType = Nothing
+  }
 
+
 -- | The Amazon Resource Name (ARN) of the gateway. Use the 'ListGateways' operation to return a list of gateways for your account and region.
 giGatewayARN :: Lens' GatewayInfo (Maybe Text)
 giGatewayARN = lens _giGatewayARN (\ s a -> s{_giGatewayARN = a});
@@ -395,21 +482,249 @@
                      <*> (x .:? "GatewayId")
                      <*> (x .:? "GatewayType"))
 
-instance Hashable GatewayInfo
+instance Hashable GatewayInfo where
 
-instance NFData GatewayInfo
+instance NFData GatewayInfo where
 
+-- | Describes file share default values. Files and folders stored as Amazon S3 objects in S3 buckets don't, by default, have Unix file permissions assigned to them. Upon discovery in an S3 bucket by Storage Gateway, the S3 objects that represent files and folders are assigned these default Unix permissions. This operation is only supported in the file gateway architecture.
+--
+--
+--
+-- /See:/ 'nFSFileShareDefaults' smart constructor.
+data NFSFileShareDefaults = NFSFileShareDefaults'
+  { _nfsfsdFileMode      :: !(Maybe Text)
+  , _nfsfsdOwnerId       :: !(Maybe Nat)
+  , _nfsfsdDirectoryMode :: !(Maybe Text)
+  , _nfsfsdGroupId       :: !(Maybe Nat)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'NFSFileShareDefaults' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'nfsfsdFileMode' - The Unix file mode in the form "nnnn". For example, "0666" represents the default file mode inside the file share. The default value is 0666.
+--
+-- * 'nfsfsdOwnerId' - The default owner ID for files in the file share (unless the files have another owner ID specified). The default value is nfsnobody.
+--
+-- * 'nfsfsdDirectoryMode' - The Unix directory mode in the form "nnnn". For example, "0666" represents the default access mode for all directories inside the file share. The default value is 0777.
+--
+-- * 'nfsfsdGroupId' - The default group ID for the file share (unless the files have another group ID specified). The default value is nfsnobody.
+nFSFileShareDefaults
+    :: NFSFileShareDefaults
+nFSFileShareDefaults =
+  NFSFileShareDefaults'
+  { _nfsfsdFileMode = Nothing
+  , _nfsfsdOwnerId = Nothing
+  , _nfsfsdDirectoryMode = Nothing
+  , _nfsfsdGroupId = Nothing
+  }
+
+
+-- | The Unix file mode in the form "nnnn". For example, "0666" represents the default file mode inside the file share. The default value is 0666.
+nfsfsdFileMode :: Lens' NFSFileShareDefaults (Maybe Text)
+nfsfsdFileMode = lens _nfsfsdFileMode (\ s a -> s{_nfsfsdFileMode = a});
+
+-- | The default owner ID for files in the file share (unless the files have another owner ID specified). The default value is nfsnobody.
+nfsfsdOwnerId :: Lens' NFSFileShareDefaults (Maybe Natural)
+nfsfsdOwnerId = lens _nfsfsdOwnerId (\ s a -> s{_nfsfsdOwnerId = a}) . mapping _Nat;
+
+-- | The Unix directory mode in the form "nnnn". For example, "0666" represents the default access mode for all directories inside the file share. The default value is 0777.
+nfsfsdDirectoryMode :: Lens' NFSFileShareDefaults (Maybe Text)
+nfsfsdDirectoryMode = lens _nfsfsdDirectoryMode (\ s a -> s{_nfsfsdDirectoryMode = a});
+
+-- | The default group ID for the file share (unless the files have another group ID specified). The default value is nfsnobody.
+nfsfsdGroupId :: Lens' NFSFileShareDefaults (Maybe Natural)
+nfsfsdGroupId = lens _nfsfsdGroupId (\ s a -> s{_nfsfsdGroupId = a}) . mapping _Nat;
+
+instance FromJSON NFSFileShareDefaults where
+        parseJSON
+          = withObject "NFSFileShareDefaults"
+              (\ x ->
+                 NFSFileShareDefaults' <$>
+                   (x .:? "FileMode") <*> (x .:? "OwnerId") <*>
+                     (x .:? "DirectoryMode")
+                     <*> (x .:? "GroupId"))
+
+instance Hashable NFSFileShareDefaults where
+
+instance NFData NFSFileShareDefaults where
+
+instance ToJSON NFSFileShareDefaults where
+        toJSON NFSFileShareDefaults'{..}
+          = object
+              (catMaybes
+                 [("FileMode" .=) <$> _nfsfsdFileMode,
+                  ("OwnerId" .=) <$> _nfsfsdOwnerId,
+                  ("DirectoryMode" .=) <$> _nfsfsdDirectoryMode,
+                  ("GroupId" .=) <$> _nfsfsdGroupId])
+
+-- | The Unix file permissions and ownership information assigned, by default, to native S3 objects when file gateway discovers them in S3 buckets. This operation is only supported in file gateways.
+--
+--
+--
+-- /See:/ 'nFSFileShareInfo' smart constructor.
+data NFSFileShareInfo = NFSFileShareInfo'
+  { _nfsfsiFileShareStatus      :: !(Maybe Text)
+  , _nfsfsiKMSKey               :: !(Maybe Text)
+  , _nfsfsiGatewayARN           :: !(Maybe Text)
+  , _nfsfsiPath                 :: !(Maybe Text)
+  , _nfsfsiKMSEncrypted         :: !(Maybe Bool)
+  , _nfsfsiFileShareId          :: !(Maybe Text)
+  , _nfsfsiFileShareARN         :: !(Maybe Text)
+  , _nfsfsiDefaultStorageClass  :: !(Maybe Text)
+  , _nfsfsiRole                 :: !(Maybe Text)
+  , _nfsfsiSquash               :: !(Maybe Text)
+  , _nfsfsiNFSFileShareDefaults :: !(Maybe NFSFileShareDefaults)
+  , _nfsfsiLocationARN          :: !(Maybe Text)
+  , _nfsfsiClientList           :: !(Maybe (List1 Text))
+  , _nfsfsiReadOnly             :: !(Maybe Bool)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'NFSFileShareInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'nfsfsiFileShareStatus' - Undocumented member.
+--
+-- * 'nfsfsiKMSKey' - Undocumented member.
+--
+-- * 'nfsfsiGatewayARN' - Undocumented member.
+--
+-- * 'nfsfsiPath' - Undocumented member.
+--
+-- * 'nfsfsiKMSEncrypted' - True to use Amazon S3 server side encryption with your own KMS key, or false to use a key managed by Amazon S3. Optional.
+--
+-- * 'nfsfsiFileShareId' - Undocumented member.
+--
+-- * 'nfsfsiFileShareARN' - Undocumented member.
+--
+-- * 'nfsfsiDefaultStorageClass' - The default storage class for objects put into an Amazon S3 bucket by file gateway. Possible values are S3_STANDARD or S3_STANDARD_IA. If this field is not populated, the default value S3_STANDARD is used. Optional.
+--
+-- * 'nfsfsiRole' - Undocumented member.
+--
+-- * 'nfsfsiSquash' - Undocumented member.
+--
+-- * 'nfsfsiNFSFileShareDefaults' - Undocumented member.
+--
+-- * 'nfsfsiLocationARN' - Undocumented member.
+--
+-- * 'nfsfsiClientList' - Undocumented member.
+--
+-- * 'nfsfsiReadOnly' - Undocumented member.
+nFSFileShareInfo
+    :: NFSFileShareInfo
+nFSFileShareInfo =
+  NFSFileShareInfo'
+  { _nfsfsiFileShareStatus = Nothing
+  , _nfsfsiKMSKey = Nothing
+  , _nfsfsiGatewayARN = Nothing
+  , _nfsfsiPath = Nothing
+  , _nfsfsiKMSEncrypted = Nothing
+  , _nfsfsiFileShareId = Nothing
+  , _nfsfsiFileShareARN = Nothing
+  , _nfsfsiDefaultStorageClass = Nothing
+  , _nfsfsiRole = Nothing
+  , _nfsfsiSquash = Nothing
+  , _nfsfsiNFSFileShareDefaults = Nothing
+  , _nfsfsiLocationARN = Nothing
+  , _nfsfsiClientList = Nothing
+  , _nfsfsiReadOnly = Nothing
+  }
+
+
+-- | Undocumented member.
+nfsfsiFileShareStatus :: Lens' NFSFileShareInfo (Maybe Text)
+nfsfsiFileShareStatus = lens _nfsfsiFileShareStatus (\ s a -> s{_nfsfsiFileShareStatus = a});
+
+-- | Undocumented member.
+nfsfsiKMSKey :: Lens' NFSFileShareInfo (Maybe Text)
+nfsfsiKMSKey = lens _nfsfsiKMSKey (\ s a -> s{_nfsfsiKMSKey = a});
+
+-- | Undocumented member.
+nfsfsiGatewayARN :: Lens' NFSFileShareInfo (Maybe Text)
+nfsfsiGatewayARN = lens _nfsfsiGatewayARN (\ s a -> s{_nfsfsiGatewayARN = a});
+
+-- | Undocumented member.
+nfsfsiPath :: Lens' NFSFileShareInfo (Maybe Text)
+nfsfsiPath = lens _nfsfsiPath (\ s a -> s{_nfsfsiPath = a});
+
+-- | True to use Amazon S3 server side encryption with your own KMS key, or false to use a key managed by Amazon S3. Optional.
+nfsfsiKMSEncrypted :: Lens' NFSFileShareInfo (Maybe Bool)
+nfsfsiKMSEncrypted = lens _nfsfsiKMSEncrypted (\ s a -> s{_nfsfsiKMSEncrypted = a});
+
+-- | Undocumented member.
+nfsfsiFileShareId :: Lens' NFSFileShareInfo (Maybe Text)
+nfsfsiFileShareId = lens _nfsfsiFileShareId (\ s a -> s{_nfsfsiFileShareId = a});
+
+-- | Undocumented member.
+nfsfsiFileShareARN :: Lens' NFSFileShareInfo (Maybe Text)
+nfsfsiFileShareARN = lens _nfsfsiFileShareARN (\ s a -> s{_nfsfsiFileShareARN = a});
+
+-- | The default storage class for objects put into an Amazon S3 bucket by file gateway. Possible values are S3_STANDARD or S3_STANDARD_IA. If this field is not populated, the default value S3_STANDARD is used. Optional.
+nfsfsiDefaultStorageClass :: Lens' NFSFileShareInfo (Maybe Text)
+nfsfsiDefaultStorageClass = lens _nfsfsiDefaultStorageClass (\ s a -> s{_nfsfsiDefaultStorageClass = a});
+
+-- | Undocumented member.
+nfsfsiRole :: Lens' NFSFileShareInfo (Maybe Text)
+nfsfsiRole = lens _nfsfsiRole (\ s a -> s{_nfsfsiRole = a});
+
+-- | Undocumented member.
+nfsfsiSquash :: Lens' NFSFileShareInfo (Maybe Text)
+nfsfsiSquash = lens _nfsfsiSquash (\ s a -> s{_nfsfsiSquash = a});
+
+-- | Undocumented member.
+nfsfsiNFSFileShareDefaults :: Lens' NFSFileShareInfo (Maybe NFSFileShareDefaults)
+nfsfsiNFSFileShareDefaults = lens _nfsfsiNFSFileShareDefaults (\ s a -> s{_nfsfsiNFSFileShareDefaults = a});
+
+-- | Undocumented member.
+nfsfsiLocationARN :: Lens' NFSFileShareInfo (Maybe Text)
+nfsfsiLocationARN = lens _nfsfsiLocationARN (\ s a -> s{_nfsfsiLocationARN = a});
+
+-- | Undocumented member.
+nfsfsiClientList :: Lens' NFSFileShareInfo (Maybe (NonEmpty Text))
+nfsfsiClientList = lens _nfsfsiClientList (\ s a -> s{_nfsfsiClientList = a}) . mapping _List1;
+
+-- | Undocumented member.
+nfsfsiReadOnly :: Lens' NFSFileShareInfo (Maybe Bool)
+nfsfsiReadOnly = lens _nfsfsiReadOnly (\ s a -> s{_nfsfsiReadOnly = a});
+
+instance FromJSON NFSFileShareInfo where
+        parseJSON
+          = withObject "NFSFileShareInfo"
+              (\ x ->
+                 NFSFileShareInfo' <$>
+                   (x .:? "FileShareStatus") <*> (x .:? "KMSKey") <*>
+                     (x .:? "GatewayARN")
+                     <*> (x .:? "Path")
+                     <*> (x .:? "KMSEncrypted")
+                     <*> (x .:? "FileShareId")
+                     <*> (x .:? "FileShareARN")
+                     <*> (x .:? "DefaultStorageClass")
+                     <*> (x .:? "Role")
+                     <*> (x .:? "Squash")
+                     <*> (x .:? "NFSFileShareDefaults")
+                     <*> (x .:? "LocationARN")
+                     <*> (x .:? "ClientList")
+                     <*> (x .:? "ReadOnly"))
+
+instance Hashable NFSFileShareInfo where
+
+instance NFData NFSFileShareInfo where
+
 -- | Describes a gateway's network interface.
 --
 --
 --
 -- /See:/ 'networkInterface' smart constructor.
 data NetworkInterface = NetworkInterface'
-    { _niIPv6Address :: !(Maybe Text)
-    , _niMACAddress  :: !(Maybe Text)
-    , _niIPv4Address :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _niIPv6Address :: !(Maybe Text)
+  , _niMACAddress  :: !(Maybe Text)
+  , _niIPv4Address :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'NetworkInterface' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -422,12 +737,10 @@
 networkInterface
     :: NetworkInterface
 networkInterface =
-    NetworkInterface'
-    { _niIPv6Address = Nothing
-    , _niMACAddress = Nothing
-    , _niIPv4Address = Nothing
-    }
+  NetworkInterface'
+  {_niIPv6Address = Nothing, _niMACAddress = Nothing, _niIPv4Address = Nothing}
 
+
 -- | The Internet Protocol version 6 (IPv6) address of the interface. /Currently not supported/ .
 niIPv6Address :: Lens' NetworkInterface (Maybe Text)
 niIPv6Address = lens _niIPv6Address (\ s a -> s{_niIPv6Address = a});
@@ -448,100 +761,114 @@
                    (x .:? "Ipv6Address") <*> (x .:? "MacAddress") <*>
                      (x .:? "Ipv4Address"))
 
-instance Hashable NetworkInterface
+instance Hashable NetworkInterface where
 
-instance NFData NetworkInterface
+instance NFData NetworkInterface where
 
--- | /See:/ 'storediSCSIVolume' smart constructor.
+-- | Describes an iSCSI stored volume.
+--
+--
+--
+-- /See:/ 'storediSCSIVolume' smart constructor.
 data StorediSCSIVolume = StorediSCSIVolume'
-    { _sscsivVolumeiSCSIAttributes :: !(Maybe VolumeiSCSIAttributes)
-    , _sscsivVolumeStatus          :: !(Maybe Text)
-    , _sscsivSourceSnapshotId      :: !(Maybe Text)
-    , _sscsivPreservedExistingData :: !(Maybe Bool)
-    , _sscsivVolumeARN             :: !(Maybe Text)
-    , _sscsivVolumeProgress        :: !(Maybe Double)
-    , _sscsivVolumeSizeInBytes     :: !(Maybe Integer)
-    , _sscsivVolumeId              :: !(Maybe Text)
-    , _sscsivVolumeDiskId          :: !(Maybe Text)
-    , _sscsivVolumeType            :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _sscsivVolumeiSCSIAttributes :: !(Maybe VolumeiSCSIAttributes)
+  , _sscsivVolumeStatus          :: !(Maybe Text)
+  , _sscsivSourceSnapshotId      :: !(Maybe Text)
+  , _sscsivPreservedExistingData :: !(Maybe Bool)
+  , _sscsivVolumeARN             :: !(Maybe Text)
+  , _sscsivVolumeProgress        :: !(Maybe Double)
+  , _sscsivVolumeSizeInBytes     :: !(Maybe Integer)
+  , _sscsivCreatedDate           :: !(Maybe POSIX)
+  , _sscsivVolumeId              :: !(Maybe Text)
+  , _sscsivVolumeDiskId          :: !(Maybe Text)
+  , _sscsivVolumeType            :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'StorediSCSIVolume' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'sscsivVolumeiSCSIAttributes' - Undocumented member.
+-- * 'sscsivVolumeiSCSIAttributes' - An 'VolumeiSCSIAttributes' object that represents a collection of iSCSI attributes for one stored volume.
 --
--- * 'sscsivVolumeStatus' - Undocumented member.
+-- * 'sscsivVolumeStatus' - One of the VolumeStatus values that indicates the state of the storage volume.
 --
--- * 'sscsivSourceSnapshotId' - Undocumented member.
+-- * 'sscsivSourceSnapshotId' - If the stored volume was created from a snapshot, this field contains the snapshot ID used, e.g. snap-78e22663. Otherwise, this field is not included.
 --
--- * 'sscsivPreservedExistingData' - Undocumented member.
+-- * 'sscsivPreservedExistingData' - Indicates if when the stored volume was created, existing data on the underlying local disk was preserved. Valid Values: true, false
 --
--- * 'sscsivVolumeARN' - Undocumented member.
+-- * 'sscsivVolumeARN' - The Amazon Resource Name (ARN) of the storage volume.
 --
--- * 'sscsivVolumeProgress' - Undocumented member.
+-- * 'sscsivVolumeProgress' - Represents the percentage complete if the volume is restoring or bootstrapping that represents the percent of data transferred. This field does not appear in the response if the stored volume is not restoring or bootstrapping.
 --
--- * 'sscsivVolumeSizeInBytes' - Undocumented member.
+-- * 'sscsivVolumeSizeInBytes' - The size of the volume in bytes.
 --
--- * 'sscsivVolumeId' - Undocumented member.
+-- * 'sscsivCreatedDate' - The date the volume was created. Volumes created prior to March 28, 2017 don’t have this time stamp.
 --
--- * 'sscsivVolumeDiskId' - Undocumented member.
+-- * 'sscsivVolumeId' - The unique identifier of the volume, e.g. vol-AE4B946D.
 --
--- * 'sscsivVolumeType' - Undocumented member.
+-- * 'sscsivVolumeDiskId' - The ID of the local disk that was specified in the 'CreateStorediSCSIVolume' operation.
+--
+-- * 'sscsivVolumeType' - One of the VolumeType enumeration values describing the type of the volume.
 storediSCSIVolume
     :: StorediSCSIVolume
 storediSCSIVolume =
-    StorediSCSIVolume'
-    { _sscsivVolumeiSCSIAttributes = Nothing
-    , _sscsivVolumeStatus = Nothing
-    , _sscsivSourceSnapshotId = Nothing
-    , _sscsivPreservedExistingData = Nothing
-    , _sscsivVolumeARN = Nothing
-    , _sscsivVolumeProgress = Nothing
-    , _sscsivVolumeSizeInBytes = Nothing
-    , _sscsivVolumeId = Nothing
-    , _sscsivVolumeDiskId = Nothing
-    , _sscsivVolumeType = Nothing
-    }
+  StorediSCSIVolume'
+  { _sscsivVolumeiSCSIAttributes = Nothing
+  , _sscsivVolumeStatus = Nothing
+  , _sscsivSourceSnapshotId = Nothing
+  , _sscsivPreservedExistingData = Nothing
+  , _sscsivVolumeARN = Nothing
+  , _sscsivVolumeProgress = Nothing
+  , _sscsivVolumeSizeInBytes = Nothing
+  , _sscsivCreatedDate = Nothing
+  , _sscsivVolumeId = Nothing
+  , _sscsivVolumeDiskId = Nothing
+  , _sscsivVolumeType = Nothing
+  }
 
--- | Undocumented member.
+
+-- | An 'VolumeiSCSIAttributes' object that represents a collection of iSCSI attributes for one stored volume.
 sscsivVolumeiSCSIAttributes :: Lens' StorediSCSIVolume (Maybe VolumeiSCSIAttributes)
 sscsivVolumeiSCSIAttributes = lens _sscsivVolumeiSCSIAttributes (\ s a -> s{_sscsivVolumeiSCSIAttributes = a});
 
--- | Undocumented member.
+-- | One of the VolumeStatus values that indicates the state of the storage volume.
 sscsivVolumeStatus :: Lens' StorediSCSIVolume (Maybe Text)
 sscsivVolumeStatus = lens _sscsivVolumeStatus (\ s a -> s{_sscsivVolumeStatus = a});
 
--- | Undocumented member.
+-- | If the stored volume was created from a snapshot, this field contains the snapshot ID used, e.g. snap-78e22663. Otherwise, this field is not included.
 sscsivSourceSnapshotId :: Lens' StorediSCSIVolume (Maybe Text)
 sscsivSourceSnapshotId = lens _sscsivSourceSnapshotId (\ s a -> s{_sscsivSourceSnapshotId = a});
 
--- | Undocumented member.
+-- | Indicates if when the stored volume was created, existing data on the underlying local disk was preserved. Valid Values: true, false
 sscsivPreservedExistingData :: Lens' StorediSCSIVolume (Maybe Bool)
 sscsivPreservedExistingData = lens _sscsivPreservedExistingData (\ s a -> s{_sscsivPreservedExistingData = a});
 
--- | Undocumented member.
+-- | The Amazon Resource Name (ARN) of the storage volume.
 sscsivVolumeARN :: Lens' StorediSCSIVolume (Maybe Text)
 sscsivVolumeARN = lens _sscsivVolumeARN (\ s a -> s{_sscsivVolumeARN = a});
 
--- | Undocumented member.
+-- | Represents the percentage complete if the volume is restoring or bootstrapping that represents the percent of data transferred. This field does not appear in the response if the stored volume is not restoring or bootstrapping.
 sscsivVolumeProgress :: Lens' StorediSCSIVolume (Maybe Double)
 sscsivVolumeProgress = lens _sscsivVolumeProgress (\ s a -> s{_sscsivVolumeProgress = a});
 
--- | Undocumented member.
+-- | The size of the volume in bytes.
 sscsivVolumeSizeInBytes :: Lens' StorediSCSIVolume (Maybe Integer)
 sscsivVolumeSizeInBytes = lens _sscsivVolumeSizeInBytes (\ s a -> s{_sscsivVolumeSizeInBytes = a});
 
--- | Undocumented member.
+-- | The date the volume was created. Volumes created prior to March 28, 2017 don’t have this time stamp.
+sscsivCreatedDate :: Lens' StorediSCSIVolume (Maybe UTCTime)
+sscsivCreatedDate = lens _sscsivCreatedDate (\ s a -> s{_sscsivCreatedDate = a}) . mapping _Time;
+
+-- | The unique identifier of the volume, e.g. vol-AE4B946D.
 sscsivVolumeId :: Lens' StorediSCSIVolume (Maybe Text)
 sscsivVolumeId = lens _sscsivVolumeId (\ s a -> s{_sscsivVolumeId = a});
 
--- | Undocumented member.
+-- | The ID of the local disk that was specified in the 'CreateStorediSCSIVolume' operation.
 sscsivVolumeDiskId :: Lens' StorediSCSIVolume (Maybe Text)
 sscsivVolumeDiskId = lens _sscsivVolumeDiskId (\ s a -> s{_sscsivVolumeDiskId = a});
 
--- | Undocumented member.
+-- | One of the VolumeType enumeration values describing the type of the volume.
 sscsivVolumeType :: Lens' StorediSCSIVolume (Maybe Text)
 sscsivVolumeType = lens _sscsivVolumeType (\ s a -> s{_sscsivVolumeType = a});
 
@@ -557,20 +884,22 @@
                      <*> (x .:? "VolumeARN")
                      <*> (x .:? "VolumeProgress")
                      <*> (x .:? "VolumeSizeInBytes")
+                     <*> (x .:? "CreatedDate")
                      <*> (x .:? "VolumeId")
                      <*> (x .:? "VolumeDiskId")
                      <*> (x .:? "VolumeType"))
 
-instance Hashable StorediSCSIVolume
+instance Hashable StorediSCSIVolume where
 
-instance NFData StorediSCSIVolume
+instance NFData StorediSCSIVolume where
 
 -- | /See:/ 'tag' smart constructor.
 data Tag = Tag'
-    { _tagKey   :: !Text
-    , _tagValue :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _tagKey   :: !Text
+  , _tagValue :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'Tag' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -582,12 +911,9 @@
     :: Text -- ^ 'tagKey'
     -> Text -- ^ 'tagValue'
     -> Tag
-tag pKey_ pValue_ =
-    Tag'
-    { _tagKey = pKey_
-    , _tagValue = pValue_
-    }
+tag pKey_ pValue_ = Tag' {_tagKey = pKey_, _tagValue = pValue_}
 
+
 -- | Undocumented member.
 tagKey :: Lens' Tag Text
 tagKey = lens _tagKey (\ s a -> s{_tagKey = a});
@@ -601,9 +927,9 @@
           = withObject "Tag"
               (\ x -> Tag' <$> (x .: "Key") <*> (x .: "Value"))
 
-instance Hashable Tag
+instance Hashable Tag where
 
-instance NFData Tag
+instance NFData Tag where
 
 instance ToJSON Tag where
         toJSON Tag'{..}
@@ -618,14 +944,17 @@
 --
 -- /See:/ 'tape' smart constructor.
 data Tape = Tape'
-    { _tTapeBarcode     :: !(Maybe Text)
-    , _tTapeStatus      :: !(Maybe Text)
-    , _tTapeARN         :: !(Maybe Text)
-    , _tProgress        :: !(Maybe Double)
-    , _tTapeSizeInBytes :: !(Maybe Integer)
-    , _tVTLDevice       :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _tTapeBarcode     :: !(Maybe Text)
+  , _tTapeStatus      :: !(Maybe Text)
+  , _tTapeARN         :: !(Maybe Text)
+  , _tProgress        :: !(Maybe Double)
+  , _tTapeSizeInBytes :: !(Maybe Integer)
+  , _tVTLDevice       :: !(Maybe Text)
+  , _tTapeUsedInBytes :: !(Maybe Integer)
+  , _tTapeCreatedDate :: !(Maybe POSIX)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'Tape' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -638,21 +967,28 @@
 --
 -- * 'tProgress' - For archiving virtual tapes, indicates how much data remains to be uploaded before archiving is complete. Range: 0 (not started) to 100 (complete).
 --
--- * 'tTapeSizeInBytes' - The size, in bytes, of the virtual tape.
+-- * 'tTapeSizeInBytes' - The size, in bytes, of the virtual tape capacity.
 --
 -- * 'tVTLDevice' - The virtual tape library (VTL) device that the virtual tape is associated with.
+--
+-- * 'tTapeUsedInBytes' - The size, in bytes, of data written to the virtual tape.
+--
+-- * 'tTapeCreatedDate' - The date the virtual tape was created.
 tape
     :: Tape
 tape =
-    Tape'
-    { _tTapeBarcode = Nothing
-    , _tTapeStatus = Nothing
-    , _tTapeARN = Nothing
-    , _tProgress = Nothing
-    , _tTapeSizeInBytes = Nothing
-    , _tVTLDevice = Nothing
-    }
+  Tape'
+  { _tTapeBarcode = Nothing
+  , _tTapeStatus = Nothing
+  , _tTapeARN = Nothing
+  , _tProgress = Nothing
+  , _tTapeSizeInBytes = Nothing
+  , _tVTLDevice = Nothing
+  , _tTapeUsedInBytes = Nothing
+  , _tTapeCreatedDate = Nothing
+  }
 
+
 -- | The barcode that identifies a specific virtual tape.
 tTapeBarcode :: Lens' Tape (Maybe Text)
 tTapeBarcode = lens _tTapeBarcode (\ s a -> s{_tTapeBarcode = a});
@@ -669,7 +1005,7 @@
 tProgress :: Lens' Tape (Maybe Double)
 tProgress = lens _tProgress (\ s a -> s{_tProgress = a});
 
--- | The size, in bytes, of the virtual tape.
+-- | The size, in bytes, of the virtual tape capacity.
 tTapeSizeInBytes :: Lens' Tape (Maybe Integer)
 tTapeSizeInBytes = lens _tTapeSizeInBytes (\ s a -> s{_tTapeSizeInBytes = a});
 
@@ -677,6 +1013,14 @@
 tVTLDevice :: Lens' Tape (Maybe Text)
 tVTLDevice = lens _tVTLDevice (\ s a -> s{_tVTLDevice = a});
 
+-- | The size, in bytes, of data written to the virtual tape.
+tTapeUsedInBytes :: Lens' Tape (Maybe Integer)
+tTapeUsedInBytes = lens _tTapeUsedInBytes (\ s a -> s{_tTapeUsedInBytes = a});
+
+-- | The date the virtual tape was created.
+tTapeCreatedDate :: Lens' Tape (Maybe UTCTime)
+tTapeCreatedDate = lens _tTapeCreatedDate (\ s a -> s{_tTapeCreatedDate = a}) . mapping _Time;
+
 instance FromJSON Tape where
         parseJSON
           = withObject "Tape"
@@ -686,11 +1030,13 @@
                      (x .:? "TapeARN")
                      <*> (x .:? "Progress")
                      <*> (x .:? "TapeSizeInBytes")
-                     <*> (x .:? "VTLDevice"))
+                     <*> (x .:? "VTLDevice")
+                     <*> (x .:? "TapeUsedInBytes")
+                     <*> (x .:? "TapeCreatedDate"))
 
-instance Hashable Tape
+instance Hashable Tape where
 
-instance NFData Tape
+instance NFData Tape where
 
 -- | Represents a virtual tape that is archived in the virtual tape shelf (VTS).
 --
@@ -698,14 +1044,17 @@
 --
 -- /See:/ 'tapeArchive' smart constructor.
 data TapeArchive = TapeArchive'
-    { _taTapeBarcode     :: !(Maybe Text)
-    , _taTapeStatus      :: !(Maybe Text)
-    , _taTapeARN         :: !(Maybe Text)
-    , _taTapeSizeInBytes :: !(Maybe Integer)
-    , _taCompletionTime  :: !(Maybe POSIX)
-    , _taRetrievedTo     :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _taTapeBarcode     :: !(Maybe Text)
+  , _taTapeStatus      :: !(Maybe Text)
+  , _taTapeARN         :: !(Maybe Text)
+  , _taTapeSizeInBytes :: !(Maybe Integer)
+  , _taCompletionTime  :: !(Maybe POSIX)
+  , _taTapeUsedInBytes :: !(Maybe Integer)
+  , _taTapeCreatedDate :: !(Maybe POSIX)
+  , _taRetrievedTo     :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'TapeArchive' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -720,19 +1069,26 @@
 --
 -- * 'taCompletionTime' - The time that the archiving of the virtual tape was completed. The string format of the completion time is in the ISO8601 extended YYYY-MM-DD'T'HH:MM:SS'Z' format.
 --
--- * 'taRetrievedTo' - The Amazon Resource Name (ARN) of the gateway-VTL that the virtual tape is being retrieved to. The virtual tape is retrieved from the virtual tape shelf (VTS).
+-- * 'taTapeUsedInBytes' - The size, in bytes, of data written to the virtual tape.
+--
+-- * 'taTapeCreatedDate' - Undocumented member.
+--
+-- * 'taRetrievedTo' - The Amazon Resource Name (ARN) of the tape gateway that the virtual tape is being retrieved to. The virtual tape is retrieved from the virtual tape shelf (VTS).
 tapeArchive
     :: TapeArchive
 tapeArchive =
-    TapeArchive'
-    { _taTapeBarcode = Nothing
-    , _taTapeStatus = Nothing
-    , _taTapeARN = Nothing
-    , _taTapeSizeInBytes = Nothing
-    , _taCompletionTime = Nothing
-    , _taRetrievedTo = Nothing
-    }
+  TapeArchive'
+  { _taTapeBarcode = Nothing
+  , _taTapeStatus = Nothing
+  , _taTapeARN = Nothing
+  , _taTapeSizeInBytes = Nothing
+  , _taCompletionTime = Nothing
+  , _taTapeUsedInBytes = Nothing
+  , _taTapeCreatedDate = Nothing
+  , _taRetrievedTo = Nothing
+  }
 
+
 -- | The barcode that identifies the archived virtual tape.
 taTapeBarcode :: Lens' TapeArchive (Maybe Text)
 taTapeBarcode = lens _taTapeBarcode (\ s a -> s{_taTapeBarcode = a});
@@ -753,7 +1109,15 @@
 taCompletionTime :: Lens' TapeArchive (Maybe UTCTime)
 taCompletionTime = lens _taCompletionTime (\ s a -> s{_taCompletionTime = a}) . mapping _Time;
 
--- | The Amazon Resource Name (ARN) of the gateway-VTL that the virtual tape is being retrieved to. The virtual tape is retrieved from the virtual tape shelf (VTS).
+-- | The size, in bytes, of data written to the virtual tape.
+taTapeUsedInBytes :: Lens' TapeArchive (Maybe Integer)
+taTapeUsedInBytes = lens _taTapeUsedInBytes (\ s a -> s{_taTapeUsedInBytes = a});
+
+-- | Undocumented member.
+taTapeCreatedDate :: Lens' TapeArchive (Maybe UTCTime)
+taTapeCreatedDate = lens _taTapeCreatedDate (\ s a -> s{_taTapeCreatedDate = a}) . mapping _Time;
+
+-- | The Amazon Resource Name (ARN) of the tape gateway that the virtual tape is being retrieved to. The virtual tape is retrieved from the virtual tape shelf (VTS).
 taRetrievedTo :: Lens' TapeArchive (Maybe Text)
 taRetrievedTo = lens _taRetrievedTo (\ s a -> s{_taRetrievedTo = a});
 
@@ -766,11 +1130,13 @@
                      (x .:? "TapeARN")
                      <*> (x .:? "TapeSizeInBytes")
                      <*> (x .:? "CompletionTime")
+                     <*> (x .:? "TapeUsedInBytes")
+                     <*> (x .:? "TapeCreatedDate")
                      <*> (x .:? "RetrievedTo"))
 
-instance Hashable TapeArchive
+instance Hashable TapeArchive where
 
-instance NFData TapeArchive
+instance NFData TapeArchive where
 
 -- | Describes a virtual tape.
 --
@@ -778,13 +1144,14 @@
 --
 -- /See:/ 'tapeInfo' smart constructor.
 data TapeInfo = TapeInfo'
-    { _tiTapeBarcode     :: !(Maybe Text)
-    , _tiTapeStatus      :: !(Maybe Text)
-    , _tiTapeARN         :: !(Maybe Text)
-    , _tiGatewayARN      :: !(Maybe Text)
-    , _tiTapeSizeInBytes :: !(Maybe Integer)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _tiTapeBarcode     :: !(Maybe Text)
+  , _tiTapeStatus      :: !(Maybe Text)
+  , _tiTapeARN         :: !(Maybe Text)
+  , _tiGatewayARN      :: !(Maybe Text)
+  , _tiTapeSizeInBytes :: !(Maybe Integer)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'TapeInfo' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -801,14 +1168,15 @@
 tapeInfo
     :: TapeInfo
 tapeInfo =
-    TapeInfo'
-    { _tiTapeBarcode = Nothing
-    , _tiTapeStatus = Nothing
-    , _tiTapeARN = Nothing
-    , _tiGatewayARN = Nothing
-    , _tiTapeSizeInBytes = Nothing
-    }
+  TapeInfo'
+  { _tiTapeBarcode = Nothing
+  , _tiTapeStatus = Nothing
+  , _tiTapeARN = Nothing
+  , _tiGatewayARN = Nothing
+  , _tiTapeSizeInBytes = Nothing
+  }
 
+
 -- | The barcode that identifies a specific virtual tape.
 tiTapeBarcode :: Lens' TapeInfo (Maybe Text)
 tiTapeBarcode = lens _tiTapeBarcode (\ s a -> s{_tiTapeBarcode = a});
@@ -839,9 +1207,9 @@
                      <*> (x .:? "GatewayARN")
                      <*> (x .:? "TapeSizeInBytes"))
 
-instance Hashable TapeInfo
+instance Hashable TapeInfo where
 
-instance NFData TapeInfo
+instance NFData TapeInfo where
 
 -- | Describes a recovery point.
 --
@@ -849,12 +1217,13 @@
 --
 -- /See:/ 'tapeRecoveryPointInfo' smart constructor.
 data TapeRecoveryPointInfo = TapeRecoveryPointInfo'
-    { _trpiTapeStatus            :: !(Maybe Text)
-    , _trpiTapeRecoveryPointTime :: !(Maybe POSIX)
-    , _trpiTapeARN               :: !(Maybe Text)
-    , _trpiTapeSizeInBytes       :: !(Maybe Integer)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _trpiTapeStatus            :: !(Maybe Text)
+  , _trpiTapeRecoveryPointTime :: !(Maybe POSIX)
+  , _trpiTapeARN               :: !(Maybe Text)
+  , _trpiTapeSizeInBytes       :: !(Maybe Integer)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'TapeRecoveryPointInfo' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -869,13 +1238,14 @@
 tapeRecoveryPointInfo
     :: TapeRecoveryPointInfo
 tapeRecoveryPointInfo =
-    TapeRecoveryPointInfo'
-    { _trpiTapeStatus = Nothing
-    , _trpiTapeRecoveryPointTime = Nothing
-    , _trpiTapeARN = Nothing
-    , _trpiTapeSizeInBytes = Nothing
-    }
+  TapeRecoveryPointInfo'
+  { _trpiTapeStatus = Nothing
+  , _trpiTapeRecoveryPointTime = Nothing
+  , _trpiTapeARN = Nothing
+  , _trpiTapeSizeInBytes = Nothing
+  }
 
+
 -- | Undocumented member.
 trpiTapeStatus :: Lens' TapeRecoveryPointInfo (Maybe Text)
 trpiTapeStatus = lens _trpiTapeStatus (\ s a -> s{_trpiTapeStatus = a});
@@ -902,23 +1272,24 @@
                      <*> (x .:? "TapeARN")
                      <*> (x .:? "TapeSizeInBytes"))
 
-instance Hashable TapeRecoveryPointInfo
+instance Hashable TapeRecoveryPointInfo where
 
-instance NFData TapeRecoveryPointInfo
+instance NFData TapeRecoveryPointInfo where
 
--- | Represents a device object associated with a gateway-VTL.
+-- | Represents a device object associated with a tape gateway.
 --
 --
 --
 -- /See:/ 'vTLDevice' smart constructor.
 data VTLDevice = VTLDevice'
-    { _vtldDeviceiSCSIAttributes      :: !(Maybe DeviceiSCSIAttributes)
-    , _vtldVTLDeviceVendor            :: !(Maybe Text)
-    , _vtldVTLDeviceARN               :: !(Maybe Text)
-    , _vtldVTLDeviceType              :: !(Maybe Text)
-    , _vtldVTLDeviceProductIdentifier :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _vtldDeviceiSCSIAttributes      :: !(Maybe DeviceiSCSIAttributes)
+  , _vtldVTLDeviceVendor            :: !(Maybe Text)
+  , _vtldVTLDeviceARN               :: !(Maybe Text)
+  , _vtldVTLDeviceType              :: !(Maybe Text)
+  , _vtldVTLDeviceProductIdentifier :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'VTLDevice' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -935,14 +1306,15 @@
 vTLDevice
     :: VTLDevice
 vTLDevice =
-    VTLDevice'
-    { _vtldDeviceiSCSIAttributes = Nothing
-    , _vtldVTLDeviceVendor = Nothing
-    , _vtldVTLDeviceARN = Nothing
-    , _vtldVTLDeviceType = Nothing
-    , _vtldVTLDeviceProductIdentifier = Nothing
-    }
+  VTLDevice'
+  { _vtldDeviceiSCSIAttributes = Nothing
+  , _vtldVTLDeviceVendor = Nothing
+  , _vtldVTLDeviceARN = Nothing
+  , _vtldVTLDeviceType = Nothing
+  , _vtldVTLDeviceProductIdentifier = Nothing
+  }
 
+
 -- | A list of iSCSI information about a VTL device.
 vtldDeviceiSCSIAttributes :: Lens' VTLDevice (Maybe DeviceiSCSIAttributes)
 vtldDeviceiSCSIAttributes = lens _vtldDeviceiSCSIAttributes (\ s a -> s{_vtldDeviceiSCSIAttributes = a});
@@ -974,9 +1346,9 @@
                      <*> (x .:? "VTLDeviceType")
                      <*> (x .:? "VTLDeviceProductIdentifier"))
 
-instance Hashable VTLDevice
+instance Hashable VTLDevice where
 
-instance NFData VTLDevice
+instance NFData VTLDevice where
 
 -- | Describes a storage volume object.
 --
@@ -984,23 +1356,24 @@
 --
 -- /See:/ 'volumeInfo' smart constructor.
 data VolumeInfo = VolumeInfo'
-    { _viGatewayARN        :: !(Maybe Text)
-    , _viVolumeARN         :: !(Maybe Text)
-    , _viVolumeSizeInBytes :: !(Maybe Integer)
-    , _viVolumeId          :: !(Maybe Text)
-    , _viGatewayId         :: !(Maybe Text)
-    , _viVolumeType        :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _viGatewayARN        :: !(Maybe Text)
+  , _viVolumeARN         :: !(Maybe Text)
+  , _viVolumeSizeInBytes :: !(Maybe Integer)
+  , _viVolumeId          :: !(Maybe Text)
+  , _viGatewayId         :: !(Maybe Text)
+  , _viVolumeType        :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'VolumeInfo' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
 -- * 'viGatewayARN' - Undocumented member.
 --
--- * 'viVolumeARN' - The Amazon Resource Name (ARN) for the storage volume. For example, the following is a valid ARN: @arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB@  Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens (-).
+-- * 'viVolumeARN' - The Amazon Resource Name (ARN) for the storage volume. For example, the following is a valid ARN: @arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB@  Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens (-).
 --
--- * 'viVolumeSizeInBytes' - The size, in bytes, of the volume. Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens (-).
+-- * 'viVolumeSizeInBytes' - The size of the volume in bytes. Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens (-).
 --
 -- * 'viVolumeId' - The unique identifier assigned to the volume. This ID becomes part of the volume Amazon Resource Name (ARN), which you use as input for other operations. Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens (-).
 --
@@ -1010,24 +1383,25 @@
 volumeInfo
     :: VolumeInfo
 volumeInfo =
-    VolumeInfo'
-    { _viGatewayARN = Nothing
-    , _viVolumeARN = Nothing
-    , _viVolumeSizeInBytes = Nothing
-    , _viVolumeId = Nothing
-    , _viGatewayId = Nothing
-    , _viVolumeType = Nothing
-    }
+  VolumeInfo'
+  { _viGatewayARN = Nothing
+  , _viVolumeARN = Nothing
+  , _viVolumeSizeInBytes = Nothing
+  , _viVolumeId = Nothing
+  , _viGatewayId = Nothing
+  , _viVolumeType = Nothing
+  }
 
+
 -- | Undocumented member.
 viGatewayARN :: Lens' VolumeInfo (Maybe Text)
 viGatewayARN = lens _viGatewayARN (\ s a -> s{_viGatewayARN = a});
 
--- | The Amazon Resource Name (ARN) for the storage volume. For example, the following is a valid ARN: @arn:aws:storagegateway:us-east-1:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB@  Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens (-).
+-- | The Amazon Resource Name (ARN) for the storage volume. For example, the following is a valid ARN: @arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB@  Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens (-).
 viVolumeARN :: Lens' VolumeInfo (Maybe Text)
 viVolumeARN = lens _viVolumeARN (\ s a -> s{_viVolumeARN = a});
 
--- | The size, in bytes, of the volume. Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens (-).
+-- | The size of the volume in bytes. Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens (-).
 viVolumeSizeInBytes :: Lens' VolumeInfo (Maybe Integer)
 viVolumeSizeInBytes = lens _viVolumeSizeInBytes (\ s a -> s{_viVolumeSizeInBytes = a});
 
@@ -1054,18 +1428,19 @@
                      <*> (x .:? "GatewayId")
                      <*> (x .:? "VolumeType"))
 
-instance Hashable VolumeInfo
+instance Hashable VolumeInfo where
 
-instance NFData VolumeInfo
+instance NFData VolumeInfo where
 
 -- | /See:/ 'volumeRecoveryPointInfo' smart constructor.
 data VolumeRecoveryPointInfo = VolumeRecoveryPointInfo'
-    { _vrpiVolumeRecoveryPointTime :: !(Maybe Text)
-    , _vrpiVolumeARN               :: !(Maybe Text)
-    , _vrpiVolumeSizeInBytes       :: !(Maybe Integer)
-    , _vrpiVolumeUsageInBytes      :: !(Maybe Integer)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _vrpiVolumeRecoveryPointTime :: !(Maybe Text)
+  , _vrpiVolumeARN               :: !(Maybe Text)
+  , _vrpiVolumeSizeInBytes       :: !(Maybe Integer)
+  , _vrpiVolumeUsageInBytes      :: !(Maybe Integer)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'VolumeRecoveryPointInfo' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -1080,13 +1455,14 @@
 volumeRecoveryPointInfo
     :: VolumeRecoveryPointInfo
 volumeRecoveryPointInfo =
-    VolumeRecoveryPointInfo'
-    { _vrpiVolumeRecoveryPointTime = Nothing
-    , _vrpiVolumeARN = Nothing
-    , _vrpiVolumeSizeInBytes = Nothing
-    , _vrpiVolumeUsageInBytes = Nothing
-    }
+  VolumeRecoveryPointInfo'
+  { _vrpiVolumeRecoveryPointTime = Nothing
+  , _vrpiVolumeARN = Nothing
+  , _vrpiVolumeSizeInBytes = Nothing
+  , _vrpiVolumeUsageInBytes = Nothing
+  }
 
+
 -- | Undocumented member.
 vrpiVolumeRecoveryPointTime :: Lens' VolumeRecoveryPointInfo (Maybe Text)
 vrpiVolumeRecoveryPointTime = lens _vrpiVolumeRecoveryPointTime (\ s a -> s{_vrpiVolumeRecoveryPointTime = a});
@@ -1113,9 +1489,9 @@
                      <*> (x .:? "VolumeSizeInBytes")
                      <*> (x .:? "VolumeUsageInBytes"))
 
-instance Hashable VolumeRecoveryPointInfo
+instance Hashable VolumeRecoveryPointInfo where
 
-instance NFData VolumeRecoveryPointInfo
+instance NFData VolumeRecoveryPointInfo where
 
 -- | Lists iSCSI information about a volume.
 --
@@ -1123,13 +1499,14 @@
 --
 -- /See:/ 'volumeiSCSIAttributes' smart constructor.
 data VolumeiSCSIAttributes = VolumeiSCSIAttributes'
-    { _vscsiaLunNumber            :: !(Maybe Nat)
-    , _vscsiaTargetARN            :: !(Maybe Text)
-    , _vscsiaChapEnabled          :: !(Maybe Bool)
-    , _vscsiaNetworkInterfaceId   :: !(Maybe Text)
-    , _vscsiaNetworkInterfacePort :: !(Maybe Int)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _vscsiaLunNumber            :: !(Maybe Nat)
+  , _vscsiaTargetARN            :: !(Maybe Text)
+  , _vscsiaChapEnabled          :: !(Maybe Bool)
+  , _vscsiaNetworkInterfaceId   :: !(Maybe Text)
+  , _vscsiaNetworkInterfacePort :: !(Maybe Int)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'VolumeiSCSIAttributes' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -1146,14 +1523,15 @@
 volumeiSCSIAttributes
     :: VolumeiSCSIAttributes
 volumeiSCSIAttributes =
-    VolumeiSCSIAttributes'
-    { _vscsiaLunNumber = Nothing
-    , _vscsiaTargetARN = Nothing
-    , _vscsiaChapEnabled = Nothing
-    , _vscsiaNetworkInterfaceId = Nothing
-    , _vscsiaNetworkInterfacePort = Nothing
-    }
+  VolumeiSCSIAttributes'
+  { _vscsiaLunNumber = Nothing
+  , _vscsiaTargetARN = Nothing
+  , _vscsiaChapEnabled = Nothing
+  , _vscsiaNetworkInterfaceId = Nothing
+  , _vscsiaNetworkInterfacePort = Nothing
+  }
 
+
 -- | The logical disk number.
 vscsiaLunNumber :: Lens' VolumeiSCSIAttributes (Maybe Natural)
 vscsiaLunNumber = lens _vscsiaLunNumber (\ s a -> s{_vscsiaLunNumber = a}) . mapping _Nat;
@@ -1184,6 +1562,6 @@
                      <*> (x .:? "NetworkInterfaceId")
                      <*> (x .:? "NetworkInterfacePort"))
 
-instance Hashable VolumeiSCSIAttributes
+instance Hashable VolumeiSCSIAttributes where
 
-instance NFData VolumeiSCSIAttributes
+instance NFData VolumeiSCSIAttributes where
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,12 +9,12 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.Types.Sum
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 module Network.AWS.StorageGateway.Types.Sum where
 
-import           Network.AWS.Prelude
+import Network.AWS.Prelude
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,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.UpdateBandwidthRateLimit
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -43,12 +43,12 @@
     , ubrlrsResponseStatus
     ) 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
+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
 
 -- | A JSON object containing one or more of the following fields:
 --
@@ -62,11 +62,12 @@
 --
 -- /See:/ 'updateBandwidthRateLimit' smart constructor.
 data UpdateBandwidthRateLimit = UpdateBandwidthRateLimit'
-    { _ubrlAverageUploadRateLimitInBitsPerSec   :: !(Maybe Nat)
-    , _ubrlAverageDownloadRateLimitInBitsPerSec :: !(Maybe Nat)
-    , _ubrlGatewayARN                           :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ubrlAverageUploadRateLimitInBitsPerSec   :: !(Maybe Nat)
+  , _ubrlAverageDownloadRateLimitInBitsPerSec :: !(Maybe Nat)
+  , _ubrlGatewayARN                           :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateBandwidthRateLimit' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -80,12 +81,13 @@
     :: Text -- ^ 'ubrlGatewayARN'
     -> UpdateBandwidthRateLimit
 updateBandwidthRateLimit pGatewayARN_ =
-    UpdateBandwidthRateLimit'
-    { _ubrlAverageUploadRateLimitInBitsPerSec = Nothing
-    , _ubrlAverageDownloadRateLimitInBitsPerSec = Nothing
-    , _ubrlGatewayARN = pGatewayARN_
-    }
+  UpdateBandwidthRateLimit'
+  { _ubrlAverageUploadRateLimitInBitsPerSec = Nothing
+  , _ubrlAverageDownloadRateLimitInBitsPerSec = Nothing
+  , _ubrlGatewayARN = pGatewayARN_
+  }
 
+
 -- | The average upload bandwidth rate limit in bits per second.
 ubrlAverageUploadRateLimitInBitsPerSec :: Lens' UpdateBandwidthRateLimit (Maybe Natural)
 ubrlAverageUploadRateLimitInBitsPerSec = lens _ubrlAverageUploadRateLimitInBitsPerSec (\ s a -> s{_ubrlAverageUploadRateLimitInBitsPerSec = a}) . mapping _Nat;
@@ -108,9 +110,9 @@
                  UpdateBandwidthRateLimitResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
 
-instance Hashable UpdateBandwidthRateLimit
+instance Hashable UpdateBandwidthRateLimit where
 
-instance NFData UpdateBandwidthRateLimit
+instance NFData UpdateBandwidthRateLimit where
 
 instance ToHeaders UpdateBandwidthRateLimit where
         toHeaders
@@ -144,10 +146,11 @@
 --
 -- /See:/ 'updateBandwidthRateLimitResponse' smart constructor.
 data UpdateBandwidthRateLimitResponse = UpdateBandwidthRateLimitResponse'
-    { _ubrlrsGatewayARN     :: !(Maybe Text)
-    , _ubrlrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ubrlrsGatewayARN     :: !(Maybe Text)
+  , _ubrlrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateBandwidthRateLimitResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -159,11 +162,10 @@
     :: Int -- ^ 'ubrlrsResponseStatus'
     -> UpdateBandwidthRateLimitResponse
 updateBandwidthRateLimitResponse pResponseStatus_ =
-    UpdateBandwidthRateLimitResponse'
-    { _ubrlrsGatewayARN = Nothing
-    , _ubrlrsResponseStatus = pResponseStatus_
-    }
+  UpdateBandwidthRateLimitResponse'
+  {_ubrlrsGatewayARN = Nothing, _ubrlrsResponseStatus = pResponseStatus_}
 
+
 -- | Undocumented member.
 ubrlrsGatewayARN :: Lens' UpdateBandwidthRateLimitResponse (Maybe Text)
 ubrlrsGatewayARN = lens _ubrlrsGatewayARN (\ s a -> s{_ubrlrsGatewayARN = a});
@@ -173,3 +175,4 @@
 ubrlrsResponseStatus = lens _ubrlrsResponseStatus (\ s a -> s{_ubrlrsResponseStatus = a});
 
 instance NFData UpdateBandwidthRateLimitResponse
+         where
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,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.UpdateChapCredentials
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -43,12 +43,12 @@
     , uccrsResponseStatus
     ) 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
+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
 
 -- | A JSON object containing one or more of the following fields:
 --
@@ -66,12 +66,13 @@
 --
 -- /See:/ 'updateChapCredentials' smart constructor.
 data UpdateChapCredentials = UpdateChapCredentials'
-    { _uccSecretToAuthenticateTarget    :: !(Maybe Text)
-    , _uccTargetARN                     :: !Text
-    , _uccSecretToAuthenticateInitiator :: !Text
-    , _uccInitiatorName                 :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _uccSecretToAuthenticateTarget    :: !(Maybe Text)
+  , _uccTargetARN                     :: !Text
+  , _uccSecretToAuthenticateInitiator :: !Text
+  , _uccInitiatorName                 :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateChapCredentials' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -89,13 +90,14 @@
     -> Text -- ^ 'uccInitiatorName'
     -> UpdateChapCredentials
 updateChapCredentials pTargetARN_ pSecretToAuthenticateInitiator_ pInitiatorName_ =
-    UpdateChapCredentials'
-    { _uccSecretToAuthenticateTarget = Nothing
-    , _uccTargetARN = pTargetARN_
-    , _uccSecretToAuthenticateInitiator = pSecretToAuthenticateInitiator_
-    , _uccInitiatorName = pInitiatorName_
-    }
+  UpdateChapCredentials'
+  { _uccSecretToAuthenticateTarget = Nothing
+  , _uccTargetARN = pTargetARN_
+  , _uccSecretToAuthenticateInitiator = pSecretToAuthenticateInitiator_
+  , _uccInitiatorName = pInitiatorName_
+  }
 
+
 -- | The secret key that the target must provide to participate in mutual CHAP with the initiator (e.g. Windows client). Byte constraints: Minimum bytes of 12. Maximum bytes of 16.
 uccSecretToAuthenticateTarget :: Lens' UpdateChapCredentials (Maybe Text)
 uccSecretToAuthenticateTarget = lens _uccSecretToAuthenticateTarget (\ s a -> s{_uccSecretToAuthenticateTarget = a});
@@ -123,9 +125,9 @@
                    (x .?> "TargetARN") <*> (x .?> "InitiatorName") <*>
                      (pure (fromEnum s)))
 
-instance Hashable UpdateChapCredentials
+instance Hashable UpdateChapCredentials where
 
-instance NFData UpdateChapCredentials
+instance NFData UpdateChapCredentials where
 
 instance ToHeaders UpdateChapCredentials where
         toHeaders
@@ -161,11 +163,12 @@
 --
 -- /See:/ 'updateChapCredentialsResponse' smart constructor.
 data UpdateChapCredentialsResponse = UpdateChapCredentialsResponse'
-    { _uccrsTargetARN      :: !(Maybe Text)
-    , _uccrsInitiatorName  :: !(Maybe Text)
-    , _uccrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _uccrsTargetARN      :: !(Maybe Text)
+  , _uccrsInitiatorName  :: !(Maybe Text)
+  , _uccrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateChapCredentialsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -179,12 +182,13 @@
     :: Int -- ^ 'uccrsResponseStatus'
     -> UpdateChapCredentialsResponse
 updateChapCredentialsResponse pResponseStatus_ =
-    UpdateChapCredentialsResponse'
-    { _uccrsTargetARN = Nothing
-    , _uccrsInitiatorName = Nothing
-    , _uccrsResponseStatus = pResponseStatus_
-    }
+  UpdateChapCredentialsResponse'
+  { _uccrsTargetARN = Nothing
+  , _uccrsInitiatorName = Nothing
+  , _uccrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | The Amazon Resource Name (ARN) of the target. This is the same target specified in the request.
 uccrsTargetARN :: Lens' UpdateChapCredentialsResponse (Maybe Text)
 uccrsTargetARN = lens _uccrsTargetARN (\ s a -> s{_uccrsTargetARN = a});
@@ -197,4 +201,4 @@
 uccrsResponseStatus :: Lens' UpdateChapCredentialsResponse Int
 uccrsResponseStatus = lens _uccrsResponseStatus (\ s a -> s{_uccrsResponseStatus = a});
 
-instance NFData UpdateChapCredentialsResponse
+instance NFData UpdateChapCredentialsResponse where
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,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.UpdateGatewayInformation
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -40,20 +40,21 @@
     , ugirsResponseStatus
     ) 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
+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
 
 -- | /See:/ 'updateGatewayInformation' smart constructor.
 data UpdateGatewayInformation = UpdateGatewayInformation'
-    { _ugiGatewayName     :: !(Maybe Text)
-    , _ugiGatewayTimezone :: !(Maybe Text)
-    , _ugiGatewayARN      :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ugiGatewayName     :: !(Maybe Text)
+  , _ugiGatewayTimezone :: !(Maybe Text)
+  , _ugiGatewayARN      :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateGatewayInformation' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -67,12 +68,13 @@
     :: Text -- ^ 'ugiGatewayARN'
     -> UpdateGatewayInformation
 updateGatewayInformation pGatewayARN_ =
-    UpdateGatewayInformation'
-    { _ugiGatewayName = Nothing
-    , _ugiGatewayTimezone = Nothing
-    , _ugiGatewayARN = pGatewayARN_
-    }
+  UpdateGatewayInformation'
+  { _ugiGatewayName = Nothing
+  , _ugiGatewayTimezone = Nothing
+  , _ugiGatewayARN = pGatewayARN_
+  }
 
+
 -- | Undocumented member.
 ugiGatewayName :: Lens' UpdateGatewayInformation (Maybe Text)
 ugiGatewayName = lens _ugiGatewayName (\ s a -> s{_ugiGatewayName = a});
@@ -96,9 +98,9 @@
                    (x .?> "GatewayARN") <*> (x .?> "GatewayName") <*>
                      (pure (fromEnum s)))
 
-instance Hashable UpdateGatewayInformation
+instance Hashable UpdateGatewayInformation where
 
-instance NFData UpdateGatewayInformation
+instance NFData UpdateGatewayInformation where
 
 instance ToHeaders UpdateGatewayInformation where
         toHeaders
@@ -130,11 +132,12 @@
 --
 -- /See:/ 'updateGatewayInformationResponse' smart constructor.
 data UpdateGatewayInformationResponse = UpdateGatewayInformationResponse'
-    { _ugirsGatewayARN     :: !(Maybe Text)
-    , _ugirsGatewayName    :: !(Maybe Text)
-    , _ugirsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ugirsGatewayARN     :: !(Maybe Text)
+  , _ugirsGatewayName    :: !(Maybe Text)
+  , _ugirsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateGatewayInformationResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -148,12 +151,13 @@
     :: Int -- ^ 'ugirsResponseStatus'
     -> UpdateGatewayInformationResponse
 updateGatewayInformationResponse pResponseStatus_ =
-    UpdateGatewayInformationResponse'
-    { _ugirsGatewayARN = Nothing
-    , _ugirsGatewayName = Nothing
-    , _ugirsResponseStatus = pResponseStatus_
-    }
+  UpdateGatewayInformationResponse'
+  { _ugirsGatewayARN = Nothing
+  , _ugirsGatewayName = Nothing
+  , _ugirsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Undocumented member.
 ugirsGatewayARN :: Lens' UpdateGatewayInformationResponse (Maybe Text)
 ugirsGatewayARN = lens _ugirsGatewayARN (\ s a -> s{_ugirsGatewayARN = a});
@@ -167,3 +171,4 @@
 ugirsResponseStatus = lens _ugirsResponseStatus (\ s a -> s{_ugirsResponseStatus = a});
 
 instance NFData UpdateGatewayInformationResponse
+         where
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,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.UpdateGatewaySoftwareNow
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -39,12 +39,12 @@
     , ugsnrsResponseStatus
     ) 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
+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
 
 -- | A JSON object containing the of the gateway to update.
 --
@@ -52,9 +52,10 @@
 --
 -- /See:/ 'updateGatewaySoftwareNow' smart constructor.
 newtype UpdateGatewaySoftwareNow = UpdateGatewaySoftwareNow'
-    { _ugsnGatewayARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ugsnGatewayARN :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateGatewaySoftwareNow' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -64,10 +65,9 @@
     :: Text -- ^ 'ugsnGatewayARN'
     -> UpdateGatewaySoftwareNow
 updateGatewaySoftwareNow pGatewayARN_ =
-    UpdateGatewaySoftwareNow'
-    { _ugsnGatewayARN = pGatewayARN_
-    }
+  UpdateGatewaySoftwareNow' {_ugsnGatewayARN = pGatewayARN_}
 
+
 -- | Undocumented member.
 ugsnGatewayARN :: Lens' UpdateGatewaySoftwareNow Text
 ugsnGatewayARN = lens _ugsnGatewayARN (\ s a -> s{_ugsnGatewayARN = a});
@@ -82,9 +82,9 @@
                  UpdateGatewaySoftwareNowResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
 
-instance Hashable UpdateGatewaySoftwareNow
+instance Hashable UpdateGatewaySoftwareNow where
 
-instance NFData UpdateGatewaySoftwareNow
+instance NFData UpdateGatewaySoftwareNow where
 
 instance ToHeaders UpdateGatewaySoftwareNow where
         toHeaders
@@ -113,10 +113,11 @@
 --
 -- /See:/ 'updateGatewaySoftwareNowResponse' smart constructor.
 data UpdateGatewaySoftwareNowResponse = UpdateGatewaySoftwareNowResponse'
-    { _ugsnrsGatewayARN     :: !(Maybe Text)
-    , _ugsnrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ugsnrsGatewayARN     :: !(Maybe Text)
+  , _ugsnrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateGatewaySoftwareNowResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -128,11 +129,10 @@
     :: Int -- ^ 'ugsnrsResponseStatus'
     -> UpdateGatewaySoftwareNowResponse
 updateGatewaySoftwareNowResponse pResponseStatus_ =
-    UpdateGatewaySoftwareNowResponse'
-    { _ugsnrsGatewayARN = Nothing
-    , _ugsnrsResponseStatus = pResponseStatus_
-    }
+  UpdateGatewaySoftwareNowResponse'
+  {_ugsnrsGatewayARN = Nothing, _ugsnrsResponseStatus = pResponseStatus_}
 
+
 -- | Undocumented member.
 ugsnrsGatewayARN :: Lens' UpdateGatewaySoftwareNowResponse (Maybe Text)
 ugsnrsGatewayARN = lens _ugsnrsGatewayARN (\ s a -> s{_ugsnrsGatewayARN = a});
@@ -142,3 +142,4 @@
 ugsnrsResponseStatus = lens _ugsnrsResponseStatus (\ s a -> s{_ugsnrsResponseStatus = a});
 
 instance NFData UpdateGatewaySoftwareNowResponse
+         where
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,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.UpdateMaintenanceStartTime
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -40,12 +40,12 @@
     , umstrsResponseStatus
     ) 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
+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
 
 -- | A JSON object containing the following fields:
 --
@@ -61,12 +61,13 @@
 --
 -- /See:/ 'updateMaintenanceStartTime' smart constructor.
 data UpdateMaintenanceStartTime = UpdateMaintenanceStartTime'
-    { _umstGatewayARN   :: !Text
-    , _umstHourOfDay    :: !Nat
-    , _umstMinuteOfHour :: !Nat
-    , _umstDayOfWeek    :: !Nat
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _umstGatewayARN   :: !Text
+  , _umstHourOfDay    :: !Nat
+  , _umstMinuteOfHour :: !Nat
+  , _umstDayOfWeek    :: !Nat
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateMaintenanceStartTime' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -77,7 +78,7 @@
 --
 -- * 'umstMinuteOfHour' - The minute component of the maintenance start time represented as /mm/ , where /mm/ is the minute (00 to 59). The minute of the hour is in the time zone of the gateway.
 --
--- * 'umstDayOfWeek' - The maintenance start time day of the week.
+-- * 'umstDayOfWeek' - The maintenance start time day of the week represented as an ordinal number from 0 to 6, where 0 represents Sunday and 6 Saturday.
 updateMaintenanceStartTime
     :: Text -- ^ 'umstGatewayARN'
     -> Natural -- ^ 'umstHourOfDay'
@@ -85,13 +86,14 @@
     -> Natural -- ^ 'umstDayOfWeek'
     -> UpdateMaintenanceStartTime
 updateMaintenanceStartTime pGatewayARN_ pHourOfDay_ pMinuteOfHour_ pDayOfWeek_ =
-    UpdateMaintenanceStartTime'
-    { _umstGatewayARN = pGatewayARN_
-    , _umstHourOfDay = _Nat # pHourOfDay_
-    , _umstMinuteOfHour = _Nat # pMinuteOfHour_
-    , _umstDayOfWeek = _Nat # pDayOfWeek_
-    }
+  UpdateMaintenanceStartTime'
+  { _umstGatewayARN = pGatewayARN_
+  , _umstHourOfDay = _Nat # pHourOfDay_
+  , _umstMinuteOfHour = _Nat # pMinuteOfHour_
+  , _umstDayOfWeek = _Nat # pDayOfWeek_
+  }
 
+
 -- | Undocumented member.
 umstGatewayARN :: Lens' UpdateMaintenanceStartTime Text
 umstGatewayARN = lens _umstGatewayARN (\ s a -> s{_umstGatewayARN = a});
@@ -104,7 +106,7 @@
 umstMinuteOfHour :: Lens' UpdateMaintenanceStartTime Natural
 umstMinuteOfHour = lens _umstMinuteOfHour (\ s a -> s{_umstMinuteOfHour = a}) . _Nat;
 
--- | The maintenance start time day of the week.
+-- | The maintenance start time day of the week represented as an ordinal number from 0 to 6, where 0 represents Sunday and 6 Saturday.
 umstDayOfWeek :: Lens' UpdateMaintenanceStartTime Natural
 umstDayOfWeek = lens _umstDayOfWeek (\ s a -> s{_umstDayOfWeek = a}) . _Nat;
 
@@ -118,9 +120,9 @@
                  UpdateMaintenanceStartTimeResponse' <$>
                    (x .?> "GatewayARN") <*> (pure (fromEnum s)))
 
-instance Hashable UpdateMaintenanceStartTime
+instance Hashable UpdateMaintenanceStartTime where
 
-instance NFData UpdateMaintenanceStartTime
+instance NFData UpdateMaintenanceStartTime where
 
 instance ToHeaders UpdateMaintenanceStartTime where
         toHeaders
@@ -153,10 +155,11 @@
 --
 -- /See:/ 'updateMaintenanceStartTimeResponse' smart constructor.
 data UpdateMaintenanceStartTimeResponse = UpdateMaintenanceStartTimeResponse'
-    { _umstrsGatewayARN     :: !(Maybe Text)
-    , _umstrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _umstrsGatewayARN     :: !(Maybe Text)
+  , _umstrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateMaintenanceStartTimeResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -168,11 +171,10 @@
     :: Int -- ^ 'umstrsResponseStatus'
     -> UpdateMaintenanceStartTimeResponse
 updateMaintenanceStartTimeResponse pResponseStatus_ =
-    UpdateMaintenanceStartTimeResponse'
-    { _umstrsGatewayARN = Nothing
-    , _umstrsResponseStatus = pResponseStatus_
-    }
+  UpdateMaintenanceStartTimeResponse'
+  {_umstrsGatewayARN = Nothing, _umstrsResponseStatus = pResponseStatus_}
 
+
 -- | Undocumented member.
 umstrsGatewayARN :: Lens' UpdateMaintenanceStartTimeResponse (Maybe Text)
 umstrsGatewayARN = lens _umstrsGatewayARN (\ s a -> s{_umstrsGatewayARN = a});
@@ -182,3 +184,4 @@
 umstrsResponseStatus = lens _umstrsResponseStatus (\ s a -> s{_umstrsResponseStatus = a});
 
 instance NFData UpdateMaintenanceStartTimeResponse
+         where
diff --git a/gen/Network/AWS/StorageGateway/UpdateNFSFileShare.hs b/gen/Network/AWS/StorageGateway/UpdateNFSFileShare.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/StorageGateway/UpdateNFSFileShare.hs
@@ -0,0 +1,231 @@
+{-# 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.UpdateNFSFileShare
+-- Copyright   : (c) 2013-2017 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates a file share. This operation is only supported in the file gateway architecture.
+--
+--
+-- Updates the following file share setting:
+--
+--     * Default storage class for your S3 bucket
+--
+--     * Metadata defaults for your S3 bucket
+--
+--     * Allowed NFS clients for your file share
+--
+--     * Squash settings
+--
+--     * Write status of your file share
+--
+--
+--
+module Network.AWS.StorageGateway.UpdateNFSFileShare
+    (
+    -- * Creating a Request
+      updateNFSFileShare
+    , UpdateNFSFileShare
+    -- * Request Lenses
+    , unfsfsKMSKey
+    , unfsfsKMSEncrypted
+    , unfsfsDefaultStorageClass
+    , unfsfsSquash
+    , unfsfsNFSFileShareDefaults
+    , unfsfsClientList
+    , unfsfsReadOnly
+    , unfsfsFileShareARN
+
+    -- * Destructuring the Response
+    , updateNFSFileShareResponse
+    , UpdateNFSFileShareResponse
+    -- * Response Lenses
+    , unfsfsrsFileShareARN
+    , unfsfsrsResponseStatus
+    ) 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
+
+-- | UpdateNFSFileShareInput
+--
+--
+--
+-- /See:/ 'updateNFSFileShare' smart constructor.
+data UpdateNFSFileShare = UpdateNFSFileShare'
+  { _unfsfsKMSKey               :: !(Maybe Text)
+  , _unfsfsKMSEncrypted         :: !(Maybe Bool)
+  , _unfsfsDefaultStorageClass  :: !(Maybe Text)
+  , _unfsfsSquash               :: !(Maybe Text)
+  , _unfsfsNFSFileShareDefaults :: !(Maybe NFSFileShareDefaults)
+  , _unfsfsClientList           :: !(Maybe (List1 Text))
+  , _unfsfsReadOnly             :: !(Maybe Bool)
+  , _unfsfsFileShareARN         :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'UpdateNFSFileShare' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'unfsfsKMSKey' - The KMS key used for Amazon S3 server side encryption. This value can only be set when KmsEncrypted is true. Optional.
+--
+-- * 'unfsfsKMSEncrypted' - True to use Amazon S3 server side encryption with your own AWS KMS key, or false to use a key managed by Amazon S3. Optional.
+--
+-- * 'unfsfsDefaultStorageClass' - The default storage class for objects put into an Amazon S3 bucket by a file gateway. Possible values are S3_STANDARD or S3_STANDARD_IA. If this field is not populated, the default value S3_STANDARD is used. Optional.
+--
+-- * 'unfsfsSquash' - The user mapped to anonymous user. Valid options are the following:     * "RootSquash" - Only root is mapped to anonymous user.     * "NoSquash" - No one is mapped to anonymous user     * "AllSquash" - Everyone is mapped to anonymous user.
+--
+-- * 'unfsfsNFSFileShareDefaults' - The default values for the file share. Optional.
+--
+-- * 'unfsfsClientList' - The list of clients that are allowed to access the file gateway. The list must contain either valid IP addresses or valid CIDR blocks.
+--
+-- * 'unfsfsReadOnly' - Sets the write status of a file share: "true" if the write status is read-only, otherwise "false".
+--
+-- * 'unfsfsFileShareARN' - The Amazon Resource Name (ARN) of the file share to be updated.
+updateNFSFileShare
+    :: Text -- ^ 'unfsfsFileShareARN'
+    -> UpdateNFSFileShare
+updateNFSFileShare pFileShareARN_ =
+  UpdateNFSFileShare'
+  { _unfsfsKMSKey = Nothing
+  , _unfsfsKMSEncrypted = Nothing
+  , _unfsfsDefaultStorageClass = Nothing
+  , _unfsfsSquash = Nothing
+  , _unfsfsNFSFileShareDefaults = Nothing
+  , _unfsfsClientList = Nothing
+  , _unfsfsReadOnly = Nothing
+  , _unfsfsFileShareARN = pFileShareARN_
+  }
+
+
+-- | The KMS key used for Amazon S3 server side encryption. This value can only be set when KmsEncrypted is true. Optional.
+unfsfsKMSKey :: Lens' UpdateNFSFileShare (Maybe Text)
+unfsfsKMSKey = lens _unfsfsKMSKey (\ s a -> s{_unfsfsKMSKey = a});
+
+-- | True to use Amazon S3 server side encryption with your own AWS KMS key, or false to use a key managed by Amazon S3. Optional.
+unfsfsKMSEncrypted :: Lens' UpdateNFSFileShare (Maybe Bool)
+unfsfsKMSEncrypted = lens _unfsfsKMSEncrypted (\ s a -> s{_unfsfsKMSEncrypted = a});
+
+-- | The default storage class for objects put into an Amazon S3 bucket by a file gateway. Possible values are S3_STANDARD or S3_STANDARD_IA. If this field is not populated, the default value S3_STANDARD is used. Optional.
+unfsfsDefaultStorageClass :: Lens' UpdateNFSFileShare (Maybe Text)
+unfsfsDefaultStorageClass = lens _unfsfsDefaultStorageClass (\ s a -> s{_unfsfsDefaultStorageClass = a});
+
+-- | The user mapped to anonymous user. Valid options are the following:     * "RootSquash" - Only root is mapped to anonymous user.     * "NoSquash" - No one is mapped to anonymous user     * "AllSquash" - Everyone is mapped to anonymous user.
+unfsfsSquash :: Lens' UpdateNFSFileShare (Maybe Text)
+unfsfsSquash = lens _unfsfsSquash (\ s a -> s{_unfsfsSquash = a});
+
+-- | The default values for the file share. Optional.
+unfsfsNFSFileShareDefaults :: Lens' UpdateNFSFileShare (Maybe NFSFileShareDefaults)
+unfsfsNFSFileShareDefaults = lens _unfsfsNFSFileShareDefaults (\ s a -> s{_unfsfsNFSFileShareDefaults = a});
+
+-- | The list of clients that are allowed to access the file gateway. The list must contain either valid IP addresses or valid CIDR blocks.
+unfsfsClientList :: Lens' UpdateNFSFileShare (Maybe (NonEmpty Text))
+unfsfsClientList = lens _unfsfsClientList (\ s a -> s{_unfsfsClientList = a}) . mapping _List1;
+
+-- | Sets the write status of a file share: "true" if the write status is read-only, otherwise "false".
+unfsfsReadOnly :: Lens' UpdateNFSFileShare (Maybe Bool)
+unfsfsReadOnly = lens _unfsfsReadOnly (\ s a -> s{_unfsfsReadOnly = a});
+
+-- | The Amazon Resource Name (ARN) of the file share to be updated.
+unfsfsFileShareARN :: Lens' UpdateNFSFileShare Text
+unfsfsFileShareARN = lens _unfsfsFileShareARN (\ s a -> s{_unfsfsFileShareARN = a});
+
+instance AWSRequest UpdateNFSFileShare where
+        type Rs UpdateNFSFileShare =
+             UpdateNFSFileShareResponse
+        request = postJSON storageGateway
+        response
+          = receiveJSON
+              (\ s h x ->
+                 UpdateNFSFileShareResponse' <$>
+                   (x .?> "FileShareARN") <*> (pure (fromEnum s)))
+
+instance Hashable UpdateNFSFileShare where
+
+instance NFData UpdateNFSFileShare where
+
+instance ToHeaders UpdateNFSFileShare where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("StorageGateway_20130630.UpdateNFSFileShare" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON UpdateNFSFileShare where
+        toJSON UpdateNFSFileShare'{..}
+          = object
+              (catMaybes
+                 [("KMSKey" .=) <$> _unfsfsKMSKey,
+                  ("KMSEncrypted" .=) <$> _unfsfsKMSEncrypted,
+                  ("DefaultStorageClass" .=) <$>
+                    _unfsfsDefaultStorageClass,
+                  ("Squash" .=) <$> _unfsfsSquash,
+                  ("NFSFileShareDefaults" .=) <$>
+                    _unfsfsNFSFileShareDefaults,
+                  ("ClientList" .=) <$> _unfsfsClientList,
+                  ("ReadOnly" .=) <$> _unfsfsReadOnly,
+                  Just ("FileShareARN" .= _unfsfsFileShareARN)])
+
+instance ToPath UpdateNFSFileShare where
+        toPath = const "/"
+
+instance ToQuery UpdateNFSFileShare where
+        toQuery = const mempty
+
+-- | UpdateNFSFileShareOutput
+--
+--
+--
+-- /See:/ 'updateNFSFileShareResponse' smart constructor.
+data UpdateNFSFileShareResponse = UpdateNFSFileShareResponse'
+  { _unfsfsrsFileShareARN   :: !(Maybe Text)
+  , _unfsfsrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'UpdateNFSFileShareResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'unfsfsrsFileShareARN' - The Amazon Resource Name (ARN) of the updated file share.
+--
+-- * 'unfsfsrsResponseStatus' - -- | The response status code.
+updateNFSFileShareResponse
+    :: Int -- ^ 'unfsfsrsResponseStatus'
+    -> UpdateNFSFileShareResponse
+updateNFSFileShareResponse pResponseStatus_ =
+  UpdateNFSFileShareResponse'
+  {_unfsfsrsFileShareARN = Nothing, _unfsfsrsResponseStatus = pResponseStatus_}
+
+
+-- | The Amazon Resource Name (ARN) of the updated file share.
+unfsfsrsFileShareARN :: Lens' UpdateNFSFileShareResponse (Maybe Text)
+unfsfsrsFileShareARN = lens _unfsfsrsFileShareARN (\ s a -> s{_unfsfsrsFileShareARN = a});
+
+-- | -- | The response status code.
+unfsfsrsResponseStatus :: Lens' UpdateNFSFileShareResponse Int
+unfsfsrsResponseStatus = lens _unfsfsrsResponseStatus (\ s a -> s{_unfsfsrsResponseStatus = a});
+
+instance NFData UpdateNFSFileShareResponse where
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,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.UpdateSnapshotSchedule
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Updates a snapshot schedule configured for a gateway volume.
+-- Updates a snapshot schedule configured for a gateway volume. This operation is only supported in the cached volume and stored volume gateway architectures.
 --
 --
 -- The default snapshot schedule for volume is once every 24 hours, starting at the creation time of the volume. You can use this API to change the snapshot schedule configured for the volume.
@@ -44,12 +44,12 @@
     , ussrsResponseStatus
     ) 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
+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
 
 -- | A JSON object containing one or more of the following fields:
 --
@@ -67,12 +67,13 @@
 --
 -- /See:/ 'updateSnapshotSchedule' smart constructor.
 data UpdateSnapshotSchedule = UpdateSnapshotSchedule'
-    { _ussDescription       :: !(Maybe Text)
-    , _ussVolumeARN         :: !Text
-    , _ussStartAt           :: !Nat
-    , _ussRecurrenceInHours :: !Nat
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ussDescription       :: !(Maybe Text)
+  , _ussVolumeARN         :: !Text
+  , _ussStartAt           :: !Nat
+  , _ussRecurrenceInHours :: !Nat
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateSnapshotSchedule' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -90,13 +91,14 @@
     -> Natural -- ^ 'ussRecurrenceInHours'
     -> UpdateSnapshotSchedule
 updateSnapshotSchedule pVolumeARN_ pStartAt_ pRecurrenceInHours_ =
-    UpdateSnapshotSchedule'
-    { _ussDescription = Nothing
-    , _ussVolumeARN = pVolumeARN_
-    , _ussStartAt = _Nat # pStartAt_
-    , _ussRecurrenceInHours = _Nat # pRecurrenceInHours_
-    }
+  UpdateSnapshotSchedule'
+  { _ussDescription = Nothing
+  , _ussVolumeARN = pVolumeARN_
+  , _ussStartAt = _Nat # pStartAt_
+  , _ussRecurrenceInHours = _Nat # pRecurrenceInHours_
+  }
 
+
 -- | Optional description of the snapshot that overwrites the existing description.
 ussDescription :: Lens' UpdateSnapshotSchedule (Maybe Text)
 ussDescription = lens _ussDescription (\ s a -> s{_ussDescription = a});
@@ -123,9 +125,9 @@
                  UpdateSnapshotScheduleResponse' <$>
                    (x .?> "VolumeARN") <*> (pure (fromEnum s)))
 
-instance Hashable UpdateSnapshotSchedule
+instance Hashable UpdateSnapshotSchedule where
 
-instance NFData UpdateSnapshotSchedule
+instance NFData UpdateSnapshotSchedule where
 
 instance ToHeaders UpdateSnapshotSchedule where
         toHeaders
@@ -158,10 +160,11 @@
 --
 -- /See:/ 'updateSnapshotScheduleResponse' smart constructor.
 data UpdateSnapshotScheduleResponse = UpdateSnapshotScheduleResponse'
-    { _ussrsVolumeARN      :: !(Maybe Text)
-    , _ussrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ussrsVolumeARN      :: !(Maybe Text)
+  , _ussrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateSnapshotScheduleResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -173,11 +176,10 @@
     :: Int -- ^ 'ussrsResponseStatus'
     -> UpdateSnapshotScheduleResponse
 updateSnapshotScheduleResponse pResponseStatus_ =
-    UpdateSnapshotScheduleResponse'
-    { _ussrsVolumeARN = Nothing
-    , _ussrsResponseStatus = pResponseStatus_
-    }
+  UpdateSnapshotScheduleResponse'
+  {_ussrsVolumeARN = Nothing, _ussrsResponseStatus = pResponseStatus_}
 
+
 -- |
 ussrsVolumeARN :: Lens' UpdateSnapshotScheduleResponse (Maybe Text)
 ussrsVolumeARN = lens _ussrsVolumeARN (\ s a -> s{_ussrsVolumeARN = a});
@@ -186,4 +188,4 @@
 ussrsResponseStatus :: Lens' UpdateSnapshotScheduleResponse Int
 ussrsResponseStatus = lens _ussrsResponseStatus (\ s a -> s{_ussrsResponseStatus = a});
 
-instance NFData UpdateSnapshotScheduleResponse
+instance NFData UpdateSnapshotScheduleResponse where
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,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.UpdateVTLDeviceType
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Updates the type of medium changer in a gateway-VTL. When 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.
+-- Updates the type of medium changer in a tape gateway. When you activate a tape gateway, you select a medium changer type for the tape gateway. This operation enables you to select a different type of medium changer after a tape gateway is activated. This operation is only supported in the tape gateway architecture.
 --
 --
 module Network.AWS.StorageGateway.UpdateVTLDeviceType
@@ -38,19 +38,20 @@
     , uvtldtrsResponseStatus
     ) 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
+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
 
 -- | /See:/ 'updateVTLDeviceType' smart constructor.
 data UpdateVTLDeviceType = UpdateVTLDeviceType'
-    { _uvtldtVTLDeviceARN :: !Text
-    , _uvtldtDeviceType   :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _uvtldtVTLDeviceARN :: !Text
+  , _uvtldtDeviceType   :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateVTLDeviceType' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -63,11 +64,10 @@
     -> Text -- ^ 'uvtldtDeviceType'
     -> UpdateVTLDeviceType
 updateVTLDeviceType pVTLDeviceARN_ pDeviceType_ =
-    UpdateVTLDeviceType'
-    { _uvtldtVTLDeviceARN = pVTLDeviceARN_
-    , _uvtldtDeviceType = pDeviceType_
-    }
+  UpdateVTLDeviceType'
+  {_uvtldtVTLDeviceARN = pVTLDeviceARN_, _uvtldtDeviceType = pDeviceType_}
 
+
 -- | The Amazon Resource Name (ARN) of the medium changer you want to select.
 uvtldtVTLDeviceARN :: Lens' UpdateVTLDeviceType Text
 uvtldtVTLDeviceARN = lens _uvtldtVTLDeviceARN (\ s a -> s{_uvtldtVTLDeviceARN = a});
@@ -86,9 +86,9 @@
                  UpdateVTLDeviceTypeResponse' <$>
                    (x .?> "VTLDeviceARN") <*> (pure (fromEnum s)))
 
-instance Hashable UpdateVTLDeviceType
+instance Hashable UpdateVTLDeviceType where
 
-instance NFData UpdateVTLDeviceType
+instance NFData UpdateVTLDeviceType where
 
 instance ToHeaders UpdateVTLDeviceType where
         toHeaders
@@ -119,10 +119,11 @@
 --
 -- /See:/ 'updateVTLDeviceTypeResponse' smart constructor.
 data UpdateVTLDeviceTypeResponse = UpdateVTLDeviceTypeResponse'
-    { _uvtldtrsVTLDeviceARN   :: !(Maybe Text)
-    , _uvtldtrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _uvtldtrsVTLDeviceARN   :: !(Maybe Text)
+  , _uvtldtrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateVTLDeviceTypeResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -134,11 +135,10 @@
     :: Int -- ^ 'uvtldtrsResponseStatus'
     -> UpdateVTLDeviceTypeResponse
 updateVTLDeviceTypeResponse pResponseStatus_ =
-    UpdateVTLDeviceTypeResponse'
-    { _uvtldtrsVTLDeviceARN = Nothing
-    , _uvtldtrsResponseStatus = pResponseStatus_
-    }
+  UpdateVTLDeviceTypeResponse'
+  {_uvtldtrsVTLDeviceARN = Nothing, _uvtldtrsResponseStatus = pResponseStatus_}
 
+
 -- | The Amazon Resource Name (ARN) of the medium changer you have selected.
 uvtldtrsVTLDeviceARN :: Lens' UpdateVTLDeviceTypeResponse (Maybe Text)
 uvtldtrsVTLDeviceARN = lens _uvtldtrsVTLDeviceARN (\ s a -> s{_uvtldtrsVTLDeviceARN = a});
@@ -147,4 +147,4 @@
 uvtldtrsResponseStatus :: Lens' UpdateVTLDeviceTypeResponse Int
 uvtldtrsResponseStatus = lens _uvtldtrsResponseStatus (\ s a -> s{_uvtldtrsResponseStatus = a});
 
-instance NFData UpdateVTLDeviceTypeResponse
+instance NFData UpdateVTLDeviceTypeResponse where
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,15 +7,15 @@
 
 -- |
 -- Module      : Network.AWS.StorageGateway.Waiters
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 module Network.AWS.StorageGateway.Waiters where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.StorageGateway.Types
-import           Network.AWS.Waiter
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.StorageGateway.Types
+import Network.AWS.Waiter
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -2,9 +2,9 @@
 
 -- |
 -- Module      : Main
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
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,20 +5,20 @@
 
 -- |
 -- Module      : Test.AWS.Gen.StorageGateway
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 module Test.AWS.Gen.StorageGateway where
 
 import Data.Proxy
+import Network.AWS.StorageGateway
 import Test.AWS.Fixture
 import Test.AWS.Prelude
-import Test.Tasty
-import Network.AWS.StorageGateway
 import Test.AWS.StorageGateway.Internal
+import Test.Tasty
 
 -- Auto-generated: the actual test selection needs to be manually placed into
 -- the top-level so that real test data can be incrementally added.
@@ -34,6 +34,9 @@
 --         , requestCreateStorediSCSIVolume $
 --             createStorediSCSIVolume
 --
+--         , requestCreateNFSFileShare $
+--             createNFSFileShare
+--
 --         , requestDescribeChapCredentials $
 --             describeChapCredentials
 --
@@ -49,6 +52,12 @@
 --         , requestCreateCachediSCSIVolume $
 --             createCachediSCSIVolume
 --
+--         , requestListFileShares $
+--             listFileShares
+--
+--         , requestDeleteFileShare $
+--             deleteFileShare
+--
 --         , requestListVolumeInitiators $
 --             listVolumeInitiators
 --
@@ -118,6 +127,12 @@
 --         , requestDescribeGatewayInformation $
 --             describeGatewayInformation
 --
+--         , requestRefreshCache $
+--             refreshCache
+--
+--         , requestUpdateNFSFileShare $
+--             updateNFSFileShare
+--
 --         , requestRetrieveTapeArchive $
 --             retrieveTapeArchive
 --
@@ -154,6 +169,9 @@
 --         , requestDeleteTapeArchive $
 --             deleteTapeArchive
 --
+--         , requestDescribeNFSFileShares $
+--             describeNFSFileShares
+--
 --         , requestListVolumeRecoveryPoints $
 --             listVolumeRecoveryPoints
 --
@@ -205,6 +223,9 @@
 --         , responseCreateStorediSCSIVolume $
 --             createStorediSCSIVolumeResponse
 --
+--         , responseCreateNFSFileShare $
+--             createNFSFileShareResponse
+--
 --         , responseDescribeChapCredentials $
 --             describeChapCredentialsResponse
 --
@@ -220,6 +241,12 @@
 --         , responseCreateCachediSCSIVolume $
 --             createCachediSCSIVolumeResponse
 --
+--         , responseListFileShares $
+--             listFileSharesResponse
+--
+--         , responseDeleteFileShare $
+--             deleteFileShareResponse
+--
 --         , responseListVolumeInitiators $
 --             listVolumeInitiatorsResponse
 --
@@ -289,6 +316,12 @@
 --         , responseDescribeGatewayInformation $
 --             describeGatewayInformationResponse
 --
+--         , responseRefreshCache $
+--             refreshCacheResponse
+--
+--         , responseUpdateNFSFileShare $
+--             updateNFSFileShareResponse
+--
 --         , responseRetrieveTapeArchive $
 --             retrieveTapeArchiveResponse
 --
@@ -325,6 +358,9 @@
 --         , responseDeleteTapeArchive $
 --             deleteTapeArchiveResponse
 --
+--         , responseDescribeNFSFileShares $
+--             describeNFSFileSharesResponse
+--
 --         , responseListVolumeRecoveryPoints $
 --             listVolumeRecoveryPointsResponse
 --
@@ -382,6 +418,11 @@
     "CreateStorediSCSIVolume"
     "fixture/CreateStorediSCSIVolume.yaml"
 
+requestCreateNFSFileShare :: CreateNFSFileShare -> TestTree
+requestCreateNFSFileShare = req
+    "CreateNFSFileShare"
+    "fixture/CreateNFSFileShare.yaml"
+
 requestDescribeChapCredentials :: DescribeChapCredentials -> TestTree
 requestDescribeChapCredentials = req
     "DescribeChapCredentials"
@@ -407,6 +448,16 @@
     "CreateCachediSCSIVolume"
     "fixture/CreateCachediSCSIVolume.yaml"
 
+requestListFileShares :: ListFileShares -> TestTree
+requestListFileShares = req
+    "ListFileShares"
+    "fixture/ListFileShares.yaml"
+
+requestDeleteFileShare :: DeleteFileShare -> TestTree
+requestDeleteFileShare = req
+    "DeleteFileShare"
+    "fixture/DeleteFileShare.yaml"
+
 requestListVolumeInitiators :: ListVolumeInitiators -> TestTree
 requestListVolumeInitiators = req
     "ListVolumeInitiators"
@@ -522,6 +573,16 @@
     "DescribeGatewayInformation"
     "fixture/DescribeGatewayInformation.yaml"
 
+requestRefreshCache :: RefreshCache -> TestTree
+requestRefreshCache = req
+    "RefreshCache"
+    "fixture/RefreshCache.yaml"
+
+requestUpdateNFSFileShare :: UpdateNFSFileShare -> TestTree
+requestUpdateNFSFileShare = req
+    "UpdateNFSFileShare"
+    "fixture/UpdateNFSFileShare.yaml"
+
 requestRetrieveTapeArchive :: RetrieveTapeArchive -> TestTree
 requestRetrieveTapeArchive = req
     "RetrieveTapeArchive"
@@ -582,6 +643,11 @@
     "DeleteTapeArchive"
     "fixture/DeleteTapeArchive.yaml"
 
+requestDescribeNFSFileShares :: DescribeNFSFileShares -> TestTree
+requestDescribeNFSFileShares = req
+    "DescribeNFSFileShares"
+    "fixture/DescribeNFSFileShares.yaml"
+
 requestListVolumeRecoveryPoints :: ListVolumeRecoveryPoints -> TestTree
 requestListVolumeRecoveryPoints = req
     "ListVolumeRecoveryPoints"
@@ -668,6 +734,13 @@
     storageGateway
     (Proxy :: Proxy CreateStorediSCSIVolume)
 
+responseCreateNFSFileShare :: CreateNFSFileShareResponse -> TestTree
+responseCreateNFSFileShare = res
+    "CreateNFSFileShareResponse"
+    "fixture/CreateNFSFileShareResponse.proto"
+    storageGateway
+    (Proxy :: Proxy CreateNFSFileShare)
+
 responseDescribeChapCredentials :: DescribeChapCredentialsResponse -> TestTree
 responseDescribeChapCredentials = res
     "DescribeChapCredentialsResponse"
@@ -703,6 +776,20 @@
     storageGateway
     (Proxy :: Proxy CreateCachediSCSIVolume)
 
+responseListFileShares :: ListFileSharesResponse -> TestTree
+responseListFileShares = res
+    "ListFileSharesResponse"
+    "fixture/ListFileSharesResponse.proto"
+    storageGateway
+    (Proxy :: Proxy ListFileShares)
+
+responseDeleteFileShare :: DeleteFileShareResponse -> TestTree
+responseDeleteFileShare = res
+    "DeleteFileShareResponse"
+    "fixture/DeleteFileShareResponse.proto"
+    storageGateway
+    (Proxy :: Proxy DeleteFileShare)
+
 responseListVolumeInitiators :: ListVolumeInitiatorsResponse -> TestTree
 responseListVolumeInitiators = res
     "ListVolumeInitiatorsResponse"
@@ -864,6 +951,20 @@
     storageGateway
     (Proxy :: Proxy DescribeGatewayInformation)
 
+responseRefreshCache :: RefreshCacheResponse -> TestTree
+responseRefreshCache = res
+    "RefreshCacheResponse"
+    "fixture/RefreshCacheResponse.proto"
+    storageGateway
+    (Proxy :: Proxy RefreshCache)
+
+responseUpdateNFSFileShare :: UpdateNFSFileShareResponse -> TestTree
+responseUpdateNFSFileShare = res
+    "UpdateNFSFileShareResponse"
+    "fixture/UpdateNFSFileShareResponse.proto"
+    storageGateway
+    (Proxy :: Proxy UpdateNFSFileShare)
+
 responseRetrieveTapeArchive :: RetrieveTapeArchiveResponse -> TestTree
 responseRetrieveTapeArchive = res
     "RetrieveTapeArchiveResponse"
@@ -947,6 +1048,13 @@
     "fixture/DeleteTapeArchiveResponse.proto"
     storageGateway
     (Proxy :: Proxy DeleteTapeArchive)
+
+responseDescribeNFSFileShares :: DescribeNFSFileSharesResponse -> TestTree
+responseDescribeNFSFileShares = res
+    "DescribeNFSFileSharesResponse"
+    "fixture/DescribeNFSFileSharesResponse.proto"
+    storageGateway
+    (Proxy :: Proxy DescribeNFSFileShares)
 
 responseListVolumeRecoveryPoints :: ListVolumeRecoveryPointsResponse -> TestTree
 responseListVolumeRecoveryPoints = res
