diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -365,9 +365,3 @@
 for such a notice.
 
 You may add additional accurate notices of copyright ownership.
-
-Exhibit B - "Incompatible With Secondary Licenses" Notice
----------------------------------------------------------
-
-  This Source Code Form is "Incompatible With Secondary Licenses", as
-  defined by the Mozilla Public License, v. 2.0.
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`1.3.2`
+`1.3.3`
 
 
 ## Description
diff --git a/amazonka-cloudformation.cabal b/amazonka-cloudformation.cabal
--- a/amazonka-cloudformation.cabal
+++ b/amazonka-cloudformation.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-cloudformation
-version:               1.3.2
+version:               1.3.3
 synopsis:              Amazon CloudFormation SDK.
 homepage:              https://github.com/brendanhay/amazonka
 bug-reports:           https://github.com/brendanhay/amazonka/issues
@@ -65,6 +65,7 @@
         , Network.AWS.CloudFormation.CancelUpdateStack
         , Network.AWS.CloudFormation.CreateStack
         , Network.AWS.CloudFormation.DeleteStack
+        , Network.AWS.CloudFormation.DescribeAccountLimits
         , Network.AWS.CloudFormation.DescribeStackEvents
         , Network.AWS.CloudFormation.DescribeStackResource
         , Network.AWS.CloudFormation.DescribeStackResources
@@ -87,7 +88,7 @@
         , Network.AWS.CloudFormation.Types.Sum
 
     build-depends:
-          amazonka-core == 1.3.2.*
+          amazonka-core == 1.3.3.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-cloudformation-test
@@ -107,9 +108,9 @@
         , Test.AWS.CloudFormation.Internal
 
     build-depends:
-          amazonka-core == 1.3.2.*
-        , amazonka-test == 1.3.2.*
-        , amazonka-cloudformation == 1.3.2.*
+          amazonka-core == 1.3.3.*
+        , amazonka-test == 1.3.3.*
+        , amazonka-cloudformation == 1.3.3.*
         , base
         , bytestring
         , lens
diff --git a/fixture/DescribeAccountLimits.yaml b/fixture/DescribeAccountLimits.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeAccountLimits.yaml
diff --git a/fixture/DescribeAccountLimitsResponse.proto b/fixture/DescribeAccountLimitsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeAccountLimitsResponse.proto
diff --git a/gen/Network/AWS/CloudFormation.hs b/gen/Network/AWS/CloudFormation.hs
--- a/gen/Network/AWS/CloudFormation.hs
+++ b/gen/Network/AWS/CloudFormation.hs
@@ -94,6 +94,9 @@
     -- ** ListStacks (Paginated)
     , module Network.AWS.CloudFormation.ListStacks
 
+    -- ** DescribeAccountLimits
+    , module Network.AWS.CloudFormation.DescribeAccountLimits
+
     -- ** DescribeStackResources
     , module Network.AWS.CloudFormation.DescribeStackResources
 
@@ -126,6 +129,12 @@
     -- ** StackStatus
     , StackStatus (..)
 
+    -- ** AccountLimit
+    , AccountLimit
+    , accountLimit
+    , alValue
+    , alName
+
     -- ** Output
     , Output
     , output
@@ -254,6 +263,7 @@
 import           Network.AWS.CloudFormation.CancelUpdateStack
 import           Network.AWS.CloudFormation.CreateStack
 import           Network.AWS.CloudFormation.DeleteStack
+import           Network.AWS.CloudFormation.DescribeAccountLimits
 import           Network.AWS.CloudFormation.DescribeStackEvents
 import           Network.AWS.CloudFormation.DescribeStackResource
 import           Network.AWS.CloudFormation.DescribeStackResources
