diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`1.3.6`
+`1.3.7`
 
 
 ## Description
diff --git a/amazonka-autoscaling.cabal b/amazonka-autoscaling.cabal
--- a/amazonka-autoscaling.cabal
+++ b/amazonka-autoscaling.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-autoscaling
-version:               1.3.6
+version:               1.3.7
 synopsis:              Amazon Auto Scaling SDK.
 homepage:              https://github.com/brendanhay/amazonka
 bug-reports:           https://github.com/brendanhay/amazonka/issues
@@ -91,6 +91,7 @@
         , Network.AWS.AutoScaling.ResumeProcesses
         , Network.AWS.AutoScaling.SetDesiredCapacity
         , Network.AWS.AutoScaling.SetInstanceHealth
+        , Network.AWS.AutoScaling.SetInstanceProtection
         , Network.AWS.AutoScaling.SuspendProcesses
         , Network.AWS.AutoScaling.TerminateInstanceInAutoScalingGroup
         , Network.AWS.AutoScaling.Types
@@ -102,7 +103,7 @@
         , Network.AWS.AutoScaling.Types.Sum
 
     build-depends:
-          amazonka-core == 1.3.6.*
+          amazonka-core == 1.3.7.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-autoscaling-test
@@ -122,12 +123,11 @@
         , Test.AWS.AutoScaling.Internal
 
     build-depends:
-          amazonka-core == 1.3.6.*
-        , amazonka-test == 1.3.6.*
-        , amazonka-autoscaling == 1.3.6.*
+          amazonka-core == 1.3.7.*
+        , amazonka-test == 1.3.7.*
+        , amazonka-autoscaling == 1.3.7.*
         , base
         , bytestring
-        , lens
         , tasty
         , tasty-hunit
         , text
diff --git a/fixture/SetInstanceProtection.yaml b/fixture/SetInstanceProtection.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/SetInstanceProtection.yaml
diff --git a/fixture/SetInstanceProtectionResponse.proto b/fixture/SetInstanceProtectionResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/SetInstanceProtectionResponse.proto
diff --git a/gen/Network/AWS/AutoScaling.hs b/gen/Network/AWS/AutoScaling.hs
--- a/gen/Network/AWS/AutoScaling.hs
+++ b/gen/Network/AWS/AutoScaling.hs
@@ -171,6 +171,9 @@
     -- ** PutScheduledUpdateGroupAction
     , module Network.AWS.AutoScaling.PutScheduledUpdateGroupAction
 
+    -- ** SetInstanceProtection
+    , module Network.AWS.AutoScaling.SetInstanceProtection
+
     -- ** DescribePolicies (Paginated)
     , module Network.AWS.AutoScaling.DescribePolicies
 
@@ -234,6 +237,7 @@
     , asgStatus
     , asgTerminationPolicies
     , asgHealthCheckGracePeriod
+    , asgNewInstancesProtectedFromScaleIn
     , asgVPCZoneIdentifier
     , asgEnabledMetrics
     , asgLaunchConfigurationName
@@ -261,6 +265,7 @@
     , asidLifecycleState
     , asidHealthStatus
     , asidLaunchConfigurationName
+    , asidProtectedFromScaleIn
 
     -- ** BlockDeviceMapping
     , BlockDeviceMapping
@@ -300,6 +305,7 @@
     , iAvailabilityZone
     , iLifecycleState
     , iHealthStatus
+    , iProtectedFromScaleIn
 
     -- ** InstanceMonitoring
     , InstanceMonitoring
@@ -484,6 +490,7 @@
 import           Network.AWS.AutoScaling.ResumeProcesses
 import           Network.AWS.AutoScaling.SetDesiredCapacity
 import           Network.AWS.AutoScaling.SetInstanceHealth
+import           Network.AWS.AutoScaling.SetInstanceProtection
 import           Network.AWS.AutoScaling.SuspendProcesses
 import           Network.AWS.AutoScaling.TerminateInstanceInAutoScalingGroup
 import           Network.AWS.AutoScaling.Types
diff --git a/gen/Network/AWS/AutoScaling/AttachInstances.hs b/gen/Network/AWS/AutoScaling/AttachInstances.hs
--- a/gen/Network/AWS/AutoScaling/AttachInstances.hs
+++ b/gen/Network/AWS/AutoScaling/AttachInstances.hs
@@ -20,6 +20,11 @@
 --
 -- Attaches one or more EC2 instances to the specified Auto Scaling group.
 --
+-- When you attach instances, Auto Scaling increases the desired capacity
+-- of the group by the number of instances being attached. If the number of
+-- instances being attached plus the desired capacity of the group exceeds
+-- the maximum size of the group, the operation fails.
+--
 -- For more information, see
 -- <http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/attach-instance-asg.html Attach EC2 Instances to Your Auto Scaling Group>
 -- in the /Auto Scaling Developer Guide/.
@@ -41,6 +46,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/AttachLoadBalancers.hs b/gen/Network/AWS/AutoScaling/AttachLoadBalancers.hs
--- a/gen/Network/AWS/AutoScaling/AttachLoadBalancers.hs
+++ b/gen/Network/AWS/AutoScaling/AttachLoadBalancers.hs
@@ -47,6 +47,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/CompleteLifecycleAction.hs b/gen/Network/AWS/AutoScaling/CompleteLifecycleAction.hs
--- a/gen/Network/AWS/AutoScaling/CompleteLifecycleAction.hs
+++ b/gen/Network/AWS/AutoScaling/CompleteLifecycleAction.hs
@@ -61,6 +61,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/CreateAutoScalingGroup.hs b/gen/Network/AWS/AutoScaling/CreateAutoScalingGroup.hs
--- a/gen/Network/AWS/AutoScaling/CreateAutoScalingGroup.hs
+++ b/gen/Network/AWS/AutoScaling/CreateAutoScalingGroup.hs
@@ -38,6 +38,7 @@
     , casgInstanceId
     , casgTerminationPolicies
     , casgHealthCheckGracePeriod
+    , casgNewInstancesProtectedFromScaleIn
     , casgVPCZoneIdentifier
     , casgDefaultCooldown
     , casgAvailabilityZones
@@ -58,27 +59,29 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
 
 -- | /See:/ 'createAutoScalingGroup' smart constructor.
 data CreateAutoScalingGroup = CreateAutoScalingGroup'
