diff --git a/amazonka-opsworks.cabal b/amazonka-opsworks.cabal
--- a/amazonka-opsworks.cabal
+++ b/amazonka-opsworks.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-opsworks
-version:               0.3.4
+version:               0.3.5
 synopsis:              Amazon OpsWorks SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -78,6 +78,7 @@
         , Network.AWS.OpsWorks.DetachElasticLoadBalancer
         , Network.AWS.OpsWorks.DisassociateElasticIp
         , Network.AWS.OpsWorks.GetHostnameSuggestion
+        , Network.AWS.OpsWorks.GrantAccess
         , Network.AWS.OpsWorks.RebootInstance
         , Network.AWS.OpsWorks.RegisterElasticIp
         , Network.AWS.OpsWorks.RegisterInstance
@@ -106,5 +107,5 @@
     other-modules:
 
     build-depends:
-          amazonka-core == 0.3.4.*
+          amazonka-core == 0.3.5.*
         , base          >= 4.7     && < 5
diff --git a/gen/Network/AWS/OpsWorks.hs b/gen/Network/AWS/OpsWorks.hs
--- a/gen/Network/AWS/OpsWorks.hs
+++ b/gen/Network/AWS/OpsWorks.hs
@@ -57,6 +57,7 @@
     , module Network.AWS.OpsWorks.DetachElasticLoadBalancer
     , module Network.AWS.OpsWorks.DisassociateElasticIp
     , module Network.AWS.OpsWorks.GetHostnameSuggestion
+    , module Network.AWS.OpsWorks.GrantAccess
     , module Network.AWS.OpsWorks.RebootInstance
     , module Network.AWS.OpsWorks.RegisterElasticIp
     , module Network.AWS.OpsWorks.RegisterInstance
@@ -125,6 +126,7 @@
 import Network.AWS.OpsWorks.DetachElasticLoadBalancer
 import Network.AWS.OpsWorks.DisassociateElasticIp
 import Network.AWS.OpsWorks.GetHostnameSuggestion
+import Network.AWS.OpsWorks.GrantAccess
 import Network.AWS.OpsWorks.RebootInstance
 import Network.AWS.OpsWorks.RegisterElasticIp
 import Network.AWS.OpsWorks.RegisterInstance
diff --git a/gen/Network/AWS/OpsWorks/AssignInstance.hs b/gen/Network/AWS/OpsWorks/AssignInstance.hs
--- a/gen/Network/AWS/OpsWorks/AssignInstance.hs
+++ b/gen/Network/AWS/OpsWorks/AssignInstance.hs
@@ -22,12 +22,14 @@
 --
 -- Derived from AWS service descriptions, licensed under Apache 2.0.
 
--- | Assign a registered instance to a custom layer. You cannot use this action
--- with instances that were created with AWS OpsWorks.
+-- | Assign a registered instance to a layer.
 --
--- Required Permissions: To use this action, an IAM user must have a Manage
--- permissions level for the stack or an attached policy that explicitly grants
--- permissions. For more information on user permissions, see <http://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html Managing UserPermissions>.
+-- You can assign registered on-premises instances to any layer type. You can
+-- assign registered Amazon EC2 instances only to custom layers. You cannot use
+-- this action with instances that were created with AWS OpsWorks.  Required
+-- Permissions: To use this action, an IAM user must have a Manage permissions
+-- level for the stack or an attached policy that explicitly grants permissions.
+-- For more information on user permissions, see <http://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html Managing User Permissions>.
 --
 -- <http://docs.aws.amazon.com/opsworks/latest/APIReference/API_AssignInstance.html>
 module Network.AWS.OpsWorks.AssignInstance
diff --git a/gen/Network/AWS/OpsWorks/CloneStack.hs b/gen/Network/AWS/OpsWorks/CloneStack.hs
--- a/gen/Network/AWS/OpsWorks/CloneStack.hs
+++ b/gen/Network/AWS/OpsWorks/CloneStack.hs
@@ -207,7 +207,7 @@
 --
 -- '"{\"key1\": \"value1\", \"key2\": \"value2\",...}"'
 --
--- For more information on custom JSON, see <http://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html Use Custom JSON to Modify the StackConfiguration JSON>
+-- For more information on custom JSON, see <http://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html Use Custom JSON to Modify the StackConfiguration Attributes>
 cs1CustomJson :: Lens' CloneStack (Maybe Text)
 cs1CustomJson = lens _cs1CustomJson (\s a -> s { _cs1CustomJson = a })
 
@@ -229,9 +229,8 @@
 
 -- | The stack's operating system, which must be set to one of the following.
 --
--- Standard operating systems: an Amazon Linux version such as 'Amazon Linux2014.09', 'Ubuntu 12.04 LTS', or 'Ubuntu 14.04 LTS'. Custom AMIs: 'Custom'. You
--- specify the custom AMI you want to use when you create instances.   The
--- default option is the current Amazon Linux version.
+-- Standard Linux operating systems: an Amazon Linux version such as 'AmazonLinux 2014.09', 'Ubuntu 12.04 LTS', or 'Ubuntu 14.04 LTS'. Custom Linux AMIs: 'Custom'. You specify the custom AMI you want to use when you create instances. Microsoft Windows Server 2012 R2.
+-- The default option is the current Amazon Linux version.
 cs1DefaultOs :: Lens' CloneStack (Maybe Text)
 cs1DefaultOs = lens _cs1DefaultOs (\s a -> s { _cs1DefaultOs = a })
 
