diff --git a/amazonka-codedeploy.cabal b/amazonka-codedeploy.cabal
--- a/amazonka-codedeploy.cabal
+++ b/amazonka-codedeploy.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-codedeploy
-version:               0.3.3
+version:               0.3.4
 synopsis:              Amazon CodeDeploy SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -39,8 +39,10 @@
 
     exposed-modules:
           Network.AWS.CodeDeploy
+        , Network.AWS.CodeDeploy.AddTagsToOnPremisesInstances
         , Network.AWS.CodeDeploy.BatchGetApplications
         , Network.AWS.CodeDeploy.BatchGetDeployments
+        , Network.AWS.CodeDeploy.BatchGetOnPremisesInstances
         , Network.AWS.CodeDeploy.CreateApplication
         , Network.AWS.CodeDeploy.CreateDeployment
         , Network.AWS.CodeDeploy.CreateDeploymentConfig
@@ -48,19 +50,24 @@
         , Network.AWS.CodeDeploy.DeleteApplication
         , Network.AWS.CodeDeploy.DeleteDeploymentConfig
         , Network.AWS.CodeDeploy.DeleteDeploymentGroup
+        , Network.AWS.CodeDeploy.DeregisterOnPremisesInstance
         , Network.AWS.CodeDeploy.GetApplication
         , Network.AWS.CodeDeploy.GetApplicationRevision
         , Network.AWS.CodeDeploy.GetDeployment
         , Network.AWS.CodeDeploy.GetDeploymentConfig
         , Network.AWS.CodeDeploy.GetDeploymentGroup
         , Network.AWS.CodeDeploy.GetDeploymentInstance
+        , Network.AWS.CodeDeploy.GetOnPremisesInstance
         , Network.AWS.CodeDeploy.ListApplicationRevisions
         , Network.AWS.CodeDeploy.ListApplications
         , Network.AWS.CodeDeploy.ListDeploymentConfigs
         , Network.AWS.CodeDeploy.ListDeploymentGroups
         , Network.AWS.CodeDeploy.ListDeploymentInstances
         , Network.AWS.CodeDeploy.ListDeployments
+        , Network.AWS.CodeDeploy.ListOnPremisesInstances
         , Network.AWS.CodeDeploy.RegisterApplicationRevision
+        , Network.AWS.CodeDeploy.RegisterOnPremisesInstance
+        , Network.AWS.CodeDeploy.RemoveTagsFromOnPremisesInstances
         , Network.AWS.CodeDeploy.StopDeployment
         , Network.AWS.CodeDeploy.Types
         , Network.AWS.CodeDeploy.UpdateApplication
@@ -69,5 +76,5 @@
     other-modules:
 
     build-depends:
-          amazonka-core == 0.3.3.*
+          amazonka-core == 0.3.4.*
         , base          >= 4.7     && < 5
diff --git a/gen/Network/AWS/CodeDeploy.hs b/gen/Network/AWS/CodeDeploy.hs
--- a/gen/Network/AWS/CodeDeploy.hs
+++ b/gen/Network/AWS/CodeDeploy.hs
@@ -18,8 +18,10 @@
 -- and the service scales with your infrastructure so you can easily deploy to
 -- one EC2 instance or thousands.
 module Network.AWS.CodeDeploy