diff --git a/gen/Network/AWS/CloudFormation/CancelUpdateStack.hs b/gen/Network/AWS/CloudFormation/CancelUpdateStack.hs
--- a/gen/Network/AWS/CloudFormation/CancelUpdateStack.hs
+++ b/gen/Network/AWS/CloudFormation/CancelUpdateStack.hs
@@ -19,10 +19,10 @@
 -- Portability : non-portable (GHC extensions)
 --
 -- Cancels an update on the specified stack. If the call completes
--- successfully, the stack will roll back the update and revert to the
+-- successfully, the stack rolls back the update and reverts to the
 -- previous stack configuration.
 --
--- Only stacks that are in the UPDATE_IN_PROGRESS state can be canceled.
+-- You can cancel only stacks that are in the UPDATE_IN_PROGRESS state.
 --
 -- /See:/ <http://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CancelUpdateStack.html AWS API Reference> for CancelUpdateStack.
 module Network.AWS.CloudFormation.CancelUpdateStack
@@ -44,7 +44,7 @@
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | The input for CancelUpdateStack action.
+-- | The input for the CancelUpdateStack action.
 --
 -- /See:/ 'cancelUpdateStack' smart constructor.
 newtype CancelUpdateStack = CancelUpdateStack'
diff --git a/gen/Network/AWS/CloudFormation/CreateStack.hs b/gen/Network/AWS/CloudFormation/CreateStack.hs
--- a/gen/Network/AWS/CloudFormation/CreateStack.hs
+++ b/gen/Network/AWS/CloudFormation/CreateStack.hs
@@ -38,6 +38,7 @@
     , csTemplateURL
     , csCapabilities
     , csOnFailure
+    , csResourceTypes
     , csTags
     , csTimeoutInMinutes
     , csStackName
@@ -69,6 +70,7 @@
     , _csTemplateURL      :: !(Maybe Text)
     , _csCapabilities     :: !(Maybe [Capability])
     , _csOnFailure        :: !(Maybe OnFailure)
+    , _csResourceTypes    :: !(Maybe [Text])
     , _csTags             :: !(Maybe [Tag])
     , _csTimeoutInMinutes :: !(Maybe Nat)
     , _csStackName        :: !Text
@@ -96,6 +98,8 @@
 --
 -- * 'csOnFailure'
 --
+-- * 'csResourceTypes'
+--
 -- * 'csTags'
 --
 -- * 'csTimeoutInMinutes'
@@ -115,6 +119,7 @@
     , _csTemplateURL = Nothing
     , _csCapabilities = Nothing
     , _csOnFailure = Nothing
+    , _csResourceTypes = Nothing
     , _csTags = Nothing
     , _csTimeoutInMinutes = Nothing
     , _csStackName = pStackName_
@@ -164,8 +169,8 @@
 csTemplateBody = lens _csTemplateBody (\ s a -> s{_csTemplateBody = a});
 
 -- | Location of file containing the template body. The URL must point to a
--- template (max size: 460,800 bytes) located in an S3 bucket in the same
--- region as the stack. For more information, go to the
+-- template (max size: 460,800 bytes) that is located in an Amazon S3
+-- bucket. For more information, go to the
 -- <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html Template Anatomy>
 -- in the AWS CloudFormation User Guide.
 --
@@ -204,6 +209,24 @@
 csOnFailure :: Lens' CreateStack (Maybe OnFailure)
 csOnFailure = lens _csOnFailure (\ s a -> s{_csOnFailure = a});
 