@@ -266,9 +265,8 @@
 -- theme is used to generate host names for the stack's instances. By default, 'HostnameTheme' is set to 'Layer_Dependent', which creates host names by appending integers to
 -- the layer's short name. The other themes are:
 --
--- 'Baked_Goods' 'Clouds' 'Europe_Cities' 'Fruits' 'Greek_Deities' 'Legendary_creatures_from_Japan' 'Planets_and_Moons' 'Roman_Deities' 'Scottish_Islands' 'US_Cities' 'Wild_Cats'  To
--- obtain a generated host name, call 'GetHostNameSuggestion', which returns a
--- host name based on the current theme.
+-- 'Baked_Goods'   'Clouds'   'Europe_Cities'   'Fruits'   'Greek_Deities'   'Legendary_creatures_from_Japan'   'Planets_and_Moons'   'Roman_Deities'   'Scottish_Islands'   'US_Cities'   'Wild_Cats'   To obtain a generated host name, call 'GetHostNameSuggestion', which returns
+-- a host name based on the current theme.
 cs1HostnameTheme :: Lens' CloneStack (Maybe Text)
 cs1HostnameTheme = lens _cs1HostnameTheme (\s a -> s { _cs1HostnameTheme = a })
 
diff --git a/gen/Network/AWS/OpsWorks/CreateApp.hs b/gen/Network/AWS/OpsWorks/CreateApp.hs
--- a/gen/Network/AWS/OpsWorks/CreateApp.hs
+++ b/gen/Network/AWS/OpsWorks/CreateApp.hs
@@ -186,7 +186,8 @@
 -- | The app type. Each supported type is associated with a particular layer. For
 -- example, PHP applications are associated with a PHP layer. AWS OpsWorks
 -- deploys an application to those instances that are members of the
--- corresponding layer.
+-- corresponding layer. If your app isn't one of the standard types, or you
+-- prefer to implement your own Deploy recipes, specify 'other'.
 caType :: Lens' CreateApp AppType
 caType = lens _caType (\s a -> s { _caType = a })
 
diff --git a/gen/Network/AWS/OpsWorks/CreateDeployment.hs b/gen/Network/AWS/OpsWorks/CreateDeployment.hs
--- a/gen/Network/AWS/OpsWorks/CreateDeployment.hs
+++ b/gen/Network/AWS/OpsWorks/CreateDeployment.hs
@@ -115,7 +115,7 @@
 --
 -- '"{\"key1\": \"value1\", \"key2\": \"value2\",...}"'
 --
--- For more information on custom JSON, see <http://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html Use Custom JSON to Modify the StackConfiguration JSON>.
+-- For more information on custom JSON, see <http://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html Use Custom JSON to Modify the StackConfiguration Attributes>.
 cdCustomJson :: Lens' CreateDeployment (Maybe Text)
 cdCustomJson = lens _cdCustomJson (\s a -> s { _cdCustomJson = a })
 
diff --git a/gen/Network/AWS/OpsWorks/CreateInstance.hs b/gen/Network/AWS/OpsWorks/CreateInstance.hs
--- a/gen/Network/AWS/OpsWorks/CreateInstance.hs
+++ b/gen/Network/AWS/OpsWorks/CreateInstance.hs
@@ -158,7 +158,8 @@
 ciArchitecture :: Lens' CreateInstance (Maybe Architecture)
 ciArchitecture = lens _ciArchitecture (\s a -> s { _ciArchitecture = a })
 
--- | For load-based or time-based instances, the type.
+-- | For load-based or time-based instances, the type. Windows stacks can use only
+-- time-based instances.
 ciAutoScalingType :: Lens' CreateInstance (Maybe AutoScalingType)
 ciAutoScalingType =
     lens _ciAutoScalingType (\s a -> s { _ciAutoScalingType = a })
@@ -207,6 +208,10 @@
 ciLayerIds = lens _ciLayerIds (\s a -> s { _ciLayerIds = a }) . _List
 
 -- | The instance's operating system, which must be set to one of the following.
+--
+-- For Windows stacks: Microsoft Windows Server 2012 R2.
+--
+-- For Linux stacks:
 --
 -- Standard operating systems: an Amazon Linux version such as 'Amazon Linux2014.09', 'Ubuntu 12.04 LTS', or 'Ubuntu 14.04 LTS'. Custom AMIs: 'Custom'   The
 -- default option is the current Amazon Linux version. If you set this parameter
diff --git a/gen/Network/AWS/OpsWorks/CreateStack.hs b/gen/Network/AWS/OpsWorks/CreateStack.hs
--- a/gen/Network/AWS/OpsWorks/CreateStack.hs
+++ b/gen/Network/AWS/OpsWorks/CreateStack.hs
@@ -177,13 +177,14 @@
 csCustomCookbooksSource =
     lens _csCustomCookbooksSource (\s a -> s { _csCustomCookbooksSource = a })
 
--- | A string that contains user-defined, custom JSON. It is used to override the
--- corresponding default stack configuration JSON values. The string should be
--- in the following format and must escape characters such as '"'.:
+-- | A string that contains user-defined, custom JSON. It can be used to override
+-- the corresponding default stack configuration attribute values, or to pass
+-- data to recipes. The string should be in the following format and must escape
+-- characters such as '"'.:
 --
 -- '"{\"key1\": \"value1\", \"key2\": \"value2\",...}"'
 --
