diff --git a/amazonka-storagegateway.cabal b/amazonka-storagegateway.cabal
--- a/amazonka-storagegateway.cabal
+++ b/amazonka-storagegateway.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-storagegateway
-version:               0.1.0
+version:               0.1.1
 synopsis:              Amazon Storage Gateway SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -7,7 +7,7 @@
 author:                Brendan Hay
 maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
 copyright:             Copyright (c) 2013-2014 Brendan Hay
-category:              Network, AWS, Cloud
+category:              Network, AWS, Cloud, Distributed Computing
 build-type:            Simple
 extra-source-files:    README.md
 cabal-version:         >= 1.10
@@ -72,6 +72,7 @@
         , Network.AWS.StorageGateway.ListLocalDisks
         , Network.AWS.StorageGateway.ListVolumeRecoveryPoints
         , Network.AWS.StorageGateway.ListVolumes
+        , Network.AWS.StorageGateway.ResetCache
         , Network.AWS.StorageGateway.RetrieveTapeArchive
         , Network.AWS.StorageGateway.RetrieveTapeRecoveryPoint
         , Network.AWS.StorageGateway.ShutdownGateway
@@ -83,9 +84,10 @@
         , Network.AWS.StorageGateway.UpdateGatewaySoftwareNow
         , Network.AWS.StorageGateway.UpdateMaintenanceStartTime
         , Network.AWS.StorageGateway.UpdateSnapshotSchedule
+        , Network.AWS.StorageGateway.UpdateVTLDeviceType
 
     other-modules:
 
     build-depends:
-          amazonka-core == 0.1.0.*
+          amazonka-core == 0.1.1.*
         , base          >= 4.7     && < 5
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
@@ -51,6 +51,7 @@
     , module Network.AWS.StorageGateway.ListLocalDisks
     , module Network.AWS.StorageGateway.ListVolumeRecoveryPoints
     , module Network.AWS.StorageGateway.ListVolumes
+    , module Network.AWS.StorageGateway.ResetCache
     , module Network.AWS.StorageGateway.RetrieveTapeArchive
     , module Network.AWS.StorageGateway.RetrieveTapeRecoveryPoint
     , module Network.AWS.StorageGateway.ShutdownGateway
@@ -62,6 +63,7 @@
     , module Network.AWS.StorageGateway.UpdateGatewaySoftwareNow
     , module Network.AWS.StorageGateway.UpdateMaintenanceStartTime
     , module Network.AWS.StorageGateway.UpdateSnapshotSchedule
+    , module Network.AWS.StorageGateway.UpdateVTLDeviceType
     ) where
 
 import Network.AWS.StorageGateway.ActivateGateway
@@ -101,6 +103,7 @@
 import Network.AWS.StorageGateway.ListLocalDisks
 import Network.AWS.StorageGateway.ListVolumeRecoveryPoints
 import Network.AWS.StorageGateway.ListVolumes
+import Network.AWS.StorageGateway.ResetCache
 import Network.AWS.StorageGateway.RetrieveTapeArchive
 import Network.AWS.StorageGateway.RetrieveTapeRecoveryPoint
 import Network.AWS.StorageGateway.ShutdownGateway
@@ -112,3 +115,4 @@
 import Network.AWS.StorageGateway.UpdateGatewaySoftwareNow
 import Network.AWS.StorageGateway.UpdateMaintenanceStartTime
 import Network.AWS.StorageGateway.UpdateSnapshotSchedule
+import Network.AWS.StorageGateway.UpdateVTLDeviceType
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
@@ -30,6 +30,8 @@
 -- activation process also associates your gateway with your account; for more
 -- information, see 'UpdateGatewayInformation'.
 --