-    { _casgInstanceId              :: !(Maybe Text)
-    , _casgTerminationPolicies     :: !(Maybe [Text])
-    , _casgHealthCheckGracePeriod  :: !(Maybe Int)
-    , _casgVPCZoneIdentifier       :: !(Maybe Text)
-    , _casgDefaultCooldown         :: !(Maybe Int)
-    , _casgAvailabilityZones       :: !(Maybe (List1 Text))
-    , _casgDesiredCapacity         :: !(Maybe Int)
-    , _casgLaunchConfigurationName :: !(Maybe Text)
-    , _casgHealthCheckType         :: !(Maybe Text)
-    , _casgPlacementGroup          :: !(Maybe Text)
-    , _casgLoadBalancerNames       :: !(Maybe [Text])
-    , _casgTags                    :: !(Maybe [Tag])
-    , _casgAutoScalingGroupName    :: !Text
-    , _casgMinSize                 :: !Int
-    , _casgMaxSize                 :: !Int
+    { _casgInstanceId                       :: !(Maybe Text)
+    , _casgTerminationPolicies              :: !(Maybe [Text])
+    , _casgHealthCheckGracePeriod           :: !(Maybe Int)
+    , _casgNewInstancesProtectedFromScaleIn :: !(Maybe Bool)
+    , _casgVPCZoneIdentifier                :: !(Maybe Text)
+    , _casgDefaultCooldown                  :: !(Maybe Int)
+    , _casgAvailabilityZones                :: !(Maybe (List1 Text))
+    , _casgDesiredCapacity                  :: !(Maybe Int)
+    , _casgLaunchConfigurationName          :: !(Maybe Text)
+    , _casgHealthCheckType                  :: !(Maybe Text)
+    , _casgPlacementGroup                   :: !(Maybe Text)
+    , _casgLoadBalancerNames                :: !(Maybe [Text])
+    , _casgTags                             :: !(Maybe [Tag])
+    , _casgAutoScalingGroupName             :: !Text
+    , _casgMinSize                          :: !Int
+    , _casgMaxSize                          :: !Int
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'CreateAutoScalingGroup' with the minimum fields required to make a request.
@@ -91,6 +94,8 @@
 --
 -- * 'casgHealthCheckGracePeriod'
 --
+-- * 'casgNewInstancesProtectedFromScaleIn'
+--
 -- * 'casgVPCZoneIdentifier'
 --
 -- * 'casgDefaultCooldown'
@@ -124,6 +129,7 @@
     { _casgInstanceId = Nothing
     , _casgTerminationPolicies = Nothing
     , _casgHealthCheckGracePeriod = Nothing
+    , _casgNewInstancesProtectedFromScaleIn = Nothing
     , _casgVPCZoneIdentifier = Nothing
     , _casgDefaultCooldown = Nothing
     , _casgAvailabilityZones = Nothing
@@ -163,22 +169,24 @@
 casgTerminationPolicies :: Lens' CreateAutoScalingGroup [Text]
 casgTerminationPolicies = lens _casgTerminationPolicies (\ s a -> s{_casgTerminationPolicies = a}) . _Default . _Coerce;
 
--- | The amount of time, in seconds, after an EC2 instance comes into service
--- that Auto Scaling starts checking its health. During this time, any
--- health check failures for the instance are ignored.
+-- | The amount of time, in seconds, that Auto Scaling waits before checking
+-- the health status of an EC2 instance that has come into service. During
+-- this time, any health check failures for the instance are ignored. The
+-- default is 300.
 --
 -- This parameter is required if you are adding an 'ELB' health check.
--- Frequently, new instances need to warm up, briefly, before they can pass
--- a health check. To provide ample warm-up time, set the health check
--- grace period of the group to match the expected startup period of your
--- application.
 --
 -- For more information, see
--- <http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/as-add-elb-healthcheck.html Add an Elastic Load Balancing Health Check to Your Auto Scaling Group>
+-- <http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/healthcheck.html Health Checks for Auto Scaling Instances>
 -- in the /Auto Scaling Developer Guide/.
 casgHealthCheckGracePeriod :: Lens' CreateAutoScalingGroup (Maybe Int)
 casgHealthCheckGracePeriod = lens _casgHealthCheckGracePeriod (\ s a -> s{_casgHealthCheckGracePeriod = a});
 
+-- | Indicates whether newly launched instances are protected from
+-- termination by Auto Scaling when scaling in.
+casgNewInstancesProtectedFromScaleIn :: Lens' CreateAutoScalingGroup (Maybe Bool)
+casgNewInstancesProtectedFromScaleIn = lens _casgNewInstancesProtectedFromScaleIn (\ s a -> s{_casgNewInstancesProtectedFromScaleIn = a});
+
 -- | A comma-separated list of subnet identifiers for your virtual private
 -- cloud (VPC).
 --
@@ -193,9 +201,9 @@
 casgVPCZoneIdentifier = lens _casgVPCZoneIdentifier (\ s a -> s{_casgVPCZoneIdentifier = a});
 
 -- | The amount of time, in seconds, after a scaling activity completes
--- before another scaling activity can start.
+-- before another scaling activity can start. The default is 300.
 --
--- The default is 300. For more information, see
+-- For more information, see
 -- <http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/Cooldown.html Understanding Auto Scaling Cooldowns>
 -- in the /Auto Scaling Developer Guide/.
 casgDefaultCooldown :: Lens' CreateAutoScalingGroup (Maybe Int)
@@ -292,6 +300,8 @@
                    (toQueryList "member" <$> _casgTerminationPolicies),
                "HealthCheckGracePeriod" =:
                  _casgHealthCheckGracePeriod,
+               "NewInstancesProtectedFromScaleIn" =:
+                 _casgNewInstancesProtectedFromScaleIn,
                "VPCZoneIdentifier" =: _casgVPCZoneIdentifier,
                "DefaultCooldown" =: _casgDefaultCooldown,
                "AvailabilityZones" =:
diff --git a/gen/Network/AWS/AutoScaling/CreateLaunchConfiguration.hs b/gen/Network/AWS/AutoScaling/CreateLaunchConfiguration.hs
--- a/gen/Network/AWS/AutoScaling/CreateLaunchConfiguration.hs
+++ b/gen/Network/AWS/AutoScaling/CreateLaunchConfiguration.hs
@@ -61,6 +61,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/CreateOrUpdateTags.hs b/gen/Network/AWS/AutoScaling/CreateOrUpdateTags.hs
--- a/gen/Network/AWS/AutoScaling/CreateOrUpdateTags.hs
+++ b/gen/Network/AWS/AutoScaling/CreateOrUpdateTags.hs
@@ -51,6 +51,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/DeleteAutoScalingGroup.hs b/gen/Network/AWS/AutoScaling/DeleteAutoScalingGroup.hs
--- a/gen/Network/AWS/AutoScaling/DeleteAutoScalingGroup.hs
+++ b/gen/Network/AWS/AutoScaling/DeleteAutoScalingGroup.hs
@@ -20,12 +20,22 @@
 --
 -- Deletes the specified Auto Scaling group.
 --
--- The group must have no instances and no scaling activities in progress.
+-- If the group has instances or scaling activities in progress, you must
+-- specify the option to force the deletion in order for it to succeed.
 --
--- To remove all instances before calling 'DeleteAutoScalingGroup', call
--- UpdateAutoScalingGroup to set the minimum and maximum size of the Auto
--- Scaling group to zero.
+-- If the group has policies, deleting the group deletes the policies, the
+-- underlying alarm actions, and any alarm that no longer has an associated
+-- action.
 --
+-- To remove instances from the Auto Scaling group before deleting it, call
+-- DetachInstances with the list of instances and the option to decrement
+-- the desired capacity so that Auto Scaling does not launch replacement
+-- instances.
+--
+-- To terminate all instances before deleting the Auto Scaling group, call
+-- UpdateAutoScalingGroup and set the minimum size and desired capacity of
+-- the Auto Scaling group to zero.
+--
 -- /See:/ <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DeleteAutoScalingGroup.html AWS API Reference> for DeleteAutoScalingGroup.
 module Network.AWS.AutoScaling.DeleteAutoScalingGroup
     (
@@ -43,6 +53,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/DeleteLaunchConfiguration.hs b/gen/Network/AWS/AutoScaling/DeleteLaunchConfiguration.hs
--- a/gen/Network/AWS/AutoScaling/DeleteLaunchConfiguration.hs
+++ b/gen/Network/AWS/AutoScaling/DeleteLaunchConfiguration.hs
@@ -40,6 +40,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/DeleteLifecycleHook.hs b/gen/Network/AWS/AutoScaling/DeleteLifecycleHook.hs
--- a/gen/Network/AWS/AutoScaling/DeleteLifecycleHook.hs
+++ b/gen/Network/AWS/AutoScaling/DeleteLifecycleHook.hs
@@ -43,6 +43,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/DeleteNotificationConfiguration.hs b/gen/Network/AWS/AutoScaling/DeleteNotificationConfiguration.hs
--- a/gen/Network/AWS/AutoScaling/DeleteNotificationConfiguration.hs
+++ b/gen/Network/AWS/AutoScaling/DeleteNotificationConfiguration.hs
@@ -37,6 +37,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/DeletePolicy.hs b/gen/Network/AWS/AutoScaling/DeletePolicy.hs
--- a/gen/Network/AWS/AutoScaling/DeletePolicy.hs
+++ b/gen/Network/AWS/AutoScaling/DeletePolicy.hs
@@ -20,6 +20,9 @@
 --
 -- Deletes the specified Auto Scaling policy.
 --
+-- Deleting a policy deletes the underlying alarm action, but does not
+-- delete the alarm, even if it no longer has an associated action.
+--
 -- /See:/ <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DeletePolicy.html AWS API Reference> for DeletePolicy.
 module Network.AWS.AutoScaling.DeletePolicy
     (
@@ -37,6 +40,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/DeleteScheduledAction.hs b/gen/Network/AWS/AutoScaling/DeleteScheduledAction.hs
--- a/gen/Network/AWS/AutoScaling/DeleteScheduledAction.hs
+++ b/gen/Network/AWS/AutoScaling/DeleteScheduledAction.hs
@@ -37,6 +37,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/DeleteTags.hs b/gen/Network/AWS/AutoScaling/DeleteTags.hs
--- a/gen/Network/AWS/AutoScaling/DeleteTags.hs
+++ b/gen/Network/AWS/AutoScaling/DeleteTags.hs
@@ -36,6 +36,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/DescribeAccountLimits.hs b/gen/Network/AWS/AutoScaling/DescribeAccountLimits.hs
--- a/gen/Network/AWS/AutoScaling/DescribeAccountLimits.hs
+++ b/gen/Network/AWS/AutoScaling/DescribeAccountLimits.hs
@@ -35,6 +35,8 @@
     , describeAccountLimitsResponse
     , DescribeAccountLimitsResponse
     -- * Response Lenses
+    , dalrsNumberOfLaunchConfigurations
+    , dalrsNumberOfAutoScalingGroups
     , dalrsMaxNumberOfAutoScalingGroups
     , dalrsMaxNumberOfLaunchConfigurations
     , dalrsResponseStatus
@@ -42,6 +44,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
@@ -65,8 +68,10 @@
           = receiveXMLWrapper "DescribeAccountLimitsResult"
               (\ s h x ->
                  DescribeAccountLimitsResponse' <$>
-                   (x .@? "MaxNumberOfAutoScalingGroups") <*>
-                     (x .@? "MaxNumberOfLaunchConfigurations")
+                   (x .@? "NumberOfLaunchConfigurations") <*>
+                     (x .@? "NumberOfAutoScalingGroups")
+                     <*> (x .@? "MaxNumberOfAutoScalingGroups")
+                     <*> (x .@? "MaxNumberOfLaunchConfigurations")
                      <*> (pure (fromEnum s)))
 
 instance ToHeaders DescribeAccountLimits where
@@ -84,7 +89,9 @@
 
 -- | /See:/ 'describeAccountLimitsResponse' smart constructor.
 data DescribeAccountLimitsResponse = DescribeAccountLimitsResponse'
-    { _dalrsMaxNumberOfAutoScalingGroups    :: !(Maybe Int)
+    { _dalrsNumberOfLaunchConfigurations    :: !(Maybe Int)
+    , _dalrsNumberOfAutoScalingGroups       :: !(Maybe Int)
+    , _dalrsMaxNumberOfAutoScalingGroups    :: !(Maybe Int)
     , _dalrsMaxNumberOfLaunchConfigurations :: !(Maybe Int)
     , _dalrsResponseStatus                  :: !Int
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
@@ -93,6 +100,10 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
+-- * 'dalrsNumberOfLaunchConfigurations'
+--
+-- * 'dalrsNumberOfAutoScalingGroups'
+--
 -- * 'dalrsMaxNumberOfAutoScalingGroups'
 --
 -- * 'dalrsMaxNumberOfLaunchConfigurations'
@@ -103,10 +114,20 @@
     -> DescribeAccountLimitsResponse
 describeAccountLimitsResponse pResponseStatus_ =
     DescribeAccountLimitsResponse'
-    { _dalrsMaxNumberOfAutoScalingGroups = Nothing
+    { _dalrsNumberOfLaunchConfigurations = Nothing
+    , _dalrsNumberOfAutoScalingGroups = Nothing
+    , _dalrsMaxNumberOfAutoScalingGroups = Nothing
     , _dalrsMaxNumberOfLaunchConfigurations = Nothing
     , _dalrsResponseStatus = pResponseStatus_
     }
+
+-- | The current number of launch configurations for your AWS account.
+dalrsNumberOfLaunchConfigurations :: Lens' DescribeAccountLimitsResponse (Maybe Int)
+dalrsNumberOfLaunchConfigurations = lens _dalrsNumberOfLaunchConfigurations (\ s a -> s{_dalrsNumberOfLaunchConfigurations = a});
+
+-- | The current number of groups for your AWS account.
+dalrsNumberOfAutoScalingGroups :: Lens' DescribeAccountLimitsResponse (Maybe Int)
+dalrsNumberOfAutoScalingGroups = lens _dalrsNumberOfAutoScalingGroups (\ s a -> s{_dalrsNumberOfAutoScalingGroups = a});
 
 -- | The maximum number of groups allowed for your AWS account. The default
 -- limit is 20 per region.
diff --git a/gen/Network/AWS/AutoScaling/DescribeAdjustmentTypes.hs b/gen/Network/AWS/AutoScaling/DescribeAdjustmentTypes.hs
--- a/gen/Network/AWS/AutoScaling/DescribeAdjustmentTypes.hs
+++ b/gen/Network/AWS/AutoScaling/DescribeAdjustmentTypes.hs
@@ -37,6 +37,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/DescribeAutoScalingGroups.hs b/gen/Network/AWS/AutoScaling/DescribeAutoScalingGroups.hs
--- a/gen/Network/AWS/AutoScaling/DescribeAutoScalingGroups.hs
+++ b/gen/Network/AWS/AutoScaling/DescribeAutoScalingGroups.hs
@@ -45,6 +45,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Pager
 import           Network.AWS.Prelude
 import           Network.AWS.Request
diff --git a/gen/Network/AWS/AutoScaling/DescribeAutoScalingInstances.hs b/gen/Network/AWS/AutoScaling/DescribeAutoScalingInstances.hs
--- a/gen/Network/AWS/AutoScaling/DescribeAutoScalingInstances.hs
+++ b/gen/Network/AWS/AutoScaling/DescribeAutoScalingInstances.hs
@@ -45,6 +45,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Pager
 import           Network.AWS.Prelude
 import           Network.AWS.Request
diff --git a/gen/Network/AWS/AutoScaling/DescribeAutoScalingNotificationTypes.hs b/gen/Network/AWS/AutoScaling/DescribeAutoScalingNotificationTypes.hs
--- a/gen/Network/AWS/AutoScaling/DescribeAutoScalingNotificationTypes.hs
+++ b/gen/Network/AWS/AutoScaling/DescribeAutoScalingNotificationTypes.hs
@@ -37,6 +37,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/DescribeLaunchConfigurations.hs b/gen/Network/AWS/AutoScaling/DescribeLaunchConfigurations.hs
--- a/gen/Network/AWS/AutoScaling/DescribeLaunchConfigurations.hs
+++ b/gen/Network/AWS/AutoScaling/DescribeLaunchConfigurations.hs
@@ -45,6 +45,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Pager
 import           Network.AWS.Prelude
 import           Network.AWS.Request
diff --git a/gen/Network/AWS/AutoScaling/DescribeLifecycleHookTypes.hs b/gen/Network/AWS/AutoScaling/DescribeLifecycleHookTypes.hs
--- a/gen/Network/AWS/AutoScaling/DescribeLifecycleHookTypes.hs
+++ b/gen/Network/AWS/AutoScaling/DescribeLifecycleHookTypes.hs
@@ -37,6 +37,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/DescribeLifecycleHooks.hs b/gen/Network/AWS/AutoScaling/DescribeLifecycleHooks.hs
--- a/gen/Network/AWS/AutoScaling/DescribeLifecycleHooks.hs
+++ b/gen/Network/AWS/AutoScaling/DescribeLifecycleHooks.hs
@@ -40,6 +40,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/DescribeLoadBalancers.hs b/gen/Network/AWS/AutoScaling/DescribeLoadBalancers.hs
--- a/gen/Network/AWS/AutoScaling/DescribeLoadBalancers.hs
+++ b/gen/Network/AWS/AutoScaling/DescribeLoadBalancers.hs
@@ -42,6 +42,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/DescribeMetricCollectionTypes.hs b/gen/Network/AWS/AutoScaling/DescribeMetricCollectionTypes.hs
--- a/gen/Network/AWS/AutoScaling/DescribeMetricCollectionTypes.hs
+++ b/gen/Network/AWS/AutoScaling/DescribeMetricCollectionTypes.hs
@@ -42,6 +42,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/DescribeNotificationConfigurations.hs b/gen/Network/AWS/AutoScaling/DescribeNotificationConfigurations.hs
--- a/gen/Network/AWS/AutoScaling/DescribeNotificationConfigurations.hs
+++ b/gen/Network/AWS/AutoScaling/DescribeNotificationConfigurations.hs
@@ -45,6 +45,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Pager
 import           Network.AWS.Prelude
 import           Network.AWS.Request
diff --git a/gen/Network/AWS/AutoScaling/DescribePolicies.hs b/gen/Network/AWS/AutoScaling/DescribePolicies.hs
--- a/gen/Network/AWS/AutoScaling/DescribePolicies.hs
+++ b/gen/Network/AWS/AutoScaling/DescribePolicies.hs
@@ -46,6 +46,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Pager
 import           Network.AWS.Prelude
 import           Network.AWS.Request
diff --git a/gen/Network/AWS/AutoScaling/DescribeScalingActivities.hs b/gen/Network/AWS/AutoScaling/DescribeScalingActivities.hs
--- a/gen/Network/AWS/AutoScaling/DescribeScalingActivities.hs
+++ b/gen/Network/AWS/AutoScaling/DescribeScalingActivities.hs
@@ -48,6 +48,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Pager
 import           Network.AWS.Prelude
 import           Network.AWS.Request
diff --git a/gen/Network/AWS/AutoScaling/DescribeScalingProcessTypes.hs b/gen/Network/AWS/AutoScaling/DescribeScalingProcessTypes.hs
--- a/gen/Network/AWS/AutoScaling/DescribeScalingProcessTypes.hs
+++ b/gen/Network/AWS/AutoScaling/DescribeScalingProcessTypes.hs
@@ -38,6 +38,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/DescribeScheduledActions.hs b/gen/Network/AWS/AutoScaling/DescribeScheduledActions.hs
--- a/gen/Network/AWS/AutoScaling/DescribeScheduledActions.hs
+++ b/gen/Network/AWS/AutoScaling/DescribeScheduledActions.hs
@@ -49,6 +49,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Pager
 import           Network.AWS.Prelude
 import           Network.AWS.Request
diff --git a/gen/Network/AWS/AutoScaling/DescribeTags.hs b/gen/Network/AWS/AutoScaling/DescribeTags.hs
--- a/gen/Network/AWS/AutoScaling/DescribeTags.hs
+++ b/gen/Network/AWS/AutoScaling/DescribeTags.hs
@@ -53,6 +53,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Pager
 import           Network.AWS.Prelude
 import           Network.AWS.Request
diff --git a/gen/Network/AWS/AutoScaling/DescribeTerminationPolicyTypes.hs b/gen/Network/AWS/AutoScaling/DescribeTerminationPolicyTypes.hs
--- a/gen/Network/AWS/AutoScaling/DescribeTerminationPolicyTypes.hs
+++ b/gen/Network/AWS/AutoScaling/DescribeTerminationPolicyTypes.hs
@@ -37,6 +37,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/DetachInstances.hs b/gen/Network/AWS/AutoScaling/DetachInstances.hs
--- a/gen/Network/AWS/AutoScaling/DetachInstances.hs
+++ b/gen/Network/AWS/AutoScaling/DetachInstances.hs
@@ -19,9 +19,13 @@
 -- Portability : non-portable (GHC extensions)
 --
 -- Removes one or more instances from the specified Auto Scaling group.
+--
 -- After the instances are detached, you can manage them independently from
 -- the rest of the Auto Scaling group.
 --
+-- If you do not specify the option to decrement the desired capacity, Auto
+-- Scaling launches instances to replace the ones that are detached.
+--
 -- For more information, see
 -- <http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/detach-instance-asg.html Detach EC2 Instances from Your Auto Scaling Group>
 -- in the /Auto Scaling Developer Guide/.
@@ -47,6 +51,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/DetachLoadBalancers.hs b/gen/Network/AWS/AutoScaling/DetachLoadBalancers.hs
--- a/gen/Network/AWS/AutoScaling/DetachLoadBalancers.hs
+++ b/gen/Network/AWS/AutoScaling/DetachLoadBalancers.hs
@@ -45,6 +45,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/DisableMetricsCollection.hs b/gen/Network/AWS/AutoScaling/DisableMetricsCollection.hs
--- a/gen/Network/AWS/AutoScaling/DisableMetricsCollection.hs
+++ b/gen/Network/AWS/AutoScaling/DisableMetricsCollection.hs
@@ -38,6 +38,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/EnableMetricsCollection.hs b/gen/Network/AWS/AutoScaling/EnableMetricsCollection.hs
--- a/gen/Network/AWS/AutoScaling/EnableMetricsCollection.hs
+++ b/gen/Network/AWS/AutoScaling/EnableMetricsCollection.hs
@@ -42,6 +42,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/EnterStandby.hs b/gen/Network/AWS/AutoScaling/EnterStandby.hs
--- a/gen/Network/AWS/AutoScaling/EnterStandby.hs
+++ b/gen/Network/AWS/AutoScaling/EnterStandby.hs
@@ -45,6 +45,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/ExecutePolicy.hs b/gen/Network/AWS/AutoScaling/ExecutePolicy.hs
--- a/gen/Network/AWS/AutoScaling/ExecutePolicy.hs
+++ b/gen/Network/AWS/AutoScaling/ExecutePolicy.hs
@@ -40,6 +40,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/ExitStandby.hs b/gen/Network/AWS/AutoScaling/ExitStandby.hs
--- a/gen/Network/AWS/AutoScaling/ExitStandby.hs
+++ b/gen/Network/AWS/AutoScaling/ExitStandby.hs
@@ -44,6 +44,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/PutLifecycleHook.hs b/gen/Network/AWS/AutoScaling/PutLifecycleHook.hs
--- a/gen/Network/AWS/AutoScaling/PutLifecycleHook.hs
+++ b/gen/Network/AWS/AutoScaling/PutLifecycleHook.hs
@@ -75,6 +75,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/PutNotificationConfiguration.hs b/gen/Network/AWS/AutoScaling/PutNotificationConfiguration.hs
--- a/gen/Network/AWS/AutoScaling/PutNotificationConfiguration.hs
+++ b/gen/Network/AWS/AutoScaling/PutNotificationConfiguration.hs
@@ -46,6 +46,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/PutScalingPolicy.hs b/gen/Network/AWS/AutoScaling/PutScalingPolicy.hs
--- a/gen/Network/AWS/AutoScaling/PutScalingPolicy.hs
+++ b/gen/Network/AWS/AutoScaling/PutScalingPolicy.hs
@@ -58,6 +58,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/PutScheduledUpdateGroupAction.hs b/gen/Network/AWS/AutoScaling/PutScheduledUpdateGroupAction.hs
--- a/gen/Network/AWS/AutoScaling/PutScheduledUpdateGroupAction.hs
+++ b/gen/Network/AWS/AutoScaling/PutScheduledUpdateGroupAction.hs
@@ -51,6 +51,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/RecordLifecycleActionHeartbeat.hs b/gen/Network/AWS/AutoScaling/RecordLifecycleActionHeartbeat.hs
--- a/gen/Network/AWS/AutoScaling/RecordLifecycleActionHeartbeat.hs
+++ b/gen/Network/AWS/AutoScaling/RecordLifecycleActionHeartbeat.hs
@@ -61,6 +61,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/ResumeProcesses.hs b/gen/Network/AWS/AutoScaling/ResumeProcesses.hs
--- a/gen/Network/AWS/AutoScaling/ResumeProcesses.hs
+++ b/gen/Network/AWS/AutoScaling/ResumeProcesses.hs
@@ -42,6 +42,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/SetDesiredCapacity.hs b/gen/Network/AWS/AutoScaling/SetDesiredCapacity.hs
--- a/gen/Network/AWS/AutoScaling/SetDesiredCapacity.hs
+++ b/gen/Network/AWS/AutoScaling/SetDesiredCapacity.hs
@@ -42,6 +42,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/SetInstanceHealth.hs b/gen/Network/AWS/AutoScaling/SetInstanceHealth.hs
--- a/gen/Network/AWS/AutoScaling/SetInstanceHealth.hs
+++ b/gen/Network/AWS/AutoScaling/SetInstanceHealth.hs
@@ -42,6 +42,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/SetInstanceProtection.hs b/gen/Network/AWS/AutoScaling/SetInstanceProtection.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/AutoScaling/SetInstanceProtection.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.AutoScaling.SetInstanceProtection
+-- 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)
+--
+-- Updates the instance protection settings of the specified instances.
+--
+-- For more information, see
+-- <http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/AutoScalingBehavior.InstanceTermination.html#instance-protection Instance Protection>
+-- in the /Auto Scaling Developer Guide/.
+--
+-- /See:/ <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_SetInstanceProtection.html AWS API Reference> for SetInstanceProtection.
+module Network.AWS.AutoScaling.SetInstanceProtection
+    (
+    -- * Creating a Request
+      setInstanceProtection
+    , SetInstanceProtection
+    -- * Request Lenses
+    , sipInstanceIds
+    , sipAutoScalingGroupName
+    , sipProtectedFromScaleIn
+
+    -- * Destructuring the Response
+    , setInstanceProtectionResponse
+    , SetInstanceProtectionResponse
+    -- * Response Lenses
+    , siprsResponseStatus
+    ) where
+
+import           Network.AWS.AutoScaling.Types
+import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'setInstanceProtection' smart constructor.
+data SetInstanceProtection = SetInstanceProtection'
+    { _sipInstanceIds          :: ![Text]
+    , _sipAutoScalingGroupName :: !Text
+    , _sipProtectedFromScaleIn :: !Bool
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SetInstanceProtection' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sipInstanceIds'
+--
+-- * 'sipAutoScalingGroupName'
+--
+-- * 'sipProtectedFromScaleIn'
+setInstanceProtection
+    :: Text -- ^ 'sipAutoScalingGroupName'
+    -> Bool -- ^ 'sipProtectedFromScaleIn'
+    -> SetInstanceProtection
+setInstanceProtection pAutoScalingGroupName_ pProtectedFromScaleIn_ =
+    SetInstanceProtection'
+    { _sipInstanceIds = mempty
+    , _sipAutoScalingGroupName = pAutoScalingGroupName_
+    , _sipProtectedFromScaleIn = pProtectedFromScaleIn_
+    }
+
+-- | One or more instance IDs.
+sipInstanceIds :: Lens' SetInstanceProtection [Text]
+sipInstanceIds = lens _sipInstanceIds (\ s a -> s{_sipInstanceIds = a}) . _Coerce;
+
+-- | The name of the group.
+sipAutoScalingGroupName :: Lens' SetInstanceProtection Text
+sipAutoScalingGroupName = lens _sipAutoScalingGroupName (\ s a -> s{_sipAutoScalingGroupName = a});
+
+-- | Indicates whether the instance is protected from termination by Auto
+-- Scaling when scaling in.
+sipProtectedFromScaleIn :: Lens' SetInstanceProtection Bool
+sipProtectedFromScaleIn = lens _sipProtectedFromScaleIn (\ s a -> s{_sipProtectedFromScaleIn = a});
+
+instance AWSRequest SetInstanceProtection where
+        type Rs SetInstanceProtection =
+             SetInstanceProtectionResponse
+        request = postQuery autoScaling
+        response
+          = receiveXMLWrapper "SetInstanceProtectionResult"
+              (\ s h x ->
+                 SetInstanceProtectionResponse' <$>
+                   (pure (fromEnum s)))
+
+instance ToHeaders SetInstanceProtection where
+        toHeaders = const mempty
+
+instance ToPath SetInstanceProtection where
+        toPath = const "/"
+
+instance ToQuery SetInstanceProtection where
+        toQuery SetInstanceProtection'{..}
+          = mconcat
+              ["Action" =: ("SetInstanceProtection" :: ByteString),
+               "Version" =: ("2011-01-01" :: ByteString),
+               "InstanceIds" =:
+                 toQueryList "member" _sipInstanceIds,
+               "AutoScalingGroupName" =: _sipAutoScalingGroupName,
+               "ProtectedFromScaleIn" =: _sipProtectedFromScaleIn]
+
+-- | /See:/ 'setInstanceProtectionResponse' smart constructor.
+newtype SetInstanceProtectionResponse = SetInstanceProtectionResponse'
+    { _siprsResponseStatus :: Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SetInstanceProtectionResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'siprsResponseStatus'
+setInstanceProtectionResponse
+    :: Int -- ^ 'siprsResponseStatus'
+    -> SetInstanceProtectionResponse
+setInstanceProtectionResponse pResponseStatus_ =
+    SetInstanceProtectionResponse'
+    { _siprsResponseStatus = pResponseStatus_
+    }
+
+-- | The response status code.
+siprsResponseStatus :: Lens' SetInstanceProtectionResponse Int
+siprsResponseStatus = lens _siprsResponseStatus (\ s a -> s{_siprsResponseStatus = a});
diff --git a/gen/Network/AWS/AutoScaling/SuspendProcesses.hs b/gen/Network/AWS/AutoScaling/SuspendProcesses.hs
--- a/gen/Network/AWS/AutoScaling/SuspendProcesses.hs
+++ b/gen/Network/AWS/AutoScaling/SuspendProcesses.hs
@@ -49,6 +49,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/TerminateInstanceInAutoScalingGroup.hs b/gen/Network/AWS/AutoScaling/TerminateInstanceInAutoScalingGroup.hs
--- a/gen/Network/AWS/AutoScaling/TerminateInstanceInAutoScalingGroup.hs
+++ b/gen/Network/AWS/AutoScaling/TerminateInstanceInAutoScalingGroup.hs
@@ -44,6 +44,7 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/AutoScaling/Types.hs b/gen/Network/AWS/AutoScaling/Types.hs
--- a/gen/Network/AWS/AutoScaling/Types.hs
+++ b/gen/Network/AWS/AutoScaling/Types.hs
@@ -60,6 +60,7 @@
     , asgStatus
     , asgTerminationPolicies
     , asgHealthCheckGracePeriod
+    , asgNewInstancesProtectedFromScaleIn
     , asgVPCZoneIdentifier
     , asgEnabledMetrics
     , asgLaunchConfigurationName
@@ -87,6 +88,7 @@
     , asidLifecycleState
     , asidHealthStatus
     , asidLaunchConfigurationName
+    , asidProtectedFromScaleIn
 
     -- * BlockDeviceMapping
     , BlockDeviceMapping
@@ -126,6 +128,7 @@
     , iAvailabilityZone
     , iLifecycleState
     , iHealthStatus
+    , iProtectedFromScaleIn
 
     -- * InstanceMonitoring
     , InstanceMonitoring
@@ -267,6 +270,7 @@
 
 import           Network.AWS.AutoScaling.Types.Product
 import           Network.AWS.AutoScaling.Types.Sum
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Sign.V4
 
diff --git a/gen/Network/AWS/AutoScaling/Types/Product.hs b/gen/Network/AWS/AutoScaling/Types/Product.hs
--- a/gen/Network/AWS/AutoScaling/Types/Product.hs
+++ b/gen/Network/AWS/AutoScaling/Types/Product.hs
@@ -18,6 +18,7 @@
 module Network.AWS.AutoScaling.Types.Product where
 
 import           Network.AWS.AutoScaling.Types.Sum
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 
 -- | Describes scaling activity, which is a long-running process that
@@ -207,26 +208,27 @@
 --
 -- /See:/ 'autoScalingGroup' smart constructor.
 data AutoScalingGroup = AutoScalingGroup'
-    { _asgStatus                  :: !(Maybe Text)
-    , _asgTerminationPolicies     :: !(Maybe [Text])
-    , _asgHealthCheckGracePeriod  :: !(Maybe Int)
-    , _asgVPCZoneIdentifier       :: !(Maybe Text)
-    , _asgEnabledMetrics          :: !(Maybe [EnabledMetric])
-    , _asgLaunchConfigurationName :: !(Maybe Text)
-    , _asgInstances               :: !(Maybe [Instance])
-    , _asgAutoScalingGroupARN     :: !(Maybe Text)
-    , _asgPlacementGroup          :: !(Maybe Text)
-    , _asgSuspendedProcesses      :: !(Maybe [SuspendedProcess])
-    , _asgLoadBalancerNames       :: !(Maybe [Text])
-    , _asgTags                    :: !(Maybe [TagDescription])
-    , _asgAutoScalingGroupName    :: !Text
-    , _asgMinSize                 :: !Int
-    , _asgMaxSize                 :: !Int
-    , _asgDesiredCapacity         :: !Int
-    , _asgDefaultCooldown         :: !Int
-    , _asgAvailabilityZones       :: !(List1 Text)
-    , _asgHealthCheckType         :: !Text
-    , _asgCreatedTime             :: !ISO8601
+    { _asgStatus                           :: !(Maybe Text)
+    , _asgTerminationPolicies              :: !(Maybe [Text])
+    , _asgHealthCheckGracePeriod           :: !(Maybe Int)
+    , _asgNewInstancesProtectedFromScaleIn :: !(Maybe Bool)
+    , _asgVPCZoneIdentifier                :: !(Maybe Text)
+    , _asgEnabledMetrics                   :: !(Maybe [EnabledMetric])
+    , _asgLaunchConfigurationName          :: !(Maybe Text)
+    , _asgInstances                        :: !(Maybe [Instance])
+    , _asgAutoScalingGroupARN              :: !(Maybe Text)
+    , _asgPlacementGroup                   :: !(Maybe Text)
+    , _asgSuspendedProcesses               :: !(Maybe [SuspendedProcess])
+    , _asgLoadBalancerNames                :: !(Maybe [Text])
+    , _asgTags                             :: !(Maybe [TagDescription])
+    , _asgAutoScalingGroupName             :: !Text
+    , _asgMinSize                          :: !Int
+    , _asgMaxSize                          :: !Int
+    , _asgDesiredCapacity                  :: !Int
+    , _asgDefaultCooldown                  :: !Int
+    , _asgAvailabilityZones                :: !(List1 Text)
+    , _asgHealthCheckType                  :: !Text
+    , _asgCreatedTime                      :: !ISO8601
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'AutoScalingGroup' with the minimum fields required to make a request.
@@ -239,6 +241,8 @@
 --
 -- * 'asgHealthCheckGracePeriod'
 --
+-- * 'asgNewInstancesProtectedFromScaleIn'
+--
 -- * 'asgVPCZoneIdentifier'
 --
 -- * 'asgEnabledMetrics'
@@ -287,6 +291,7 @@
     { _asgStatus = Nothing
     , _asgTerminationPolicies = Nothing
     , _asgHealthCheckGracePeriod = Nothing
+    , _asgNewInstancesProtectedFromScaleIn = Nothing
     , _asgVPCZoneIdentifier = Nothing
     , _asgEnabledMetrics = Nothing
     , _asgLaunchConfigurationName = Nothing
@@ -315,12 +320,16 @@
 asgTerminationPolicies :: Lens' AutoScalingGroup [Text]
 asgTerminationPolicies = lens _asgTerminationPolicies (\ s a -> s{_asgTerminationPolicies = a}) . _Default . _Coerce;
 
--- | The amount of time that Auto Scaling waits before checking an
--- instance\'s health status. The grace period begins when an instance
--- comes into service.
+-- | The amount of time, in seconds, that Auto Scaling waits before checking
+-- the health status of an EC2 instance that has come into service.
 asgHealthCheckGracePeriod :: Lens' AutoScalingGroup (Maybe Int)
 asgHealthCheckGracePeriod = lens _asgHealthCheckGracePeriod (\ s a -> s{_asgHealthCheckGracePeriod = a});
 
+-- | Indicates whether newly launched instances are protected from
+-- termination by Auto Scaling when scaling in.
+asgNewInstancesProtectedFromScaleIn :: Lens' AutoScalingGroup (Maybe Bool)
+asgNewInstancesProtectedFromScaleIn = lens _asgNewInstancesProtectedFromScaleIn (\ s a -> s{_asgNewInstancesProtectedFromScaleIn = a});
+
 -- | One or more subnet IDs, if applicable, separated by commas.
 --
 -- If you specify 'VPCZoneIdentifier' and 'AvailabilityZones', ensure that
@@ -380,8 +389,8 @@
 asgDesiredCapacity :: Lens' AutoScalingGroup Int
 asgDesiredCapacity = lens _asgDesiredCapacity (\ s a -> s{_asgDesiredCapacity = a});
 
--- | The number of seconds after a scaling activity completes before any
--- further scaling activities can start.
+-- | The amount of time, in seconds, after a scaling activity completes
+-- before another scaling activity can start.
 asgDefaultCooldown :: Lens' AutoScalingGroup Int
 asgDefaultCooldown = lens _asgDefaultCooldown (\ s a -> s{_asgDefaultCooldown = a});
 
@@ -389,8 +398,8 @@
 asgAvailabilityZones :: Lens' AutoScalingGroup (NonEmpty Text)
 asgAvailabilityZones = lens _asgAvailabilityZones (\ s a -> s{_asgAvailabilityZones = a}) . _List1;
 
--- | The service of interest for the health status check, which can be either
--- 'EC2' for Amazon EC2 or 'ELB' for Elastic Load Balancing.
+-- | The service to use for the health checks. The valid values are 'EC2' and
+-- 'ELB'.
 asgHealthCheckType :: Lens' AutoScalingGroup Text
 asgHealthCheckType = lens _asgHealthCheckType (\ s a -> s{_asgHealthCheckType = a});
 
@@ -405,6 +414,7 @@
                 (x .@? "TerminationPolicies" .!@ mempty >>=
                    may (parseXMLList "member"))
                 <*> (x .@? "HealthCheckGracePeriod")
+                <*> (x .@? "NewInstancesProtectedFromScaleIn")
                 <*> (x .@? "VPCZoneIdentifier")
                 <*>
                 (x .@? "EnabledMetrics" .!@ mempty >>=
@@ -445,6 +455,7 @@
     , _asidLifecycleState          :: !Text
     , _asidHealthStatus            :: !Text
     , _asidLaunchConfigurationName :: !Text
+    , _asidProtectedFromScaleIn    :: !Bool
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'AutoScalingInstanceDetails' with the minimum fields required to make a request.
@@ -462,6 +473,8 @@
 -- * 'asidHealthStatus'
 --
 -- * 'asidLaunchConfigurationName'
+--
+-- * 'asidProtectedFromScaleIn'
 autoScalingInstanceDetails
     :: Text -- ^ 'asidInstanceId'
     -> Text -- ^ 'asidAutoScalingGroupName'
@@ -469,8 +482,9 @@
     -> Text -- ^ 'asidLifecycleState'
     -> Text -- ^ 'asidHealthStatus'
     -> Text -- ^ 'asidLaunchConfigurationName'
+    -> Bool -- ^ 'asidProtectedFromScaleIn'
     -> AutoScalingInstanceDetails
-autoScalingInstanceDetails pInstanceId_ pAutoScalingGroupName_ pAvailabilityZone_ pLifecycleState_ pHealthStatus_ pLaunchConfigurationName_ =
+autoScalingInstanceDetails pInstanceId_ pAutoScalingGroupName_ pAvailabilityZone_ pLifecycleState_ pHealthStatus_ pLaunchConfigurationName_ pProtectedFromScaleIn_ =
     AutoScalingInstanceDetails'
     { _asidInstanceId = pInstanceId_
     , _asidAutoScalingGroupName = pAutoScalingGroupName_
@@ -478,6 +492,7 @@
     , _asidLifecycleState = pLifecycleState_
     , _asidHealthStatus = pHealthStatus_
     , _asidLaunchConfigurationName = pLaunchConfigurationName_
+    , _asidProtectedFromScaleIn = pProtectedFromScaleIn_
     }
 
 -- | The ID of the instance.
@@ -508,6 +523,11 @@
 asidLaunchConfigurationName :: Lens' AutoScalingInstanceDetails Text
 asidLaunchConfigurationName = lens _asidLaunchConfigurationName (\ s a -> s{_asidLaunchConfigurationName = a});
 
+-- | Indicates whether the instance is protected from termination by Auto
+-- Scaling when scaling in.
+asidProtectedFromScaleIn :: Lens' AutoScalingInstanceDetails Bool
+asidProtectedFromScaleIn = lens _asidProtectedFromScaleIn (\ s a -> s{_asidProtectedFromScaleIn = a});
+
 instance FromXML AutoScalingInstanceDetails where
         parseXML x
           = AutoScalingInstanceDetails' <$>
@@ -516,6 +536,7 @@
                 <*> (x .@ "LifecycleState")
                 <*> (x .@ "HealthStatus")
                 <*> (x .@ "LaunchConfigurationName")
+                <*> (x .@ "ProtectedFromScaleIn")
 
 -- | Describes a block device mapping.
 --
@@ -793,6 +814,7 @@
     , _iAvailabilityZone        :: !Text
     , _iLifecycleState          :: !LifecycleState
     , _iHealthStatus            :: !Text
+    , _iProtectedFromScaleIn    :: !Bool
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'Instance' with the minimum fields required to make a request.
@@ -808,19 +830,23 @@
 -- * 'iLifecycleState'
 --
 -- * 'iHealthStatus'
+--
+-- * 'iProtectedFromScaleIn'
 instance'
     :: Text -- ^ 'iInstanceId'
     -> Text -- ^ 'iAvailabilityZone'
     -> LifecycleState -- ^ 'iLifecycleState'
     -> Text -- ^ 'iHealthStatus'
+    -> Bool -- ^ 'iProtectedFromScaleIn'
     -> Instance
-instance' pInstanceId_ pAvailabilityZone_ pLifecycleState_ pHealthStatus_ =
+instance' pInstanceId_ pAvailabilityZone_ pLifecycleState_ pHealthStatus_ pProtectedFromScaleIn_ =
     Instance'
     { _iLaunchConfigurationName = Nothing
     , _iInstanceId = pInstanceId_
     , _iAvailabilityZone = pAvailabilityZone_
     , _iLifecycleState = pLifecycleState_
     , _iHealthStatus = pHealthStatus_
+    , _iProtectedFromScaleIn = pProtectedFromScaleIn_
     }
 
 -- | The launch configuration associated with the instance.
@@ -844,6 +870,11 @@
 iHealthStatus :: Lens' Instance Text
 iHealthStatus = lens _iHealthStatus (\ s a -> s{_iHealthStatus = a});
 
+-- | Indicates whether the instance is protected from termination by Auto
+-- Scaling when scaling in.
+iProtectedFromScaleIn :: Lens' Instance Bool
+iProtectedFromScaleIn = lens _iProtectedFromScaleIn (\ s a -> s{_iProtectedFromScaleIn = a});
+
 instance FromXML Instance where
         parseXML x
           = Instance' <$>
@@ -852,6 +883,7 @@
                 <*> (x .@ "AvailabilityZone")
                 <*> (x .@ "LifecycleState")
                 <*> (x .@ "HealthStatus")
+                <*> (x .@ "ProtectedFromScaleIn")
 
 -- | Describes whether instance monitoring is enabled.
 --
diff --git a/gen/Network/AWS/AutoScaling/Types/Sum.hs b/gen/Network/AWS/AutoScaling/Types/Sum.hs
--- a/gen/Network/AWS/AutoScaling/Types/Sum.hs
+++ b/gen/Network/AWS/AutoScaling/Types/Sum.hs
@@ -33,7 +33,7 @@
     | Terminating
     | TerminatingProceed
     | TerminatingWait
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText LifecycleState where
     parser = takeLowerText >>= \case
@@ -82,6 +82,7 @@
     | Failed
     | InProgress
     | MidLifecycleAction
+    | PendingSpotBidPlacement
     | PreInService
     | Successful
     | WaitingForELBConnectionDraining
@@ -89,7 +90,7 @@
     | WaitingForInstanceWarmup
     | WaitingForSpotInstanceId
     | WaitingForSpotInstanceRequestId
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText ScalingActivityStatusCode where
     parser = takeLowerText >>= \case
@@ -97,6 +98,7 @@
         "failed" -> pure Failed
         "inprogress" -> pure InProgress
         "midlifecycleaction" -> pure MidLifecycleAction
+        "pendingspotbidplacement" -> pure PendingSpotBidPlacement
         "preinservice" -> pure PreInService
         "successful" -> pure Successful
         "waitingforelbconnectiondraining" -> pure WaitingForELBConnectionDraining
@@ -105,7 +107,7 @@
         "waitingforspotinstanceid" -> pure WaitingForSpotInstanceId
         "waitingforspotinstancerequestid" -> pure WaitingForSpotInstanceRequestId
         e -> fromTextError $ "Failure parsing ScalingActivityStatusCode from value: '" <> e
-           <> "'. Accepted values: Cancelled, Failed, InProgress, MidLifecycleAction, PreInService, Successful, WaitingForELBConnectionDraining, WaitingForInstanceId, WaitingForInstanceWarmup, WaitingForSpotInstanceId, WaitingForSpotInstanceRequestId"
+           <> "'. Accepted values: Cancelled, Failed, InProgress, MidLifecycleAction, PendingSpotBidPlacement, PreInService, Successful, WaitingForELBConnectionDraining, WaitingForInstanceId, WaitingForInstanceWarmup, WaitingForSpotInstanceId, WaitingForSpotInstanceRequestId"
 
 instance ToText ScalingActivityStatusCode where
     toText = \case
@@ -113,6 +115,7 @@
         Failed -> "Failed"
         InProgress -> "InProgress"
         MidLifecycleAction -> "MidLifecycleAction"
+        PendingSpotBidPlacement -> "PendingSpotBidPlacement"
         PreInService -> "PreInService"
         Successful -> "Successful"
         WaitingForELBConnectionDraining -> "WaitingForELBConnectionDraining"
diff --git a/gen/Network/AWS/AutoScaling/UpdateAutoScalingGroup.hs b/gen/Network/AWS/AutoScaling/UpdateAutoScalingGroup.hs
--- a/gen/Network/AWS/AutoScaling/UpdateAutoScalingGroup.hs
+++ b/gen/Network/AWS/AutoScaling/UpdateAutoScalingGroup.hs
@@ -55,6 +55,7 @@
     -- * Request Lenses
     , uasgTerminationPolicies
     , uasgHealthCheckGracePeriod
+    , uasgNewInstancesProtectedFromScaleIn
     , uasgVPCZoneIdentifier
     , uasgDefaultCooldown
     , uasgMaxSize
@@ -73,24 +74,26 @@
 
 import           Network.AWS.AutoScaling.Types
 import           Network.AWS.AutoScaling.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
 
 -- | /See:/ 'updateAutoScalingGroup' smart constructor.
 data UpdateAutoScalingGroup = UpdateAutoScalingGroup'
-    { _uasgTerminationPolicies     :: !(Maybe [Text])
-    , _uasgHealthCheckGracePeriod  :: !(Maybe Int)
-    , _uasgVPCZoneIdentifier       :: !(Maybe Text)
-    , _uasgDefaultCooldown         :: !(Maybe Int)
-    , _uasgMaxSize                 :: !(Maybe Int)
-    , _uasgAvailabilityZones       :: !(Maybe (List1 Text))
-    , _uasgDesiredCapacity         :: !(Maybe Int)
-    , _uasgMinSize                 :: !(Maybe Int)
-    , _uasgLaunchConfigurationName :: !(Maybe Text)
-    , _uasgHealthCheckType         :: !(Maybe Text)
-    , _uasgPlacementGroup          :: !(Maybe Text)
-    , _uasgAutoScalingGroupName    :: !Text
+    { _uasgTerminationPolicies              :: !(Maybe [Text])
+    , _uasgHealthCheckGracePeriod           :: !(Maybe Int)
+    , _uasgNewInstancesProtectedFromScaleIn :: !(Maybe Bool)
+    , _uasgVPCZoneIdentifier                :: !(Maybe Text)
+    , _uasgDefaultCooldown                  :: !(Maybe Int)
+    , _uasgMaxSize                          :: !(Maybe Int)
+    , _uasgAvailabilityZones                :: !(Maybe (List1 Text))
+    , _uasgDesiredCapacity                  :: !(Maybe Int)
+    , _uasgMinSize                          :: !(Maybe Int)
+    , _uasgLaunchConfigurationName          :: !(Maybe Text)
+    , _uasgHealthCheckType                  :: !(Maybe Text)
+    , _uasgPlacementGroup                   :: !(Maybe Text)
+    , _uasgAutoScalingGroupName             :: !Text
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'UpdateAutoScalingGroup' with the minimum fields required to make a request.
@@ -101,6 +104,8 @@
 --
 -- * 'uasgHealthCheckGracePeriod'
 --
+-- * 'uasgNewInstancesProtectedFromScaleIn'
+--
 -- * 'uasgVPCZoneIdentifier'
 --
 -- * 'uasgDefaultCooldown'
@@ -127,6 +132,7 @@
     UpdateAutoScalingGroup'
     { _uasgTerminationPolicies = Nothing
     , _uasgHealthCheckGracePeriod = Nothing
+    , _uasgNewInstancesProtectedFromScaleIn = Nothing
     , _uasgVPCZoneIdentifier = Nothing
     , _uasgDefaultCooldown = Nothing
     , _uasgMaxSize = Nothing
@@ -150,14 +156,20 @@
 uasgTerminationPolicies = lens _uasgTerminationPolicies (\ s a -> s{_uasgTerminationPolicies = a}) . _Default . _Coerce;
 
 -- | The amount of time, in seconds, that Auto Scaling waits before checking
--- the health status of an instance. The grace period begins when the
--- instance passes the system status and instance status checks from Amazon
--- EC2. For more information, see
--- <http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/healthcheck.html Health Checks>
+-- the health status of an EC2 instance that has come into service. The
+-- default is 300.
+--
+-- For more information, see
+-- <http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/healthcheck.html Health Checks For Auto Scaling Instances>
 -- in the /Auto Scaling Developer Guide/.
 uasgHealthCheckGracePeriod :: Lens' UpdateAutoScalingGroup (Maybe Int)
 uasgHealthCheckGracePeriod = lens _uasgHealthCheckGracePeriod (\ s a -> s{_uasgHealthCheckGracePeriod = a});
 
+-- | Indicates whether newly launched instances are protected from
+-- termination by Auto Scaling when scaling in.
+uasgNewInstancesProtectedFromScaleIn :: Lens' UpdateAutoScalingGroup (Maybe Bool)
+uasgNewInstancesProtectedFromScaleIn = lens _uasgNewInstancesProtectedFromScaleIn (\ s a -> s{_uasgNewInstancesProtectedFromScaleIn = a});
+
 -- | The ID of the subnet, if you are launching into a VPC. You can specify
 -- several subnets in a comma-separated list.
 --
@@ -172,7 +184,9 @@
 uasgVPCZoneIdentifier = lens _uasgVPCZoneIdentifier (\ s a -> s{_uasgVPCZoneIdentifier = a});
 
 -- | The amount of time, in seconds, after a scaling activity completes
--- before another scaling activity can start. For more information, see
+-- before another scaling activity can start. The default is 300.
+--
+-- For more information, see
 -- <http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/Cooldown.html Understanding Auto Scaling Cooldowns>
 -- in the /Auto Scaling Developer Guide/.
 uasgDefaultCooldown :: Lens' UpdateAutoScalingGroup (Maybe Int)
@@ -200,9 +214,8 @@
 uasgLaunchConfigurationName :: Lens' UpdateAutoScalingGroup (Maybe Text)
 uasgLaunchConfigurationName = lens _uasgLaunchConfigurationName (\ s a -> s{_uasgLaunchConfigurationName = a});
 
--- | The type of health check for the instances in the Auto Scaling group.
--- The health check type can either be 'EC2' for Amazon EC2 or 'ELB' for
--- Elastic Load Balancing.
+-- | The service to use for the health checks. The valid values are 'EC2' and
+-- 'ELB'.
 uasgHealthCheckType :: Lens' UpdateAutoScalingGroup (Maybe Text)
 uasgHealthCheckType = lens _uasgHealthCheckType (\ s a -> s{_uasgHealthCheckType = a});
 
@@ -241,6 +254,8 @@
                    (toQueryList "member" <$> _uasgTerminationPolicies),
                "HealthCheckGracePeriod" =:
                  _uasgHealthCheckGracePeriod,
+               "NewInstancesProtectedFromScaleIn" =:
+                 _uasgNewInstancesProtectedFromScaleIn,
                "VPCZoneIdentifier" =: _uasgVPCZoneIdentifier,
                "DefaultCooldown" =: _uasgDefaultCooldown,
                "MaxSize" =: _uasgMaxSize,
diff --git a/gen/Network/AWS/AutoScaling/Waiters.hs b/gen/Network/AWS/AutoScaling/Waiters.hs
--- a/gen/Network/AWS/AutoScaling/Waiters.hs
+++ b/gen/Network/AWS/AutoScaling/Waiters.hs
@@ -16,5 +16,6 @@
 module Network.AWS.AutoScaling.Waiters where
 
 import           Network.AWS.AutoScaling.Types
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Waiter
diff --git a/test/Test/AWS/Gen/AutoScaling.hs b/test/Test/AWS/Gen/AutoScaling.hs
--- a/test/Test/AWS/Gen/AutoScaling.hs
+++ b/test/Test/AWS/Gen/AutoScaling.hs
@@ -148,6 +148,9 @@
 --         , testPutScheduledUpdateGroupAction $
 --             putScheduledUpdateGroupAction
 --
+--         , testSetInstanceProtection $
+--             setInstanceProtection
+--
 --         , testDescribePolicies $
 --             describePolicies
 --
@@ -295,6 +298,9 @@
 --         , testPutScheduledUpdateGroupActionResponse $
 --             putScheduledUpdateGroupActionResponse
 --
+--         , testSetInstanceProtectionResponse $
+--             setInstanceProtectionResponse
+--
 --         , testDescribePoliciesResponse $
 --             describePoliciesResponse
 --
@@ -524,6 +530,11 @@
     "PutScheduledUpdateGroupAction"
     "fixture/PutScheduledUpdateGroupAction.yaml"
 
+testSetInstanceProtection :: SetInstanceProtection -> TestTree
+testSetInstanceProtection = req
+    "SetInstanceProtection"
+    "fixture/SetInstanceProtection.yaml"
+
 testDescribePolicies :: DescribePolicies -> TestTree
 testDescribePolicies = req
     "DescribePolicies"
@@ -845,6 +856,13 @@
     "fixture/PutScheduledUpdateGroupActionResponse.proto"
     autoScaling
     (Proxy :: Proxy PutScheduledUpdateGroupAction)
+
+testSetInstanceProtectionResponse :: SetInstanceProtectionResponse -> TestTree
+testSetInstanceProtectionResponse = res
+    "SetInstanceProtectionResponse"
+    "fixture/SetInstanceProtectionResponse.proto"
+    autoScaling
+    (Proxy :: Proxy SetInstanceProtection)
 
 testDescribePoliciesResponse :: DescribePoliciesResponse -> TestTree
 testDescribePoliciesResponse = res