+-- | The template resource types that you have permissions to work with for
+-- this create stack action, such as 'AWS::EC2::Instance', 'AWS::EC2::*',
+-- or 'Custom::MyCustomInstance'. Use the following syntax to describe
+-- template resource types: 'AWS::*' (for all AWS resource), 'Custom::*'
+-- (for all custom resources), 'Custom::logical_ID' (for a specific custom
+-- resource), 'AWS::service_name::*' (for all resources of a particular AWS
+-- service), and 'AWS::service_name::resource_logical_ID' (for a specific
+-- AWS resource).
+--
+-- If the list of resource types doesn\'t include a resource that you\'re
+-- creating, the stack creation fails. By default, AWS CloudFormation
+-- grants permissions to all resource types. AWS Identity and Access
+-- Management (IAM) uses this parameter for AWS CloudFormation-specific
+-- condition keys in IAM policies. For more information, see
+-- <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html Controlling Access with AWS Identity and Access Management>.
+csResourceTypes :: Lens' CreateStack [Text]
+csResourceTypes = lens _csResourceTypes (\ s a -> s{_csResourceTypes = a}) . _Default . _Coerce;
+
 -- | A set of user-defined 'Tags' to associate with this stack, represented
 -- by key\/value pairs. Tags defined for the stack are propagated to EC2
 -- resources that are created as part of the stack. A maximum number of 10
@@ -259,6 +282,8 @@
                "Capabilities" =:
                  toQuery (toQueryList "member" <$> _csCapabilities),
                "OnFailure" =: _csOnFailure,
+               "ResourceTypes" =:
+                 toQuery (toQueryList "member" <$> _csResourceTypes),
                "Tags" =: toQuery (toQueryList "member" <$> _csTags),
                "TimeoutInMinutes" =: _csTimeoutInMinutes,
                "StackName" =: _csStackName]