--- For more information on custom JSON, see <http://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html Use Custom JSON to Modify the StackConfiguration JSON>.
+-- For more information on custom JSON, see <http://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html Use Custom JSON to Modify the StackConfiguration Attributes>.
 csCustomJson :: Lens' CreateStack (Maybe Text)
 csCustomJson = lens _csCustomJson (\s a -> s { _csCustomJson = a })
 
@@ -205,9 +206,8 @@
 
 -- | The stack's operating system, which must be set to one of the following.
 --
--- Standard operating systems: an Amazon Linux version such as 'Amazon Linux2014.09', 'Ubuntu 12.04 LTS', or 'Ubuntu 14.04 LTS'. Custom AMIs: 'Custom'. You
--- specify the custom AMI you want to use when you create instances.   The
--- default option is the current Amazon Linux version.
+-- Standard Linux operating systems: an Amazon Linux version such as 'AmazonLinux 2014.09', 'Ubuntu 12.04 LTS', or 'Ubuntu 14.04 LTS'. Custom Linux AMIs: 'Custom'. You specify the custom AMI you want to use when you create instances. Microsoft Windows Server 2012 R2.
+-- The default option is the current Amazon Linux version.
 csDefaultOs :: Lens' CreateStack (Maybe Text)
 csDefaultOs = lens _csDefaultOs (\s a -> s { _csDefaultOs = a })
 
@@ -241,9 +241,8 @@
 -- theme is used to generate host names for the stack's instances. By default, 'HostnameTheme' is set to 'Layer_Dependent', which creates host names by appending integers to
 -- the layer's short name. The other themes are:
 --
--- 'Baked_Goods' 'Clouds' 'Europe_Cities' 'Fruits' 'Greek_Deities' 'Legendary_creatures_from_Japan' 'Planets_and_Moons' 'Roman_Deities' 'Scottish_Islands' 'US_Cities' 'Wild_Cats'  To
--- obtain a generated host name, call 'GetHostNameSuggestion', which returns a
--- host name based on the current theme.
+-- 'Baked_Goods'   'Clouds'   'Europe_Cities'   'Fruits'   'Greek_Deities'   'Legendary_creatures_from_Japan'   'Planets_and_Moons'   'Roman_Deities'   'Scottish_Islands'   'US_Cities'   'Wild_Cats'   To obtain a generated host name, call 'GetHostNameSuggestion', which returns
+-- a host name based on the current theme.
 csHostnameTheme :: Lens' CreateStack (Maybe Text)
 csHostnameTheme = lens _csHostnameTheme (\s a -> s { _csHostnameTheme = a })
 