+-- You must turn on the gateway VM before you can activate your gateway.
+--
 -- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_ActivateGateway.html>
 module Network.AWS.StorageGateway.ActivateGateway
     (
@@ -142,7 +144,7 @@
 -- | The value that indicates the type of medium changer to use for gateway-VTL.
 -- This field is optional.
 --
--- /Valid Values/: "STK-L700"
+-- /Valid Values/: "STK-L700", "AWS-Gateway-VTL"
 agMediumChangerType :: Lens' ActivateGateway (Maybe Text)
 agMediumChangerType =
     lens _agMediumChangerType (\s a -> s { _agMediumChangerType = a })
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
@@ -27,6 +27,8 @@
 -- architecture. This operation is deprecated method in cached-volumes API
 -- version (20120630). Use AddUploadBuffer instead.
 --
+-- Working storage is also referred to as upload buffer. You can also use the 'AddUploadBuffer' operation to add upload buffer to a stored-volume gateway.
+--
 -- In the request, you specify the gateway Amazon Resource Name (ARN) to which
 -- you want to add working storage, and one or more disk IDs that you want to
 -- configure as working storage.
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
@@ -25,6 +25,8 @@
 -- | This operation creates a cached volume on a specified cached gateway. This
 -- operation is supported only for the gateway-cached volume architecture.
 --
+-- Cache storage must be allocated to the gateway before you can create a
+-- cached volume. Use the 'AddCache' operation to add cache storage to a gateway.
 -- 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
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
@@ -39,6 +39,9 @@
 -- snapshot ID to check the snapshot progress or later use it when you want to
 -- create a volume from a snapshot.
 --
+-- To list or delete a snapshot, you must use the Amazon EC2 API. For more
+-- information, .
+--
 -- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateSnapshot.html>
 module Network.AWS.StorageGateway.CreateSnapshot
     (
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
@@ -39,6 +39,11 @@
 -- 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.
 --
+-- To list or delete a snapshot, you must use the Amazon EC2 API. For more
+-- information, in /Amazon Elastic Compute Cloud API Reference/.
+--
+--
+--
 -- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateSnapshotFromVolumeRecoveryPoint.html>
 module Network.AWS.StorageGateway.CreateSnapshotFromVolumeRecoveryPoint
     (
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
@@ -25,6 +25,9 @@
 -- | Creates one or more virtual tapes. You write data to the virtual tapes and
 -- then archive the tapes.
 --
+-- Cache storage must be allocated to the gateway before you can create virtual
+-- tapes. Use the 'AddCache' operation to add cache storage to a gateway.
+--
 -- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateTapes.html>
 module Network.AWS.StorageGateway.CreateTapes
     (
@@ -57,7 +60,7 @@
     , _ctGatewayARN        :: Text
     , _ctNumTapesToCreate  :: Nat
     , _ctTapeBarcodePrefix :: Text
-    , _ctTapeSizeInBytes   :: Nat
+    , _ctTapeSizeInBytes   :: Integer
     } deriving (Eq, Ord, Show)
 
 -- | 'CreateTapes' constructor.
@@ -72,17 +75,17 @@
 --
 -- * 'ctTapeBarcodePrefix' @::@ 'Text'
 --
--- * 'ctTapeSizeInBytes' @::@ 'Natural'
+-- * 'ctTapeSizeInBytes' @::@ 'Integer'
 --
 createTapes :: Text -- ^ 'ctGatewayARN'
-            -> Natural -- ^ 'ctTapeSizeInBytes'
+            -> Integer -- ^ 'ctTapeSizeInBytes'
             -> Text -- ^ 'ctClientToken'
             -> Natural -- ^ 'ctNumTapesToCreate'
             -> Text -- ^ 'ctTapeBarcodePrefix'
             -> CreateTapes
 createTapes p1 p2 p3 p4 p5 = CreateTapes
     { _ctGatewayARN        = p1
-    , _ctTapeSizeInBytes   = withIso _Nat (const id) p2
+    , _ctTapeSizeInBytes   = p2
     , _ctClientToken       = p3
     , _ctNumTapesToCreate  = withIso _Nat (const id) p4
     , _ctTapeBarcodePrefix = p5
@@ -90,6 +93,8 @@
 
 -- | A unique identifier that you use to retry a request. If you retry a request,
 -- use the same 'ClientToken' you specified in the initial request.
+--
+-- Using the same 'ClientToken' prevents creating the tape multiple times.
 ctClientToken :: Lens' CreateTapes Text
 ctClientToken = lens _ctClientToken (\s a -> s { _ctClientToken = a })
 
@@ -107,15 +112,19 @@
 
 -- | A prefix you append to the barcode of the virtual tape you are creating. This
 -- makes a barcode unique.
+--
+-- The prefix must be 1 to 4 characters in length and must be upper-case
+-- letters A-Z.
 ctTapeBarcodePrefix :: Lens' CreateTapes Text
 ctTapeBarcodePrefix =
     lens _ctTapeBarcodePrefix (\s a -> s { _ctTapeBarcodePrefix = a })
 
 -- | The size, in bytes, of the virtual tapes you want to create.
-ctTapeSizeInBytes :: Lens' CreateTapes Natural
+--
+-- The size must be gigabyte (1024*1024*1024 byte) aligned.
+ctTapeSizeInBytes :: Lens' CreateTapes Integer
 ctTapeSizeInBytes =
     lens _ctTapeSizeInBytes (\s a -> s { _ctTapeSizeInBytes = a })
-        . _Nat
 
 newtype CreateTapesResponse = CreateTapesResponse
     { _ctrTapeARNs :: List "TapeARNs" Text
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
@@ -29,6 +29,10 @@
 -- more information, see <http://docs.aws.amazon.com/storagegateway/latest/userguide/WorkingWithSnapshots.html Working with Snapshots>. In the 'DeleteSnapshotSchedule'
 -- request, you identify the volume by providing its Amazon Resource Name (ARN).
 --
+-- To list or delete a snapshot, you must use the Amazon EC2 API. in /AmazonElastic Compute Cloud API Reference/.
+--
+--
+--
 -- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DeleteSnapshotSchedule.html>
 module Network.AWS.StorageGateway.DeleteSnapshotSchedule
     (
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
@@ -86,6 +86,8 @@
 
 -- | Specifies that the number of virtual tapes described be limited to the
 -- specified number.
+--
+-- Amazon Web Services may impose its own limit, if this field is not set.
 dtLimit :: Lens' DescribeTapes (Maybe Natural)
 dtLimit = lens _dtLimit (\s a -> s { _dtLimit = a }) . mapping _Nat
 
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
@@ -98,6 +98,10 @@
 
 -- | An array of strings, where each string represents the Amazon Resource Name
 -- (ARN) of a VTL device.
+--
+-- All of the specified VTL devices must be from the same gateway. If no VTL
+-- devices are specified, the result will contain all devices on the specified
+-- gateway.
 dvtldVTLDeviceARNs :: Lens' DescribeVTLDevices [Text]
 dvtldVTLDeviceARNs =
     lens _dvtldVTLDeviceARNs (\s a -> s { _dvtldVTLDeviceARNs = a })
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
@@ -27,6 +27,10 @@
 -- This operation is deprecated in cached-volumes API version (20120630). Use
 -- DescribeUploadBuffer instead.
 --
+-- Working storage is also referred to as upload buffer. You can also use the
+-- DescribeUploadBuffer operation to add upload buffer to a stored-volume
+-- gateway.
+--
 -- The response includes disk IDs that are configured as working storage, and
 -- it includes the amount of working storage allocated and used.
 --
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
@@ -22,12 +22,16 @@
 --
 -- Derived from AWS service descriptions, licensed under Apache 2.0.
 
--- | This operation returns a list of the local disks of a gateway. To specify
--- which gateway to describe you use the Amazon Resource Name (ARN) of the
--- gateway in the body of the request.
+-- | This operation returns a list of the gateway's local disks. To specify which
+-- gateway to describe, you use the Amazon Resource Name (ARN) of the gateway in
+-- the body of the request.
 --
--- The request returns all disks, specifying which are configured as working
--- storage, stored volume or not configured at all.
+-- The request returns a list of all disks, specifying which are configured as
+-- working storage, cache storage, or stored volume or not configured at all.
+-- The response includes a 'DiskStatus' field. This field can have a value of
+-- present (the disk is availble to use), missing (the disk is no longer
+-- connected to the gateway), or mismatch (the disk node is occupied by a disk
+-- that has incorrect metadata or the disk content is corrupted).
 --
 -- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_ListLocalDisks.html>
 module Network.AWS.StorageGateway.ListLocalDisks
diff --git a/gen/Network/AWS/StorageGateway/ResetCache.hs b/gen/Network/AWS/StorageGateway/ResetCache.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/StorageGateway/ResetCache.hs
@@ -0,0 +1,112 @@
+{-# LANGUAGE DataKinds                   #-}
+{-# LANGUAGE DeriveGeneric               #-}
+{-# LANGUAGE FlexibleInstances           #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
+{-# LANGUAGE LambdaCase                  #-}
+{-# LANGUAGE NoImplicitPrelude           #-}
+{-# LANGUAGE OverloadedStrings           #-}
+{-# LANGUAGE RecordWildCards             #-}
+{-# LANGUAGE TypeFamilies                #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Module      : Network.AWS.StorageGateway.ResetCache
+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
+-- License     : This Source Code Form is subject to the terms of
+--               the Mozilla Public License, v. 2.0.
+--               A copy of the MPL can be found in the LICENSE file or
+--               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : experimental
+-- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- | This operation resets all cache disks and makes the disks available for
+-- reconfiguration as cache storage. When a cache is reset, the gateway loses
+-- its cache storage. At this point you can reconfigure the disks as cache
+-- disks.
+--
+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_ResetCache.html>
+module Network.AWS.StorageGateway.ResetCache
+    (
+    -- * Request
+      ResetCache
+    -- ** Request constructor
+    , resetCache
+    -- ** Request lenses
+    , rcGatewayARN
+
+    -- * Response
+    , ResetCacheResponse
+    -- ** Response constructor
+    , resetCacheResponse
+    -- ** Response lenses
+    , rcrGatewayARN
+    ) where
+
+import Network.AWS.Prelude
+import Network.AWS.Request.JSON
+import Network.AWS.StorageGateway.Types
+import qualified GHC.Exts
+
+newtype ResetCache = ResetCache
+    { _rcGatewayARN :: Text
+    } deriving (Eq, Ord, Show, Monoid, IsString)
+
+-- | 'ResetCache' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'rcGatewayARN' @::@ 'Text'
+--
+resetCache :: Text -- ^ 'rcGatewayARN'
+           -> ResetCache
+resetCache p1 = ResetCache
+    { _rcGatewayARN = p1
+    }
+
+rcGatewayARN :: Lens' ResetCache Text
+rcGatewayARN = lens _rcGatewayARN (\s a -> s { _rcGatewayARN = a })
+
+newtype ResetCacheResponse = ResetCacheResponse
+    { _rcrGatewayARN :: Maybe Text
+    } deriving (Eq, Ord, Show, Monoid)
+
+-- | 'ResetCacheResponse' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'rcrGatewayARN' @::@ 'Maybe' 'Text'
+--
+resetCacheResponse :: ResetCacheResponse
+resetCacheResponse = ResetCacheResponse
+    { _rcrGatewayARN = Nothing
+    }
+
+rcrGatewayARN :: Lens' ResetCacheResponse (Maybe Text)
+rcrGatewayARN = lens _rcrGatewayARN (\s a -> s { _rcrGatewayARN = a })
+
+instance ToPath ResetCache where
+    toPath = const "/"
+
+instance ToQuery ResetCache where
+    toQuery = const mempty
+
+instance ToHeaders ResetCache
+
+instance ToJSON ResetCache where
+    toJSON ResetCache{..} = object
+        [ "GatewayARN" .= _rcGatewayARN
+        ]
+
+instance AWSRequest ResetCache where
+    type Sv ResetCache = StorageGateway
+    type Rs ResetCache = ResetCacheResponse
+
+    request  = post "ResetCache"
+    response = jsonResponse
+
+instance FromJSON ResetCacheResponse where
+    parseJSON = withObject "ResetCacheResponse" $ \o -> ResetCacheResponse
+        <$> o .:? "GatewayARN"
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
@@ -28,6 +28,10 @@
 -- data on the tape is consistent. If your gateway crashes, virtual tapes that
 -- have recovery points can be recovered to a new gateway.
 --
+-- The virtual tape can be retrieved to only one gateway. The retrieved tape is
+-- read-only. The virtual tape can be retrieved to only a gateway-VTL. There is
+-- no charge for retrieving recovery points.
+--
 -- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_RetrieveTapeRecoveryPoint.html>
 module Network.AWS.StorageGateway.RetrieveTapeRecoveryPoint
     (
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
@@ -28,12 +28,18 @@
 -- The operation shuts down the gateway service component running in the
 -- storage gateway's virtual machine (VM) and not the 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.
+-- If you want to shut down the VM, it is recommended that you first shut down
+-- the gateway component in the VM to avoid unpredictable conditions. After the
+-- gateway is shutdown, you cannot call any other API except 'StartGateway', 'DescribeGatewayInformation', and 'ListGateways'. For more information, see 'ActivateGateway'. Your
+-- applications cannot read from or write to the gateway's storage volumes, and
+-- there are no snapshots taken.
 --
--- If do not intend to use the gateway again, you must delete the gateway
--- (using 'DeleteGateway') to no longer pay software charges associated with the
--- gateway.
+-- When you make a shutdown request, you will get a '200 OK' success response
+-- immediately. However, it might take some time for the gateway to shut down.
+-- You can call the 'DescribeGatewayInformation' API to check the status. For more
+-- information, see 'ActivateGateway'. If do not intend to use the gateway again,
+-- you must delete the gateway (using 'DeleteGateway') to no longer pay software
+-- charges associated with the gateway.
 --
 -- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_ShutdownGateway.html>
 module Network.AWS.StorageGateway.ShutdownGateway
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
@@ -26,8 +26,11 @@
 -- applications can read from or write to the gateway's storage volumes and you
 -- will be able to take snapshot backups.
 --
--- To specify which gateway to start, use the Amazon Resource Name (ARN) of the
--- gateway in your request.
+-- When you make a request, you will get a 200 OK success response immediately.
+-- However, it might take some time for the gateway to be ready. You should call 'DescribeGatewayInformation' and check the status before making any additional
+-- API calls. For more information, see 'ActivateGateway'. To specify which
+-- gateway to start, use the Amazon Resource Name (ARN) of the gateway in your
+-- request.
 --
 -- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_StartGateway.html>
 module Network.AWS.StorageGateway.StartGateway
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
@@ -70,6 +70,7 @@
     , dDiskNode
     , dDiskPath
     , dDiskSizeInBytes
+    , dDiskStatus
 
     -- * Tape
     , Tape
@@ -461,6 +462,7 @@
     , _dDiskNode               :: Maybe Text
     , _dDiskPath               :: Maybe Text
     , _dDiskSizeInBytes        :: Maybe Integer
+    , _dDiskStatus             :: Maybe Text
     } deriving (Eq, Ord, Show)
 
 -- | 'Disk' constructor.
@@ -479,11 +481,14 @@
 --
 -- * 'dDiskSizeInBytes' @::@ 'Maybe' 'Integer'
 --
+-- * 'dDiskStatus' @::@ 'Maybe' 'Text'
+--
 disk :: Disk
 disk = Disk
     { _dDiskId                 = Nothing
     , _dDiskPath               = Nothing
     , _dDiskNode               = Nothing
+    , _dDiskStatus             = Nothing
     , _dDiskSizeInBytes        = Nothing
     , _dDiskAllocationType     = Nothing
     , _dDiskAllocationResource = Nothing
@@ -509,6 +514,9 @@
 dDiskSizeInBytes :: Lens' Disk (Maybe Integer)
 dDiskSizeInBytes = lens _dDiskSizeInBytes (\s a -> s { _dDiskSizeInBytes = a })
 
+dDiskStatus :: Lens' Disk (Maybe Text)
+dDiskStatus = lens _dDiskStatus (\s a -> s { _dDiskStatus = a })
+
 instance FromJSON Disk where
     parseJSON = withObject "Disk" $ \o -> Disk
         <$> o .:? "DiskAllocationResource"
@@ -517,12 +525,14 @@
         <*> o .:? "DiskNode"
         <*> o .:? "DiskPath"
         <*> o .:? "DiskSizeInBytes"
+        <*> o .:? "DiskStatus"
 
 instance ToJSON Disk where
     toJSON Disk{..} = object
         [ "DiskId"                 .= _dDiskId
         , "DiskPath"               .= _dDiskPath
         , "DiskNode"               .= _dDiskNode
+        , "DiskStatus"             .= _dDiskStatus
         , "DiskSizeInBytes"        .= _dDiskSizeInBytes
         , "DiskAllocationType"     .= _dDiskAllocationType
         , "DiskAllocationResource" .= _dDiskAllocationResource
@@ -532,7 +542,7 @@
     { _tProgress        :: Maybe Double
     , _tTapeARN         :: Maybe Text
     , _tTapeBarcode     :: Maybe Text
-    , _tTapeSizeInBytes :: Maybe Nat
+    , _tTapeSizeInBytes :: Maybe Integer
     , _tTapeStatus      :: Maybe Text
     , _tVTLDevice       :: Maybe Text
     } deriving (Eq, Ord, Show)
@@ -547,7 +557,7 @@
 --
 -- * 'tTapeBarcode' @::@ 'Maybe' 'Text'
 --
--- * 'tTapeSizeInBytes' @::@ 'Maybe' 'Natural'
+-- * 'tTapeSizeInBytes' @::@ 'Maybe' 'Integer'
 --
 -- * 'tTapeStatus' @::@ 'Maybe' 'Text'
 --
@@ -579,8 +589,8 @@
 tTapeBarcode = lens _tTapeBarcode (\s a -> s { _tTapeBarcode = a })
 
 -- | The size, in bytes, of the virtual tape.
-tTapeSizeInBytes :: Lens' Tape (Maybe Natural)
-tTapeSizeInBytes = lens _tTapeSizeInBytes (\s a -> s { _tTapeSizeInBytes = a }) . mapping _Nat
+tTapeSizeInBytes :: Lens' Tape (Maybe Integer)
+tTapeSizeInBytes = lens _tTapeSizeInBytes (\s a -> s { _tTapeSizeInBytes = a })
 
 -- | The current state of the virtual tape.
 tTapeStatus :: Lens' Tape (Maybe Text)
@@ -642,6 +652,8 @@
 niIpv6Address = lens _niIpv6Address (\s a -> s { _niIpv6Address = a })
 
 -- | The Media Access Control (MAC) address of the interface.
+--
+-- This is currently unsupported and will not be returned in output.
 niMacAddress :: Lens' NetworkInterface (Maybe Text)
 niMacAddress = lens _niMacAddress (\s a -> s { _niMacAddress = a })
 
@@ -733,7 +745,7 @@
 data TapeRecoveryPointInfo = TapeRecoveryPointInfo
     { _trpiTapeARN               :: Maybe Text
     , _trpiTapeRecoveryPointTime :: Maybe ISO8601
-    , _trpiTapeSizeInBytes       :: Maybe Nat
+    , _trpiTapeSizeInBytes       :: Maybe Integer
     , _trpiTapeStatus            :: Maybe Text
     } deriving (Eq, Ord, Show)
 
@@ -745,7 +757,7 @@
 --
 -- * 'trpiTapeRecoveryPointTime' @::@ 'Maybe' 'UTCTime'
 --
--- * 'trpiTapeSizeInBytes' @::@ 'Maybe' 'Natural'
+-- * 'trpiTapeSizeInBytes' @::@ 'Maybe' 'Integer'
 --
 -- * 'trpiTapeStatus' @::@ 'Maybe' 'Text'
 --
@@ -773,10 +785,9 @@
             . mapping _Time
 
 -- | The size, in bytes, of the virtual tapes to recover.
-trpiTapeSizeInBytes :: Lens' TapeRecoveryPointInfo (Maybe Natural)
+trpiTapeSizeInBytes :: Lens' TapeRecoveryPointInfo (Maybe Integer)
 trpiTapeSizeInBytes =
     lens _trpiTapeSizeInBytes (\s a -> s { _trpiTapeSizeInBytes = a })
-        . mapping _Nat
 
 trpiTapeStatus :: Lens' TapeRecoveryPointInfo (Maybe Text)
 trpiTapeStatus = lens _trpiTapeStatus (\s a -> s { _trpiTapeStatus = a })
@@ -859,7 +870,7 @@
     , _taRetrievedTo     :: Maybe Text
     , _taTapeARN         :: Maybe Text
     , _taTapeBarcode     :: Maybe Text
-    , _taTapeSizeInBytes :: Maybe Nat
+    , _taTapeSizeInBytes :: Maybe Integer
     , _taTapeStatus      :: Maybe Text
     } deriving (Eq, Ord, Show)
 
@@ -875,7 +886,7 @@
 --
 -- * 'taTapeBarcode' @::@ 'Maybe' 'Text'
 --
--- * 'taTapeSizeInBytes' @::@ 'Maybe' 'Natural'
+-- * 'taTapeSizeInBytes' @::@ 'Maybe' 'Integer'
 --
 -- * 'taTapeStatus' @::@ 'Maybe' 'Text'
 --
@@ -912,10 +923,9 @@
 taTapeBarcode = lens _taTapeBarcode (\s a -> s { _taTapeBarcode = a })
 
 -- | The size, in bytes, of the archived virtual tape.
-taTapeSizeInBytes :: Lens' TapeArchive (Maybe Natural)
+taTapeSizeInBytes :: Lens' TapeArchive (Maybe Integer)
 taTapeSizeInBytes =
     lens _taTapeSizeInBytes (\s a -> s { _taTapeSizeInBytes = a })
-        . mapping _Nat
 
 -- | The current state of the archived virtual tape.
 taTapeStatus :: Lens' TapeArchive (Maybe Text)
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
@@ -25,11 +25,12 @@
 -- | This operation updates the gateway virtual machine (VM) software. The request
 -- immediately triggers the software update.
 --
--- A software update forces a system restart of your gateway. You can minimize
--- the chance of any disruption to your applications by increasing your iSCSI
--- Initiators' timeouts. For more information about increasing iSCSI Initiator
--- timeouts for Windows and Linux, see <http://docs.aws.amazon.com/storagegateway/latest/userguide/ConfiguringiSCSIClientInitiatorWindowsClient.html#CustomizeWindowsiSCSISettings Customizing Your Windows iSCSI Settings>
--- and <http://docs.aws.amazon.com/storagegateway/latest/userguide/ConfiguringiSCSIClientInitiatorRedHatClient.html#CustomizeLinuxiSCSISettings Customizing Your Linux iSCSI Settings>, respectively.
+-- When you make this request, you get a '200 OK' success response immediately.
+-- However, it might take some time for the update to complete. You can call 'DescribeGatewayInformation' to verify the gateway is in the 'STATE_RUNNING' state. A software update
+-- forces a system restart of your gateway. You can minimize the chance of any
+-- disruption to your applications by increasing your iSCSI Initiators'
+-- timeouts. For more information about increasing iSCSI Initiator timeouts for
+-- Windows and Linux, see <http://docs.aws.amazon.com/storagegateway/latest/userguide/ConfiguringiSCSIClientInitiatorWindowsClient.html#CustomizeWindowsiSCSISettings Customizing Your Windows iSCSI Settings> and <http://docs.aws.amazon.com/storagegateway/latest/userguide/ConfiguringiSCSIClientInitiatorRedHatClient.html#CustomizeLinuxiSCSISettings Customizing Your Linux iSCSI Settings>, respectively.
 --
 -- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_UpdateGatewaySoftwareNow.html>
 module Network.AWS.StorageGateway.UpdateGatewaySoftwareNow
diff --git a/gen/Network/AWS/StorageGateway/UpdateVTLDeviceType.hs b/gen/Network/AWS/StorageGateway/UpdateVTLDeviceType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/StorageGateway/UpdateVTLDeviceType.hs
@@ -0,0 +1,129 @@
+{-# LANGUAGE DataKinds                   #-}
+{-# LANGUAGE DeriveGeneric               #-}
+{-# LANGUAGE FlexibleInstances           #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
+{-# LANGUAGE LambdaCase                  #-}
+{-# LANGUAGE NoImplicitPrelude           #-}
+{-# LANGUAGE OverloadedStrings           #-}
+{-# LANGUAGE RecordWildCards             #-}
+{-# LANGUAGE TypeFamilies                #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Module      : Network.AWS.StorageGateway.UpdateVTLDeviceType
+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
+-- License     : This Source Code Form is subject to the terms of
+--               the Mozilla Public License, v. 2.0.
+--               A copy of the MPL can be found in the LICENSE file or
+--               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : experimental
+-- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- | This operation 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.
+--
+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_UpdateVTLDeviceType.html>
+module Network.AWS.StorageGateway.UpdateVTLDeviceType
+    (
+    -- * Request
+      UpdateVTLDeviceType
+    -- ** Request constructor
+    , updateVTLDeviceType
+    -- ** Request lenses
+    , uvtldtDeviceType
+    , uvtldtVTLDeviceARN
+
+    -- * Response
+    , UpdateVTLDeviceTypeResponse
+    -- ** Response constructor
+    , updateVTLDeviceTypeResponse
+    -- ** Response lenses
+    , uvtldtrVTLDeviceARN
+    ) where
+
+import Network.AWS.Prelude
+import Network.AWS.Request.JSON
+import Network.AWS.StorageGateway.Types
+import qualified GHC.Exts
+
+data UpdateVTLDeviceType = UpdateVTLDeviceType
+    { _uvtldtDeviceType   :: Text
+    , _uvtldtVTLDeviceARN :: Text
+    } deriving (Eq, Ord, Show)
+
+-- | 'UpdateVTLDeviceType' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'uvtldtDeviceType' @::@ 'Text'
+--
+-- * 'uvtldtVTLDeviceARN' @::@ 'Text'
+--
+updateVTLDeviceType :: Text -- ^ 'uvtldtVTLDeviceARN'
+                    -> Text -- ^ 'uvtldtDeviceType'
+                    -> UpdateVTLDeviceType
+updateVTLDeviceType p1 p2 = UpdateVTLDeviceType
+    { _uvtldtVTLDeviceARN = p1
+    , _uvtldtDeviceType   = p2
+    }
+
+-- | The type of medium changer you want to select.
+--
+-- /Valid Values/: "STK-L700", "AWS-Gateway-VTL"
+uvtldtDeviceType :: Lens' UpdateVTLDeviceType Text
+uvtldtDeviceType = lens _uvtldtDeviceType (\s a -> s { _uvtldtDeviceType = a })
+
+-- | 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 })
+
+newtype UpdateVTLDeviceTypeResponse = UpdateVTLDeviceTypeResponse
+    { _uvtldtrVTLDeviceARN :: Maybe Text
+    } deriving (Eq, Ord, Show, Monoid)
+
+-- | 'UpdateVTLDeviceTypeResponse' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'uvtldtrVTLDeviceARN' @::@ 'Maybe' 'Text'
+--
+updateVTLDeviceTypeResponse :: UpdateVTLDeviceTypeResponse
+updateVTLDeviceTypeResponse = UpdateVTLDeviceTypeResponse
+    { _uvtldtrVTLDeviceARN = Nothing
+    }
+
+-- | The Amazon Resource Name (ARN) of the medium changer you have selected.
+uvtldtrVTLDeviceARN :: Lens' UpdateVTLDeviceTypeResponse (Maybe Text)
+uvtldtrVTLDeviceARN =
+    lens _uvtldtrVTLDeviceARN (\s a -> s { _uvtldtrVTLDeviceARN = a })
+
+instance ToPath UpdateVTLDeviceType where
+    toPath = const "/"
+
+instance ToQuery UpdateVTLDeviceType where
+    toQuery = const mempty
+
+instance ToHeaders UpdateVTLDeviceType
+
+instance ToJSON UpdateVTLDeviceType where
+    toJSON UpdateVTLDeviceType{..} = object
+        [ "VTLDeviceARN" .= _uvtldtVTLDeviceARN
+        , "DeviceType"   .= _uvtldtDeviceType
+        ]
+
+instance AWSRequest UpdateVTLDeviceType where
+    type Sv UpdateVTLDeviceType = StorageGateway
+    type Rs UpdateVTLDeviceType = UpdateVTLDeviceTypeResponse
+
+    request  = post "UpdateVTLDeviceType"
+    response = jsonResponse
+
+instance FromJSON UpdateVTLDeviceTypeResponse where
+    parseJSON = withObject "UpdateVTLDeviceTypeResponse" $ \o -> UpdateVTLDeviceTypeResponse
+        <$> o .:? "VTLDeviceARN"