diff --git a/gen/Network/AWS/CloudFormation/DescribeAccountLimits.hs b/gen/Network/AWS/CloudFormation/DescribeAccountLimits.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/CloudFormation/DescribeAccountLimits.hs
@@ -0,0 +1,138 @@
+{-# 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.CloudFormation.DescribeAccountLimits
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves your account\'s AWS CloudFormation limits, such as the maximum
+-- number of stacks that you can create in your account.
+--
+-- /See:/ <http://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeAccountLimits.html AWS API Reference> for DescribeAccountLimits.
+module Network.AWS.CloudFormation.DescribeAccountLimits
+    (
+    -- * Creating a Request
+      describeAccountLimits
+    , DescribeAccountLimits
+    -- * Request Lenses
+    , dalNextToken
+
+    -- * Destructuring the Response
+    , describeAccountLimitsResponse
+    , DescribeAccountLimitsResponse
+    -- * Response Lenses
+    , dalrsNextToken
+    , dalrsAccountLimits
+    , dalrsResponseStatus
+    ) where
+
+import           Network.AWS.CloudFormation.Types
+import           Network.AWS.CloudFormation.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | The input for the DescribeAccountLimits action.
+--
+-- /See:/ 'describeAccountLimits' smart constructor.
+newtype DescribeAccountLimits = DescribeAccountLimits'
+    { _dalNextToken :: Maybe Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeAccountLimits' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dalNextToken'
+describeAccountLimits
+    :: DescribeAccountLimits
+describeAccountLimits =
+    DescribeAccountLimits'
+    { _dalNextToken = Nothing
+    }
+
+-- | A string that identifies the next page of limits that you want to
+-- retrieve.
+dalNextToken :: Lens' DescribeAccountLimits (Maybe Text)
+dalNextToken = lens _dalNextToken (\ s a -> s{_dalNextToken = a});
+
+instance AWSRequest DescribeAccountLimits where
+        type Rs DescribeAccountLimits =
+             DescribeAccountLimitsResponse
+        request = postQuery cloudFormation
+        response
+          = receiveXMLWrapper "DescribeAccountLimitsResult"
+              (\ s h x ->
+                 DescribeAccountLimitsResponse' <$>
+                   (x .@? "NextToken") <*>
+                     (x .@? "AccountLimits" .!@ mempty >>=
+                        may (parseXMLList "member"))
+                     <*> (pure (fromEnum s)))
+
+instance ToHeaders DescribeAccountLimits where
+        toHeaders = const mempty
+
+instance ToPath DescribeAccountLimits where
+        toPath = const "/"
+
+instance ToQuery DescribeAccountLimits where
+        toQuery DescribeAccountLimits'{..}
+          = mconcat
+              ["Action" =: ("DescribeAccountLimits" :: ByteString),
+               "Version" =: ("2010-05-15" :: ByteString),
+               "NextToken" =: _dalNextToken]
+
+-- | The output for the DescribeAccountLimits action.
+--
+-- /See:/ 'describeAccountLimitsResponse' smart constructor.
+data DescribeAccountLimitsResponse = DescribeAccountLimitsResponse'
+    { _dalrsNextToken      :: !(Maybe Text)
+    , _dalrsAccountLimits  :: !(Maybe [AccountLimit])
+    , _dalrsResponseStatus :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeAccountLimitsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dalrsNextToken'
+--
+-- * 'dalrsAccountLimits'
+--
+-- * 'dalrsResponseStatus'
+describeAccountLimitsResponse
+    :: Int -- ^ 'dalrsResponseStatus'
+    -> DescribeAccountLimitsResponse
+describeAccountLimitsResponse pResponseStatus_ =
+    DescribeAccountLimitsResponse'
+    { _dalrsNextToken = Nothing
+    , _dalrsAccountLimits = Nothing
+    , _dalrsResponseStatus = pResponseStatus_
+    }
+
+-- | A string that identifies the next page of limits. If no additional page
+-- exists, this value is null.
+dalrsNextToken :: Lens' DescribeAccountLimitsResponse (Maybe Text)
+dalrsNextToken = lens _dalrsNextToken (\ s a -> s{_dalrsNextToken = a});
+
+-- | An account limit structure that contain a list of AWS CloudFormation
+-- account limits and their values.
+dalrsAccountLimits :: Lens' DescribeAccountLimitsResponse [AccountLimit]
+dalrsAccountLimits = lens _dalrsAccountLimits (\ s a -> s{_dalrsAccountLimits = a}) . _Default . _Coerce;
+
+-- | The response status code.
+dalrsResponseStatus :: Lens' DescribeAccountLimitsResponse Int
+dalrsResponseStatus = lens _dalrsResponseStatus (\ s a -> s{_dalrsResponseStatus = a});
diff --git a/gen/Network/AWS/CloudFormation/EstimateTemplateCost.hs b/gen/Network/AWS/CloudFormation/EstimateTemplateCost.hs
--- a/gen/Network/AWS/CloudFormation/EstimateTemplateCost.hs
+++ b/gen/Network/AWS/CloudFormation/EstimateTemplateCost.hs
@@ -87,8 +87,8 @@
 etcTemplateBody = lens _etcTemplateBody (\ s a -> s{_etcTemplateBody = a});
 
 -- | Location of file containing the template body. The URL must point to a
--- template located in an S3 bucket in the same region as the stack. For
--- more information, go to
+-- template that is located in an Amazon S3 bucket. For more information,
+-- go to
 -- <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html Template Anatomy>
 -- in the AWS CloudFormation User Guide.
 --
diff --git a/gen/Network/AWS/CloudFormation/GetTemplateSummary.hs b/gen/Network/AWS/CloudFormation/GetTemplateSummary.hs
--- a/gen/Network/AWS/CloudFormation/GetTemplateSummary.hs
+++ b/gen/Network/AWS/CloudFormation/GetTemplateSummary.hs
@@ -51,6 +51,7 @@
     , gtsrsMetadata
     , gtsrsDescription
     , gtsrsCapabilities
+    , gtsrsResourceTypes
     , gtsrsResponseStatus
     ) where
 
@@ -99,8 +100,8 @@
 gtsTemplateBody = lens _gtsTemplateBody (\ s a -> s{_gtsTemplateBody = a});
 
 -- | Location of file containing the template body. The URL must point to a
--- template (max size: 460,800 bytes) located in an Amazon S3 bucket. For
--- more information about templates, see
+-- template (max size: 460,800 bytes) that is located in an Amazon S3
+-- bucket. For more information about templates, see
 -- <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html Template Anatomy>
 -- in the AWS CloudFormation User Guide.
 --
@@ -136,6 +137,9 @@
                      <*>
                      (x .@? "Capabilities" .!@ mempty >>=
                         may (parseXMLList "member"))
+                     <*>
+                     (x .@? "ResourceTypes" .!@ mempty >>=
+                        may (parseXMLList "member"))
                      <*> (pure (fromEnum s)))
 
 instance ToHeaders GetTemplateSummary where
@@ -163,6 +167,7 @@
     , _gtsrsMetadata           :: !(Maybe Text)
     , _gtsrsDescription        :: !(Maybe Text)
     , _gtsrsCapabilities       :: !(Maybe [Capability])
+    , _gtsrsResourceTypes      :: !(Maybe [Text])
     , _gtsrsResponseStatus     :: !Int
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
@@ -182,6 +187,8 @@
 --
 -- * 'gtsrsCapabilities'
 --
+-- * 'gtsrsResourceTypes'
+--
 -- * 'gtsrsResponseStatus'
 getTemplateSummaryResponse
     :: Int -- ^ 'gtsrsResponseStatus'
@@ -194,6 +201,7 @@
     , _gtsrsMetadata = Nothing
     , _gtsrsDescription = Nothing
     , _gtsrsCapabilities = Nothing
+    , _gtsrsResourceTypes = Nothing
     , _gtsrsResponseStatus = pResponseStatus_
     }
 