diff --git a/gen/Network/AWS/OpsWorks/GrantAccess.hs b/gen/Network/AWS/OpsWorks/GrantAccess.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/OpsWorks/GrantAccess.hs
@@ -0,0 +1,130 @@
+{-# LANGUAGE DataKinds                   #-}
+{-# LANGUAGE DeriveGeneric               #-}
+{-# LANGUAGE FlexibleInstances           #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
+{-# LANGUAGE LambdaCase                  #-}
+{-# LANGUAGE NoImplicitPrelude           #-}
+{-# LANGUAGE OverloadedStrings           #-}
+{-# LANGUAGE RecordWildCards             #-}
+{-# LANGUAGE TypeFamilies                #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Module      : Network.AWS.OpsWorks.GrantAccess
+-- 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 API can be used only with Windows stacks. Grants RDP access to a Windows
+-- instance for a specified time period.
+--
+-- <http://docs.aws.amazon.com/opsworks/latest/APIReference/API_GrantAccess.html>
+module Network.AWS.OpsWorks.GrantAccess
+    (
+    -- * Request
+      GrantAccess
+    -- ** Request constructor
+    , grantAccess
+    -- ** Request lenses
+    , gaInstanceId
+    , gaValidForInMinutes
+
+    -- * Response
+    , GrantAccessResponse
+    -- ** Response constructor
+    , grantAccessResponse
+    -- ** Response lenses
+    , garTemporaryCredential
+    ) where
+
+import Network.AWS.Data (Object)
+import Network.AWS.Prelude
+import Network.AWS.Request.JSON
+import Network.AWS.OpsWorks.Types
+import qualified GHC.Exts
+
+data GrantAccess = GrantAccess
+    { _gaInstanceId        :: Text
+    , _gaValidForInMinutes :: Maybe Nat
+    } deriving (Eq, Ord, Read, Show)
+
+-- | 'GrantAccess' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'gaInstanceId' @::@ 'Text'
+--
+-- * 'gaValidForInMinutes' @::@ 'Maybe' 'Natural'
+--
+grantAccess :: Text -- ^ 'gaInstanceId'
+            -> GrantAccess
+grantAccess p1 = GrantAccess
+    { _gaInstanceId        = p1
+    , _gaValidForInMinutes = Nothing
+    }
+
+-- | The instance's AWS OpsWorks ID.
+gaInstanceId :: Lens' GrantAccess Text
+gaInstanceId = lens _gaInstanceId (\s a -> s { _gaInstanceId = a })
+
+-- | The length of time (in minutes) that the grant is valid. When the grant
+-- expires at the end of this period, the user will no longer be able to use the
+-- credentials to log in. If the user is logged in at the time, he or she
+-- automatically will be logged out.
+gaValidForInMinutes :: Lens' GrantAccess (Maybe Natural)
+gaValidForInMinutes =
+    lens _gaValidForInMinutes (\s a -> s { _gaValidForInMinutes = a })
+        . mapping _Nat
+
+newtype GrantAccessResponse = GrantAccessResponse
+    { _garTemporaryCredential :: Maybe TemporaryCredential
+    } deriving (Eq, Read, Show)
+
+-- | 'GrantAccessResponse' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'garTemporaryCredential' @::@ 'Maybe' 'TemporaryCredential'
+--
+grantAccessResponse :: GrantAccessResponse
+grantAccessResponse = GrantAccessResponse
+    { _garTemporaryCredential = Nothing
+    }
+
+-- | A 'TemporaryCredential' object that contains the data needed to log in to the
+-- instance by RDP clients, such as the Microsoft Remote Desktop Connection.
+garTemporaryCredential :: Lens' GrantAccessResponse (Maybe TemporaryCredential)
+garTemporaryCredential =
+    lens _garTemporaryCredential (\s a -> s { _garTemporaryCredential = a })
+
+instance ToPath GrantAccess where
+    toPath = const "/"
+
+instance ToQuery GrantAccess where
+    toQuery = const mempty
+
+instance ToHeaders GrantAccess
+
+instance ToJSON GrantAccess where
+    toJSON GrantAccess{..} = object
+        [ "InstanceId"        .= _gaInstanceId
+        , "ValidForInMinutes" .= _gaValidForInMinutes
+        ]
+
+instance AWSRequest GrantAccess where
+    type Sv GrantAccess = OpsWorks
+    type Rs GrantAccess = GrantAccessResponse
+
+    request  = post "GrantAccess"
+    response = jsonResponse
+
+instance FromJSON GrantAccessResponse where
+    parseJSON = withObject "GrantAccessResponse" $ \o -> GrantAccessResponse
+        <$> o .:? "TemporaryCredential"
diff --git a/gen/Network/AWS/OpsWorks/SetPermission.hs b/gen/Network/AWS/OpsWorks/SetPermission.hs
--- a/gen/Network/AWS/OpsWorks/SetPermission.hs
+++ b/gen/Network/AWS/OpsWorks/SetPermission.hs
@@ -102,8 +102,8 @@
 -- | The user's permission level, which must be set to one of the following
 -- strings. You cannot set your own permissions level.
 --
--- 'deny' 'show' 'deploy' 'manage' 'iam_only'  For more information on the permissions
--- associated with these levels, see <http://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html Managing User Permissions>
+-- 'deny'   'show'   'deploy'   'manage'   'iam_only'   For more information on the
+-- permissions associated with these levels, see <http://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html Managing User Permissions>
 spLevel :: Lens' SetPermission (Maybe Text)
 spLevel = lens _spLevel (\s a -> s { _spLevel = a })
 
diff --git a/gen/Network/AWS/OpsWorks/Types.hs b/gen/Network/AWS/OpsWorks/Types.hs
--- a/gen/Network/AWS/OpsWorks/Types.hs
+++ b/gen/Network/AWS/OpsWorks/Types.hs
@@ -176,6 +176,7 @@
     -- * AutoScalingThresholds
     , AutoScalingThresholds
     , autoScalingThresholds
+    , astAlarms
     , astCpuThreshold
     , astIgnoreMetricsTime
     , astInstanceCount
@@ -272,6 +273,14 @@
     -- * LayerAttributesKeys
     , LayerAttributesKeys (..)
 
+    -- * TemporaryCredential
+    , TemporaryCredential
+    , temporaryCredential
+    , tcInstanceId
+    , tcPassword
+    , tcUsername
+    , tcValidForInMinutes
+
     -- * VolumeConfiguration
     , VolumeConfiguration
     , volumeConfiguration
@@ -525,7 +534,7 @@
               -> JSONError
               -> Bool
         check (statusCode -> s) (awsErrorCode -> e)
-            | s == 400 && "Throttling" == e = True -- Throttling
+            | s == 400 && (Just "Throttling") == e = True -- Throttling
             | s == 500  = True -- General Server Error
             | s == 509  = True -- Limit Exceeded
             | s == 503  = True -- Service Unavailable
@@ -702,7 +711,8 @@
 
 -- | The command type:
 --
--- 'deploy' 'rollback' 'start' 'stop' 'restart' 'undeploy' 'update_dependencies' 'install_dependencies' 'update_custom_cookbooks' 'execute_recipes'
+-- 'deploy'   'rollback'   'start'   'stop'   'restart'   'undeploy'   'update_dependencies'
+-- 'install_dependencies'   'update_custom_cookbooks'   'execute_recipes'
 cType :: Lens' Command (Maybe Text)
 cType = lens _cType (\s a -> s { _cType = a })
 
@@ -1083,7 +1093,7 @@
 rdiDbInstanceIdentifier =
     lens _rdiDbInstanceIdentifier (\s a -> s { _rdiDbInstanceIdentifier = a })
 
--- | The database password.
+-- | AWS OpsWorks returns '*****FILTERED*****' instead of the actual value.
 rdiDbPassword :: Lens' RdsDbInstance (Maybe Text)
 rdiDbPassword = lens _rdiDbPassword (\s a -> s { _rdiDbPassword = a })
 
@@ -1752,7 +1762,8 @@
     toJSON = toJSONText
 
 data AutoScalingThresholds = AutoScalingThresholds
-    { _astCpuThreshold       :: Maybe Double
+    { _astAlarms             :: List "Alarms" Text
+    , _astCpuThreshold       :: Maybe Double
     , _astIgnoreMetricsTime  :: Maybe Nat
     , _astInstanceCount      :: Maybe Int
     , _astLoadThreshold      :: Maybe Double
@@ -1764,6 +1775,8 @@
 --
 -- The fields accessible through corresponding lenses are:
 --
+-- * 'astAlarms' @::@ ['Text']
+--
 -- * 'astCpuThreshold' @::@ 'Maybe' 'Double'
 --
 -- * 'astIgnoreMetricsTime' @::@ 'Maybe' 'Natural'
@@ -1784,20 +1797,30 @@
     , _astCpuThreshold       = Nothing
     , _astMemoryThreshold    = Nothing
     , _astLoadThreshold      = Nothing
+    , _astAlarms             = mempty
     }
 
+-- | Custom Cloudwatch auto scaling alarms, to be used as thresholds. This
+-- parameter takes a list of up to five alarm names, which are case sensitive
+-- and must be in the same region as the stack.
+--
+-- To use custom alarms, you must update your service role to allow 'cloudwatch:DescribeAlarms'. You can either have AWS OpsWorks update the role for you when you first use
+-- this feature or you can edit the role manually. For more information, see <http://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-servicerole.html Allowing AWS OpsWorks to Act on Your Behalf>.
+astAlarms :: Lens' AutoScalingThresholds [Text]
+astAlarms = lens _astAlarms (\s a -> s { _astAlarms = a }) . _List
+
 -- | The CPU utilization threshold, as a percent of the available CPU.
 astCpuThreshold :: Lens' AutoScalingThresholds (Maybe Double)
 astCpuThreshold = lens _astCpuThreshold (\s a -> s { _astCpuThreshold = a })
 
 -- | The amount of time (in minutes) after a scaling event occurs that AWS
--- OpsWorks should ignore metrics and not raise any additional scaling events.
--- For example, AWS OpsWorks adds new instances following an upscaling event but
--- the instances won't start reducing the load until they have been booted and
+-- OpsWorks should ignore metrics and suppress additional scaling events. For
+-- example, AWS OpsWorks adds new instances following an upscaling event but the
+-- instances won't start reducing the load until they have been booted and
 -- configured. There is no point in raising additional scaling events during
 -- that operation, which typically takes several minutes. 'IgnoreMetricsTime'
--- allows you to direct AWS OpsWorks to not raise any scaling events long enough
--- to get the new instances online.
+-- allows you to direct AWS OpsWorks to suppress scaling events long enough to
+-- get the new instances online.
 astIgnoreMetricsTime :: Lens' AutoScalingThresholds (Maybe Natural)
 astIgnoreMetricsTime =
     lens _astIgnoreMetricsTime (\s a -> s { _astIgnoreMetricsTime = a })
@@ -1825,7 +1848,8 @@
 
 instance FromJSON AutoScalingThresholds where
     parseJSON = withObject "AutoScalingThresholds" $ \o -> AutoScalingThresholds
-        <$> o .:? "CpuThreshold"
+        <$> o .:? "Alarms" .!= mempty
+        <*> o .:? "CpuThreshold"
         <*> o .:? "IgnoreMetricsTime"
         <*> o .:? "InstanceCount"
         <*> o .:? "LoadThreshold"
@@ -1840,6 +1864,7 @@
         , "CpuThreshold"       .= _astCpuThreshold
         , "MemoryThreshold"    .= _astMemoryThreshold
         , "LoadThreshold"      .= _astLoadThreshold
+        , "Alarms"             .= _astAlarms
         ]
 
 data App = App
@@ -2295,11 +2320,14 @@
     , _sRevision = Nothing
     }
 
--- | This parameter depends on the repository type.
+-- | When included in a request, the parameter depends on the repository type.
 --
 -- For Amazon S3 bundles, set 'Password' to the appropriate IAM secret access
 -- key. For HTTP bundles and Subversion repositories, set 'Password' to the
 -- password.  For more information on how to safely handle IAM credentials, see <http://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html >.
+--
+-- In responses, AWS OpsWorks returns '*****FILTERED*****' instead of the actual
+-- value.
 sPassword :: Lens' Source (Maybe Text)
 sPassword = lens _sPassword (\s a -> s { _sPassword = a })
 
@@ -2310,7 +2338,10 @@
 sRevision :: Lens' Source (Maybe Text)
 sRevision = lens _sRevision (\s a -> s { _sRevision = a })
 
--- | The repository's SSH key.
+-- | In requests, the repository's SSH key.
+--
+-- In responses, AWS OpsWorks returns '*****FILTERED*****' instead of the actual
+-- value.
 sSshKey :: Lens' Source (Maybe Text)
 sSshKey = lens _sSshKey (\s a -> s { _sSshKey = a })
 
@@ -2631,6 +2662,68 @@
 instance ToJSON LayerAttributesKeys where
     toJSON = toJSONText
 
+data TemporaryCredential = TemporaryCredential
+    { _tcInstanceId        :: Maybe Text
+    , _tcPassword          :: Maybe Text
+    , _tcUsername          :: Maybe Text
+    , _tcValidForInMinutes :: Maybe Int
+    } deriving (Eq, Ord, Read, Show)
+
+-- | 'TemporaryCredential' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'tcInstanceId' @::@ 'Maybe' 'Text'
+--
+-- * 'tcPassword' @::@ 'Maybe' 'Text'
+--
+-- * 'tcUsername' @::@ 'Maybe' 'Text'
+--
+-- * 'tcValidForInMinutes' @::@ 'Maybe' 'Int'
+--
+temporaryCredential :: TemporaryCredential
+temporaryCredential = TemporaryCredential
+    { _tcUsername          = Nothing
+    , _tcPassword          = Nothing
+    , _tcValidForInMinutes = Nothing
+    , _tcInstanceId        = Nothing
+    }
+
+-- | The instance's AWS OpsWorks ID.
+tcInstanceId :: Lens' TemporaryCredential (Maybe Text)
+tcInstanceId = lens _tcInstanceId (\s a -> s { _tcInstanceId = a })
+
+-- | The password.
+tcPassword :: Lens' TemporaryCredential (Maybe Text)
+tcPassword = lens _tcPassword (\s a -> s { _tcPassword = a })
+
+-- | The user name.
+tcUsername :: Lens' TemporaryCredential (Maybe Text)
+tcUsername = lens _tcUsername (\s a -> s { _tcUsername = a })
+
+-- | The length of time (in minutes) that the grant is valid. When the grant
+-- expires, at the end of this period, the user will no longer be able to use
+-- the credentials to log in. If they are logged in at the time, they will be
+-- automatically logged out.
+tcValidForInMinutes :: Lens' TemporaryCredential (Maybe Int)
+tcValidForInMinutes =
+    lens _tcValidForInMinutes (\s a -> s { _tcValidForInMinutes = a })
+
+instance FromJSON TemporaryCredential where
+    parseJSON = withObject "TemporaryCredential" $ \o -> TemporaryCredential
+        <$> o .:? "InstanceId"
+        <*> o .:? "Password"
+        <*> o .:? "Username"
+        <*> o .:? "ValidForInMinutes"
+
+instance ToJSON TemporaryCredential where
+    toJSON TemporaryCredential{..} = object
+        [ "Username"          .= _tcUsername
+        , "Password"          .= _tcPassword
+        , "ValidForInMinutes" .= _tcValidForInMinutes
+        , "InstanceId"        .= _tcInstanceId
+        ]
+
 data VolumeConfiguration = VolumeConfiguration
     { _vcIops          :: Maybe Int
     , _vcMountPoint    :: Text
@@ -2841,8 +2934,8 @@
 
 -- | The user's permission level, which must be the following:
 --
--- 'deny' 'show' 'deploy' 'manage' 'iam_only'  For more information on the permissions
--- associated with these levels, see <http://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html Managing User Permissions>
+-- 'deny'   'show'   'deploy'   'manage'   'iam_only'   For more information on the
+-- permissions associated with these levels, see <http://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html Managing User Permissions>
 pLevel :: Lens' Permission (Maybe Text)
 pLevel = lens _pLevel (\s a -> s { _pLevel = a })
 
@@ -2900,7 +2993,8 @@
 evKey = lens _evKey (\s a -> s { _evKey = a })
 
 -- | (Optional) Whether the variable's value will be returned by the 'DescribeApps'
--- action. To conceal an environment variable's value, set 'Secure' to 'true'. 'DescribeApps' then returns '**Filtered**' instead of the actual value. The default value for 'Secure' is 'false'.
+-- action. To conceal an environment variable's value, set 'Secure' to 'true'. 'DescribeApps' then returns '*****FILTERED*****' instead of the actual value. The default
+-- value for 'Secure' is 'false'.
 evSecure :: Lens' EnvironmentVariable (Maybe Bool)
 evSecure = lens _evSecure (\s a -> s { _evSecure = a })
 
@@ -3015,6 +3109,10 @@
     }
 
 -- | The layer attributes.
+--
+-- For the 'HaproxyStatsPassword', 'MysqlRootPassword', and 'GangliaPassword'
+-- attributes, AWS OpsWorks returns '*****FILTERED*****' instead of the actual
+-- value
 lAttributes :: Lens' Layer (HashMap LayerAttributesKeys Text)
 lAttributes = lens _lAttributes (\s a -> s { _lAttributes = a }) . _Map
 
@@ -3486,13 +3584,14 @@
 sCustomCookbooksSource =
     lens _sCustomCookbooksSource (\s a -> s { _sCustomCookbooksSource = a })
 
--- | A string that contains user-defined, custom JSON. It is used to override the
--- corresponding default stack configuration JSON values. The string should be
--- in the following format and must escape characters such as '"'.:
+-- | A string that contains user-defined, custom JSON. It can be used to override
+-- the corresponding default stack configuration JSON values or to pass data to
+-- recipes. The string should be in the following format and must escape
+-- characters such as '"'.:
 --
 -- '"{\"key1\": \"value1\", \"key2\": \"value2\",...}"'
 --
--- For more information on custom JSON, see <http://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html Use Custom JSON to Modify the StackConfiguration JSON>.
+-- For more information on custom JSON, see <http://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html Use Custom JSON to Modify the StackConfiguration Attributes>.
 sCustomJson :: Lens' Stack (Maybe Text)
 sCustomJson = lens _sCustomJson (\s a -> s { _sCustomJson = a })
 
@@ -3639,7 +3738,7 @@
 -- | The arguments of those commands that take arguments. It should be set to a
 -- JSON object with the following format:
 --
--- '{"arg_name1" : ["value1", "value2", ...], "arg_name2" : ["value1", "value2",...], ...}'
+-- '{"arg_name1" : ["value1", "value2", ...], "arg_name2" : ["value1","value2", ...], ...}'
 --
 -- The 'update_dependencies' command takes two arguments:
 --
@@ -3661,14 +3760,19 @@
 -- 'execute_recipes': Execute one or more recipes. To specify the recipes, set
 -- an 'Args' parameter named 'recipes' to the list of recipes to be executed. For
 -- example, to execute 'phpapp::appsetup', set 'Args' to '{"recipes":["phpapp::appsetup"]}'.  'install_dependencies': Install the stack's dependencies.  'update_custom_cookbooks': Update the stack's custom cookbooks.  'update_dependencies': Update the
--- stack's dependencies.  For apps, the following commands are available:
+-- stack's dependencies.  The update_dependencies and install_dependencies
+-- commands are supported only for Linux instances. You can run the commands
+-- successfully on Windows instances, but they do nothing. For apps, the
+-- following commands are available:
 --
--- 'deploy': Deploy an app. Rails apps have an optional 'Args' parameter named 'migrate'. Set 'Args' to {"migrate":["true"]} to migrate the database. The default
--- setting is {"migrate":["false"]}.  'rollback' Roll the app back to the previous
--- version. When you update an app, AWS OpsWorks stores the previous version, up
--- to a maximum of five versions. You can use this command to roll an app back
--- as many as four versions.  'start': Start the app's web or application server.  'stop': Stop the app's web or application server.  'restart': Restart the app's
--- web or application server.  'undeploy': Undeploy the app.
+-- 'deploy': Deploy an app. Ruby on Rails apps have an optional 'Args' parameter
+-- named 'migrate'. Set 'Args' to {"migrate":["true"]} to migrate the database. The
+-- default setting is {"migrate":["false"]}.  'rollback' Roll the app back to the
+-- previous version. When you update an app, AWS OpsWorks stores the previous
+-- version, up to a maximum of five versions. You can use this command to roll
+-- an app back as many as four versions.  'start': Start the app's web or
+-- application server.  'stop': Stop the app's web or application server.  'restart': Restart the app's web or application server.
+-- 'undeploy': Undeploy the app.
 dcName :: Lens' DeploymentCommand DeploymentCommandName
 dcName = lens _dcName (\s a -> s { _dcName = a })
 
@@ -4134,7 +4238,7 @@
 
 -- | The instance status:
 --
--- 'booting' 'connection_lost' 'online' 'pending' 'rebooting' 'requested' 'running_setup' 'setup_failed' 'shutting_down' 'start_failed' 'stopped' 'stopping' 'terminated' 'terminating'
+-- 'booting'   'connection_lost'   'online'   'pending'   'rebooting'   'requested'   'running_setup'   'setup_failed'   'shutting_down'   'start_failed'   'stopped'   'stopping'   'terminated'   'terminating'
 iStatus :: Lens' Instance (Maybe Text)
 iStatus = lens _iStatus (\s a -> s { _iStatus = a })
 
@@ -4302,13 +4406,14 @@
 dCreatedAt :: Lens' Deployment (Maybe Text)
 dCreatedAt = lens _dCreatedAt (\s a -> s { _dCreatedAt = a })
 
--- | A string that contains user-defined custom JSON. It is used to override the
--- corresponding default stack configuration JSON values for stack. The string
--- should be in the following format and must escape characters such as '"'.:
+-- | A string that contains user-defined custom JSON. It can be used to override
+-- the corresponding default stack configuration attribute values for stack or
+-- to pass data to recipes. The string should be in the following format and
+-- must escape characters such as '"'.:
 --
 -- '"{\"key1\": \"value1\", \"key2\": \"value2\",...}"'
 --
--- For more information on custom JSON, see <http://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html Use Custom JSON to Modify the StackConfiguration JSON>.
+-- For more information on custom JSON, see <http://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html Use Custom JSON to Modify the StackConfiguration Attributes>.
 dCustomJson :: Lens' Deployment (Maybe Text)
 dCustomJson = lens _dCustomJson (\s a -> s { _dCustomJson = a })
 
diff --git a/gen/Network/AWS/OpsWorks/UpdateInstance.hs b/gen/Network/AWS/OpsWorks/UpdateInstance.hs
--- a/gen/Network/AWS/OpsWorks/UpdateInstance.hs
+++ b/gen/Network/AWS/OpsWorks/UpdateInstance.hs
@@ -130,7 +130,8 @@
 uiArchitecture :: Lens' UpdateInstance (Maybe Architecture)
 uiArchitecture = lens _uiArchitecture (\s a -> s { _uiArchitecture = a })
 
--- | For load-based or time-based instances, the type.
+-- | For load-based or time-based instances, the type. Windows stacks can use only
+-- time-based instances.
 uiAutoScalingType :: Lens' UpdateInstance (Maybe AutoScalingType)
 uiAutoScalingType =
     lens _uiAutoScalingType (\s a -> s { _uiAutoScalingType = a })
@@ -172,11 +173,16 @@
 
 -- | The instance's operating system, which must be set to one of the following.
 --
--- Standard operating systems: An Amazon Linux version such as 'Amazon Linux2014.09', 'Ubuntu 12.04 LTS', or 'Ubuntu 14.04 LTS'. Custom AMIs: 'Custom'   The
--- default option is the current Amazon Linux version, such as 'Amazon Linux2014.09'. If you set this parameter to 'Custom', you must use the 'CreateInstance'
--- action's AmiId parameter to specify the custom AMI that you want to use. For
--- more information on the standard operating systems, see <http://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-os.html Operating Systems>For
--- more information on how to use custom AMIs with OpsWorks, see <http://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html Using CustomAMIs>.
+-- For Windows stacks: Microsoft Windows Server 2012 R2.
+--
+-- For Linux stacks:
+--
+-- Standard operating systems: an Amazon Linux version such as 'Amazon Linux2014.09', 'Ubuntu 12.04 LTS', or 'Ubuntu 14.04 LTS'. Custom AMIs: 'Custom'   The
+-- default option is the current Amazon Linux version. If you set this parameter
+-- to 'Custom', you must use the 'CreateInstance' action's AmiId parameter to
+-- specify the custom AMI that you want to use. For more information on the
+-- standard operating systems, see <http://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-os.html Operating Systems>For more information on how
+-- to use custom AMIs with OpsWorks, see <http://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html Using Custom AMIs>.
 uiOs :: Lens' UpdateInstance (Maybe Text)
 uiOs = lens _uiOs (\s a -> s { _uiOs = a })
 
diff --git a/gen/Network/AWS/OpsWorks/UpdateStack.hs b/gen/Network/AWS/OpsWorks/UpdateStack.hs
--- a/gen/Network/AWS/OpsWorks/UpdateStack.hs
+++ b/gen/Network/AWS/OpsWorks/UpdateStack.hs
@@ -167,13 +167,14 @@
 usCustomCookbooksSource =
     lens _usCustomCookbooksSource (\s a -> s { _usCustomCookbooksSource = a })
 
--- | A string that contains user-defined, custom JSON. It is used to override the
--- corresponding default stack configuration JSON values. The string should be
--- in the following format and must escape characters such as '"'.:
+-- | A string that contains user-defined, custom JSON. It can be used to override
+-- the corresponding default stack configuration JSON values or to pass data to
+-- recipes. The string should be in the following format and must escape
+-- characters such as '"'.:
 --
 -- '"{\"key1\": \"value1\", \"key2\": \"value2\",...}"'
 --
--- For more information on custom JSON, see <http://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html Use Custom JSON to Modify the StackConfiguration JSON>.
+-- For more information on custom JSON, see <http://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html Use Custom JSON to Modify the StackConfiguration Attributes>.
 usCustomJson :: Lens' UpdateStack (Maybe Text)
 usCustomJson = lens _usCustomJson (\s a -> s { _usCustomJson = a })
 
@@ -195,9 +196,8 @@
 
 -- | The stack's operating system, which must be set to one of the following.
 --
--- Standard operating systems: an Amazon Linux version such as 'Amazon Linux2014.09', 'Ubuntu 12.04 LTS', or 'Ubuntu 14.04 LTS'. Custom AMIs: 'Custom'. You
--- specify the custom AMI you want to use when you create instances.   The
--- default option is the current Amazon Linux version.
+-- Standard Linux operating systems: an Amazon Linux version such as 'AmazonLinux 2014.09', 'Ubuntu 12.04 LTS', or 'Ubuntu 14.04 LTS'. Custom Linux AMIs: 'Custom'. You specify the custom AMI you want to use when you create instances. Microsoft Windows Server 2012 R2.
+-- The default option is the current Amazon Linux version.
 usDefaultOs :: Lens' UpdateStack (Maybe Text)
 usDefaultOs = lens _usDefaultOs (\s a -> s { _usDefaultOs = a })
 
@@ -231,9 +231,8 @@
 -- theme is used to generate host names for the stack's instances. By default, 'HostnameTheme' is set to 'Layer_Dependent', which creates host names by appending integers to
 -- the layer's short name. The other themes are:
 --
--- 'Baked_Goods' 'Clouds' 'Europe_Cities' 'Fruits' 'Greek_Deities' 'Legendary_creatures_from_Japan' 'Planets_and_Moons' 'Roman_Deities' 'Scottish_Islands' 'US_Cities' 'Wild_Cats'  To
--- obtain a generated host name, call 'GetHostNameSuggestion', which returns a
--- host name based on the current theme.
+-- 'Baked_Goods'   'Clouds'   'Europe_Cities'   'Fruits'   'Greek_Deities'   'Legendary_creatures_from_Japan'   'Planets_and_Moons'   'Roman_Deities'   'Scottish_Islands'   'US_Cities'   'Wild_Cats'   To obtain a generated host name, call 'GetHostNameSuggestion', which returns
+-- a host name based on the current theme.
 usHostnameTheme :: Lens' UpdateStack (Maybe Text)
 usHostnameTheme = lens _usHostnameTheme (\s a -> s { _usHostnameTheme = a })
 