-    ( module Network.AWS.CodeDeploy.BatchGetApplications
+    ( module Network.AWS.CodeDeploy.AddTagsToOnPremisesInstances
+    , module Network.AWS.CodeDeploy.BatchGetApplications
     , module Network.AWS.CodeDeploy.BatchGetDeployments
+    , module Network.AWS.CodeDeploy.BatchGetOnPremisesInstances
     , module Network.AWS.CodeDeploy.CreateApplication
     , module Network.AWS.CodeDeploy.CreateDeployment
     , module Network.AWS.CodeDeploy.CreateDeploymentConfig
@@ -27,27 +29,34 @@
     , module Network.AWS.CodeDeploy.DeleteApplication
     , module Network.AWS.CodeDeploy.DeleteDeploymentConfig
     , module Network.AWS.CodeDeploy.DeleteDeploymentGroup
+    , module Network.AWS.CodeDeploy.DeregisterOnPremisesInstance
     , module Network.AWS.CodeDeploy.GetApplication
     , module Network.AWS.CodeDeploy.GetApplicationRevision
     , module Network.AWS.CodeDeploy.GetDeployment
     , module Network.AWS.CodeDeploy.GetDeploymentConfig
     , module Network.AWS.CodeDeploy.GetDeploymentGroup
     , module Network.AWS.CodeDeploy.GetDeploymentInstance
+    , module Network.AWS.CodeDeploy.GetOnPremisesInstance
     , module Network.AWS.CodeDeploy.ListApplicationRevisions
     , module Network.AWS.CodeDeploy.ListApplications
     , module Network.AWS.CodeDeploy.ListDeploymentConfigs
     , module Network.AWS.CodeDeploy.ListDeploymentGroups
     , module Network.AWS.CodeDeploy.ListDeploymentInstances
     , module Network.AWS.CodeDeploy.ListDeployments
+    , module Network.AWS.CodeDeploy.ListOnPremisesInstances
     , module Network.AWS.CodeDeploy.RegisterApplicationRevision
+    , module Network.AWS.CodeDeploy.RegisterOnPremisesInstance
+    , module Network.AWS.CodeDeploy.RemoveTagsFromOnPremisesInstances
     , module Network.AWS.CodeDeploy.StopDeployment
     , module Network.AWS.CodeDeploy.Types
     , module Network.AWS.CodeDeploy.UpdateApplication
     , module Network.AWS.CodeDeploy.UpdateDeploymentGroup
     ) where
 
+import Network.AWS.CodeDeploy.AddTagsToOnPremisesInstances
 import Network.AWS.CodeDeploy.BatchGetApplications
 import Network.AWS.CodeDeploy.BatchGetDeployments
+import Network.AWS.CodeDeploy.BatchGetOnPremisesInstances
 import Network.AWS.CodeDeploy.CreateApplication
 import Network.AWS.CodeDeploy.CreateDeployment
 import Network.AWS.CodeDeploy.CreateDeploymentConfig
@@ -55,19 +64,24 @@
 import Network.AWS.CodeDeploy.DeleteApplication
 import Network.AWS.CodeDeploy.DeleteDeploymentConfig
 import Network.AWS.CodeDeploy.DeleteDeploymentGroup
+import Network.AWS.CodeDeploy.DeregisterOnPremisesInstance
 import Network.AWS.CodeDeploy.GetApplication
 import Network.AWS.CodeDeploy.GetApplicationRevision
 import Network.AWS.CodeDeploy.GetDeployment
 import Network.AWS.CodeDeploy.GetDeploymentConfig
 import Network.AWS.CodeDeploy.GetDeploymentGroup
 import Network.AWS.CodeDeploy.GetDeploymentInstance
+import Network.AWS.CodeDeploy.GetOnPremisesInstance
 import Network.AWS.CodeDeploy.ListApplicationRevisions
 import Network.AWS.CodeDeploy.ListApplications
 import Network.AWS.CodeDeploy.ListDeploymentConfigs
 import Network.AWS.CodeDeploy.ListDeploymentGroups
 import Network.AWS.CodeDeploy.ListDeploymentInstances
 import Network.AWS.CodeDeploy.ListDeployments
+import Network.AWS.CodeDeploy.ListOnPremisesInstances
 import Network.AWS.CodeDeploy.RegisterApplicationRevision
+import Network.AWS.CodeDeploy.RegisterOnPremisesInstance
+import Network.AWS.CodeDeploy.RemoveTagsFromOnPremisesInstances
 import Network.AWS.CodeDeploy.StopDeployment
 import Network.AWS.CodeDeploy.Types
 import Network.AWS.CodeDeploy.UpdateApplication
diff --git a/gen/Network/AWS/CodeDeploy/AddTagsToOnPremisesInstances.hs b/gen/Network/AWS/CodeDeploy/AddTagsToOnPremisesInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/CodeDeploy/AddTagsToOnPremisesInstances.hs
@@ -0,0 +1,108 @@
+{-# LANGUAGE DataKinds                   #-}
+{-# LANGUAGE DeriveGeneric               #-}
+{-# LANGUAGE FlexibleInstances           #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
+{-# LANGUAGE LambdaCase                  #-}
+{-# LANGUAGE NoImplicitPrelude           #-}
+{-# LANGUAGE OverloadedStrings           #-}
+{-# LANGUAGE RecordWildCards             #-}
+{-# LANGUAGE TypeFamilies                #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Module      : Network.AWS.CodeDeploy.AddTagsToOnPremisesInstances
+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
+-- License     : This Source Code Form is subject to the terms of
+--               the Mozilla Public License, v. 2.0.
+--               A copy of the MPL can be found in the LICENSE file or
+--               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : experimental
+-- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- | Adds tags to on-premises instances.
+--
+-- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_AddTagsToOnPremisesInstances.html>
+module Network.AWS.CodeDeploy.AddTagsToOnPremisesInstances
+    (
+    -- * Request
+      AddTagsToOnPremisesInstances
+    -- ** Request constructor
+    , addTagsToOnPremisesInstances
+    -- ** Request lenses
+    , attopiInstanceNames
+    , attopiTags
+
+    -- * Response
+    , AddTagsToOnPremisesInstancesResponse
+    -- ** Response constructor
+    , addTagsToOnPremisesInstancesResponse
+    ) where
+
+import Network.AWS.Data (Object)
+import Network.AWS.Prelude
+import Network.AWS.Request.JSON
+import Network.AWS.CodeDeploy.Types
+import qualified GHC.Exts
+
+data AddTagsToOnPremisesInstances = AddTagsToOnPremisesInstances
+    { _attopiInstanceNames :: List "instanceNames" Text
+    , _attopiTags          :: List "tags" Tag
+    } deriving (Eq, Read, Show)
+
+-- | 'AddTagsToOnPremisesInstances' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'attopiInstanceNames' @::@ ['Text']
+--
+-- * 'attopiTags' @::@ ['Tag']
+--
+addTagsToOnPremisesInstances :: AddTagsToOnPremisesInstances
+addTagsToOnPremisesInstances = AddTagsToOnPremisesInstances
+    { _attopiTags          = mempty
+    , _attopiInstanceNames = mempty
+    }
+
+-- | The names of the on-premises instances to add tags to.
+attopiInstanceNames :: Lens' AddTagsToOnPremisesInstances [Text]
+attopiInstanceNames =
+    lens _attopiInstanceNames (\s a -> s { _attopiInstanceNames = a })
+        . _List
+
+-- | The tag key-value pairs to add to the on-premises instances.
+--
+-- Keys and values are both required. Keys cannot be nulls or empty strings.
+-- Value-only tags are not allowed.
+attopiTags :: Lens' AddTagsToOnPremisesInstances [Tag]
+attopiTags = lens _attopiTags (\s a -> s { _attopiTags = a }) . _List
+
+data AddTagsToOnPremisesInstancesResponse = AddTagsToOnPremisesInstancesResponse
+    deriving (Eq, Ord, Read, Show, Generic)
+
+-- | 'AddTagsToOnPremisesInstancesResponse' constructor.
+addTagsToOnPremisesInstancesResponse :: AddTagsToOnPremisesInstancesResponse
+addTagsToOnPremisesInstancesResponse = AddTagsToOnPremisesInstancesResponse
+
+instance ToPath AddTagsToOnPremisesInstances where
+    toPath = const "/"
+
+instance ToQuery AddTagsToOnPremisesInstances where
+    toQuery = const mempty
+
+instance ToHeaders AddTagsToOnPremisesInstances
+
+instance ToJSON AddTagsToOnPremisesInstances where
+    toJSON AddTagsToOnPremisesInstances{..} = object
+        [ "tags"          .= _attopiTags
+        , "instanceNames" .= _attopiInstanceNames
+        ]
+
+instance AWSRequest AddTagsToOnPremisesInstances where
+    type Sv AddTagsToOnPremisesInstances = CodeDeploy
+    type Rs AddTagsToOnPremisesInstances = AddTagsToOnPremisesInstancesResponse
+
+    request  = post "AddTagsToOnPremisesInstances"
+    response = nullResponse AddTagsToOnPremisesInstancesResponse
diff --git a/gen/Network/AWS/CodeDeploy/BatchGetApplications.hs b/gen/Network/AWS/CodeDeploy/BatchGetApplications.hs
--- a/gen/Network/AWS/CodeDeploy/BatchGetApplications.hs
+++ b/gen/Network/AWS/CodeDeploy/BatchGetApplications.hs
@@ -42,6 +42,7 @@
     , bgarApplicationsInfo
     ) where
 
+import Network.AWS.Data (Object)
 import Network.AWS.Prelude
 import Network.AWS.Request.JSON
 import Network.AWS.CodeDeploy.Types
diff --git a/gen/Network/AWS/CodeDeploy/BatchGetDeployments.hs b/gen/Network/AWS/CodeDeploy/BatchGetDeployments.hs
--- a/gen/Network/AWS/CodeDeploy/BatchGetDeployments.hs
+++ b/gen/Network/AWS/CodeDeploy/BatchGetDeployments.hs
@@ -42,6 +42,7 @@
     , bgdrDeploymentsInfo
     ) where
 
+import Network.AWS.Data (Object)
 import Network.AWS.Prelude
 import Network.AWS.Request.JSON
 import Network.AWS.CodeDeploy.Types
diff --git a/gen/Network/AWS/CodeDeploy/BatchGetOnPremisesInstances.hs b/gen/Network/AWS/CodeDeploy/BatchGetOnPremisesInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/CodeDeploy/BatchGetOnPremisesInstances.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds                   #-}
+{-# LANGUAGE DeriveGeneric               #-}
+{-# LANGUAGE FlexibleInstances           #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
+{-# LANGUAGE LambdaCase                  #-}
+{-# LANGUAGE NoImplicitPrelude           #-}
+{-# LANGUAGE OverloadedStrings           #-}
+{-# LANGUAGE RecordWildCards             #-}
+{-# LANGUAGE TypeFamilies                #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Module      : Network.AWS.CodeDeploy.BatchGetOnPremisesInstances
+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
+-- License     : This Source Code Form is subject to the terms of
+--               the Mozilla Public License, v. 2.0.
+--               A copy of the MPL can be found in the LICENSE file or
+--               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : experimental
+-- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- | Gets information about one or more on-premises instances.
+--
+-- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_BatchGetOnPremisesInstances.html>
+module Network.AWS.CodeDeploy.BatchGetOnPremisesInstances
+    (
+    -- * Request
+      BatchGetOnPremisesInstances
+    -- ** Request constructor
+    , batchGetOnPremisesInstances
+    -- ** Request lenses
+    , bgopiInstanceNames
+
+    -- * Response
+    , BatchGetOnPremisesInstancesResponse
+    -- ** Response constructor
+    , batchGetOnPremisesInstancesResponse
+    -- ** Response lenses
+    , bgopirInstanceInfos
+    ) where
+
+import Network.AWS.Data (Object)
+import Network.AWS.Prelude
+import Network.AWS.Request.JSON
+import Network.AWS.CodeDeploy.Types
+import qualified GHC.Exts
+
+newtype BatchGetOnPremisesInstances = BatchGetOnPremisesInstances
+    { _bgopiInstanceNames :: List "instanceNames" Text
+    } deriving (Eq, Ord, Read, Show, Monoid, Semigroup)
+
+instance GHC.Exts.IsList BatchGetOnPremisesInstances where
+    type Item BatchGetOnPremisesInstances = Text
+
+    fromList = BatchGetOnPremisesInstances . GHC.Exts.fromList
+    toList   = GHC.Exts.toList . _bgopiInstanceNames
+
+-- | 'BatchGetOnPremisesInstances' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'bgopiInstanceNames' @::@ ['Text']
+--
+batchGetOnPremisesInstances :: BatchGetOnPremisesInstances
+batchGetOnPremisesInstances = BatchGetOnPremisesInstances
+    { _bgopiInstanceNames = mempty
+    }
+
+-- | The names of the on-premises instances to get information about.
+bgopiInstanceNames :: Lens' BatchGetOnPremisesInstances [Text]
+bgopiInstanceNames =
+    lens _bgopiInstanceNames (\s a -> s { _bgopiInstanceNames = a })
+        . _List
+
+newtype BatchGetOnPremisesInstancesResponse = BatchGetOnPremisesInstancesResponse
+    { _bgopirInstanceInfos :: List "instanceInfos" InstanceInfo
+    } deriving (Eq, Read, Show, Monoid, Semigroup)
+
+instance GHC.Exts.IsList BatchGetOnPremisesInstancesResponse where
+    type Item BatchGetOnPremisesInstancesResponse = InstanceInfo
+
+    fromList = BatchGetOnPremisesInstancesResponse . GHC.Exts.fromList
+    toList   = GHC.Exts.toList . _bgopirInstanceInfos
+
+-- | 'BatchGetOnPremisesInstancesResponse' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'bgopirInstanceInfos' @::@ ['InstanceInfo']
+--
+batchGetOnPremisesInstancesResponse :: BatchGetOnPremisesInstancesResponse
+batchGetOnPremisesInstancesResponse = BatchGetOnPremisesInstancesResponse
+    { _bgopirInstanceInfos = mempty
+    }
+
+-- | Information about the on-premises instances.
+bgopirInstanceInfos :: Lens' BatchGetOnPremisesInstancesResponse [InstanceInfo]
+bgopirInstanceInfos =
+    lens _bgopirInstanceInfos (\s a -> s { _bgopirInstanceInfos = a })
+        . _List
+
+instance ToPath BatchGetOnPremisesInstances where
+    toPath = const "/"
+
+instance ToQuery BatchGetOnPremisesInstances where
+    toQuery = const mempty
+
+instance ToHeaders BatchGetOnPremisesInstances
+
+instance ToJSON BatchGetOnPremisesInstances where
+    toJSON BatchGetOnPremisesInstances{..} = object
+        [ "instanceNames" .= _bgopiInstanceNames
+        ]
+
+instance AWSRequest BatchGetOnPremisesInstances where
+    type Sv BatchGetOnPremisesInstances = CodeDeploy
+    type Rs BatchGetOnPremisesInstances = BatchGetOnPremisesInstancesResponse
+
+    request  = post "BatchGetOnPremisesInstances"
+    response = jsonResponse
+
+instance FromJSON BatchGetOnPremisesInstancesResponse where
+    parseJSON = withObject "BatchGetOnPremisesInstancesResponse" $ \o -> BatchGetOnPremisesInstancesResponse
+        <$> o .:? "instanceInfos" .!= mempty
diff --git a/gen/Network/AWS/CodeDeploy/CreateApplication.hs b/gen/Network/AWS/CodeDeploy/CreateApplication.hs
--- a/gen/Network/AWS/CodeDeploy/CreateApplication.hs
+++ b/gen/Network/AWS/CodeDeploy/CreateApplication.hs
@@ -42,6 +42,7 @@
     , carApplicationId
     ) where
 
+import Network.AWS.Data (Object)
 import Network.AWS.Prelude
 import Network.AWS.Request.JSON
 import Network.AWS.CodeDeploy.Types
@@ -63,8 +64,8 @@
     { _caApplicationName = p1
     }
 
--- | The name of the application. This name must be unique within the AWS user
--- account.
+-- | The name of the application. This name must be unique with the applicable IAM
+-- user or AWS account.
 caApplicationName :: Lens' CreateApplication Text
 caApplicationName =
     lens _caApplicationName (\s a -> s { _caApplicationName = a })
diff --git a/gen/Network/AWS/CodeDeploy/CreateDeployment.hs b/gen/Network/AWS/CodeDeploy/CreateDeployment.hs
--- a/gen/Network/AWS/CodeDeploy/CreateDeployment.hs
+++ b/gen/Network/AWS/CodeDeploy/CreateDeployment.hs
@@ -22,7 +22,7 @@
 --
 -- Derived from AWS service descriptions, licensed under Apache 2.0.
 
--- | Deploys an application revision to the specified deployment group.
+-- | Deploys an application revision through the specified deployment group.
 --
 -- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html>
 module Network.AWS.CodeDeploy.CreateDeployment
@@ -47,6 +47,7 @@
     , cdrDeploymentId
     ) where
 
+import Network.AWS.Data (Object)
 import Network.AWS.Prelude
 import Network.AWS.Request.JSON
 import Network.AWS.CodeDeploy.Types
@@ -88,13 +89,14 @@
     , _cdIgnoreApplicationStopFailures = Nothing
     }
 
--- | The name of an existing AWS CodeDeploy application within the AWS user
--- account.
+-- | The name of an existing AWS CodeDeploy application associated with the
+-- applicable IAM user or AWS account.
 cdApplicationName :: Lens' CreateDeployment Text
 cdApplicationName =
     lens _cdApplicationName (\s a -> s { _cdApplicationName = a })
 
--- | The name of an existing deployment configuration within the AWS user account.
+-- | The name of an existing deployment configuration associated with the
+-- applicable IAM user or AWS account.
 --
 -- If not specified, the value configured in the deployment group will be used
 -- as the default. If the deployment group does not have a deployment
diff --git a/gen/Network/AWS/CodeDeploy/CreateDeploymentConfig.hs b/gen/Network/AWS/CodeDeploy/CreateDeploymentConfig.hs
--- a/gen/Network/AWS/CodeDeploy/CreateDeploymentConfig.hs
+++ b/gen/Network/AWS/CodeDeploy/CreateDeploymentConfig.hs
@@ -43,6 +43,7 @@
     , cdcrDeploymentConfigId
     ) where
 
+import Network.AWS.Data (Object)
 import Network.AWS.Prelude
 import Network.AWS.Request.JSON
 import Network.AWS.CodeDeploy.Types
diff --git a/gen/Network/AWS/CodeDeploy/CreateDeploymentGroup.hs b/gen/Network/AWS/CodeDeploy/CreateDeploymentGroup.hs
--- a/gen/Network/AWS/CodeDeploy/CreateDeploymentGroup.hs
+++ b/gen/Network/AWS/CodeDeploy/CreateDeploymentGroup.hs
@@ -37,6 +37,7 @@
     , cdgDeploymentConfigName
     , cdgDeploymentGroupName
     , cdgEc2TagFilters
+    , cdgOnPremisesInstanceTagFilters
     , cdgServiceRoleArn
 
     -- * Response
@@ -47,18 +48,20 @@
     , cdgrDeploymentGroupId
     ) where
 
+import Network.AWS.Data (Object)
 import Network.AWS.Prelude
 import Network.AWS.Request.JSON
 import Network.AWS.CodeDeploy.Types
 import qualified GHC.Exts
 
 data CreateDeploymentGroup = CreateDeploymentGroup
-    { _cdgApplicationName      :: Text
-    , _cdgAutoScalingGroups    :: List "autoScalingGroups" Text
-    , _cdgDeploymentConfigName :: Maybe Text
-    , _cdgDeploymentGroupName  :: Text
-    , _cdgEc2TagFilters        :: List "ec2TagFilters" EC2TagFilter
-    , _cdgServiceRoleArn       :: Maybe Text
+    { _cdgApplicationName              :: Text
+    , _cdgAutoScalingGroups            :: List "autoScalingGroups" Text
+    , _cdgDeploymentConfigName         :: Maybe Text
+    , _cdgDeploymentGroupName          :: Text
+    , _cdgEc2TagFilters                :: List "ec2TagFilters" EC2TagFilter
+    , _cdgOnPremisesInstanceTagFilters :: List "onPremisesInstanceTagFilters" TagFilter
+    , _cdgServiceRoleArn               :: Text
     } deriving (Eq, Read, Show)
 
 -- | 'CreateDeploymentGroup' constructor.
@@ -75,22 +78,26 @@
 --
 -- * 'cdgEc2TagFilters' @::@ ['EC2TagFilter']
 --
--- * 'cdgServiceRoleArn' @::@ 'Maybe' 'Text'
+-- * 'cdgOnPremisesInstanceTagFilters' @::@ ['TagFilter']
 --
+-- * 'cdgServiceRoleArn' @::@ 'Text'
+--
 createDeploymentGroup :: Text -- ^ 'cdgApplicationName'
                       -> Text -- ^ 'cdgDeploymentGroupName'
+                      -> Text -- ^ 'cdgServiceRoleArn'
                       -> CreateDeploymentGroup
-createDeploymentGroup p1 p2 = CreateDeploymentGroup
-    { _cdgApplicationName      = p1
-    , _cdgDeploymentGroupName  = p2
-    , _cdgDeploymentConfigName = Nothing
-    , _cdgEc2TagFilters        = mempty
-    , _cdgAutoScalingGroups    = mempty
-    , _cdgServiceRoleArn       = Nothing
+createDeploymentGroup p1 p2 p3 = CreateDeploymentGroup
+    { _cdgApplicationName              = p1
+    , _cdgDeploymentGroupName          = p2
+    , _cdgServiceRoleArn               = p3
+    , _cdgDeploymentConfigName         = Nothing
+    , _cdgEc2TagFilters                = mempty
+    , _cdgOnPremisesInstanceTagFilters = mempty
+    , _cdgAutoScalingGroups            = mempty
     }
 
--- | The name of an existing AWS CodeDeploy application within the AWS user
--- account.
+-- | The name of an existing AWS CodeDeploy application associated with the
+-- applicable IAM user or AWS account.
 cdgApplicationName :: Lens' CreateDeploymentGroup Text
 cdgApplicationName =
     lens _cdgApplicationName (\s a -> s { _cdgApplicationName = a })
@@ -105,31 +112,24 @@
 -- values, or it can be a custom deployment configuration:
 --
 -- CodeDeployDefault.AllAtOnce deploys an application revision to up to all of
--- the Amazon EC2 instances at once. The overall deployment succeeds if the
--- application revision deploys to at least one of the instances. The overall
--- deployment fails after the application revision fails to deploy to all of the
--- instances. For example, for 9 instances, deploy to up to all 9 instances at
--- once. The overall deployment succeeds if any of the 9 instances is
--- successfully deployed to, and it fails if all 9 instances fail to be deployed
--- to. CodeDeployDefault.HalfAtATime deploys to up to half of the instances at a
--- time (with fractions rounded down). The overall deployment succeeds if the
--- application revision deploys to at least half of the instances (with
--- fractions rounded up); otherwise, the deployment fails. For example, for 9
--- instances, deploy to up to 4 instances at a time. The overall deployment
--- succeeds if 5 or more instances are successfully deployed to; otherwise, the
--- deployment fails. Note that the deployment may successfully deploy to some
--- instances, even if the overall deployment fails. CodeDeployDefault.OneAtATime
--- deploys the application revision to only one of the instances at a time. The
--- overall deployment succeeds if the application revision deploys to all of the
--- instances. The overall deployment fails after the application revision first
--- fails to deploy to any one instance. For example, for 9 instances, deploy to
--- one instance at a time. The overall deployment succeeds if all 9 instances
--- are successfully deployed to, and it fails if any of one of the 9 instances
--- fail to be deployed to. Note that the deployment may successfully deploy to
--- some instances, even if the overall deployment fails. This is the default
--- deployment configuration if a configuration isn't specified for either the
--- deployment or the deployment group.  To create a custom deployment
--- configuration, call the create deployment configuration operation.
+-- the instances at once. The overall deployment succeeds if the application
+-- revision deploys to at least one of the instances. The overall deployment
+-- fails after the application revision fails to deploy to all of the instances.
+-- For example, for 9 instances, deploy to up to all 9 instances at once. The
+-- overall deployment succeeds if any of the 9 instances is successfully
+-- deployed to, and it fails if all 9 instances fail to be deployed to. CodeDeployDefault.HalfAtATime deploys to up to half of the instances at a time (with fractions rounded down). The overall deployment succeeds if the application revision deploys to at least half of the instances (with fractions rounded up); otherwise, the deployment fails. For example, for 9 instances, deploy to up to 4 instances at a time. The overall deployment succeeds if 5 or more instances are successfully deployed to; otherwise, the deployment fails. Note that the deployment may successfully deploy to some instances, even if the overall deployment fails.
+-- CodeDeployDefault.OneAtATime deploys the application revision to only one of
+-- the instances at a time. The overall deployment succeeds if the application
+-- revision deploys to all of the instances. The overall deployment fails after
+-- the application revision first fails to deploy to any one instances. For
+-- example, for 9 instances, deploy to one instance at a time. The overall
+-- deployment succeeds if all 9 instances are successfully deployed to, and it
+-- fails if any of one of the 9 instances fail to be deployed to. Note that the
+-- deployment may successfully deploy to some instances, even if the overall
+-- deployment fails. This is the default deployment configuration if a
+-- configuration isn't specified for either the deployment or the deployment
+-- group.  To create a custom deployment configuration, call the create
+-- deployment configuration operation.
 cdgDeploymentConfigName :: Lens' CreateDeploymentGroup (Maybe Text)
 cdgDeploymentConfigName =
     lens _cdgDeploymentConfigName (\s a -> s { _cdgDeploymentConfigName = a })
@@ -143,9 +143,16 @@
 cdgEc2TagFilters :: Lens' CreateDeploymentGroup [EC2TagFilter]
 cdgEc2TagFilters = lens _cdgEc2TagFilters (\s a -> s { _cdgEc2TagFilters = a }) . _List
 
+-- | The on-premises instance tags to filter on.
+cdgOnPremisesInstanceTagFilters :: Lens' CreateDeploymentGroup [TagFilter]
+cdgOnPremisesInstanceTagFilters =
+    lens _cdgOnPremisesInstanceTagFilters
+        (\s a -> s { _cdgOnPremisesInstanceTagFilters = a })
+            . _List
+
 -- | A service role ARN that allows AWS CodeDeploy to act on the user's behalf
 -- when interacting with AWS services.
-cdgServiceRoleArn :: Lens' CreateDeploymentGroup (Maybe Text)
+cdgServiceRoleArn :: Lens' CreateDeploymentGroup Text
 cdgServiceRoleArn =
     lens _cdgServiceRoleArn (\s a -> s { _cdgServiceRoleArn = a })
 
@@ -179,12 +186,13 @@
 
 instance ToJSON CreateDeploymentGroup where
     toJSON CreateDeploymentGroup{..} = object
-        [ "applicationName"      .= _cdgApplicationName
-        , "deploymentGroupName"  .= _cdgDeploymentGroupName
-        , "deploymentConfigName" .= _cdgDeploymentConfigName
-        , "ec2TagFilters"        .= _cdgEc2TagFilters
-        , "autoScalingGroups"    .= _cdgAutoScalingGroups
-        , "serviceRoleArn"       .= _cdgServiceRoleArn
+        [ "applicationName"              .= _cdgApplicationName
+        , "deploymentGroupName"          .= _cdgDeploymentGroupName
+        , "deploymentConfigName"         .= _cdgDeploymentConfigName
+        , "ec2TagFilters"                .= _cdgEc2TagFilters
+        , "onPremisesInstanceTagFilters" .= _cdgOnPremisesInstanceTagFilters
+        , "autoScalingGroups"            .= _cdgAutoScalingGroups
+        , "serviceRoleArn"               .= _cdgServiceRoleArn
         ]
 
 instance AWSRequest CreateDeploymentGroup where
diff --git a/gen/Network/AWS/CodeDeploy/DeleteApplication.hs b/gen/Network/AWS/CodeDeploy/DeleteApplication.hs
--- a/gen/Network/AWS/CodeDeploy/DeleteApplication.hs
+++ b/gen/Network/AWS/CodeDeploy/DeleteApplication.hs
@@ -40,6 +40,7 @@
     , deleteApplicationResponse
     ) where
 
+import Network.AWS.Data (Object)
 import Network.AWS.Prelude
 import Network.AWS.Request.JSON
 import Network.AWS.CodeDeploy.Types
@@ -61,8 +62,8 @@
     { _daApplicationName = p1
     }
 
--- | The name of an existing AWS CodeDeploy application within the AWS user
--- account.
+-- | The name of an existing AWS CodeDeploy application associated with the
+-- applicable IAM user or AWS account.
 daApplicationName :: Lens' DeleteApplication Text
 daApplicationName =
     lens _daApplicationName (\s a -> s { _daApplicationName = a })
diff --git a/gen/Network/AWS/CodeDeploy/DeleteDeploymentConfig.hs b/gen/Network/AWS/CodeDeploy/DeleteDeploymentConfig.hs
--- a/gen/Network/AWS/CodeDeploy/DeleteDeploymentConfig.hs
+++ b/gen/Network/AWS/CodeDeploy/DeleteDeploymentConfig.hs
@@ -43,6 +43,7 @@
     , deleteDeploymentConfigResponse
     ) where
 
+import Network.AWS.Data (Object)
 import Network.AWS.Prelude
 import Network.AWS.Request.JSON
 import Network.AWS.CodeDeploy.Types
@@ -64,7 +65,8 @@
     { _ddcDeploymentConfigName = p1
     }
 
--- | The name of an existing deployment configuration within the AWS user account.
+-- | The name of an existing deployment configuration associated with the
+-- applicable IAM user or AWS account.
 ddcDeploymentConfigName :: Lens' DeleteDeploymentConfig Text
 ddcDeploymentConfigName =
     lens _ddcDeploymentConfigName (\s a -> s { _ddcDeploymentConfigName = a })
diff --git a/gen/Network/AWS/CodeDeploy/DeleteDeploymentGroup.hs b/gen/Network/AWS/CodeDeploy/DeleteDeploymentGroup.hs
--- a/gen/Network/AWS/CodeDeploy/DeleteDeploymentGroup.hs
+++ b/gen/Network/AWS/CodeDeploy/DeleteDeploymentGroup.hs
@@ -43,6 +43,7 @@
     , ddgrHooksNotCleanedUp
     ) where
 
+import Network.AWS.Data (Object)
 import Network.AWS.Prelude
 import Network.AWS.Request.JSON
 import Network.AWS.CodeDeploy.Types
@@ -69,8 +70,8 @@
     , _ddgDeploymentGroupName = p2
     }
 
--- | The name of an existing AWS CodeDeploy application within the AWS user
--- account.
+-- | The name of an existing AWS CodeDeploy application associated with the
+-- applicable IAM user or AWS account.
 ddgApplicationName :: Lens' DeleteDeploymentGroup Text
 ddgApplicationName =
     lens _ddgApplicationName (\s a -> s { _ddgApplicationName = a })
@@ -103,10 +104,10 @@
 
 -- | If the output contains no data, and the corresponding deployment group
 -- contained at least one Auto Scaling group, AWS CodeDeploy successfully
--- removed all corresponding Auto Scaling lifecycle event hooks from the
--- instances in the Auto Scaling. If the output does contain data, AWS
+-- removed all corresponding Auto Scaling lifecycle event hooks from the Amazon
+-- EC2 instances in the Auto Scaling. If the output does contain data, AWS
 -- CodeDeploy could not remove some Auto Scaling lifecycle event hooks from the
--- instances in the Auto Scaling group.
+-- Amazon EC2 instances in the Auto Scaling group.
 ddgrHooksNotCleanedUp :: Lens' DeleteDeploymentGroupResponse [AutoScalingGroup]
 ddgrHooksNotCleanedUp =
     lens _ddgrHooksNotCleanedUp (\s a -> s { _ddgrHooksNotCleanedUp = a })
diff --git a/gen/Network/AWS/CodeDeploy/DeregisterOnPremisesInstance.hs b/gen/Network/AWS/CodeDeploy/DeregisterOnPremisesInstance.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/CodeDeploy/DeregisterOnPremisesInstance.hs
@@ -0,0 +1,94 @@
+{-# LANGUAGE DataKinds                   #-}
+{-# LANGUAGE DeriveGeneric               #-}
+{-# LANGUAGE FlexibleInstances           #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
+{-# LANGUAGE LambdaCase                  #-}
+{-# LANGUAGE NoImplicitPrelude           #-}
+{-# LANGUAGE OverloadedStrings           #-}
+{-# LANGUAGE RecordWildCards             #-}
+{-# LANGUAGE TypeFamilies                #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Module      : Network.AWS.CodeDeploy.DeregisterOnPremisesInstance
+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
+-- License     : This Source Code Form is subject to the terms of
+--               the Mozilla Public License, v. 2.0.
+--               A copy of the MPL can be found in the LICENSE file or
+--               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : experimental
+-- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- | Deregisters an on-premises instance.
+--
+-- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_DeregisterOnPremisesInstance.html>
+module Network.AWS.CodeDeploy.DeregisterOnPremisesInstance
+    (
+    -- * Request
+      DeregisterOnPremisesInstance
+    -- ** Request constructor
+    , deregisterOnPremisesInstance
+    -- ** Request lenses
+    , dopiInstanceName
+
+    -- * Response
+    , DeregisterOnPremisesInstanceResponse
+    -- ** Response constructor
+    , deregisterOnPremisesInstanceResponse
+    ) where
+
+import Network.AWS.Data (Object)
+import Network.AWS.Prelude
+import Network.AWS.Request.JSON
+import Network.AWS.CodeDeploy.Types
+import qualified GHC.Exts
+
+newtype DeregisterOnPremisesInstance = DeregisterOnPremisesInstance
+    { _dopiInstanceName :: Text
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
+
+-- | 'DeregisterOnPremisesInstance' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'dopiInstanceName' @::@ 'Text'
+--
+deregisterOnPremisesInstance :: Text -- ^ 'dopiInstanceName'
+                             -> DeregisterOnPremisesInstance
+deregisterOnPremisesInstance p1 = DeregisterOnPremisesInstance
+    { _dopiInstanceName = p1
+    }
+
+-- | The name of the on-premises instance to deregister.
+dopiInstanceName :: Lens' DeregisterOnPremisesInstance Text
+dopiInstanceName = lens _dopiInstanceName (\s a -> s { _dopiInstanceName = a })
+
+data DeregisterOnPremisesInstanceResponse = DeregisterOnPremisesInstanceResponse
+    deriving (Eq, Ord, Read, Show, Generic)
+
+-- | 'DeregisterOnPremisesInstanceResponse' constructor.
+deregisterOnPremisesInstanceResponse :: DeregisterOnPremisesInstanceResponse
+deregisterOnPremisesInstanceResponse = DeregisterOnPremisesInstanceResponse
+
+instance ToPath DeregisterOnPremisesInstance where
+    toPath = const "/"
+
+instance ToQuery DeregisterOnPremisesInstance where
+    toQuery = const mempty
+
+instance ToHeaders DeregisterOnPremisesInstance
+
+instance ToJSON DeregisterOnPremisesInstance where
+    toJSON DeregisterOnPremisesInstance{..} = object
+        [ "instanceName" .= _dopiInstanceName
+        ]
+
+instance AWSRequest DeregisterOnPremisesInstance where
+    type Sv DeregisterOnPremisesInstance = CodeDeploy
+    type Rs DeregisterOnPremisesInstance = DeregisterOnPremisesInstanceResponse
+
+    request  = post "DeregisterOnPremisesInstance"
+    response = nullResponse DeregisterOnPremisesInstanceResponse
diff --git a/gen/Network/AWS/CodeDeploy/GetApplication.hs b/gen/Network/AWS/CodeDeploy/GetApplication.hs
--- a/gen/Network/AWS/CodeDeploy/GetApplication.hs
+++ b/gen/Network/AWS/CodeDeploy/GetApplication.hs
@@ -42,6 +42,7 @@
     , garApplication
     ) where
 
+import Network.AWS.Data (Object)
 import Network.AWS.Prelude
 import Network.AWS.Request.JSON
 import Network.AWS.CodeDeploy.Types
@@ -63,8 +64,8 @@
     { _gaApplicationName = p1
     }
 
--- | The name of an existing AWS CodeDeploy application within the AWS user
--- account.
+-- | The name of an existing AWS CodeDeploy application associated with the
+-- applicable IAM user or AWS account.
 gaApplicationName :: Lens' GetApplication Text
 gaApplicationName =
     lens _gaApplicationName (\s a -> s { _gaApplicationName = a })
diff --git a/gen/Network/AWS/CodeDeploy/GetApplicationRevision.hs b/gen/Network/AWS/CodeDeploy/GetApplicationRevision.hs
--- a/gen/Network/AWS/CodeDeploy/GetApplicationRevision.hs
+++ b/gen/Network/AWS/CodeDeploy/GetApplicationRevision.hs
@@ -45,6 +45,7 @@
     , garrRevisionInfo
     ) where
 
+import Network.AWS.Data (Object)
 import Network.AWS.Prelude
 import Network.AWS.Request.JSON
 import Network.AWS.CodeDeploy.Types
diff --git a/gen/Network/AWS/CodeDeploy/GetDeployment.hs b/gen/Network/AWS/CodeDeploy/GetDeployment.hs
--- a/gen/Network/AWS/CodeDeploy/GetDeployment.hs
+++ b/gen/Network/AWS/CodeDeploy/GetDeployment.hs
@@ -42,6 +42,7 @@
     , gdrDeploymentInfo
     ) where
 
+import Network.AWS.Data (Object)
 import Network.AWS.Prelude
 import Network.AWS.Request.JSON
 import Network.AWS.CodeDeploy.Types
@@ -63,7 +64,8 @@
     { _gdDeploymentId = p1
     }
 
--- | An existing deployment ID within the AWS user account.
+-- | An existing deployment ID associated with the applicable IAM user or AWS
+-- account.
 gdDeploymentId :: Lens' GetDeployment Text
 gdDeploymentId = lens _gdDeploymentId (\s a -> s { _gdDeploymentId = a })
 
diff --git a/gen/Network/AWS/CodeDeploy/GetDeploymentConfig.hs b/gen/Network/AWS/CodeDeploy/GetDeploymentConfig.hs
--- a/gen/Network/AWS/CodeDeploy/GetDeploymentConfig.hs
+++ b/gen/Network/AWS/CodeDeploy/GetDeploymentConfig.hs
@@ -42,6 +42,7 @@
     , gdcrDeploymentConfigInfo
     ) where
 
+import Network.AWS.Data (Object)
 import Network.AWS.Prelude
 import Network.AWS.Request.JSON
 import Network.AWS.CodeDeploy.Types
@@ -63,7 +64,8 @@
     { _gdcDeploymentConfigName = p1
     }
 
--- | The name of an existing deployment configuration within the AWS user account.
+-- | The name of an existing deployment configuration associated with the
+-- applicable IAM user or AWS account.
 gdcDeploymentConfigName :: Lens' GetDeploymentConfig Text
 gdcDeploymentConfigName =
     lens _gdcDeploymentConfigName (\s a -> s { _gdcDeploymentConfigName = a })
diff --git a/gen/Network/AWS/CodeDeploy/GetDeploymentGroup.hs b/gen/Network/AWS/CodeDeploy/GetDeploymentGroup.hs
--- a/gen/Network/AWS/CodeDeploy/GetDeploymentGroup.hs
+++ b/gen/Network/AWS/CodeDeploy/GetDeploymentGroup.hs
@@ -43,6 +43,7 @@
     , gdgrDeploymentGroupInfo
     ) where
 
+import Network.AWS.Data (Object)
 import Network.AWS.Prelude
 import Network.AWS.Request.JSON
 import Network.AWS.CodeDeploy.Types
@@ -69,8 +70,8 @@
     , _gdgDeploymentGroupName = p2
     }
 
--- | The name of an existing AWS CodeDeploy application within the AWS user
--- account.
+-- | The name of an existing AWS CodeDeploy application associated with the
+-- applicable IAM user or AWS account.
 gdgApplicationName :: Lens' GetDeploymentGroup Text
 gdgApplicationName =
     lens _gdgApplicationName (\s a -> s { _gdgApplicationName = a })
diff --git a/gen/Network/AWS/CodeDeploy/GetDeploymentInstance.hs b/gen/Network/AWS/CodeDeploy/GetDeploymentInstance.hs
--- a/gen/Network/AWS/CodeDeploy/GetDeploymentInstance.hs
+++ b/gen/Network/AWS/CodeDeploy/GetDeploymentInstance.hs
@@ -22,7 +22,7 @@
 --
 -- Derived from AWS service descriptions, licensed under Apache 2.0.
 
--- | Gets information about an Amazon EC2 instance as part of a deployment.
+-- | Gets information about an instance as part of a deployment.
 --
 -- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetDeploymentInstance.html>
 module Network.AWS.CodeDeploy.GetDeploymentInstance
@@ -43,6 +43,7 @@
     , gdirInstanceSummary
     ) where
 
+import Network.AWS.Data (Object)
 import Network.AWS.Prelude
 import Network.AWS.Request.JSON
 import Network.AWS.CodeDeploy.Types
@@ -73,7 +74,7 @@
 gdiDeploymentId :: Lens' GetDeploymentInstance Text
 gdiDeploymentId = lens _gdiDeploymentId (\s a -> s { _gdiDeploymentId = a })
 
--- | The unique ID of an Amazon EC2 instance in the deployment's deployment group.
+-- | The unique ID of an instance in the deployment's deployment group.
 gdiInstanceId :: Lens' GetDeploymentInstance Text
 gdiInstanceId = lens _gdiInstanceId (\s a -> s { _gdiInstanceId = a })
 
diff --git a/gen/Network/AWS/CodeDeploy/GetOnPremisesInstance.hs b/gen/Network/AWS/CodeDeploy/GetOnPremisesInstance.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/CodeDeploy/GetOnPremisesInstance.hs
@@ -0,0 +1,113 @@
+{-# LANGUAGE DataKinds                   #-}
+{-# LANGUAGE DeriveGeneric               #-}
+{-# LANGUAGE FlexibleInstances           #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
+{-# LANGUAGE LambdaCase                  #-}
+{-# LANGUAGE NoImplicitPrelude           #-}
+{-# LANGUAGE OverloadedStrings           #-}
+{-# LANGUAGE RecordWildCards             #-}
+{-# LANGUAGE TypeFamilies                #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Module      : Network.AWS.CodeDeploy.GetOnPremisesInstance
+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
+-- License     : This Source Code Form is subject to the terms of
+--               the Mozilla Public License, v. 2.0.
+--               A copy of the MPL can be found in the LICENSE file or
+--               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : experimental
+-- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- | Gets information about an on-premises instance.
+--
+-- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetOnPremisesInstance.html>
+module Network.AWS.CodeDeploy.GetOnPremisesInstance
+    (
+    -- * Request
+      GetOnPremisesInstance
+    -- ** Request constructor
+    , getOnPremisesInstance
+    -- ** Request lenses
+    , gopiInstanceName
+
+    -- * Response
+    , GetOnPremisesInstanceResponse
+    -- ** Response constructor
+    , getOnPremisesInstanceResponse
+    -- ** Response lenses
+    , gopirInstanceInfo
+    ) where
+
+import Network.AWS.Data (Object)
+import Network.AWS.Prelude
+import Network.AWS.Request.JSON
+import Network.AWS.CodeDeploy.Types
+import qualified GHC.Exts
+
+newtype GetOnPremisesInstance = GetOnPremisesInstance
+    { _gopiInstanceName :: Text
+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
+
+-- | 'GetOnPremisesInstance' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'gopiInstanceName' @::@ 'Text'
+--
+getOnPremisesInstance :: Text -- ^ 'gopiInstanceName'
+                      -> GetOnPremisesInstance
+getOnPremisesInstance p1 = GetOnPremisesInstance
+    { _gopiInstanceName = p1
+    }
+
+-- | The name of the on-premises instance to get information about
+gopiInstanceName :: Lens' GetOnPremisesInstance Text
+gopiInstanceName = lens _gopiInstanceName (\s a -> s { _gopiInstanceName = a })
+
+newtype GetOnPremisesInstanceResponse = GetOnPremisesInstanceResponse
+    { _gopirInstanceInfo :: Maybe InstanceInfo
+    } deriving (Eq, Read, Show)
+
+-- | 'GetOnPremisesInstanceResponse' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'gopirInstanceInfo' @::@ 'Maybe' 'InstanceInfo'
+--
+getOnPremisesInstanceResponse :: GetOnPremisesInstanceResponse
+getOnPremisesInstanceResponse = GetOnPremisesInstanceResponse
+    { _gopirInstanceInfo = Nothing
+    }
+
+-- | Information about the on-premises instance.
+gopirInstanceInfo :: Lens' GetOnPremisesInstanceResponse (Maybe InstanceInfo)
+gopirInstanceInfo =
+    lens _gopirInstanceInfo (\s a -> s { _gopirInstanceInfo = a })
+
+instance ToPath GetOnPremisesInstance where
+    toPath = const "/"
+
+instance ToQuery GetOnPremisesInstance where
+    toQuery = const mempty
+
+instance ToHeaders GetOnPremisesInstance
+
+instance ToJSON GetOnPremisesInstance where
+    toJSON GetOnPremisesInstance{..} = object
+        [ "instanceName" .= _gopiInstanceName
+        ]
+
+instance AWSRequest GetOnPremisesInstance where
+    type Sv GetOnPremisesInstance = CodeDeploy
+    type Rs GetOnPremisesInstance = GetOnPremisesInstanceResponse
+
+    request  = post "GetOnPremisesInstance"
+    response = jsonResponse
+
+instance FromJSON GetOnPremisesInstanceResponse where
+    parseJSON = withObject "GetOnPremisesInstanceResponse" $ \o -> GetOnPremisesInstanceResponse
+        <$> o .:? "instanceInfo"
diff --git a/gen/Network/AWS/CodeDeploy/ListApplicationRevisions.hs b/gen/Network/AWS/CodeDeploy/ListApplicationRevisions.hs
--- a/gen/Network/AWS/CodeDeploy/ListApplicationRevisions.hs
+++ b/gen/Network/AWS/CodeDeploy/ListApplicationRevisions.hs
@@ -49,6 +49,7 @@
     , larrRevisions
     ) where
 
+import Network.AWS.Data (Object)
 import Network.AWS.Prelude
 import Network.AWS.Request.JSON
 import Network.AWS.CodeDeploy.Types
@@ -94,8 +95,8 @@
     , _larNextToken       = Nothing
     }
 
--- | The name of an existing AWS CodeDeploy application within the AWS user
--- account.
+-- | The name of an existing AWS CodeDeploy application associated with the
+-- applicable IAM user or AWS account.
 larApplicationName :: Lens' ListApplicationRevisions Text
 larApplicationName =
     lens _larApplicationName (\s a -> s { _larApplicationName = a })
@@ -137,9 +138,9 @@
 
 -- | The order to sort the list results by:
 --
--- ascending: Sort the list results in ascending order. descending: Sort the
--- list results in descending order.  If not specified, the results will be
--- sorted in ascending order.
+-- ascending: Sort the list of results in ascending order. descending: Sort
+-- the list of results in descending order.  If not specified, the results will
+-- be sorted in ascending order.
 --
 -- If set to null, the results will be sorted in an arbitrary order.
 larSortOrder :: Lens' ListApplicationRevisions (Maybe SortOrder)
diff --git a/gen/Network/AWS/CodeDeploy/ListApplications.hs b/gen/Network/AWS/CodeDeploy/ListApplications.hs
--- a/gen/Network/AWS/CodeDeploy/ListApplications.hs
+++ b/gen/Network/AWS/CodeDeploy/ListApplications.hs
@@ -22,7 +22,7 @@
 --
 -- Derived from AWS service descriptions, licensed under Apache 2.0.
 
--- | Lists the applications registered within the AWS user account.
+-- | Lists the applications registered with the applicable IAM user or AWS account.
 --
 -- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListApplications.html>
 module Network.AWS.CodeDeploy.ListApplications
@@ -43,6 +43,7 @@
     , lar1NextToken
     ) where
 
+import Network.AWS.Data (Object)
 import Network.AWS.Prelude
 import Network.AWS.Request.JSON
 import Network.AWS.CodeDeploy.Types
diff --git a/gen/Network/AWS/CodeDeploy/ListDeploymentConfigs.hs b/gen/Network/AWS/CodeDeploy/ListDeploymentConfigs.hs
--- a/gen/Network/AWS/CodeDeploy/ListDeploymentConfigs.hs
+++ b/gen/Network/AWS/CodeDeploy/ListDeploymentConfigs.hs
@@ -22,7 +22,8 @@
 --
 -- Derived from AWS service descriptions, licensed under Apache 2.0.
 
--- | Lists the deployment configurations within the AWS user account.
+-- | Lists the deployment configurations with the applicable IAM user or AWS
+-- account.
 --
 -- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListDeploymentConfigs.html>
 module Network.AWS.CodeDeploy.ListDeploymentConfigs
@@ -43,6 +44,7 @@
     , ldcrNextToken
     ) where
 
+import Network.AWS.Data (Object)
 import Network.AWS.Prelude
 import Network.AWS.Request.JSON
 import Network.AWS.CodeDeploy.Types
diff --git a/gen/Network/AWS/CodeDeploy/ListDeploymentGroups.hs b/gen/Network/AWS/CodeDeploy/ListDeploymentGroups.hs
--- a/gen/Network/AWS/CodeDeploy/ListDeploymentGroups.hs
+++ b/gen/Network/AWS/CodeDeploy/ListDeploymentGroups.hs
@@ -22,8 +22,8 @@
 --
 -- Derived from AWS service descriptions, licensed under Apache 2.0.
 
--- | Lists the deployment groups for an application registered within the AWS user
--- account.
+-- | Lists the deployment groups for an application registered with the applicable
+-- IAM user or AWS account.
 --
 -- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListDeploymentGroups.html>
 module Network.AWS.CodeDeploy.ListDeploymentGroups
@@ -46,6 +46,7 @@
     , ldgrNextToken
     ) where
 
+import Network.AWS.Data (Object)
 import Network.AWS.Prelude
 import Network.AWS.Request.JSON
 import Network.AWS.CodeDeploy.Types
@@ -71,8 +72,8 @@
     , _ldgNextToken       = Nothing
     }
 
--- | The name of an existing AWS CodeDeploy application within the AWS user
--- account.
+-- | The name of an existing AWS CodeDeploy application associated with the
+-- applicable IAM user or AWS account.
 ldgApplicationName :: Lens' ListDeploymentGroups Text
 ldgApplicationName =
     lens _ldgApplicationName (\s a -> s { _ldgApplicationName = a })
diff --git a/gen/Network/AWS/CodeDeploy/ListDeploymentInstances.hs b/gen/Network/AWS/CodeDeploy/ListDeploymentInstances.hs
--- a/gen/Network/AWS/CodeDeploy/ListDeploymentInstances.hs
+++ b/gen/Network/AWS/CodeDeploy/ListDeploymentInstances.hs
@@ -22,7 +22,8 @@
 --
 -- Derived from AWS service descriptions, licensed under Apache 2.0.
 
--- | Lists the Amazon EC2 instances for a deployment within the AWS user account.
+-- | Lists the instances for a deployment associated with the applicable IAM user
+-- or AWS account.
 --
 -- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListDeploymentInstances.html>
 module Network.AWS.CodeDeploy.ListDeploymentInstances
@@ -45,6 +46,7 @@
     , ldirNextToken
     ) where
 
+import Network.AWS.Data (Object)
 import Network.AWS.Prelude
 import Network.AWS.Request.JSON
 import Network.AWS.CodeDeploy.Types
@@ -117,7 +119,7 @@
     , _ldirNextToken     = Nothing
     }
 
--- | A list of instance IDs.
+-- | A list of instances IDs.
 ldirInstancesList :: Lens' ListDeploymentInstancesResponse [Text]
 ldirInstancesList =
     lens _ldirInstancesList (\s a -> s { _ldirInstancesList = a })
diff --git a/gen/Network/AWS/CodeDeploy/ListDeployments.hs b/gen/Network/AWS/CodeDeploy/ListDeployments.hs
--- a/gen/Network/AWS/CodeDeploy/ListDeployments.hs
+++ b/gen/Network/AWS/CodeDeploy/ListDeployments.hs
@@ -22,8 +22,8 @@
 --
 -- Derived from AWS service descriptions, licensed under Apache 2.0.
 
--- | Lists the deployments under a deployment group for an application registered
--- within the AWS user account.
+-- | Lists the deployments within a deployment group for an application registered
+-- with the applicable IAM user or AWS account.
 --
 -- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListDeployments.html>
 module Network.AWS.CodeDeploy.ListDeployments
@@ -48,6 +48,7 @@
     , ldrNextToken
     ) where
 
+import Network.AWS.Data (Object)
 import Network.AWS.Prelude
 import Network.AWS.Request.JSON
 import Network.AWS.CodeDeploy.Types
@@ -84,8 +85,8 @@
     , _ldNextToken           = Nothing
     }
 
--- | The name of an existing AWS CodeDeploy application within the AWS user
--- account.
+-- | The name of an existing AWS CodeDeploy application associated with the
+-- applicable IAM user or AWS account.
 ldApplicationName :: Lens' ListDeployments (Maybe Text)
 ldApplicationName =
     lens _ldApplicationName (\s a -> s { _ldApplicationName = a })
@@ -101,11 +102,13 @@
 ldDeploymentGroupName =
     lens _ldDeploymentGroupName (\s a -> s { _ldDeploymentGroupName = a })
 
--- | A subset of deployments to list, by status:  Created: Include in the
--- resulting list created deployments. Queued: Include in the resulting list
--- queued deployments. In Progress: Include in the resulting list in-progress
--- deployments. Succeeded: Include in the resulting list succeeded deployments. Failed: Include in the resulting list failed deployments.
--- Aborted: Include in the resulting list aborted deployments.
+-- | A subset of deployments to list, by status:
+--
+-- Created: Include in the resulting list created deployments. Queued: Include
+-- in the resulting list queued deployments. In Progress: Include in the
+-- resulting list in-progress deployments. Succeeded: Include in the resulting
+-- list succeeded deployments. Failed: Include in the resulting list failed
+-- deployments. Aborted: Include in the resulting list aborted deployments.
 ldIncludeOnlyStatuses :: Lens' ListDeployments [DeploymentStatus]
 ldIncludeOnlyStatuses =
     lens _ldIncludeOnlyStatuses (\s a -> s { _ldIncludeOnlyStatuses = a })
diff --git a/gen/Network/AWS/CodeDeploy/ListOnPremisesInstances.hs b/gen/Network/AWS/CodeDeploy/ListOnPremisesInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/CodeDeploy/ListOnPremisesInstances.hs
@@ -0,0 +1,158 @@
+{-# LANGUAGE DataKinds                   #-}
+{-# LANGUAGE DeriveGeneric               #-}
+{-# LANGUAGE FlexibleInstances           #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
+{-# LANGUAGE LambdaCase                  #-}
+{-# LANGUAGE NoImplicitPrelude           #-}
+{-# LANGUAGE OverloadedStrings           #-}
+{-# LANGUAGE RecordWildCards             #-}
+{-# LANGUAGE TypeFamilies                #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Module      : Network.AWS.CodeDeploy.ListOnPremisesInstances
+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
+-- License     : This Source Code Form is subject to the terms of
+--               the Mozilla Public License, v. 2.0.
+--               A copy of the MPL can be found in the LICENSE file or
+--               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : experimental
+-- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- | Gets a list of one or more on-premises instance names.
+--
+-- Unless otherwise specified, both registered and deregistered on-premises
+-- instance names will be listed. To list only registered or deregistered
+-- on-premises instance names, use the registration status parameter.
+--
+-- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListOnPremisesInstances.html>
+module Network.AWS.CodeDeploy.ListOnPremisesInstances
+    (
+    -- * Request
+      ListOnPremisesInstances
+    -- ** Request constructor
+    , listOnPremisesInstances
+    -- ** Request lenses
+    , lopiNextToken
+    , lopiRegistrationStatus
+    , lopiTagFilters
+
+    -- * Response
+    , ListOnPremisesInstancesResponse
+    -- ** Response constructor
+    , listOnPremisesInstancesResponse
+    -- ** Response lenses
+    , lopirInstanceNames
+    , lopirNextToken
+    ) where
+
+import Network.AWS.Data (Object)
+import Network.AWS.Prelude
+import Network.AWS.Request.JSON
+import Network.AWS.CodeDeploy.Types
+import qualified GHC.Exts
+
+data ListOnPremisesInstances = ListOnPremisesInstances
+    { _lopiNextToken          :: Maybe Text
+    , _lopiRegistrationStatus :: Maybe RegistrationStatus
+    , _lopiTagFilters         :: List "tagFilters" TagFilter
+    } deriving (Eq, Read, Show)
+
+-- | 'ListOnPremisesInstances' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'lopiNextToken' @::@ 'Maybe' 'Text'
+--
+-- * 'lopiRegistrationStatus' @::@ 'Maybe' 'RegistrationStatus'
+--
+-- * 'lopiTagFilters' @::@ ['TagFilter']
+--
+listOnPremisesInstances :: ListOnPremisesInstances
+listOnPremisesInstances = ListOnPremisesInstances
+    { _lopiRegistrationStatus = Nothing
+    , _lopiTagFilters         = mempty
+    , _lopiNextToken          = Nothing
+    }
+
+-- | An identifier that was returned from the previous list on-premises instances
+-- call, which can be used to return the next set of on-premises instances in
+-- the list.
+lopiNextToken :: Lens' ListOnPremisesInstances (Maybe Text)
+lopiNextToken = lens _lopiNextToken (\s a -> s { _lopiNextToken = a })
+
+-- | The on-premises instances registration status:
+--
+-- Deregistered: Include in the resulting list deregistered on-premises
+-- instances. Registered: Include in the resulting list registered on-premises
+-- instances.
+lopiRegistrationStatus :: Lens' ListOnPremisesInstances (Maybe RegistrationStatus)
+lopiRegistrationStatus =
+    lens _lopiRegistrationStatus (\s a -> s { _lopiRegistrationStatus = a })
+
+-- | The on-premises instance tags that will be used to restrict the corresponding
+-- on-premises instance names that are returned.
+lopiTagFilters :: Lens' ListOnPremisesInstances [TagFilter]
+lopiTagFilters = lens _lopiTagFilters (\s a -> s { _lopiTagFilters = a }) . _List
+
+data ListOnPremisesInstancesResponse = ListOnPremisesInstancesResponse
+    { _lopirInstanceNames :: List "instanceNames" Text
+    , _lopirNextToken     :: Maybe Text
+    } deriving (Eq, Ord, Read, Show)
+
+-- | 'ListOnPremisesInstancesResponse' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'lopirInstanceNames' @::@ ['Text']
+--
+-- * 'lopirNextToken' @::@ 'Maybe' 'Text'
+--
+listOnPremisesInstancesResponse :: ListOnPremisesInstancesResponse
+listOnPremisesInstancesResponse = ListOnPremisesInstancesResponse
+    { _lopirInstanceNames = mempty
+    , _lopirNextToken     = Nothing
+    }
+
+-- | The list of matching on-premises instance names.
+lopirInstanceNames :: Lens' ListOnPremisesInstancesResponse [Text]
+lopirInstanceNames =
+    lens _lopirInstanceNames (\s a -> s { _lopirInstanceNames = a })
+        . _List
+
+-- | If the amount of information that is returned is significantly large, an
+-- identifier will also be returned, which can be used in a subsequent list
+-- on-premises instances call to return the next set of on-premises instances in
+-- the list.
+lopirNextToken :: Lens' ListOnPremisesInstancesResponse (Maybe Text)
+lopirNextToken = lens _lopirNextToken (\s a -> s { _lopirNextToken = a })
+
+instance ToPath ListOnPremisesInstances where
+    toPath = const "/"
+
+instance ToQuery ListOnPremisesInstances where
+    toQuery = const mempty
+
+instance ToHeaders ListOnPremisesInstances
+
+instance ToJSON ListOnPremisesInstances where
+    toJSON ListOnPremisesInstances{..} = object
+        [ "registrationStatus" .= _lopiRegistrationStatus
+        , "tagFilters"         .= _lopiTagFilters
+        , "nextToken"          .= _lopiNextToken
+        ]
+
+instance AWSRequest ListOnPremisesInstances where
+    type Sv ListOnPremisesInstances = CodeDeploy
+    type Rs ListOnPremisesInstances = ListOnPremisesInstancesResponse
+
+    request  = post "ListOnPremisesInstances"
+    response = jsonResponse
+
+instance FromJSON ListOnPremisesInstancesResponse where
+    parseJSON = withObject "ListOnPremisesInstancesResponse" $ \o -> ListOnPremisesInstancesResponse
+        <$> o .:? "instanceNames" .!= mempty
+        <*> o .:? "nextToken"
diff --git a/gen/Network/AWS/CodeDeploy/RegisterApplicationRevision.hs b/gen/Network/AWS/CodeDeploy/RegisterApplicationRevision.hs
--- a/gen/Network/AWS/CodeDeploy/RegisterApplicationRevision.hs
+++ b/gen/Network/AWS/CodeDeploy/RegisterApplicationRevision.hs
@@ -42,6 +42,7 @@
     , registerApplicationRevisionResponse
     ) where
 
+import Network.AWS.Data (Object)
 import Network.AWS.Prelude
 import Network.AWS.Request.JSON
 import Network.AWS.CodeDeploy.Types
@@ -72,8 +73,8 @@
     , _rarDescription     = Nothing
     }
 
--- | The name of an existing AWS CodeDeploy application within the AWS user
--- account.
+-- | The name of an existing AWS CodeDeploy application associated with the
+-- applicable IAM user or AWS account.
 rarApplicationName :: Lens' RegisterApplicationRevision Text
 rarApplicationName =
     lens _rarApplicationName (\s a -> s { _rarApplicationName = a })
diff --git a/gen/Network/AWS/CodeDeploy/RegisterOnPremisesInstance.hs b/gen/Network/AWS/CodeDeploy/RegisterOnPremisesInstance.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/CodeDeploy/RegisterOnPremisesInstance.hs
@@ -0,0 +1,105 @@
+{-# LANGUAGE DataKinds                   #-}
+{-# LANGUAGE DeriveGeneric               #-}
+{-# LANGUAGE FlexibleInstances           #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
+{-# LANGUAGE LambdaCase                  #-}
+{-# LANGUAGE NoImplicitPrelude           #-}
+{-# LANGUAGE OverloadedStrings           #-}
+{-# LANGUAGE RecordWildCards             #-}
+{-# LANGUAGE TypeFamilies                #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Module      : Network.AWS.CodeDeploy.RegisterOnPremisesInstance
+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
+-- License     : This Source Code Form is subject to the terms of
+--               the Mozilla Public License, v. 2.0.
+--               A copy of the MPL can be found in the LICENSE file or
+--               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : experimental
+-- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- | Registers an on-premises instance.
+--
+-- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_RegisterOnPremisesInstance.html>
+module Network.AWS.CodeDeploy.RegisterOnPremisesInstance
+    (
+    -- * Request
+      RegisterOnPremisesInstance
+    -- ** Request constructor
+    , registerOnPremisesInstance
+    -- ** Request lenses
+    , ropiIamUserArn
+    , ropiInstanceName
+
+    -- * Response
+    , RegisterOnPremisesInstanceResponse
+    -- ** Response constructor
+    , registerOnPremisesInstanceResponse
+    ) where
+
+import Network.AWS.Data (Object)
+import Network.AWS.Prelude
+import Network.AWS.Request.JSON
+import Network.AWS.CodeDeploy.Types
+import qualified GHC.Exts
+
+data RegisterOnPremisesInstance = RegisterOnPremisesInstance
+    { _ropiIamUserArn   :: Text
+    , _ropiInstanceName :: Text
+    } deriving (Eq, Ord, Read, Show)
+
+-- | 'RegisterOnPremisesInstance' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'ropiIamUserArn' @::@ 'Text'
+--
+-- * 'ropiInstanceName' @::@ 'Text'
+--
+registerOnPremisesInstance :: Text -- ^ 'ropiInstanceName'
+                           -> Text -- ^ 'ropiIamUserArn'
+                           -> RegisterOnPremisesInstance
+registerOnPremisesInstance p1 p2 = RegisterOnPremisesInstance
+    { _ropiInstanceName = p1
+    , _ropiIamUserArn   = p2
+    }
+
+-- | The ARN of the IAM user to associate with the on-premises instance.
+ropiIamUserArn :: Lens' RegisterOnPremisesInstance Text
+ropiIamUserArn = lens _ropiIamUserArn (\s a -> s { _ropiIamUserArn = a })
+
+-- | The name of the on-premises instance to register.
+ropiInstanceName :: Lens' RegisterOnPremisesInstance Text
+ropiInstanceName = lens _ropiInstanceName (\s a -> s { _ropiInstanceName = a })
+
+data RegisterOnPremisesInstanceResponse = RegisterOnPremisesInstanceResponse
+    deriving (Eq, Ord, Read, Show, Generic)
+
+-- | 'RegisterOnPremisesInstanceResponse' constructor.
+registerOnPremisesInstanceResponse :: RegisterOnPremisesInstanceResponse
+registerOnPremisesInstanceResponse = RegisterOnPremisesInstanceResponse
+
+instance ToPath RegisterOnPremisesInstance where
+    toPath = const "/"
+
+instance ToQuery RegisterOnPremisesInstance where
+    toQuery = const mempty
+
+instance ToHeaders RegisterOnPremisesInstance
+
+instance ToJSON RegisterOnPremisesInstance where
+    toJSON RegisterOnPremisesInstance{..} = object
+        [ "instanceName" .= _ropiInstanceName
+        , "iamUserArn"   .= _ropiIamUserArn
+        ]
+
+instance AWSRequest RegisterOnPremisesInstance where
+    type Sv RegisterOnPremisesInstance = CodeDeploy
+    type Rs RegisterOnPremisesInstance = RegisterOnPremisesInstanceResponse
+
+    request  = post "RegisterOnPremisesInstance"
+    response = nullResponse RegisterOnPremisesInstanceResponse
diff --git a/gen/Network/AWS/CodeDeploy/RemoveTagsFromOnPremisesInstances.hs b/gen/Network/AWS/CodeDeploy/RemoveTagsFromOnPremisesInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/CodeDeploy/RemoveTagsFromOnPremisesInstances.hs
@@ -0,0 +1,105 @@
+{-# LANGUAGE DataKinds                   #-}
+{-# LANGUAGE DeriveGeneric               #-}
+{-# LANGUAGE FlexibleInstances           #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
+{-# LANGUAGE LambdaCase                  #-}
+{-# LANGUAGE NoImplicitPrelude           #-}
+{-# LANGUAGE OverloadedStrings           #-}
+{-# LANGUAGE RecordWildCards             #-}
+{-# LANGUAGE TypeFamilies                #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Module      : Network.AWS.CodeDeploy.RemoveTagsFromOnPremisesInstances
+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
+-- License     : This Source Code Form is subject to the terms of
+--               the Mozilla Public License, v. 2.0.
+--               A copy of the MPL can be found in the LICENSE file or
+--               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : experimental
+-- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- | Removes one or more tags from one or more on-premises instances.
+--
+-- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_RemoveTagsFromOnPremisesInstances.html>
+module Network.AWS.CodeDeploy.RemoveTagsFromOnPremisesInstances
+    (
+    -- * Request
+      RemoveTagsFromOnPremisesInstances
+    -- ** Request constructor
+    , removeTagsFromOnPremisesInstances
+    -- ** Request lenses
+    , rtfopiInstanceNames
+    , rtfopiTags
+
+    -- * Response
+    , RemoveTagsFromOnPremisesInstancesResponse
+    -- ** Response constructor
+    , removeTagsFromOnPremisesInstancesResponse
+    ) where
+
+import Network.AWS.Data (Object)
+import Network.AWS.Prelude
+import Network.AWS.Request.JSON
+import Network.AWS.CodeDeploy.Types
+import qualified GHC.Exts
+
+data RemoveTagsFromOnPremisesInstances = RemoveTagsFromOnPremisesInstances
+    { _rtfopiInstanceNames :: List "instanceNames" Text
+    , _rtfopiTags          :: List "tags" Tag
+    } deriving (Eq, Read, Show)
+
+-- | 'RemoveTagsFromOnPremisesInstances' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'rtfopiInstanceNames' @::@ ['Text']
+--
+-- * 'rtfopiTags' @::@ ['Tag']
+--
+removeTagsFromOnPremisesInstances :: RemoveTagsFromOnPremisesInstances
+removeTagsFromOnPremisesInstances = RemoveTagsFromOnPremisesInstances
+    { _rtfopiTags          = mempty
+    , _rtfopiInstanceNames = mempty
+    }
+
+-- | The names of the on-premises instances to remove tags from.
+rtfopiInstanceNames :: Lens' RemoveTagsFromOnPremisesInstances [Text]
+rtfopiInstanceNames =
+    lens _rtfopiInstanceNames (\s a -> s { _rtfopiInstanceNames = a })
+        . _List
+
+-- | The tag key-value pairs to remove from the on-premises instances.
+rtfopiTags :: Lens' RemoveTagsFromOnPremisesInstances [Tag]
+rtfopiTags = lens _rtfopiTags (\s a -> s { _rtfopiTags = a }) . _List
+
+data RemoveTagsFromOnPremisesInstancesResponse = RemoveTagsFromOnPremisesInstancesResponse
+    deriving (Eq, Ord, Read, Show, Generic)
+
+-- | 'RemoveTagsFromOnPremisesInstancesResponse' constructor.
+removeTagsFromOnPremisesInstancesResponse :: RemoveTagsFromOnPremisesInstancesResponse
+removeTagsFromOnPremisesInstancesResponse = RemoveTagsFromOnPremisesInstancesResponse
+
+instance ToPath RemoveTagsFromOnPremisesInstances where
+    toPath = const "/"
+
+instance ToQuery RemoveTagsFromOnPremisesInstances where
+    toQuery = const mempty
+
+instance ToHeaders RemoveTagsFromOnPremisesInstances
+
+instance ToJSON RemoveTagsFromOnPremisesInstances where
+    toJSON RemoveTagsFromOnPremisesInstances{..} = object
+        [ "tags"          .= _rtfopiTags
+        , "instanceNames" .= _rtfopiInstanceNames
+        ]
+
+instance AWSRequest RemoveTagsFromOnPremisesInstances where
+    type Sv RemoveTagsFromOnPremisesInstances = CodeDeploy
+    type Rs RemoveTagsFromOnPremisesInstances = RemoveTagsFromOnPremisesInstancesResponse
+
+    request  = post "RemoveTagsFromOnPremisesInstances"
+    response = nullResponse RemoveTagsFromOnPremisesInstancesResponse
diff --git a/gen/Network/AWS/CodeDeploy/StopDeployment.hs b/gen/Network/AWS/CodeDeploy/StopDeployment.hs
--- a/gen/Network/AWS/CodeDeploy/StopDeployment.hs
+++ b/gen/Network/AWS/CodeDeploy/StopDeployment.hs
@@ -43,6 +43,7 @@
     , sdrStatusMessage
     ) where
 
+import Network.AWS.Data (Object)
 import Network.AWS.Prelude
 import Network.AWS.Request.JSON
 import Network.AWS.CodeDeploy.Types
diff --git a/gen/Network/AWS/CodeDeploy/Types.hs b/gen/Network/AWS/CodeDeploy/Types.hs
--- a/gen/Network/AWS/CodeDeploy/Types.hs
+++ b/gen/Network/AWS/CodeDeploy/Types.hs
@@ -50,6 +50,15 @@
     -- * BundleType
     , BundleType (..)
 
+    -- * Tag
+    , Tag
+    , tag
+    , tagKey
+    , tagValue
+
+    -- * TagFilterType
+    , TagFilterType (..)
+
     -- * TimeRange
     , TimeRange
     , timeRange
@@ -83,6 +92,7 @@
     , dgiDeploymentGroupId
     , dgiDeploymentGroupName
     , dgiEc2TagFilters
+    , dgiOnPremisesInstanceTagFilters
     , dgiServiceRoleArn
     , dgiTargetRevision
 
@@ -138,6 +148,16 @@
     -- * SortOrder
     , SortOrder (..)
 
+    -- * InstanceInfo
+    , InstanceInfo
+    , instanceInfo
+    , iiDeregisterTime
+    , iiIamUserArn
+    , iiInstanceArn
+    , iiInstanceName
+    , iiRegisterTime
+    , iiTags
+
     -- * DeploymentInfo
     , DeploymentInfo
     , deploymentInfo
@@ -156,6 +176,13 @@
     , diStartTime
     , diStatus
 
+    -- * TagFilter
+    , TagFilter
+    , tagFilter
+    , tfKey
+    , tfType
+    , tfValue
+
     -- * LifecycleEvent
     , LifecycleEvent
     , lifecycleEvent
@@ -191,6 +218,9 @@
     -- * DeploymentStatus
     , DeploymentStatus (..)
 
+    -- * RegistrationStatus
+    , RegistrationStatus (..)
+
     -- * S3Location
     , S3Location
     , s3Location
@@ -423,6 +453,76 @@
 instance ToJSON BundleType where
     toJSON = toJSONText
 
+data Tag = Tag
+    { _tagKey   :: Maybe Text
+    , _tagValue :: Maybe Text
+    } deriving (Eq, Ord, Read, Show)
+
+-- | 'Tag' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'tagKey' @::@ 'Maybe' 'Text'
+--
+-- * 'tagValue' @::@ 'Maybe' 'Text'
+--
+tag :: Tag
+tag = Tag
+    { _tagKey   = Nothing
+    , _tagValue = Nothing
+    }
+
+-- | The tag's key.
+tagKey :: Lens' Tag (Maybe Text)
+tagKey = lens _tagKey (\s a -> s { _tagKey = a })
+
+-- | The tag's value.
+tagValue :: Lens' Tag (Maybe Text)
+tagValue = lens _tagValue (\s a -> s { _tagValue = a })
+
+instance FromJSON Tag where
+    parseJSON = withObject "Tag" $ \o -> Tag
+        <$> o .:? "Key"
+        <*> o .:? "Value"
+
+instance ToJSON Tag where
+    toJSON Tag{..} = object
+        [ "Key"   .= _tagKey
+        , "Value" .= _tagValue
+        ]
+
+data TagFilterType
+    = KeyAndValue -- ^ KEY_AND_VALUE
+    | KeyOnly     -- ^ KEY_ONLY
+    | ValueOnly   -- ^ VALUE_ONLY
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
+
+instance Hashable TagFilterType
+
+instance FromText TagFilterType where
+    parser = takeLowerText >>= \case
+        "key_and_value" -> pure KeyAndValue
+        "key_only"      -> pure KeyOnly
+        "value_only"    -> pure ValueOnly
+        e               -> fail $
+            "Failure parsing TagFilterType from " ++ show e
+
+instance ToText TagFilterType where
+    toText = \case
+        KeyAndValue -> "KEY_AND_VALUE"
+        KeyOnly     -> "KEY_ONLY"
+        ValueOnly   -> "VALUE_ONLY"
+
+instance ToByteString TagFilterType
+instance ToHeader     TagFilterType
+instance ToQuery      TagFilterType
+
+instance FromJSON TagFilterType where
+    parseJSON = parseJSONText "TagFilterType"
+
+instance ToJSON TagFilterType where
+    toJSON = toJSONText
+
 data TimeRange = TimeRange
     { _trEnd   :: Maybe POSIX
     , _trStart :: Maybe POSIX
@@ -609,14 +709,15 @@
         ]
 
 data DeploymentGroupInfo = DeploymentGroupInfo
-    { _dgiApplicationName      :: Maybe Text
-    , _dgiAutoScalingGroups    :: List "autoScalingGroups" AutoScalingGroup
-    , _dgiDeploymentConfigName :: Maybe Text
-    , _dgiDeploymentGroupId    :: Maybe Text
-    , _dgiDeploymentGroupName  :: Maybe Text
-    , _dgiEc2TagFilters        :: List "ec2TagFilters" EC2TagFilter
-    , _dgiServiceRoleArn       :: Maybe Text
-    , _dgiTargetRevision       :: Maybe RevisionLocation
+    { _dgiApplicationName              :: Maybe Text
+    , _dgiAutoScalingGroups            :: List "autoScalingGroups" AutoScalingGroup
+    , _dgiDeploymentConfigName         :: Maybe Text
+    , _dgiDeploymentGroupId            :: Maybe Text
+    , _dgiDeploymentGroupName          :: Maybe Text
+    , _dgiEc2TagFilters                :: List "ec2TagFilters" EC2TagFilter
+    , _dgiOnPremisesInstanceTagFilters :: List "onPremisesInstanceTagFilters" TagFilter
+    , _dgiServiceRoleArn               :: Maybe Text
+    , _dgiTargetRevision               :: Maybe RevisionLocation
     } deriving (Eq, Read, Show)
 
 -- | 'DeploymentGroupInfo' constructor.
@@ -635,20 +736,23 @@
 --
 -- * 'dgiEc2TagFilters' @::@ ['EC2TagFilter']
 --
+-- * 'dgiOnPremisesInstanceTagFilters' @::@ ['TagFilter']
+--
 -- * 'dgiServiceRoleArn' @::@ 'Maybe' 'Text'
 --
 -- * 'dgiTargetRevision' @::@ 'Maybe' 'RevisionLocation'
 --
 deploymentGroupInfo :: DeploymentGroupInfo
 deploymentGroupInfo = DeploymentGroupInfo
-    { _dgiApplicationName      = Nothing
-    , _dgiDeploymentGroupId    = Nothing
-    , _dgiDeploymentGroupName  = Nothing
-    , _dgiDeploymentConfigName = Nothing
-    , _dgiEc2TagFilters        = mempty
-    , _dgiAutoScalingGroups    = mempty
-    , _dgiServiceRoleArn       = Nothing
-    , _dgiTargetRevision       = Nothing
+    { _dgiApplicationName              = Nothing
+    , _dgiDeploymentGroupId            = Nothing
+    , _dgiDeploymentGroupName          = Nothing
+    , _dgiDeploymentConfigName         = Nothing
+    , _dgiEc2TagFilters                = mempty
+    , _dgiOnPremisesInstanceTagFilters = mempty
+    , _dgiAutoScalingGroups            = mempty
+    , _dgiServiceRoleArn               = Nothing
+    , _dgiTargetRevision               = Nothing
     }
 
 -- | The application name.
@@ -681,6 +785,13 @@
 dgiEc2TagFilters :: Lens' DeploymentGroupInfo [EC2TagFilter]
 dgiEc2TagFilters = lens _dgiEc2TagFilters (\s a -> s { _dgiEc2TagFilters = a }) . _List
 
+-- | The on-premises instance tags to filter on.
+dgiOnPremisesInstanceTagFilters :: Lens' DeploymentGroupInfo [TagFilter]
+dgiOnPremisesInstanceTagFilters =
+    lens _dgiOnPremisesInstanceTagFilters
+        (\s a -> s { _dgiOnPremisesInstanceTagFilters = a })
+            . _List
+
 -- | A service role ARN.
 dgiServiceRoleArn :: Lens' DeploymentGroupInfo (Maybe Text)
 dgiServiceRoleArn =
@@ -700,19 +811,21 @@
         <*> o .:? "deploymentGroupId"
         <*> o .:? "deploymentGroupName"
         <*> o .:? "ec2TagFilters" .!= mempty
+        <*> o .:? "onPremisesInstanceTagFilters" .!= mempty
         <*> o .:? "serviceRoleArn"
         <*> o .:? "targetRevision"
 
 instance ToJSON DeploymentGroupInfo where
     toJSON DeploymentGroupInfo{..} = object
-        [ "applicationName"      .= _dgiApplicationName
-        , "deploymentGroupId"    .= _dgiDeploymentGroupId
-        , "deploymentGroupName"  .= _dgiDeploymentGroupName
-        , "deploymentConfigName" .= _dgiDeploymentConfigName
-        , "ec2TagFilters"        .= _dgiEc2TagFilters
-        , "autoScalingGroups"    .= _dgiAutoScalingGroups
-        , "serviceRoleArn"       .= _dgiServiceRoleArn
-        , "targetRevision"       .= _dgiTargetRevision
+        [ "applicationName"              .= _dgiApplicationName
+        , "deploymentGroupId"            .= _dgiDeploymentGroupId
+        , "deploymentGroupName"          .= _dgiDeploymentGroupName
+        , "deploymentConfigName"         .= _dgiDeploymentConfigName
+        , "ec2TagFilters"                .= _dgiEc2TagFilters
+        , "onPremisesInstanceTagFilters" .= _dgiOnPremisesInstanceTagFilters
+        , "autoScalingGroups"            .= _dgiAutoScalingGroups
+        , "serviceRoleArn"               .= _dgiServiceRoleArn
+        , "targetRevision"               .= _dgiTargetRevision
         ]
 
 data ApplicationRevisionSortBy
@@ -769,17 +882,17 @@
 -- | The minimum healthy instances type:
 --
 -- HOST_COUNT: The minimum number of healthy instances, as an absolute value. FLEET_PERCENT: The minimum number of healthy instances, as a percentage of the total number of instances in the deployment.
--- For example, for 9 Amazon EC2 instances, if a HOST_COUNT of 6 is specified,
--- deploy to up to 3 instances at a time. The deployment succeeds if 6 or more
--- instances are successfully deployed to; otherwise, the deployment fails. If a
+-- For example, for 9 instances, if a HOST_COUNT of 6 is specified, deploy to
+-- up to 3 instances at a time. The deployment succeeds if 6 or more instances
+-- are successfully deployed to; otherwise, the deployment fails. If a
 -- FLEET_PERCENT of 40 is specified, deploy to up to 5 instances at a time. The
 -- deployment succeeds if 4 or more instances are successfully deployed to;
 -- otherwise, the deployment fails.
 --
 -- In a call to the get deployment configuration operation,
 -- CodeDeployDefault.OneAtATime will return a minimum healthy instances type of
--- MOST_CONCURRENCY and a value of 1. This means a deployment to only one Amazon
--- EC2 instance at a time. (You cannot set the type to MOST_CONCURRENCY, only to
+-- MOST_CONCURRENCY and a value of 1. This means a deployment to only one
+-- instances at a time. (You cannot set the type to MOST_CONCURRENCY, only to
 -- HOST_COUNT or FLEET_PERCENT.)
 mhhType :: Lens' MinimumHealthyHosts (Maybe MinimumHealthyHostsType)
 mhhType = lens _mhhType (\s a -> s { _mhhType = a })
@@ -985,17 +1098,17 @@
     , _ectfType  = Nothing
     }
 
--- | The Amazon EC2 tag filter key.
+-- | The tag filter key.
 ectfKey :: Lens' EC2TagFilter (Maybe Text)
 ectfKey = lens _ectfKey (\s a -> s { _ectfKey = a })
 
--- | The Amazon EC2 tag filter type:
+-- | The tag filter type:
 --
 -- KEY_ONLY: Key only. VALUE_ONLY: Value only. KEY_AND_VALUE: Key and value.
 ectfType :: Lens' EC2TagFilter (Maybe EC2TagFilterType)
 ectfType = lens _ectfType (\s a -> s { _ectfType = a })
 
--- | The Amazon EC2 tag filter value.
+-- | The tag filter value.
 ectfValue :: Lens' EC2TagFilter (Maybe Text)
 ectfValue = lens _ectfValue (\s a -> s { _ectfValue = a })
 
@@ -1131,17 +1244,18 @@
 -- is created but before it starts. DEPLOYMENT_GROUP_MISSING: The deployment
 -- group was missing. Note that this error code will most likely be raised if
 -- the deployment group is deleted after the deployment is created but before it
--- starts. REVISION_MISSING: The revision ID was missing. Note that this error
--- code will most likely be raised if the revision is deleted after the
--- deployment is created but before it starts. IAM_ROLE_MISSING: The service
+-- starts. HEALTH_CONSTRAINTS: The deployment failed on too many instances to be
+-- able to successfully deploy within the specified instance health constraints.
+-- HEALTH_CONSTRAINTS_INVALID: The revision can never successfully deploy within
+-- the instance health constraints as specified. IAM_ROLE_MISSING: The service
 -- role cannot be accessed. IAM_ROLE_PERMISSIONS: The service role does not have
--- the correct permissions. OVER_MAX_INSTANCES: The maximum number of instances
--- was exceeded. NO_INSTANCES: No instances were specified, or no instances can
--- be found. TIMEOUT: The deployment has timed out. HEALTH_CONSTRAINTS_INVALID:
--- The revision can never successfully deploy under the instance health
--- constraints as specified. HEALTH_CONSTRAINTS: The deployment failed on too
--- many instances to be able to successfully deploy under the specified instance
--- health constraints. INTERNAL_ERROR: There was an internal error.
+-- the correct permissions. INTERNAL_ERROR: There was an internal error. NO_EC2_SUBSCRIPTION: The calling account is not subscribed to the Amazon EC2 service.
+-- NO_INSTANCES: No instances were specified, or no instances can be found. OVER_MAX_INSTANCES: The maximum number of instances was exceeded.
+-- THROTTLED: The operation was throttled because the calling account exceeded
+-- the throttling limits of one or more AWS services. TIMEOUT: The deployment
+-- has timed out. REVISION_MISSING: The revision ID was missing. Note that this
+-- error code will most likely be raised if the revision is deleted after the
+-- deployment is created but before it starts.
 eiCode :: Lens' ErrorInformation (Maybe ErrorCode)
 eiCode = lens _eiCode (\s a -> s { _eiCode = a })
 
@@ -1189,6 +1303,85 @@
 instance ToJSON SortOrder where
     toJSON = toJSONText
 
+data InstanceInfo = InstanceInfo
+    { _iiDeregisterTime :: Maybe POSIX
+    , _iiIamUserArn     :: Maybe Text
+    , _iiInstanceArn    :: Maybe Text
+    , _iiInstanceName   :: Maybe Text
+    , _iiRegisterTime   :: Maybe POSIX
+    , _iiTags           :: List "tags" Tag
+    } deriving (Eq, Read, Show)
+
+-- | 'InstanceInfo' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'iiDeregisterTime' @::@ 'Maybe' 'UTCTime'
+--
+-- * 'iiIamUserArn' @::@ 'Maybe' 'Text'
+--
+-- * 'iiInstanceArn' @::@ 'Maybe' 'Text'
+--
+-- * 'iiInstanceName' @::@ 'Maybe' 'Text'
+--
+-- * 'iiRegisterTime' @::@ 'Maybe' 'UTCTime'
+--
+-- * 'iiTags' @::@ ['Tag']
+--
+instanceInfo :: InstanceInfo
+instanceInfo = InstanceInfo
+    { _iiInstanceName   = Nothing
+    , _iiIamUserArn     = Nothing
+    , _iiInstanceArn    = Nothing
+    , _iiRegisterTime   = Nothing
+    , _iiDeregisterTime = Nothing
+    , _iiTags           = mempty
+    }
+
+-- | If the on-premises instance was deregistered, the time that the on-premises
+-- instance was deregistered.
+iiDeregisterTime :: Lens' InstanceInfo (Maybe UTCTime)
+iiDeregisterTime = lens _iiDeregisterTime (\s a -> s { _iiDeregisterTime = a }) . mapping _Time
+
+-- | The IAM user ARN associated with the on-premises instance.
+iiIamUserArn :: Lens' InstanceInfo (Maybe Text)
+iiIamUserArn = lens _iiIamUserArn (\s a -> s { _iiIamUserArn = a })
+
+-- | The ARN of the on-premises instance.
+iiInstanceArn :: Lens' InstanceInfo (Maybe Text)
+iiInstanceArn = lens _iiInstanceArn (\s a -> s { _iiInstanceArn = a })
+
+-- | The name of the on-premises instance.
+iiInstanceName :: Lens' InstanceInfo (Maybe Text)
+iiInstanceName = lens _iiInstanceName (\s a -> s { _iiInstanceName = a })
+
+-- | The time that the on-premises instance was registered.
+iiRegisterTime :: Lens' InstanceInfo (Maybe UTCTime)
+iiRegisterTime = lens _iiRegisterTime (\s a -> s { _iiRegisterTime = a }) . mapping _Time
+
+-- | The tags that are currently associated with the on-premises instance.
+iiTags :: Lens' InstanceInfo [Tag]
+iiTags = lens _iiTags (\s a -> s { _iiTags = a }) . _List
+
+instance FromJSON InstanceInfo where
+    parseJSON = withObject "InstanceInfo" $ \o -> InstanceInfo
+        <$> o .:? "deregisterTime"
+        <*> o .:? "iamUserArn"
+        <*> o .:? "instanceArn"
+        <*> o .:? "instanceName"
+        <*> o .:? "registerTime"
+        <*> o .:? "tags" .!= mempty
+
+instance ToJSON InstanceInfo where
+    toJSON InstanceInfo{..} = object
+        [ "instanceName"   .= _iiInstanceName
+        , "iamUserArn"     .= _iiIamUserArn
+        , "instanceArn"    .= _iiInstanceArn
+        , "registerTime"   .= _iiRegisterTime
+        , "deregisterTime" .= _iiDeregisterTime
+        , "tags"           .= _iiTags
+        ]
+
 data DeploymentInfo = DeploymentInfo
     { _diApplicationName               :: Maybe Text
     , _diCompleteTime                  :: Maybe POSIX
@@ -1371,6 +1564,56 @@
         , "ignoreApplicationStopFailures" .= _diIgnoreApplicationStopFailures
         ]
 
+data TagFilter = TagFilter
+    { _tfKey   :: Maybe Text
+    , _tfType  :: Maybe TagFilterType
+    , _tfValue :: Maybe Text
+    } deriving (Eq, Read, Show)
+
+-- | 'TagFilter' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'tfKey' @::@ 'Maybe' 'Text'
+--
+-- * 'tfType' @::@ 'Maybe' 'TagFilterType'
+--
+-- * 'tfValue' @::@ 'Maybe' 'Text'
+--
+tagFilter :: TagFilter
+tagFilter = TagFilter
+    { _tfKey   = Nothing
+    , _tfValue = Nothing
+    , _tfType  = Nothing
+    }
+
+-- | The on-premises instance tag filter key.
+tfKey :: Lens' TagFilter (Maybe Text)
+tfKey = lens _tfKey (\s a -> s { _tfKey = a })
+
+-- | The on-premises instance tag filter type:
+--
+-- KEY_ONLY: Key only. VALUE_ONLY: Value only. KEY_AND_VALUE: Key and value.
+tfType :: Lens' TagFilter (Maybe TagFilterType)
+tfType = lens _tfType (\s a -> s { _tfType = a })
+
+-- | The on-premises instance tag filter value.
+tfValue :: Lens' TagFilter (Maybe Text)
+tfValue = lens _tfValue (\s a -> s { _tfValue = a })
+
+instance FromJSON TagFilter where
+    parseJSON = withObject "TagFilter" $ \o -> TagFilter
+        <$> o .:? "Key"
+        <*> o .:? "Type"
+        <*> o .:? "Value"
+
+instance ToJSON TagFilter where
+    toJSON TagFilter{..} = object
+        [ "Key"   .= _tfKey
+        , "Value" .= _tfValue
+        , "Type"  .= _tfType
+        ]
+
 data LifecycleEvent = LifecycleEvent
     { _leDiagnostics        :: Maybe Diagnostics
     , _leEndTime            :: Maybe POSIX
@@ -1523,9 +1766,11 @@
     | IamRoleMissing           -- ^ IAM_ROLE_MISSING
     | IamRolePermissions       -- ^ IAM_ROLE_PERMISSIONS
     | InternalError            -- ^ INTERNAL_ERROR
+    | NOEC2SUBSCRIPTION        -- ^ NO_EC2_SUBSCRIPTION
     | NoInstances              -- ^ NO_INSTANCES
     | OverMaxInstances         -- ^ OVER_MAX_INSTANCES
     | RevisionMissing          -- ^ REVISION_MISSING
+    | Throttled                -- ^ THROTTLED
     | Timeout                  -- ^ TIMEOUT
       deriving (Eq, Ord, Read, Show, Generic, Enum)
 
@@ -1540,9 +1785,11 @@
         "iam_role_missing"           -> pure IamRoleMissing
         "iam_role_permissions"       -> pure IamRolePermissions
         "internal_error"             -> pure InternalError
+        "no_ec2_subscription"        -> pure NOEC2SUBSCRIPTION
         "no_instances"               -> pure NoInstances
         "over_max_instances"         -> pure OverMaxInstances
         "revision_missing"           -> pure RevisionMissing
+        "throttled"                  -> pure Throttled
         "timeout"                    -> pure Timeout
         e                            -> fail $
             "Failure parsing ErrorCode from " ++ show e
@@ -1556,9 +1803,11 @@
         IamRoleMissing           -> "IAM_ROLE_MISSING"
         IamRolePermissions       -> "IAM_ROLE_PERMISSIONS"
         InternalError            -> "INTERNAL_ERROR"
+        NOEC2SUBSCRIPTION        -> "NO_EC2_SUBSCRIPTION"
         NoInstances              -> "NO_INSTANCES"
         OverMaxInstances         -> "OVER_MAX_INSTANCES"
         RevisionMissing          -> "REVISION_MISSING"
+        Throttled                -> "THROTTLED"
         Timeout                  -> "TIMEOUT"
 
 instance ToByteString ErrorCode
@@ -1714,6 +1963,35 @@
 instance ToJSON DeploymentStatus where
     toJSON = toJSONText
 
+data RegistrationStatus
+    = Deregistered -- ^ Deregistered
+    | Registered   -- ^ Registered
+      deriving (Eq, Ord, Read, Show, Generic, Enum)
+
+instance Hashable RegistrationStatus
+
+instance FromText RegistrationStatus where
+    parser = takeLowerText >>= \case
+        "deregistered" -> pure Deregistered
+        "registered"   -> pure Registered
+        e              -> fail $
+            "Failure parsing RegistrationStatus from " ++ show e
+
+instance ToText RegistrationStatus where
+    toText = \case
+        Deregistered -> "Deregistered"
+        Registered   -> "Registered"
+
+instance ToByteString RegistrationStatus
+instance ToHeader     RegistrationStatus
+instance ToQuery      RegistrationStatus
+
+instance FromJSON RegistrationStatus where
+    parseJSON = parseJSONText "RegistrationStatus"
+
+instance ToJSON RegistrationStatus where
+    toJSON = toJSONText
+
 data S3Location = S3Location
     { _slBucket     :: Maybe Text
     , _slBundleType :: Maybe BundleType
@@ -1895,26 +2173,26 @@
     toJSON = toJSONText
 
 data EC2TagFilterType
-    = KeyAndValue -- ^ KEY_AND_VALUE
-    | KeyOnly     -- ^ KEY_ONLY
-    | ValueOnly   -- ^ VALUE_ONLY
+    = ECTFTKeyAndValue -- ^ KEY_AND_VALUE
+    | ECTFTKeyOnly     -- ^ KEY_ONLY
+    | ECTFTValueOnly   -- ^ VALUE_ONLY
       deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable EC2TagFilterType
 
 instance FromText EC2TagFilterType where
     parser = takeLowerText >>= \case
-        "key_and_value" -> pure KeyAndValue
-        "key_only"      -> pure KeyOnly
-        "value_only"    -> pure ValueOnly
+        "key_and_value" -> pure ECTFTKeyAndValue
+        "key_only"      -> pure ECTFTKeyOnly
+        "value_only"    -> pure ECTFTValueOnly
         e               -> fail $
             "Failure parsing EC2TagFilterType from " ++ show e
 
 instance ToText EC2TagFilterType where
     toText = \case
-        KeyAndValue -> "KEY_AND_VALUE"
-        KeyOnly     -> "KEY_ONLY"
-        ValueOnly   -> "VALUE_ONLY"
+        ECTFTKeyAndValue -> "KEY_AND_VALUE"
+        ECTFTKeyOnly     -> "KEY_ONLY"
+        ECTFTValueOnly   -> "VALUE_ONLY"
 
 instance ToByteString EC2TagFilterType
 instance ToHeader     EC2TagFilterType
diff --git a/gen/Network/AWS/CodeDeploy/UpdateApplication.hs b/gen/Network/AWS/CodeDeploy/UpdateApplication.hs
--- a/gen/Network/AWS/CodeDeploy/UpdateApplication.hs
+++ b/gen/Network/AWS/CodeDeploy/UpdateApplication.hs
@@ -41,6 +41,7 @@
     , updateApplicationResponse
     ) where
 
+import Network.AWS.Data (Object)
 import Network.AWS.Prelude
 import Network.AWS.Request.JSON
 import Network.AWS.CodeDeploy.Types
diff --git a/gen/Network/AWS/CodeDeploy/UpdateDeploymentGroup.hs b/gen/Network/AWS/CodeDeploy/UpdateDeploymentGroup.hs
--- a/gen/Network/AWS/CodeDeploy/UpdateDeploymentGroup.hs
+++ b/gen/Network/AWS/CodeDeploy/UpdateDeploymentGroup.hs
@@ -38,6 +38,7 @@
     , udgDeploymentConfigName
     , udgEc2TagFilters
     , udgNewDeploymentGroupName
+    , udgOnPremisesInstanceTagFilters
     , udgServiceRoleArn
 
     -- * Response
@@ -48,19 +49,21 @@
     , udgrHooksNotCleanedUp
     ) where
 
+import Network.AWS.Data (Object)
 import Network.AWS.Prelude
 import Network.AWS.Request.JSON
 import Network.AWS.CodeDeploy.Types
 import qualified GHC.Exts
 
 data UpdateDeploymentGroup = UpdateDeploymentGroup
-    { _udgApplicationName            :: Text
-    , _udgAutoScalingGroups          :: List "autoScalingGroups" Text
-    , _udgCurrentDeploymentGroupName :: Text
-    , _udgDeploymentConfigName       :: Maybe Text
-    , _udgEc2TagFilters              :: List "ec2TagFilters" EC2TagFilter
-    , _udgNewDeploymentGroupName     :: Maybe Text
-    , _udgServiceRoleArn             :: Maybe Text
+    { _udgApplicationName              :: Text
+    , _udgAutoScalingGroups            :: List "autoScalingGroups" Text
+    , _udgCurrentDeploymentGroupName   :: Text
+    , _udgDeploymentConfigName         :: Maybe Text
+    , _udgEc2TagFilters                :: List "ec2TagFilters" EC2TagFilter
+    , _udgNewDeploymentGroupName       :: Maybe Text
+    , _udgOnPremisesInstanceTagFilters :: List "onPremisesInstanceTagFilters" TagFilter
+    , _udgServiceRoleArn               :: Maybe Text
     } deriving (Eq, Read, Show)
 
 -- | 'UpdateDeploymentGroup' constructor.
@@ -79,19 +82,22 @@
 --
 -- * 'udgNewDeploymentGroupName' @::@ 'Maybe' 'Text'
 --
+-- * 'udgOnPremisesInstanceTagFilters' @::@ ['TagFilter']
+--
 -- * 'udgServiceRoleArn' @::@ 'Maybe' 'Text'
 --
 updateDeploymentGroup :: Text -- ^ 'udgApplicationName'
                       -> Text -- ^ 'udgCurrentDeploymentGroupName'
                       -> UpdateDeploymentGroup
 updateDeploymentGroup p1 p2 = UpdateDeploymentGroup
-    { _udgApplicationName            = p1
-    , _udgCurrentDeploymentGroupName = p2
-    , _udgNewDeploymentGroupName     = Nothing
-    , _udgDeploymentConfigName       = Nothing
-    , _udgEc2TagFilters              = mempty
-    , _udgAutoScalingGroups          = mempty
-    , _udgServiceRoleArn             = Nothing
+    { _udgApplicationName              = p1
+    , _udgCurrentDeploymentGroupName   = p2
+    , _udgNewDeploymentGroupName       = Nothing
+    , _udgDeploymentConfigName         = Nothing
+    , _udgEc2TagFilters                = mempty
+    , _udgOnPremisesInstanceTagFilters = mempty
+    , _udgAutoScalingGroups            = mempty
+    , _udgServiceRoleArn               = Nothing
     }
 
 -- | The application name corresponding to the deployment group to update.
@@ -129,6 +135,14 @@
     lens _udgNewDeploymentGroupName
         (\s a -> s { _udgNewDeploymentGroupName = a })
 
+-- | The replacement set of on-premises instance tags for filter on, if you want
+-- to change them.
+udgOnPremisesInstanceTagFilters :: Lens' UpdateDeploymentGroup [TagFilter]
+udgOnPremisesInstanceTagFilters =
+    lens _udgOnPremisesInstanceTagFilters
+        (\s a -> s { _udgOnPremisesInstanceTagFilters = a })
+            . _List
+
 -- | A replacement service role's ARN, if you want to change it.
 udgServiceRoleArn :: Lens' UpdateDeploymentGroup (Maybe Text)
 udgServiceRoleArn =
@@ -158,8 +172,8 @@
 -- | If the output contains no data, and the corresponding deployment group
 -- contained at least one Auto Scaling group, AWS CodeDeploy successfully
 -- removed all corresponding Auto Scaling lifecycle event hooks from the AWS
--- user account. If the output does contain data, AWS CodeDeploy could not
--- remove some Auto Scaling lifecycle event hooks from the AWS user account.
+-- account. If the output does contain data, AWS CodeDeploy could not remove
+-- some Auto Scaling lifecycle event hooks from the AWS account.
 udgrHooksNotCleanedUp :: Lens' UpdateDeploymentGroupResponse [AutoScalingGroup]
 udgrHooksNotCleanedUp =
     lens _udgrHooksNotCleanedUp (\s a -> s { _udgrHooksNotCleanedUp = a })
@@ -175,13 +189,14 @@
 
 instance ToJSON UpdateDeploymentGroup where
     toJSON UpdateDeploymentGroup{..} = object
-        [ "applicationName"            .= _udgApplicationName
-        , "currentDeploymentGroupName" .= _udgCurrentDeploymentGroupName
-        , "newDeploymentGroupName"     .= _udgNewDeploymentGroupName
-        , "deploymentConfigName"       .= _udgDeploymentConfigName
-        , "ec2TagFilters"              .= _udgEc2TagFilters
-        , "autoScalingGroups"          .= _udgAutoScalingGroups
-        , "serviceRoleArn"             .= _udgServiceRoleArn
+        [ "applicationName"              .= _udgApplicationName
+        , "currentDeploymentGroupName"   .= _udgCurrentDeploymentGroupName
+        , "newDeploymentGroupName"       .= _udgNewDeploymentGroupName
+        , "deploymentConfigName"         .= _udgDeploymentConfigName
+        , "ec2TagFilters"                .= _udgEc2TagFilters
+        , "onPremisesInstanceTagFilters" .= _udgOnPremisesInstanceTagFilters
+        , "autoScalingGroups"            .= _udgAutoScalingGroups
+        , "serviceRoleArn"               .= _udgServiceRoleArn
         ]
 
 instance AWSRequest UpdateDeploymentGroup where