@@ -228,6 +236,17 @@
 -- InsufficientCapabilities error.
 gtsrsCapabilities :: Lens' GetTemplateSummaryResponse [Capability]
 gtsrsCapabilities = lens _gtsrsCapabilities (\ s a -> s{_gtsrsCapabilities = a}) . _Default . _Coerce;
+
+-- | A list of all the template resource types that are defined in the
+-- template, such as 'AWS::EC2::Instance', 'AWS::Dynamo::Table', and
+-- 'Custom::MyCustomInstance'. Use the following syntax to describe
+-- template resource types: 'AWS::*' (for all AWS resources), 'Custom::*'
+-- (for all custom resources), 'Custom::logical_ID' (for a specific custom
+-- resource), 'AWS::service_name::*' (for all resources of a particular AWS
+-- service), and 'AWS::service_name::resource_logical_ID' (for a specific
+-- AWS resource).
+gtsrsResourceTypes :: Lens' GetTemplateSummaryResponse [Text]
+gtsrsResourceTypes = lens _gtsrsResourceTypes (\ s a -> s{_gtsrsResourceTypes = a}) . _Default . _Coerce;
 
 -- | The response status code.
 gtsrsResponseStatus :: Lens' GetTemplateSummaryResponse Int
diff --git a/gen/Network/AWS/CloudFormation/Types.hs b/gen/Network/AWS/CloudFormation/Types.hs
--- a/gen/Network/AWS/CloudFormation/Types.hs
+++ b/gen/Network/AWS/CloudFormation/Types.hs
@@ -35,6 +35,12 @@
     -- * StackStatus
     , StackStatus (..)
 
+    -- * AccountLimit
+    , AccountLimit
+    , accountLimit
+    , alValue
+    , alName
+
     -- * Output
     , Output
     , output
diff --git a/gen/Network/AWS/CloudFormation/Types/Product.hs b/gen/Network/AWS/CloudFormation/Types/Product.hs
--- a/gen/Network/AWS/CloudFormation/Types/Product.hs
+++ b/gen/Network/AWS/CloudFormation/Types/Product.hs
@@ -20,6 +20,43 @@
 import           Network.AWS.CloudFormation.Types.Sum
 import           Network.AWS.Prelude
 
+-- | The AccountLimit data type.
+--
+-- /See:/ 'accountLimit' smart constructor.
+data AccountLimit = AccountLimit'
+    { _alValue :: !(Maybe Int)
+    , _alName  :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AccountLimit' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'alValue'
+--
+-- * 'alName'
+accountLimit
+    :: AccountLimit
+accountLimit =
+    AccountLimit'
+    { _alValue = Nothing
+    , _alName = Nothing
+    }
+
+-- | The value that is associated with the account limit name.
+alValue :: Lens' AccountLimit (Maybe Int)
+alValue = lens _alValue (\ s a -> s{_alValue = a});
+
+-- | The name of the account limit. Currently, the only account limit is
+-- 'StackLimit'.
+alName :: Lens' AccountLimit (Maybe Text)
+alName = lens _alName (\ s a -> s{_alName = a});
+
+instance FromXML AccountLimit where
+        parseXML x
+          = AccountLimit' <$>
+              (x .@? "Value") <*> (x .@? "Name")
+
 -- | The Output data type.
 --
 -- /See:/ 'output' smart constructor.
@@ -331,7 +368,7 @@
 sStackId :: Lens' Stack (Maybe Text)
 sStackId = lens _sStackId (\ s a -> s{_sStackId = a});
 
--- | User defined description associated with the stack.
+-- | A user-defined description associated with the stack.
 sDescription :: Lens' Stack (Maybe Text)
 sDescription = lens _sDescription (\ s a -> s{_sDescription = a});
 
@@ -351,7 +388,7 @@
 sStackName :: Lens' Stack Text
 sStackName = lens _sStackName (\ s a -> s{_sStackName = a});
 
--- | Time at which the stack was created.
+-- | The time at which the stack was created.
 sCreationTime :: Lens' Stack UTCTime
 sCreationTime = lens _sCreationTime (\ s a -> s{_sCreationTime = a}) . _Time;
 
diff --git a/gen/Network/AWS/CloudFormation/UpdateStack.hs b/gen/Network/AWS/CloudFormation/UpdateStack.hs
--- a/gen/Network/AWS/CloudFormation/UpdateStack.hs
+++ b/gen/Network/AWS/CloudFormation/UpdateStack.hs
@@ -49,6 +49,7 @@
     , usTemplateBody
     , usTemplateURL
     , usCapabilities
+    , usResourceTypes
     , usStackName
 
     -- * Destructuring the Response
@@ -79,6 +80,7 @@
     , _usTemplateBody                :: !(Maybe Text)
     , _usTemplateURL                 :: !(Maybe Text)
     , _usCapabilities                :: !(Maybe [Capability])
+    , _usResourceTypes               :: !(Maybe [Text])
     , _usStackName                   :: !Text
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
@@ -106,6 +108,8 @@
 --
 -- * 'usCapabilities'
 --
+-- * 'usResourceTypes'
+--
 -- * 'usStackName'
 updateStack
     :: Text -- ^ 'usStackName'
@@ -122,6 +126,7 @@
     , _usTemplateBody = Nothing
     , _usTemplateURL = Nothing
     , _usCapabilities = Nothing
+    , _usResourceTypes = Nothing
     , _usStackName = pStackName_
     }
 
@@ -199,8 +204,8 @@
 usTemplateBody = lens _usTemplateBody (\ s a -> s{_usTemplateBody = a});
 
 -- | Location of file containing the template body. The URL must point to a
--- template located in an S3 bucket in the same region as the stack. For
--- more information, go to
+-- template that is located in an Amazon S3 bucket. For more information,
+-- go to
 -- <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html Template Anatomy>
 -- in the AWS CloudFormation User Guide.
 --
@@ -229,6 +234,19 @@
 usCapabilities :: Lens' UpdateStack [Capability]
 usCapabilities = lens _usCapabilities (\ s a -> s{_usCapabilities = a}) . _Default . _Coerce;
 
+-- | The template resource types that you have permissions to work with for
+-- this update stack action, such as 'AWS::EC2::Instance', 'AWS::EC2::*',
+-- or 'Custom::MyCustomInstance'.
+--
+-- If the list of resource types doesn\'t include a resource that you\'re
+-- updating, the stack update fails. By default, AWS CloudFormation grants
+-- permissions to all resource types. AWS Identity and Access Management
+-- (IAM) uses this parameter for AWS CloudFormation-specific condition keys
+-- in IAM policies. For more information, see
+-- <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html Controlling Access with AWS Identity and Access Management>
+usResourceTypes :: Lens' UpdateStack [Text]
+usResourceTypes = lens _usResourceTypes (\ s a -> s{_usResourceTypes = a}) . _Default . _Coerce;
+
 -- | The name or unique stack ID of the stack to update.
 usStackName :: Lens' UpdateStack Text
 usStackName = lens _usStackName (\ s a -> s{_usStackName = a});
@@ -269,6 +287,8 @@
                "TemplateURL" =: _usTemplateURL,
                "Capabilities" =:
                  toQuery (toQueryList "member" <$> _usCapabilities),
+               "ResourceTypes" =:
+                 toQuery (toQueryList "member" <$> _usResourceTypes),
                "StackName" =: _usStackName]
 
 -- | The output for a UpdateStack action.
diff --git a/gen/Network/AWS/CloudFormation/ValidateTemplate.hs b/gen/Network/AWS/CloudFormation/ValidateTemplate.hs
--- a/gen/Network/AWS/CloudFormation/ValidateTemplate.hs
+++ b/gen/Network/AWS/CloudFormation/ValidateTemplate.hs
@@ -81,8 +81,8 @@
 vtTemplateBody = lens _vtTemplateBody (\ s a -> s{_vtTemplateBody = a});
 
 -- | Location of file containing the template body. The URL must point to a
--- template (max size: 460,800 bytes) located in an S3 bucket in the same
--- region as the stack. For more information, go to
+-- template (max size: 460,800 bytes) that is located in an Amazon S3
+-- bucket. For more information, go to
 -- <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html Template Anatomy>
 -- in the AWS CloudFormation User Guide.
 --
diff --git a/test/Test/AWS/Gen/CloudFormation.hs b/test/Test/AWS/Gen/CloudFormation.hs
--- a/test/Test/AWS/Gen/CloudFormation.hs
+++ b/test/Test/AWS/Gen/CloudFormation.hs
@@ -64,6 +64,9 @@
 --         , testListStacks $
 --             listStacks
 --
+--         , testDescribeAccountLimits $
+--             describeAccountLimits
+--
 --         , testDescribeStackResources $
 --             describeStackResources
 --
@@ -118,6 +121,9 @@
 --         , testListStacksResponse $
 --             listStacksResponse
 --
+--         , testDescribeAccountLimitsResponse $
+--             describeAccountLimitsResponse
+--
 --         , testDescribeStackResourcesResponse $
 --             describeStackResourcesResponse
 --
@@ -198,6 +204,11 @@
     "ListStacks"
     "fixture/ListStacks.yaml"
 
+testDescribeAccountLimits :: DescribeAccountLimits -> TestTree
+testDescribeAccountLimits = req
+    "DescribeAccountLimits"
+    "fixture/DescribeAccountLimits.yaml"
+
 testDescribeStackResources :: DescribeStackResources -> TestTree
 testDescribeStackResources = req
     "DescribeStackResources"
@@ -308,6 +319,13 @@
     "fixture/ListStacksResponse.proto"
     cloudFormation
     (Proxy :: Proxy ListStacks)
+
+testDescribeAccountLimitsResponse :: DescribeAccountLimitsResponse -> TestTree
+testDescribeAccountLimitsResponse = res
+    "DescribeAccountLimitsResponse"
+    "fixture/DescribeAccountLimitsResponse.proto"
+    cloudFormation
+    (Proxy :: Proxy DescribeAccountLimits)
 
 testDescribeStackResourcesResponse :: DescribeStackResourcesResponse -> TestTree
 testDescribeStackResourcesResponse = res
