diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`1.4.5`
+`1.5.0`
 
 
 ## Description
diff --git a/amazonka-codedeploy.cabal b/amazonka-codedeploy.cabal
--- a/amazonka-codedeploy.cabal
+++ b/amazonka-codedeploy.cabal
@@ -1,13 +1,13 @@
 name:                  amazonka-codedeploy
-version:               1.4.5
+version:               1.5.0
 synopsis:              Amazon CodeDeploy SDK.
 homepage:              https://github.com/brendanhay/amazonka
 bug-reports:           https://github.com/brendanhay/amazonka/issues
-license:               OtherLicense
+license:               MPL-2.0
 license-file:          LICENSE
 author:                Brendan Hay
-maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
-copyright:             Copyright (c) 2013-2016 Brendan Hay
+maintainer:            Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+copyright:             Copyright (c) 2013-2017 Brendan Hay
 category:              Network, AWS, Cloud, Distributed Computing
 build-type:            Simple
 cabal-version:         >= 1.10
@@ -29,14 +29,19 @@
     to get started.
 
 source-repository head
-    type:     git
-    location: git://github.com/brendanhay/amazonka.git
+    type:              git
+    location:          git://github.com/brendanhay/amazonka.git
+    subdir:            amazonka-codedeploy
 
 library
     default-language:  Haskell2010
     hs-source-dirs:    src gen
 
-    ghc-options:       -Wall
+    ghc-options:
+        -Wall
+        -fwarn-incomplete-uni-patterns
+        -fwarn-incomplete-record-updates
+        -funbox-strict-fields
 
     exposed-modules:
           Network.AWS.CodeDeploy
@@ -47,6 +52,7 @@
         , Network.AWS.CodeDeploy.BatchGetDeploymentInstances
         , Network.AWS.CodeDeploy.BatchGetDeployments
         , Network.AWS.CodeDeploy.BatchGetOnPremisesInstances
+        , Network.AWS.CodeDeploy.ContinueDeployment
         , Network.AWS.CodeDeploy.CreateApplication
         , Network.AWS.CodeDeploy.CreateDeployment
         , Network.AWS.CodeDeploy.CreateDeploymentConfig
@@ -68,10 +74,12 @@
         , Network.AWS.CodeDeploy.ListDeploymentGroups
         , Network.AWS.CodeDeploy.ListDeploymentInstances
         , Network.AWS.CodeDeploy.ListDeployments
+        , Network.AWS.CodeDeploy.ListGitHubAccountTokenNames
         , Network.AWS.CodeDeploy.ListOnPremisesInstances
         , Network.AWS.CodeDeploy.RegisterApplicationRevision
         , Network.AWS.CodeDeploy.RegisterOnPremisesInstance
         , Network.AWS.CodeDeploy.RemoveTagsFromOnPremisesInstances
+        , Network.AWS.CodeDeploy.SkipWaitTimeForInstanceTermination
         , Network.AWS.CodeDeploy.StopDeployment
         , Network.AWS.CodeDeploy.Types
         , Network.AWS.CodeDeploy.UpdateApplication
@@ -83,7 +91,7 @@
         , Network.AWS.CodeDeploy.Types.Sum
 
     build-depends:
-          amazonka-core == 1.4.5.*
+          amazonka-core == 1.5.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-codedeploy-test
@@ -103,9 +111,9 @@
         , Test.AWS.CodeDeploy.Internal
 
     build-depends:
-          amazonka-core == 1.4.5.*
-        , amazonka-test == 1.4.5.*
-        , amazonka-codedeploy == 1.4.5.*
+          amazonka-core == 1.5.0.*
+        , amazonka-test == 1.5.0.*
+        , amazonka-codedeploy
         , base
         , bytestring
         , tasty
diff --git a/fixture/ContinueDeployment.yaml b/fixture/ContinueDeployment.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ContinueDeployment.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codedeploy/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codedeploy.us-east-1.amazonaws.com
+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8
+  X-Amz-Content-SHA256:  abcdef
+  X-Amz-Date:            20091028T223200Z
+body:
+  ''
diff --git a/fixture/ContinueDeploymentResponse.proto b/fixture/ContinueDeploymentResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ContinueDeploymentResponse.proto
diff --git a/fixture/ListGitHubAccountTokenNames.yaml b/fixture/ListGitHubAccountTokenNames.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListGitHubAccountTokenNames.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codedeploy/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codedeploy.us-east-1.amazonaws.com
+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8
+  X-Amz-Content-SHA256:  abcdef
+  X-Amz-Date:            20091028T223200Z
+body:
+  ''
diff --git a/fixture/ListGitHubAccountTokenNamesResponse.proto b/fixture/ListGitHubAccountTokenNamesResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListGitHubAccountTokenNamesResponse.proto
diff --git a/fixture/SkipWaitTimeForInstanceTermination.yaml b/fixture/SkipWaitTimeForInstanceTermination.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/SkipWaitTimeForInstanceTermination.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codedeploy/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codedeploy.us-east-1.amazonaws.com
+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8
+  X-Amz-Content-SHA256:  abcdef
+  X-Amz-Date:            20091028T223200Z
+body:
+  ''
diff --git a/fixture/SkipWaitTimeForInstanceTerminationResponse.proto b/fixture/SkipWaitTimeForInstanceTerminationResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/SkipWaitTimeForInstanceTerminationResponse.proto
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
@@ -5,48 +5,50 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- __AWS CodeDeploy__
 --
--- __Overview__
+-- AWS CodeDeploy is a deployment service that automates application deployments to Amazon EC2 instances or on-premises instances running in your own facility.
 --
--- This reference guide provides descriptions of the AWS CodeDeploy APIs. For more information about AWS CodeDeploy, see the <http://docs.aws.amazon.com/codedeploy/latest/userguide AWS CodeDeploy User Guide> .
+-- You can deploy a nearly unlimited variety of application content, such as code, web and configuration files, executables, packages, scripts, multimedia files, and so on. AWS CodeDeploy can deploy application content stored in Amazon S3 buckets, GitHub repositories, or Bitbucket repositories. You do not need to make changes to your existing code before you can use AWS CodeDeploy.
 --
--- __Using the APIs__
+-- AWS CodeDeploy makes it easier for you to rapidly release new features, helps you avoid downtime during application deployment, and handles the complexity of updating your applications, without many of the risks associated with error-prone manual deployments.
 --
--- You can use the AWS CodeDeploy APIs to work with the following:
+-- __AWS CodeDeploy Components__
 --
---     * Applications are unique identifiers used by AWS CodeDeploy to ensure the correct combinations of revisions, deployment configurations, and deployment groups are being referenced during deployments.
+-- Use the information in this guide to help you work with the following AWS CodeDeploy components:
 --
--- You can use the AWS CodeDeploy APIs to create, delete, get, list, and update applications.
+--     * __Application__ : A name that uniquely identifies the application you want to deploy. AWS CodeDeploy uses this name, which functions as a container, to ensure the correct combination of revision, deployment configuration, and deployment group are referenced during a deployment.
 --
---     * Deployment configurations are sets of deployment rules and success and failure conditions used by AWS CodeDeploy during deployments.
+--     * __Deployment group__ : A set of individual instances. A deployment group contains individually tagged instances, Amazon EC2 instances in Auto Scaling groups, or both.
 --
--- You can use the AWS CodeDeploy APIs to create, delete, get, and list deployment configurations.
+--     * __Deployment configuration__ : A set of deployment rules and deployment success and failure conditions used by AWS CodeDeploy during a deployment.
 --
---     * Deployment groups are groups of instances to which application revisions can be deployed.
+--     * __Deployment__ : The process, and the components involved in the process, of installing content on one or more instances.
 --
--- You can use the AWS CodeDeploy APIs to create, delete, get, list, and update deployment groups.
+--     * __Application revisions__ : An archive file containing source content—source code, web pages, executable files, and deployment scripts—along with an application specification file (AppSpec file). Revisions are stored in Amazon S3 buckets or GitHub repositories. For Amazon S3, a revision is uniquely identified by its Amazon S3 object key and its ETag, version, or both. For GitHub, a revision is uniquely identified by its commit ID.
 --
---     * Instances represent Amazon EC2 instances to which application revisions are deployed. Instances are identified by their Amazon EC2 tags or Auto Scaling group names. Instances belong to deployment groups.
 --
--- You can use the AWS CodeDeploy APIs to get and list instance.
 --
---     * Deployments represent the process of deploying revisions to instances.
+-- This guide also contains information to help you get details about the instances in your deployments and to make on-premises instances available for AWS CodeDeploy deployments.
 --
--- You can use the AWS CodeDeploy APIs to create, get, list, and stop deployments.
+-- __AWS CodeDeploy Information Resources__
 --
---     * Application revisions are archive files stored in Amazon S3 buckets or GitHub repositories. These revisions contain source content (such as source code, web pages, executable files, and deployment scripts) along with an application specification (AppSpec) file. (The AppSpec file is unique to AWS CodeDeploy; it defines the deployment actions you want AWS CodeDeploy to execute.) For application revisions stored in Amazon S3 buckets, an application revision is uniquely identified by its Amazon S3 object key and its ETag, version, or both. For application revisions stored in GitHub repositories, an application revision is uniquely identified by its repository name and commit ID. Application revisions are deployed through deployment groups.
+--     * <http://docs.aws.amazon.com/codedeploy/latest/userguide AWS CodeDeploy User Guide>
 --
--- You can use the AWS CodeDeploy APIs to get, list, and register application revisions.
+--     * <http://docs.aws.amazon.com/codedeploy/latest/APIReference/ AWS CodeDeploy API Reference Guide>
 --
+--     * <http://docs.aws.amazon.com/cli/latest/reference/deploy/index.html AWS CLI Reference for AWS CodeDeploy>
 --
+--     * <https://forums.aws.amazon.com/forum.jspa?forumID=179 AWS CodeDeploy Developer Forum>
 --
+--
+--
 module Network.AWS.CodeDeploy
     (
     -- * Service Configuration
@@ -64,6 +66,9 @@
     -- ** InvalidTagException
     , _InvalidTagException
 
+    -- ** InvalidFileExistsBehaviorException
+    , _InvalidFileExistsBehaviorException
+
     -- ** InvalidAlarmConfigException
     , _InvalidAlarmConfigException
 
@@ -76,12 +81,21 @@
     -- ** InvalidDeploymentGroupNameException
     , _InvalidDeploymentGroupNameException
 
+    -- ** InvalidInstanceTypeException
+    , _InvalidInstanceTypeException
+
+    -- ** IAMSessionARNAlreadyRegisteredException
+    , _IAMSessionARNAlreadyRegisteredException
+
     -- ** DescriptionTooLongException
     , _DescriptionTooLongException
 
     -- ** InvalidIAMUserARNException
     , _InvalidIAMUserARNException
 
+    -- ** InvalidOnPremisesTagCombinationException
+    , _InvalidOnPremisesTagCombinationException
+
     -- ** DeploymentNotStartedException
     , _DeploymentNotStartedException
 
@@ -91,21 +105,36 @@
     -- ** RoleRequiredException
     , _RoleRequiredException
 
+    -- ** InvalidLoadBalancerInfoException
+    , _InvalidLoadBalancerInfoException
+
+    -- ** InvalidBlueGreenDeploymentConfigurationException
+    , _InvalidBlueGreenDeploymentConfigurationException
+
     -- ** InvalidRoleException
     , _InvalidRoleException
 
     -- ** DeploymentConfigAlreadyExistsException
     , _DeploymentConfigAlreadyExistsException
 
+    -- ** InvalidTargetInstancesException
+    , _InvalidTargetInstancesException
+
     -- ** DeploymentLimitExceededException
     , _DeploymentLimitExceededException
 
     -- ** IAMUserARNAlreadyRegisteredException
     , _IAMUserARNAlreadyRegisteredException
 
+    -- ** InvalidIAMSessionARNException
+    , _InvalidIAMSessionARNException
+
     -- ** InstanceLimitExceededException
     , _InstanceLimitExceededException
 
+    -- ** InvalidDeploymentStyleException
+    , _InvalidDeploymentStyleException
+
     -- ** InvalidDeployedStateFilterException
     , _InvalidDeployedStateFilterException
 
@@ -115,12 +144,24 @@
     -- ** InvalidApplicationNameException
     , _InvalidApplicationNameException
 
+    -- ** GitHubAccountTokenDoesNotExistException
+    , _GitHubAccountTokenDoesNotExistException
+
     -- ** ApplicationDoesNotExistException
     , _ApplicationDoesNotExistException
 
     -- ** InvalidMinimumHealthyHostValueException
     , _InvalidMinimumHealthyHostValueException
 
+    -- ** UnsupportedActionForDeploymentTypeException
+    , _UnsupportedActionForDeploymentTypeException
+
+    -- ** ResourceValidationException
+    , _ResourceValidationException
+
+    -- ** InvalidEC2TagCombinationException
+    , _InvalidEC2TagCombinationException
+
     -- ** AlarmsLimitExceededException
     , _AlarmsLimitExceededException
 
@@ -169,6 +210,9 @@
     -- ** DeploymentIdRequiredException
     , _DeploymentIdRequiredException
 
+    -- ** DeploymentIsNotInReadyStateException
+    , _DeploymentIsNotInReadyStateException
+
     -- ** InvalidNextTokenException
     , _InvalidNextTokenException
 
@@ -214,6 +258,9 @@
     -- ** InstanceNameRequiredException
     , _InstanceNameRequiredException
 
+    -- ** MultipleIAMARNsProvidedException
+    , _MultipleIAMARNsProvidedException
+
     -- ** TriggerTargetsLimitExceededException
     , _TriggerTargetsLimitExceededException
 
@@ -241,9 +288,18 @@
     -- ** ApplicationLimitExceededException
     , _ApplicationLimitExceededException
 
+    -- ** TagSetListLimitExceededException
+    , _TagSetListLimitExceededException
+
     -- ** InvalidOperationException
     , _InvalidOperationException
 
+    -- ** InvalidDeploymentInstanceTypeException
+    , _InvalidDeploymentInstanceTypeException
+
+    -- ** IAMARNRequiredException
+    , _IAMARNRequiredException
+
     -- ** InvalidKeyPrefixFilterException
     , _InvalidKeyPrefixFilterException
 
@@ -301,6 +357,9 @@
     -- ** RegisterApplicationRevision
     , module Network.AWS.CodeDeploy.RegisterApplicationRevision
 
+    -- ** ContinueDeployment
+    , module Network.AWS.CodeDeploy.ContinueDeployment
+
     -- ** BatchGetApplications
     , module Network.AWS.CodeDeploy.BatchGetApplications
 
@@ -322,13 +381,19 @@
     -- ** StopDeployment
     , module Network.AWS.CodeDeploy.StopDeployment
 
+    -- ** ListGitHubAccountTokenNames
+    , module Network.AWS.CodeDeploy.ListGitHubAccountTokenNames
+
     -- ** BatchGetDeploymentInstances
     , module Network.AWS.CodeDeploy.BatchGetDeploymentInstances
 
+    -- ** SkipWaitTimeForInstanceTermination
+    , module Network.AWS.CodeDeploy.SkipWaitTimeForInstanceTermination
+
     -- ** GetApplication
     , module Network.AWS.CodeDeploy.GetApplication
 
-    -- ** ListDeploymentGroups
+    -- ** ListDeploymentGroups (Paginated)
     , module Network.AWS.CodeDeploy.ListDeploymentGroups
 
     -- ** BatchGetOnPremisesInstances
@@ -340,25 +405,25 @@
     -- ** CreateDeploymentGroup
     , module Network.AWS.CodeDeploy.CreateDeploymentGroup
 
-    -- ** ListDeploymentConfigs
+    -- ** ListDeploymentConfigs (Paginated)
     , module Network.AWS.CodeDeploy.ListDeploymentConfigs
 
     -- ** GetDeploymentGroup
     , module Network.AWS.CodeDeploy.GetDeploymentGroup
 
-    -- ** ListDeployments
+    -- ** ListDeployments (Paginated)
     , module Network.AWS.CodeDeploy.ListDeployments
 
-    -- ** ListApplicationRevisions
+    -- ** ListApplicationRevisions (Paginated)
     , module Network.AWS.CodeDeploy.ListApplicationRevisions
 
-    -- ** ListApplications
+    -- ** ListApplications (Paginated)
     , module Network.AWS.CodeDeploy.ListApplications
 
     -- ** AddTagsToOnPremisesInstances
     , module Network.AWS.CodeDeploy.AddTagsToOnPremisesInstances
 
-    -- ** ListDeploymentInstances
+    -- ** ListDeploymentInstances (Paginated)
     , module Network.AWS.CodeDeploy.ListDeploymentInstances
 
     -- * Types
@@ -378,15 +443,36 @@
     -- ** DeploymentCreator
     , DeploymentCreator (..)
 
+    -- ** DeploymentOption
+    , DeploymentOption (..)
+
+    -- ** DeploymentReadyAction
+    , DeploymentReadyAction (..)
+
     -- ** DeploymentStatus
     , DeploymentStatus (..)
 
+    -- ** DeploymentType
+    , DeploymentType (..)
+
     -- ** EC2TagFilterType
     , EC2TagFilterType (..)
 
+    -- ** FileExistsBehavior
+    , FileExistsBehavior (..)
+
+    -- ** GreenFleetProvisioningAction
+    , GreenFleetProvisioningAction (..)
+
+    -- ** InstanceAction
+    , InstanceAction (..)
+
     -- ** InstanceStatus
     , InstanceStatus (..)
 
+    -- ** InstanceType
+    , InstanceType (..)
+
     -- ** LifecycleErrorCode
     , LifecycleErrorCode (..)
 
@@ -435,6 +521,7 @@
     , aiLinkedToGitHub
     , aiApplicationId
     , aiApplicationName
+    , aiGitHubAccountName
     , aiCreateTime
 
     -- ** AutoRollbackConfiguration
@@ -449,6 +536,19 @@
     , asgHook
     , asgName
 
+    -- ** BlueGreenDeploymentConfiguration
+    , BlueGreenDeploymentConfiguration
+    , blueGreenDeploymentConfiguration
+    , bgdcDeploymentReadyOption
+    , bgdcGreenFleetProvisioningOption
+    , bgdcTerminateBlueInstancesOnDeploymentSuccess
+
+    -- ** BlueInstanceTerminationOption
+    , BlueInstanceTerminationOption
+    , blueInstanceTerminationOption
+    , bitoAction
+    , bitoTerminationWaitTimeInMinutes
+
     -- ** DeploymentConfigInfo
     , DeploymentConfigInfo
     , deploymentConfigInfo
@@ -461,15 +561,22 @@
     , DeploymentGroupInfo
     , deploymentGroupInfo
     , dgiServiceRoleARN
+    , dgiEc2TagSet
     , dgiDeploymentConfigName
+    , dgiLastAttemptedDeployment
+    , dgiOnPremisesTagSet
     , dgiTargetRevision
     , dgiEc2TagFilters
+    , dgiBlueGreenDeploymentConfiguration
+    , dgiLoadBalancerInfo
     , dgiOnPremisesInstanceTagFilters
+    , dgiLastSuccessfulDeployment
     , dgiApplicationName
     , dgiAlarmConfiguration
     , dgiTriggerConfigurations
     , dgiDeploymentGroupId
     , dgiAutoScalingGroups
+    , dgiDeploymentStyle
     , dgiAutoRollbackConfiguration
     , dgiDeploymentGroupName
 
@@ -480,14 +587,22 @@
     , diStatus
     , diDeploymentId
     , diDeploymentConfigName
+    , diPreviousRevision
+    , diInstanceTerminationWaitTimeStarted
     , diStartTime
     , diCompleteTime
+    , diBlueGreenDeploymentConfiguration
     , diErrorInformation
+    , diLoadBalancerInfo
+    , diAdditionalDeploymentStatusInfo
     , diDeploymentOverview
+    , diFileExistsBehavior
     , diApplicationName
     , diRollbackInfo
+    , diTargetInstances
     , diRevision
     , diDescription
+    , diDeploymentStyle
     , diCreateTime
     , diAutoRollbackConfiguration
     , diUpdateOutdatedInstancesOnly
@@ -501,8 +616,21 @@
     , doSkipped
     , doInProgress
     , doSucceeded
+    , doReady
     , doFailed
 
+    -- ** DeploymentReadyOption
+    , DeploymentReadyOption
+    , deploymentReadyOption
+    , droActionOnTimeout
+    , droWaitTimeInMinutes
+
+    -- ** DeploymentStyle
+    , DeploymentStyle
+    , deploymentStyle
+    , dsDeploymentOption
+    , dsDeploymentType
+
     -- ** Diagnostics
     , Diagnostics
     , diagnostics
@@ -518,6 +646,16 @@
     , etfKey
     , etfType
 
+    -- ** EC2TagSet
+    , EC2TagSet
+    , ec2TagSet
+    , etsEc2TagSetList
+
+    -- ** ELBInfo
+    , ELBInfo
+    , eLBInfo
+    , elbiName
+
     -- ** ErrorInformation
     , ErrorInformation
     , errorInformation
@@ -539,6 +677,11 @@
     , ghlCommitId
     , ghlRepository
 
+    -- ** GreenFleetProvisioningOption
+    , GreenFleetProvisioningOption
+    , greenFleetProvisioningOption
+    , gfpoAction
+
     -- ** InstanceInfo
     , InstanceInfo
     , instanceInfo
@@ -547,6 +690,7 @@
     , iiDeregisterTime
     , iiIamUserARN
     , iiInstanceName
+    , iiIamSessionARN
     , iiTags
 
     -- ** InstanceSummary
@@ -557,7 +701,16 @@
     , isDeploymentId
     , isLastUpdatedAt
     , isLifecycleEvents
+    , isInstanceType
 
+    -- ** LastDeploymentInfo
+    , LastDeploymentInfo
+    , lastDeploymentInfo
+    , ldiStatus
+    , ldiDeploymentId
+    , ldiEndTime
+    , ldiCreateTime
+
     -- ** LifecycleEvent
     , LifecycleEvent
     , lifecycleEvent
@@ -567,12 +720,23 @@
     , leDiagnostics
     , leEndTime
 
+    -- ** LoadBalancerInfo
+    , LoadBalancerInfo
+    , loadBalancerInfo
+    , lbiElbInfoList
+    , lbiTargetGroupInfoList
+
     -- ** MinimumHealthyHosts
     , MinimumHealthyHosts
     , minimumHealthyHosts
     , mhhValue
     , mhhType
 
+    -- ** OnPremisesTagSet
+    , OnPremisesTagSet
+    , onPremisesTagSet
+    , optsOnPremisesTagSetList
+
     -- ** RevisionInfo
     , RevisionInfo
     , revisionInfo
@@ -615,6 +779,18 @@
     , tfKey
     , tfType
 
+    -- ** TargetGroupInfo
+    , TargetGroupInfo
+    , targetGroupInfo
+    , tgiName
+
+    -- ** TargetInstances
+    , TargetInstances
+    , targetInstances
+    , tiEc2TagSet
+    , tiTagFilters
+    , tiAutoScalingGroups
+
     -- ** TimeRange
     , TimeRange
     , timeRange
@@ -629,43 +805,46 @@
     , tcTriggerTargetARN
     ) where
 
-import           Network.AWS.CodeDeploy.AddTagsToOnPremisesInstances
-import           Network.AWS.CodeDeploy.BatchGetApplicationRevisions
-import           Network.AWS.CodeDeploy.BatchGetApplications
-import           Network.AWS.CodeDeploy.BatchGetDeploymentGroups
-import           Network.AWS.CodeDeploy.BatchGetDeploymentInstances
-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
-import           Network.AWS.CodeDeploy.CreateDeploymentGroup
-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
-import           Network.AWS.CodeDeploy.UpdateDeploymentGroup
-import           Network.AWS.CodeDeploy.Waiters
+import Network.AWS.CodeDeploy.AddTagsToOnPremisesInstances
+import Network.AWS.CodeDeploy.BatchGetApplicationRevisions
+import Network.AWS.CodeDeploy.BatchGetApplications
+import Network.AWS.CodeDeploy.BatchGetDeploymentGroups
+import Network.AWS.CodeDeploy.BatchGetDeploymentInstances
+import Network.AWS.CodeDeploy.BatchGetDeployments
+import Network.AWS.CodeDeploy.BatchGetOnPremisesInstances
+import Network.AWS.CodeDeploy.ContinueDeployment
+import Network.AWS.CodeDeploy.CreateApplication
+import Network.AWS.CodeDeploy.CreateDeployment
+import Network.AWS.CodeDeploy.CreateDeploymentConfig
+import Network.AWS.CodeDeploy.CreateDeploymentGroup
+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.ListGitHubAccountTokenNames
+import Network.AWS.CodeDeploy.ListOnPremisesInstances
+import Network.AWS.CodeDeploy.RegisterApplicationRevision
+import Network.AWS.CodeDeploy.RegisterOnPremisesInstance
+import Network.AWS.CodeDeploy.RemoveTagsFromOnPremisesInstances
+import Network.AWS.CodeDeploy.SkipWaitTimeForInstanceTermination
+import Network.AWS.CodeDeploy.StopDeployment
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.UpdateApplication
+import Network.AWS.CodeDeploy.UpdateDeploymentGroup
+import Network.AWS.CodeDeploy.Waiters
 
 {- $errors
 Error matchers are designed for use with the functions provided by
diff --git a/gen/Network/AWS/CodeDeploy/AddTagsToOnPremisesInstances.hs b/gen/Network/AWS/CodeDeploy/AddTagsToOnPremisesInstances.hs
--- a/gen/Network/AWS/CodeDeploy/AddTagsToOnPremisesInstances.hs
+++ b/gen/Network/AWS/CodeDeploy/AddTagsToOnPremisesInstances.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.AddTagsToOnPremisesInstances
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -35,12 +35,12 @@
     , AddTagsToOnPremisesInstancesResponse
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | Represents the input of, and adds tags to, an on-premises instance operation.
 --
@@ -48,10 +48,11 @@
 --
 -- /See:/ 'addTagsToOnPremisesInstances' smart constructor.
 data AddTagsToOnPremisesInstances = AddTagsToOnPremisesInstances'
-    { _attopiTags          :: ![Tag]
-    , _attopiInstanceNames :: ![Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _attopiTags          :: ![Tag]
+  , _attopiInstanceNames :: ![Text]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'AddTagsToOnPremisesInstances' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -62,11 +63,10 @@
 addTagsToOnPremisesInstances
     :: AddTagsToOnPremisesInstances
 addTagsToOnPremisesInstances =
-    AddTagsToOnPremisesInstances'
-    { _attopiTags = mempty
-    , _attopiInstanceNames = mempty
-    }
+  AddTagsToOnPremisesInstances'
+  {_attopiTags = mempty, _attopiInstanceNames = mempty}
 
+
 -- | The tag key-value pairs to add to the on-premises instances. Keys and values are both required. Keys cannot be null or empty strings. Value-only tags are not allowed.
 attopiTags :: Lens' AddTagsToOnPremisesInstances [Tag]
 attopiTags = lens _attopiTags (\ s a -> s{_attopiTags = a}) . _Coerce;
@@ -83,9 +83,9 @@
         response
           = receiveNull AddTagsToOnPremisesInstancesResponse'
 
-instance Hashable AddTagsToOnPremisesInstances
+instance Hashable AddTagsToOnPremisesInstances where
 
-instance NFData AddTagsToOnPremisesInstances
+instance NFData AddTagsToOnPremisesInstances where
 
 instance ToHeaders AddTagsToOnPremisesInstances where
         toHeaders
@@ -112,13 +112,16 @@
 
 -- | /See:/ 'addTagsToOnPremisesInstancesResponse' smart constructor.
 data AddTagsToOnPremisesInstancesResponse =
-    AddTagsToOnPremisesInstancesResponse'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  AddTagsToOnPremisesInstancesResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'AddTagsToOnPremisesInstancesResponse' with the minimum fields required to make a request.
 --
 addTagsToOnPremisesInstancesResponse
     :: AddTagsToOnPremisesInstancesResponse
 addTagsToOnPremisesInstancesResponse = AddTagsToOnPremisesInstancesResponse'
 
+
 instance NFData AddTagsToOnPremisesInstancesResponse
+         where
diff --git a/gen/Network/AWS/CodeDeploy/BatchGetApplicationRevisions.hs b/gen/Network/AWS/CodeDeploy/BatchGetApplicationRevisions.hs
--- a/gen/Network/AWS/CodeDeploy/BatchGetApplicationRevisions.hs
+++ b/gen/Network/AWS/CodeDeploy/BatchGetApplicationRevisions.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.BatchGetApplicationRevisions
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -40,23 +40,24 @@
     , bgarrsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a batch get application revisions operation.
+-- | Represents the input of a BatchGetApplicationRevisions operation.
 --
 --
 --
 -- /See:/ 'batchGetApplicationRevisions' smart constructor.
 data BatchGetApplicationRevisions = BatchGetApplicationRevisions'
-    { _bgarApplicationName :: !Text
-    , _bgarRevisions       :: ![RevisionLocation]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _bgarApplicationName :: !Text
+  , _bgarRevisions       :: ![RevisionLocation]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'BatchGetApplicationRevisions' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -68,11 +69,10 @@
     :: Text -- ^ 'bgarApplicationName'
     -> BatchGetApplicationRevisions
 batchGetApplicationRevisions pApplicationName_ =
-    BatchGetApplicationRevisions'
-    { _bgarApplicationName = pApplicationName_
-    , _bgarRevisions = mempty
-    }
+  BatchGetApplicationRevisions'
+  {_bgarApplicationName = pApplicationName_, _bgarRevisions = mempty}
 
+
 -- | The name of an AWS CodeDeploy application about which to get revision information.
 bgarApplicationName :: Lens' BatchGetApplicationRevisions Text
 bgarApplicationName = lens _bgarApplicationName (\ s a -> s{_bgarApplicationName = a});
@@ -95,9 +95,9 @@
                      <*> (x .?> "errorMessage")
                      <*> (pure (fromEnum s)))
 
-instance Hashable BatchGetApplicationRevisions
+instance Hashable BatchGetApplicationRevisions where
 
-instance NFData BatchGetApplicationRevisions
+instance NFData BatchGetApplicationRevisions where
 
 instance ToHeaders BatchGetApplicationRevisions where
         toHeaders
@@ -122,18 +122,19 @@
 instance ToQuery BatchGetApplicationRevisions where
         toQuery = const mempty
 
--- | Represents the output of a batch get application revisions operation.
+-- | Represents the output of a BatchGetApplicationRevisions operation.
 --
 --
 --
 -- /See:/ 'batchGetApplicationRevisionsResponse' smart constructor.
 data BatchGetApplicationRevisionsResponse = BatchGetApplicationRevisionsResponse'
-    { _bgarrsApplicationName :: !(Maybe Text)
-    , _bgarrsRevisions       :: !(Maybe [RevisionInfo])
-    , _bgarrsErrorMessage    :: !(Maybe Text)
-    , _bgarrsResponseStatus  :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _bgarrsApplicationName :: !(Maybe Text)
+  , _bgarrsRevisions       :: !(Maybe [RevisionInfo])
+  , _bgarrsErrorMessage    :: !(Maybe Text)
+  , _bgarrsResponseStatus  :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'BatchGetApplicationRevisionsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -149,13 +150,14 @@
     :: Int -- ^ 'bgarrsResponseStatus'
     -> BatchGetApplicationRevisionsResponse
 batchGetApplicationRevisionsResponse pResponseStatus_ =
-    BatchGetApplicationRevisionsResponse'
-    { _bgarrsApplicationName = Nothing
-    , _bgarrsRevisions = Nothing
-    , _bgarrsErrorMessage = Nothing
-    , _bgarrsResponseStatus = pResponseStatus_
-    }
+  BatchGetApplicationRevisionsResponse'
+  { _bgarrsApplicationName = Nothing
+  , _bgarrsRevisions = Nothing
+  , _bgarrsErrorMessage = Nothing
+  , _bgarrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | The name of the application that corresponds to the revisions.
 bgarrsApplicationName :: Lens' BatchGetApplicationRevisionsResponse (Maybe Text)
 bgarrsApplicationName = lens _bgarrsApplicationName (\ s a -> s{_bgarrsApplicationName = a});
@@ -173,3 +175,4 @@
 bgarrsResponseStatus = lens _bgarrsResponseStatus (\ s a -> s{_bgarrsResponseStatus = a});
 
 instance NFData BatchGetApplicationRevisionsResponse
+         where
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
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.BatchGetApplications
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -37,22 +37,23 @@
     , bgarsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a batch get applications operation.
+-- | Represents the input of a BatchGetApplications operation.
 --
 --
 --
 -- /See:/ 'batchGetApplications' smart constructor.
 newtype BatchGetApplications = BatchGetApplications'
-    { _bgaApplicationNames :: Maybe [Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _bgaApplicationNames :: Maybe [Text]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'BatchGetApplications' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -60,11 +61,9 @@
 -- * 'bgaApplicationNames' - A list of application names separated by spaces.
 batchGetApplications
     :: BatchGetApplications
-batchGetApplications =
-    BatchGetApplications'
-    { _bgaApplicationNames = Nothing
-    }
+batchGetApplications = BatchGetApplications' {_bgaApplicationNames = Nothing}
 
+
 -- | A list of application names separated by spaces.
 bgaApplicationNames :: Lens' BatchGetApplications [Text]
 bgaApplicationNames = lens _bgaApplicationNames (\ s a -> s{_bgaApplicationNames = a}) . _Default . _Coerce;
@@ -80,9 +79,9 @@
                    (x .?> "applicationsInfo" .!@ mempty) <*>
                      (pure (fromEnum s)))
 
-instance Hashable BatchGetApplications
+instance Hashable BatchGetApplications where
 
-instance NFData BatchGetApplications
+instance NFData BatchGetApplications where
 
 instance ToHeaders BatchGetApplications where
         toHeaders
@@ -106,16 +105,17 @@
 instance ToQuery BatchGetApplications where
         toQuery = const mempty
 
--- | Represents the output of a batch get applications operation.
+-- | Represents the output of a BatchGetApplications operation.
 --
 --
 --
 -- /See:/ 'batchGetApplicationsResponse' smart constructor.
 data BatchGetApplicationsResponse = BatchGetApplicationsResponse'
-    { _bgarsApplicationsInfo :: !(Maybe [ApplicationInfo])
-    , _bgarsResponseStatus   :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _bgarsApplicationsInfo :: !(Maybe [ApplicationInfo])
+  , _bgarsResponseStatus   :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'BatchGetApplicationsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -127,11 +127,10 @@
     :: Int -- ^ 'bgarsResponseStatus'
     -> BatchGetApplicationsResponse
 batchGetApplicationsResponse pResponseStatus_ =
-    BatchGetApplicationsResponse'
-    { _bgarsApplicationsInfo = Nothing
-    , _bgarsResponseStatus = pResponseStatus_
-    }
+  BatchGetApplicationsResponse'
+  {_bgarsApplicationsInfo = Nothing, _bgarsResponseStatus = pResponseStatus_}
 
+
 -- | Information about the applications.
 bgarsApplicationsInfo :: Lens' BatchGetApplicationsResponse [ApplicationInfo]
 bgarsApplicationsInfo = lens _bgarsApplicationsInfo (\ s a -> s{_bgarsApplicationsInfo = a}) . _Default . _Coerce;
@@ -140,4 +139,4 @@
 bgarsResponseStatus :: Lens' BatchGetApplicationsResponse Int
 bgarsResponseStatus = lens _bgarsResponseStatus (\ s a -> s{_bgarsResponseStatus = a});
 
-instance NFData BatchGetApplicationsResponse
+instance NFData BatchGetApplicationsResponse where
diff --git a/gen/Network/AWS/CodeDeploy/BatchGetDeploymentGroups.hs b/gen/Network/AWS/CodeDeploy/BatchGetDeploymentGroups.hs
--- a/gen/Network/AWS/CodeDeploy/BatchGetDeploymentGroups.hs
+++ b/gen/Network/AWS/CodeDeploy/BatchGetDeploymentGroups.hs
@@ -12,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.BatchGetDeploymentGroups
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Get information about one or more deployment groups.
+-- Gets information about one or more deployment groups.
 --
 --
 module Network.AWS.CodeDeploy.BatchGetDeploymentGroups
@@ -39,23 +39,24 @@
     , bgdgrsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a batch get deployment groups operation.
+-- | Represents the input of a BatchGetDeploymentGroups operation.
 --
 --
 --
 -- /See:/ 'batchGetDeploymentGroups' smart constructor.
 data BatchGetDeploymentGroups = BatchGetDeploymentGroups'
-    { _bgdgApplicationName      :: !Text
-    , _bgdgDeploymentGroupNames :: ![Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _bgdgApplicationName      :: !Text
+  , _bgdgDeploymentGroupNames :: ![Text]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'BatchGetDeploymentGroups' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -67,11 +68,10 @@
     :: Text -- ^ 'bgdgApplicationName'
     -> BatchGetDeploymentGroups
 batchGetDeploymentGroups pApplicationName_ =
-    BatchGetDeploymentGroups'
-    { _bgdgApplicationName = pApplicationName_
-    , _bgdgDeploymentGroupNames = mempty
-    }
+  BatchGetDeploymentGroups'
+  {_bgdgApplicationName = pApplicationName_, _bgdgDeploymentGroupNames = mempty}
 
+
 -- | The name of an AWS CodeDeploy application associated with the applicable IAM user or AWS account.
 bgdgApplicationName :: Lens' BatchGetDeploymentGroups Text
 bgdgApplicationName = lens _bgdgApplicationName (\ s a -> s{_bgdgApplicationName = a});
@@ -92,9 +92,9 @@
                      (x .?> "errorMessage")
                      <*> (pure (fromEnum s)))
 
-instance Hashable BatchGetDeploymentGroups
+instance Hashable BatchGetDeploymentGroups where
 
-instance NFData BatchGetDeploymentGroups
+instance NFData BatchGetDeploymentGroups where
 
 instance ToHeaders BatchGetDeploymentGroups where
         toHeaders
@@ -121,17 +121,18 @@
 instance ToQuery BatchGetDeploymentGroups where
         toQuery = const mempty
 
--- | Represents the output of a batch get deployment groups operation.
+-- | Represents the output of a BatchGetDeploymentGroups operation.
 --
 --
 --
 -- /See:/ 'batchGetDeploymentGroupsResponse' smart constructor.
 data BatchGetDeploymentGroupsResponse = BatchGetDeploymentGroupsResponse'
-    { _bgdgrsDeploymentGroupsInfo :: !(Maybe [DeploymentGroupInfo])
-    , _bgdgrsErrorMessage         :: !(Maybe Text)
-    , _bgdgrsResponseStatus       :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _bgdgrsDeploymentGroupsInfo :: !(Maybe [DeploymentGroupInfo])
+  , _bgdgrsErrorMessage         :: !(Maybe Text)
+  , _bgdgrsResponseStatus       :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'BatchGetDeploymentGroupsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -145,12 +146,13 @@
     :: Int -- ^ 'bgdgrsResponseStatus'
     -> BatchGetDeploymentGroupsResponse
 batchGetDeploymentGroupsResponse pResponseStatus_ =
-    BatchGetDeploymentGroupsResponse'
-    { _bgdgrsDeploymentGroupsInfo = Nothing
-    , _bgdgrsErrorMessage = Nothing
-    , _bgdgrsResponseStatus = pResponseStatus_
-    }
+  BatchGetDeploymentGroupsResponse'
+  { _bgdgrsDeploymentGroupsInfo = Nothing
+  , _bgdgrsErrorMessage = Nothing
+  , _bgdgrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Information about the deployment groups.
 bgdgrsDeploymentGroupsInfo :: Lens' BatchGetDeploymentGroupsResponse [DeploymentGroupInfo]
 bgdgrsDeploymentGroupsInfo = lens _bgdgrsDeploymentGroupsInfo (\ s a -> s{_bgdgrsDeploymentGroupsInfo = a}) . _Default . _Coerce;
@@ -164,3 +166,4 @@
 bgdgrsResponseStatus = lens _bgdgrsResponseStatus (\ s a -> s{_bgdgrsResponseStatus = a});
 
 instance NFData BatchGetDeploymentGroupsResponse
+         where
diff --git a/gen/Network/AWS/CodeDeploy/BatchGetDeploymentInstances.hs b/gen/Network/AWS/CodeDeploy/BatchGetDeploymentInstances.hs
--- a/gen/Network/AWS/CodeDeploy/BatchGetDeploymentInstances.hs
+++ b/gen/Network/AWS/CodeDeploy/BatchGetDeploymentInstances.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.BatchGetDeploymentInstances
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -39,23 +39,24 @@
     , bgdirsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a batch get deployment instances operation.
+-- | Represents the input of a BatchGetDeploymentInstances operation.
 --
 --
 --
 -- /See:/ 'batchGetDeploymentInstances' smart constructor.
 data BatchGetDeploymentInstances = BatchGetDeploymentInstances'
-    { _bgdiDeploymentId :: !Text
-    , _bgdiInstanceIds  :: ![Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _bgdiDeploymentId :: !Text
+  , _bgdiInstanceIds  :: ![Text]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'BatchGetDeploymentInstances' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -67,11 +68,10 @@
     :: Text -- ^ 'bgdiDeploymentId'
     -> BatchGetDeploymentInstances
 batchGetDeploymentInstances pDeploymentId_ =
-    BatchGetDeploymentInstances'
-    { _bgdiDeploymentId = pDeploymentId_
-    , _bgdiInstanceIds = mempty
-    }
+  BatchGetDeploymentInstances'
+  {_bgdiDeploymentId = pDeploymentId_, _bgdiInstanceIds = mempty}
 
+
 -- | The unique ID of a deployment.
 bgdiDeploymentId :: Lens' BatchGetDeploymentInstances Text
 bgdiDeploymentId = lens _bgdiDeploymentId (\ s a -> s{_bgdiDeploymentId = a});
@@ -92,9 +92,9 @@
                      (x .?> "errorMessage")
                      <*> (pure (fromEnum s)))
 
-instance Hashable BatchGetDeploymentInstances
+instance Hashable BatchGetDeploymentInstances where
 
-instance NFData BatchGetDeploymentInstances
+instance NFData BatchGetDeploymentInstances where
 
 instance ToHeaders BatchGetDeploymentInstances where
         toHeaders
@@ -119,17 +119,18 @@
 instance ToQuery BatchGetDeploymentInstances where
         toQuery = const mempty
 
--- | Represents the output of a batch get deployment instance operation.
+-- | Represents the output of a BatchGetDeploymentInstances operation.
 --
 --
 --
 -- /See:/ 'batchGetDeploymentInstancesResponse' smart constructor.
 data BatchGetDeploymentInstancesResponse = BatchGetDeploymentInstancesResponse'
-    { _bgdirsInstancesSummary :: !(Maybe [InstanceSummary])
-    , _bgdirsErrorMessage     :: !(Maybe Text)
-    , _bgdirsResponseStatus   :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _bgdirsInstancesSummary :: !(Maybe [InstanceSummary])
+  , _bgdirsErrorMessage     :: !(Maybe Text)
+  , _bgdirsResponseStatus   :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'BatchGetDeploymentInstancesResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -143,12 +144,13 @@
     :: Int -- ^ 'bgdirsResponseStatus'
     -> BatchGetDeploymentInstancesResponse
 batchGetDeploymentInstancesResponse pResponseStatus_ =
-    BatchGetDeploymentInstancesResponse'
-    { _bgdirsInstancesSummary = Nothing
-    , _bgdirsErrorMessage = Nothing
-    , _bgdirsResponseStatus = pResponseStatus_
-    }
+  BatchGetDeploymentInstancesResponse'
+  { _bgdirsInstancesSummary = Nothing
+  , _bgdirsErrorMessage = Nothing
+  , _bgdirsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Information about the instance.
 bgdirsInstancesSummary :: Lens' BatchGetDeploymentInstancesResponse [InstanceSummary]
 bgdirsInstancesSummary = lens _bgdirsInstancesSummary (\ s a -> s{_bgdirsInstancesSummary = a}) . _Default . _Coerce;
@@ -162,3 +164,4 @@
 bgdirsResponseStatus = lens _bgdirsResponseStatus (\ s a -> s{_bgdirsResponseStatus = a});
 
 instance NFData BatchGetDeploymentInstancesResponse
+         where
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
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.BatchGetDeployments
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -37,22 +37,23 @@
     , bgdrsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a batch get deployments operation.
+-- | Represents the input of a BatchGetDeployments operation.
 --
 --
 --
 -- /See:/ 'batchGetDeployments' smart constructor.
 newtype BatchGetDeployments = BatchGetDeployments'
-    { _bgdDeploymentIds :: Maybe [Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _bgdDeploymentIds :: Maybe [Text]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'BatchGetDeployments' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -60,11 +61,9 @@
 -- * 'bgdDeploymentIds' - A list of deployment IDs, separated by spaces.
 batchGetDeployments
     :: BatchGetDeployments
-batchGetDeployments =
-    BatchGetDeployments'
-    { _bgdDeploymentIds = Nothing
-    }
+batchGetDeployments = BatchGetDeployments' {_bgdDeploymentIds = Nothing}
 
+
 -- | A list of deployment IDs, separated by spaces.
 bgdDeploymentIds :: Lens' BatchGetDeployments [Text]
 bgdDeploymentIds = lens _bgdDeploymentIds (\ s a -> s{_bgdDeploymentIds = a}) . _Default . _Coerce;
@@ -80,9 +79,9 @@
                    (x .?> "deploymentsInfo" .!@ mempty) <*>
                      (pure (fromEnum s)))
 
-instance Hashable BatchGetDeployments
+instance Hashable BatchGetDeployments where
 
-instance NFData BatchGetDeployments
+instance NFData BatchGetDeployments where
 
 instance ToHeaders BatchGetDeployments where
         toHeaders
@@ -106,16 +105,17 @@
 instance ToQuery BatchGetDeployments where
         toQuery = const mempty
 
--- | Represents the output of a batch get deployments operation.
+-- | Represents the output of a BatchGetDeployments operation.
 --
 --
 --
 -- /See:/ 'batchGetDeploymentsResponse' smart constructor.
 data BatchGetDeploymentsResponse = BatchGetDeploymentsResponse'
-    { _bgdrsDeploymentsInfo :: !(Maybe [DeploymentInfo])
-    , _bgdrsResponseStatus  :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _bgdrsDeploymentsInfo :: !(Maybe [DeploymentInfo])
+  , _bgdrsResponseStatus  :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'BatchGetDeploymentsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -127,11 +127,10 @@
     :: Int -- ^ 'bgdrsResponseStatus'
     -> BatchGetDeploymentsResponse
 batchGetDeploymentsResponse pResponseStatus_ =
-    BatchGetDeploymentsResponse'
-    { _bgdrsDeploymentsInfo = Nothing
-    , _bgdrsResponseStatus = pResponseStatus_
-    }
+  BatchGetDeploymentsResponse'
+  {_bgdrsDeploymentsInfo = Nothing, _bgdrsResponseStatus = pResponseStatus_}
 
+
 -- | Information about the deployments.
 bgdrsDeploymentsInfo :: Lens' BatchGetDeploymentsResponse [DeploymentInfo]
 bgdrsDeploymentsInfo = lens _bgdrsDeploymentsInfo (\ s a -> s{_bgdrsDeploymentsInfo = a}) . _Default . _Coerce;
@@ -140,4 +139,4 @@
 bgdrsResponseStatus :: Lens' BatchGetDeploymentsResponse Int
 bgdrsResponseStatus = lens _bgdrsResponseStatus (\ s a -> s{_bgdrsResponseStatus = a});
 
-instance NFData BatchGetDeploymentsResponse
+instance NFData BatchGetDeploymentsResponse where
diff --git a/gen/Network/AWS/CodeDeploy/BatchGetOnPremisesInstances.hs b/gen/Network/AWS/CodeDeploy/BatchGetOnPremisesInstances.hs
--- a/gen/Network/AWS/CodeDeploy/BatchGetOnPremisesInstances.hs
+++ b/gen/Network/AWS/CodeDeploy/BatchGetOnPremisesInstances.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.BatchGetOnPremisesInstances
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -37,22 +37,23 @@
     , bgopirsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a batch get on-premises instances operation.
+-- | Represents the input of a BatchGetOnPremisesInstances operation.
 --
 --
 --
 -- /See:/ 'batchGetOnPremisesInstances' smart constructor.
 newtype BatchGetOnPremisesInstances = BatchGetOnPremisesInstances'
-    { _bgopiInstanceNames :: Maybe [Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _bgopiInstanceNames :: Maybe [Text]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'BatchGetOnPremisesInstances' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -61,10 +62,9 @@
 batchGetOnPremisesInstances
     :: BatchGetOnPremisesInstances
 batchGetOnPremisesInstances =
-    BatchGetOnPremisesInstances'
-    { _bgopiInstanceNames = Nothing
-    }
+  BatchGetOnPremisesInstances' {_bgopiInstanceNames = Nothing}
 
+
 -- | The names of the on-premises instances about which to get information.
 bgopiInstanceNames :: Lens' BatchGetOnPremisesInstances [Text]
 bgopiInstanceNames = lens _bgopiInstanceNames (\ s a -> s{_bgopiInstanceNames = a}) . _Default . _Coerce;
@@ -80,9 +80,9 @@
                    (x .?> "instanceInfos" .!@ mempty) <*>
                      (pure (fromEnum s)))
 
-instance Hashable BatchGetOnPremisesInstances
+instance Hashable BatchGetOnPremisesInstances where
 
-instance NFData BatchGetOnPremisesInstances
+instance NFData BatchGetOnPremisesInstances where
 
 instance ToHeaders BatchGetOnPremisesInstances where
         toHeaders
@@ -106,16 +106,17 @@
 instance ToQuery BatchGetOnPremisesInstances where
         toQuery = const mempty
 
--- | Represents the output of a batch get on-premises instances operation.
+-- | Represents the output of a BatchGetOnPremisesInstances operation.
 --
 --
 --
 -- /See:/ 'batchGetOnPremisesInstancesResponse' smart constructor.
 data BatchGetOnPremisesInstancesResponse = BatchGetOnPremisesInstancesResponse'
-    { _bgopirsInstanceInfos  :: !(Maybe [InstanceInfo])
-    , _bgopirsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _bgopirsInstanceInfos  :: !(Maybe [InstanceInfo])
+  , _bgopirsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'BatchGetOnPremisesInstancesResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -127,11 +128,10 @@
     :: Int -- ^ 'bgopirsResponseStatus'
     -> BatchGetOnPremisesInstancesResponse
 batchGetOnPremisesInstancesResponse pResponseStatus_ =
-    BatchGetOnPremisesInstancesResponse'
-    { _bgopirsInstanceInfos = Nothing
-    , _bgopirsResponseStatus = pResponseStatus_
-    }
+  BatchGetOnPremisesInstancesResponse'
+  {_bgopirsInstanceInfos = Nothing, _bgopirsResponseStatus = pResponseStatus_}
 
+
 -- | Information about the on-premises instances.
 bgopirsInstanceInfos :: Lens' BatchGetOnPremisesInstancesResponse [InstanceInfo]
 bgopirsInstanceInfos = lens _bgopirsInstanceInfos (\ s a -> s{_bgopirsInstanceInfos = a}) . _Default . _Coerce;
@@ -141,3 +141,4 @@
 bgopirsResponseStatus = lens _bgopirsResponseStatus (\ s a -> s{_bgopirsResponseStatus = a});
 
 instance NFData BatchGetOnPremisesInstancesResponse
+         where
diff --git a/gen/Network/AWS/CodeDeploy/ContinueDeployment.hs b/gen/Network/AWS/CodeDeploy/ContinueDeployment.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/CodeDeploy/ContinueDeployment.hs
@@ -0,0 +1,108 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Network.AWS.CodeDeploy.ContinueDeployment
+-- Copyright   : (c) 2013-2017 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- For a blue/green deployment, starts the process of rerouting traffic from instances in the original environment to instances in the replacement environment without waiting for a specified wait time to elapse. (Traffic rerouting, which is achieved by registering instances in the replacement environment with the load balancer, can start as soon as all instances have a status of Ready.)
+--
+--
+module Network.AWS.CodeDeploy.ContinueDeployment
+    (
+    -- * Creating a Request
+      continueDeployment
+    , ContinueDeployment
+    -- * Request Lenses
+    , cdDeploymentId
+
+    -- * Destructuring the Response
+    , continueDeploymentResponse
+    , ContinueDeploymentResponse
+    ) where
+
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'continueDeployment' smart constructor.
+newtype ContinueDeployment = ContinueDeployment'
+  { _cdDeploymentId :: Maybe Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ContinueDeployment' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cdDeploymentId' - The deployment ID of the blue/green deployment for which you want to start rerouting traffic to the replacement environment.
+continueDeployment
+    :: ContinueDeployment
+continueDeployment = ContinueDeployment' {_cdDeploymentId = Nothing}
+
+
+-- | The deployment ID of the blue/green deployment for which you want to start rerouting traffic to the replacement environment.
+cdDeploymentId :: Lens' ContinueDeployment (Maybe Text)
+cdDeploymentId = lens _cdDeploymentId (\ s a -> s{_cdDeploymentId = a});
+
+instance AWSRequest ContinueDeployment where
+        type Rs ContinueDeployment =
+             ContinueDeploymentResponse
+        request = postJSON codeDeploy
+        response = receiveNull ContinueDeploymentResponse'
+
+instance Hashable ContinueDeployment where
+
+instance NFData ContinueDeployment where
+
+instance ToHeaders ContinueDeployment where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.ContinueDeployment" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON ContinueDeployment where
+        toJSON ContinueDeployment'{..}
+          = object
+              (catMaybes [("deploymentId" .=) <$> _cdDeploymentId])
+
+instance ToPath ContinueDeployment where
+        toPath = const "/"
+
+instance ToQuery ContinueDeployment where
+        toQuery = const mempty
+
+-- | /See:/ 'continueDeploymentResponse' smart constructor.
+data ContinueDeploymentResponse =
+  ContinueDeploymentResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ContinueDeploymentResponse' with the minimum fields required to make a request.
+--
+continueDeploymentResponse
+    :: ContinueDeploymentResponse
+continueDeploymentResponse = ContinueDeploymentResponse'
+
+
+instance NFData ContinueDeploymentResponse where
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
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.CreateApplication
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -37,22 +37,23 @@
     , carsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a create application operation.
+-- | Represents the input of a CreateApplication operation.
 --
 --
 --
 -- /See:/ 'createApplication' smart constructor.
 newtype CreateApplication = CreateApplication'
-    { _caApplicationName :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _caApplicationName :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateApplication' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -62,10 +63,9 @@
     :: Text -- ^ 'caApplicationName'
     -> CreateApplication
 createApplication pApplicationName_ =
-    CreateApplication'
-    { _caApplicationName = pApplicationName_
-    }
+  CreateApplication' {_caApplicationName = pApplicationName_}
 
+
 -- | 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});
@@ -79,9 +79,9 @@
                  CreateApplicationResponse' <$>
                    (x .?> "applicationId") <*> (pure (fromEnum s)))
 
-instance Hashable CreateApplication
+instance Hashable CreateApplication where
 
-instance NFData CreateApplication
+instance NFData CreateApplication where
 
 instance ToHeaders CreateApplication where
         toHeaders
@@ -105,16 +105,17 @@
 instance ToQuery CreateApplication where
         toQuery = const mempty
 
--- | Represents the output of a create application operation.
+-- | Represents the output of a CreateApplication operation.
 --
 --
 --
 -- /See:/ 'createApplicationResponse' smart constructor.
 data CreateApplicationResponse = CreateApplicationResponse'
-    { _carsApplicationId  :: !(Maybe Text)
-    , _carsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _carsApplicationId  :: !(Maybe Text)
+  , _carsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateApplicationResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -126,11 +127,10 @@
     :: Int -- ^ 'carsResponseStatus'
     -> CreateApplicationResponse
 createApplicationResponse pResponseStatus_ =
-    CreateApplicationResponse'
-    { _carsApplicationId = Nothing
-    , _carsResponseStatus = pResponseStatus_
-    }
+  CreateApplicationResponse'
+  {_carsApplicationId = Nothing, _carsResponseStatus = pResponseStatus_}
 
+
 -- | A unique application ID.
 carsApplicationId :: Lens' CreateApplicationResponse (Maybe Text)
 carsApplicationId = lens _carsApplicationId (\ s a -> s{_carsApplicationId = a});
@@ -139,4 +139,4 @@
 carsResponseStatus :: Lens' CreateApplicationResponse Int
 carsResponseStatus = lens _carsResponseStatus (\ s a -> s{_carsResponseStatus = a});
 
-instance NFData CreateApplicationResponse
+instance NFData CreateApplicationResponse where
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
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.CreateDeployment
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -28,6 +28,8 @@
     , CreateDeployment
     -- * Request Lenses
     , cdDeploymentConfigName
+    , cdFileExistsBehavior
+    , cdTargetInstances
     , cdRevision
     , cdDescription
     , cdAutoRollbackConfiguration
@@ -44,35 +46,42 @@
     , cdrsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a create deployment operation.
+-- | Represents the input of a CreateDeployment operation.
 --
 --
 --
 -- /See:/ 'createDeployment' smart constructor.
 data CreateDeployment = CreateDeployment'
-    { _cdDeploymentConfigName          :: !(Maybe Text)
-    , _cdRevision                      :: !(Maybe RevisionLocation)
-    , _cdDescription                   :: !(Maybe Text)
-    , _cdAutoRollbackConfiguration     :: !(Maybe AutoRollbackConfiguration)
-    , _cdUpdateOutdatedInstancesOnly   :: !(Maybe Bool)
-    , _cdDeploymentGroupName           :: !(Maybe Text)
-    , _cdIgnoreApplicationStopFailures :: !(Maybe Bool)
-    , _cdApplicationName               :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _cdDeploymentConfigName          :: !(Maybe Text)
+  , _cdFileExistsBehavior            :: !(Maybe FileExistsBehavior)
+  , _cdTargetInstances               :: !(Maybe TargetInstances)
+  , _cdRevision                      :: !(Maybe RevisionLocation)
+  , _cdDescription                   :: !(Maybe Text)
+  , _cdAutoRollbackConfiguration     :: !(Maybe AutoRollbackConfiguration)
+  , _cdUpdateOutdatedInstancesOnly   :: !(Maybe Bool)
+  , _cdDeploymentGroupName           :: !(Maybe Text)
+  , _cdIgnoreApplicationStopFailures :: !(Maybe Bool)
+  , _cdApplicationName               :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateDeployment' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
 -- * 'cdDeploymentConfigName' - The name of a 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 configuration associated with it, then CodeDeployDefault.OneAtATime will be used by default.
 --
+-- * 'cdFileExistsBehavior' - Information about how AWS CodeDeploy handles files that already exist in a deployment target location but weren't part of the previous successful deployment. The fileExistsBehavior parameter takes any of the following values:     * DISALLOW: The deployment fails. This is also the default behavior if no option is specified.     * OVERWRITE: The version of the file from the application revision currently being deployed replaces the version already on the instance.     * RETAIN: The version of the file already on the instance is kept and used as part of the new deployment.
+--
+-- * 'cdTargetInstances' - Information about the instances that will belong to the replacement environment in a blue/green deployment.
+--
 -- * 'cdRevision' - The type and location of the revision to deploy.
 --
 -- * 'cdDescription' - A comment about the deployment.
@@ -90,21 +99,32 @@
     :: Text -- ^ 'cdApplicationName'
     -> CreateDeployment
 createDeployment pApplicationName_ =
-    CreateDeployment'
-    { _cdDeploymentConfigName = Nothing
-    , _cdRevision = Nothing
-    , _cdDescription = Nothing
-    , _cdAutoRollbackConfiguration = Nothing
-    , _cdUpdateOutdatedInstancesOnly = Nothing
-    , _cdDeploymentGroupName = Nothing
-    , _cdIgnoreApplicationStopFailures = Nothing
-    , _cdApplicationName = pApplicationName_
-    }
+  CreateDeployment'
+  { _cdDeploymentConfigName = Nothing
+  , _cdFileExistsBehavior = Nothing
+  , _cdTargetInstances = Nothing
+  , _cdRevision = Nothing
+  , _cdDescription = Nothing
+  , _cdAutoRollbackConfiguration = Nothing
+  , _cdUpdateOutdatedInstancesOnly = Nothing
+  , _cdDeploymentGroupName = Nothing
+  , _cdIgnoreApplicationStopFailures = Nothing
+  , _cdApplicationName = pApplicationName_
+  }
 
+
 -- | The name of a 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 configuration associated with it, then CodeDeployDefault.OneAtATime will be used by default.
 cdDeploymentConfigName :: Lens' CreateDeployment (Maybe Text)
 cdDeploymentConfigName = lens _cdDeploymentConfigName (\ s a -> s{_cdDeploymentConfigName = a});
 
+-- | Information about how AWS CodeDeploy handles files that already exist in a deployment target location but weren't part of the previous successful deployment. The fileExistsBehavior parameter takes any of the following values:     * DISALLOW: The deployment fails. This is also the default behavior if no option is specified.     * OVERWRITE: The version of the file from the application revision currently being deployed replaces the version already on the instance.     * RETAIN: The version of the file already on the instance is kept and used as part of the new deployment.
+cdFileExistsBehavior :: Lens' CreateDeployment (Maybe FileExistsBehavior)
+cdFileExistsBehavior = lens _cdFileExistsBehavior (\ s a -> s{_cdFileExistsBehavior = a});
+
+-- | Information about the instances that will belong to the replacement environment in a blue/green deployment.
+cdTargetInstances :: Lens' CreateDeployment (Maybe TargetInstances)
+cdTargetInstances = lens _cdTargetInstances (\ s a -> s{_cdTargetInstances = a});
+
 -- | The type and location of the revision to deploy.
 cdRevision :: Lens' CreateDeployment (Maybe RevisionLocation)
 cdRevision = lens _cdRevision (\ s a -> s{_cdRevision = a});
@@ -142,9 +162,9 @@
                  CreateDeploymentResponse' <$>
                    (x .?> "deploymentId") <*> (pure (fromEnum s)))
 
-instance Hashable CreateDeployment
+instance Hashable CreateDeployment where
 
-instance NFData CreateDeployment
+instance NFData CreateDeployment where
 
 instance ToHeaders CreateDeployment where
         toHeaders
@@ -162,6 +182,8 @@
               (catMaybes
                  [("deploymentConfigName" .=) <$>
                     _cdDeploymentConfigName,
+                  ("fileExistsBehavior" .=) <$> _cdFileExistsBehavior,
+                  ("targetInstances" .=) <$> _cdTargetInstances,
                   ("revision" .=) <$> _cdRevision,
                   ("description" .=) <$> _cdDescription,
                   ("autoRollbackConfiguration" .=) <$>
@@ -180,16 +202,17 @@
 instance ToQuery CreateDeployment where
         toQuery = const mempty
 
--- | Represents the output of a create deployment operation.
+-- | Represents the output of a CreateDeployment operation.
 --
 --
 --
 -- /See:/ 'createDeploymentResponse' smart constructor.
 data CreateDeploymentResponse = CreateDeploymentResponse'
-    { _cdrsDeploymentId   :: !(Maybe Text)
-    , _cdrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _cdrsDeploymentId   :: !(Maybe Text)
+  , _cdrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateDeploymentResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -201,11 +224,10 @@
     :: Int -- ^ 'cdrsResponseStatus'
     -> CreateDeploymentResponse
 createDeploymentResponse pResponseStatus_ =
-    CreateDeploymentResponse'
-    { _cdrsDeploymentId = Nothing
-    , _cdrsResponseStatus = pResponseStatus_
-    }
+  CreateDeploymentResponse'
+  {_cdrsDeploymentId = Nothing, _cdrsResponseStatus = pResponseStatus_}
 
+
 -- | A unique deployment ID.
 cdrsDeploymentId :: Lens' CreateDeploymentResponse (Maybe Text)
 cdrsDeploymentId = lens _cdrsDeploymentId (\ s a -> s{_cdrsDeploymentId = a});
@@ -214,4 +236,4 @@
 cdrsResponseStatus :: Lens' CreateDeploymentResponse Int
 cdrsResponseStatus = lens _cdrsResponseStatus (\ s a -> s{_cdrsResponseStatus = a});
 
-instance NFData CreateDeploymentResponse
+instance NFData CreateDeploymentResponse where
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
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.CreateDeploymentConfig
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -27,8 +27,8 @@
       createDeploymentConfig
     , CreateDeploymentConfig
     -- * Request Lenses
-    , cdcMinimumHealthyHosts
     , cdcDeploymentConfigName
+    , cdcMinimumHealthyHosts
 
     -- * Destructuring the Response
     , createDeploymentConfigResponse
@@ -38,47 +38,50 @@
     , cdcrsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a create deployment configuration operation.
+-- | Represents the input of a CreateDeploymentConfig operation.
 --
 --
 --
 -- /See:/ 'createDeploymentConfig' smart constructor.
 data CreateDeploymentConfig = CreateDeploymentConfig'
-    { _cdcMinimumHealthyHosts  :: !(Maybe MinimumHealthyHosts)
-    , _cdcDeploymentConfigName :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _cdcDeploymentConfigName :: !Text
+  , _cdcMinimumHealthyHosts  :: !MinimumHealthyHosts
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateDeploymentConfig' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'cdcMinimumHealthyHosts' - The minimum number of healthy instances that should be available at any time during the deployment. There are two parameters expected in the input: type and value. The type parameter takes either of the following values:     * HOST_COUNT: The value parameter represents the minimum number of healthy instances as an absolute value.     * FLEET_PERCENT: The value parameter represents the minimum number of healthy instances as a percentage of the total number of instances in the deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. The value parameter takes an integer. For example, to set a minimum of 95% healthy instance, specify a type of FLEET_PERCENT and a value of 95.
---
 -- * 'cdcDeploymentConfigName' - The name of the deployment configuration to create.
+--
+-- * 'cdcMinimumHealthyHosts' - The minimum number of healthy instances that should be available at any time during the deployment. There are two parameters expected in the input: type and value. The type parameter takes either of the following values:     * HOST_COUNT: The value parameter represents the minimum number of healthy instances as an absolute value.     * FLEET_PERCENT: The value parameter represents the minimum number of healthy instances as a percentage of the total number of instances in the deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. The value parameter takes an integer. For example, to set a minimum of 95% healthy instance, specify a type of FLEET_PERCENT and a value of 95.
 createDeploymentConfig
     :: Text -- ^ 'cdcDeploymentConfigName'
+    -> MinimumHealthyHosts -- ^ 'cdcMinimumHealthyHosts'
     -> CreateDeploymentConfig
-createDeploymentConfig pDeploymentConfigName_ =
-    CreateDeploymentConfig'
-    { _cdcMinimumHealthyHosts = Nothing
-    , _cdcDeploymentConfigName = pDeploymentConfigName_
-    }
+createDeploymentConfig pDeploymentConfigName_ pMinimumHealthyHosts_ =
+  CreateDeploymentConfig'
+  { _cdcDeploymentConfigName = pDeploymentConfigName_
+  , _cdcMinimumHealthyHosts = pMinimumHealthyHosts_
+  }
 
--- | The minimum number of healthy instances that should be available at any time during the deployment. There are two parameters expected in the input: type and value. The type parameter takes either of the following values:     * HOST_COUNT: The value parameter represents the minimum number of healthy instances as an absolute value.     * FLEET_PERCENT: The value parameter represents the minimum number of healthy instances as a percentage of the total number of instances in the deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. The value parameter takes an integer. For example, to set a minimum of 95% healthy instance, specify a type of FLEET_PERCENT and a value of 95.
-cdcMinimumHealthyHosts :: Lens' CreateDeploymentConfig (Maybe MinimumHealthyHosts)
-cdcMinimumHealthyHosts = lens _cdcMinimumHealthyHosts (\ s a -> s{_cdcMinimumHealthyHosts = a});
 
 -- | The name of the deployment configuration to create.
 cdcDeploymentConfigName :: Lens' CreateDeploymentConfig Text
 cdcDeploymentConfigName = lens _cdcDeploymentConfigName (\ s a -> s{_cdcDeploymentConfigName = a});
 
+-- | The minimum number of healthy instances that should be available at any time during the deployment. There are two parameters expected in the input: type and value. The type parameter takes either of the following values:     * HOST_COUNT: The value parameter represents the minimum number of healthy instances as an absolute value.     * FLEET_PERCENT: The value parameter represents the minimum number of healthy instances as a percentage of the total number of instances in the deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. The value parameter takes an integer. For example, to set a minimum of 95% healthy instance, specify a type of FLEET_PERCENT and a value of 95.
+cdcMinimumHealthyHosts :: Lens' CreateDeploymentConfig MinimumHealthyHosts
+cdcMinimumHealthyHosts = lens _cdcMinimumHealthyHosts (\ s a -> s{_cdcMinimumHealthyHosts = a});
+
 instance AWSRequest CreateDeploymentConfig where
         type Rs CreateDeploymentConfig =
              CreateDeploymentConfigResponse
@@ -89,9 +92,9 @@
                  CreateDeploymentConfigResponse' <$>
                    (x .?> "deploymentConfigId") <*> (pure (fromEnum s)))
 
-instance Hashable CreateDeploymentConfig
+instance Hashable CreateDeploymentConfig where
 
-instance NFData CreateDeploymentConfig
+instance NFData CreateDeploymentConfig where
 
 instance ToHeaders CreateDeploymentConfig where
         toHeaders
@@ -107,11 +110,10 @@
         toJSON CreateDeploymentConfig'{..}
           = object
               (catMaybes
-                 [("minimumHealthyHosts" .=) <$>
-                    _cdcMinimumHealthyHosts,
+                 [Just
+                    ("deploymentConfigName" .= _cdcDeploymentConfigName),
                   Just
-                    ("deploymentConfigName" .=
-                       _cdcDeploymentConfigName)])
+                    ("minimumHealthyHosts" .= _cdcMinimumHealthyHosts)])
 
 instance ToPath CreateDeploymentConfig where
         toPath = const "/"
@@ -119,16 +121,17 @@
 instance ToQuery CreateDeploymentConfig where
         toQuery = const mempty
 
--- | Represents the output of a create deployment configuration operation.
+-- | Represents the output of a CreateDeploymentConfig operation.
 --
 --
 --
 -- /See:/ 'createDeploymentConfigResponse' smart constructor.
 data CreateDeploymentConfigResponse = CreateDeploymentConfigResponse'
-    { _cdcrsDeploymentConfigId :: !(Maybe Text)
-    , _cdcrsResponseStatus     :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _cdcrsDeploymentConfigId :: !(Maybe Text)
+  , _cdcrsResponseStatus     :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateDeploymentConfigResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -140,11 +143,10 @@
     :: Int -- ^ 'cdcrsResponseStatus'
     -> CreateDeploymentConfigResponse
 createDeploymentConfigResponse pResponseStatus_ =
-    CreateDeploymentConfigResponse'
-    { _cdcrsDeploymentConfigId = Nothing
-    , _cdcrsResponseStatus = pResponseStatus_
-    }
+  CreateDeploymentConfigResponse'
+  {_cdcrsDeploymentConfigId = Nothing, _cdcrsResponseStatus = pResponseStatus_}
 
+
 -- | A unique deployment configuration ID.
 cdcrsDeploymentConfigId :: Lens' CreateDeploymentConfigResponse (Maybe Text)
 cdcrsDeploymentConfigId = lens _cdcrsDeploymentConfigId (\ s a -> s{_cdcrsDeploymentConfigId = a});
@@ -153,4 +155,4 @@
 cdcrsResponseStatus :: Lens' CreateDeploymentConfigResponse Int
 cdcrsResponseStatus = lens _cdcrsResponseStatus (\ s a -> s{_cdcrsResponseStatus = a});
 
-instance NFData CreateDeploymentConfigResponse
+instance NFData CreateDeploymentConfigResponse where
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
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.CreateDeploymentGroup
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -27,12 +27,17 @@
       createDeploymentGroup
     , CreateDeploymentGroup
     -- * Request Lenses
+    , cdgEc2TagSet
     , cdgDeploymentConfigName
+    , cdgOnPremisesTagSet
     , cdgEc2TagFilters
+    , cdgBlueGreenDeploymentConfiguration
+    , cdgLoadBalancerInfo
     , cdgOnPremisesInstanceTagFilters
     , cdgAlarmConfiguration
     , cdgTriggerConfigurations
     , cdgAutoScalingGroups
+    , cdgDeploymentStyle
     , cdgAutoRollbackConfiguration
     , cdgApplicationName
     , cdgDeploymentGroupName
@@ -46,47 +51,63 @@
     , cdgrsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a create deployment group operation.
+-- | Represents the input of a CreateDeploymentGroup operation.
 --
 --
 --
 -- /See:/ 'createDeploymentGroup' smart constructor.
 data CreateDeploymentGroup = CreateDeploymentGroup'
-    { _cdgDeploymentConfigName         :: !(Maybe Text)
-    , _cdgEc2TagFilters                :: !(Maybe [EC2TagFilter])
-    , _cdgOnPremisesInstanceTagFilters :: !(Maybe [TagFilter])
-    , _cdgAlarmConfiguration           :: !(Maybe AlarmConfiguration)
-    , _cdgTriggerConfigurations        :: !(Maybe [TriggerConfig])
-    , _cdgAutoScalingGroups            :: !(Maybe [Text])
-    , _cdgAutoRollbackConfiguration    :: !(Maybe AutoRollbackConfiguration)
-    , _cdgApplicationName              :: !Text
-    , _cdgDeploymentGroupName          :: !Text
-    , _cdgServiceRoleARN               :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _cdgEc2TagSet :: !(Maybe EC2TagSet)
+  , _cdgDeploymentConfigName :: !(Maybe Text)
+  , _cdgOnPremisesTagSet :: !(Maybe OnPremisesTagSet)
+  , _cdgEc2TagFilters :: !(Maybe [EC2TagFilter])
+  , _cdgBlueGreenDeploymentConfiguration :: !(Maybe BlueGreenDeploymentConfiguration)
+  , _cdgLoadBalancerInfo :: !(Maybe LoadBalancerInfo)
+  , _cdgOnPremisesInstanceTagFilters :: !(Maybe [TagFilter])
+  , _cdgAlarmConfiguration :: !(Maybe AlarmConfiguration)
+  , _cdgTriggerConfigurations :: !(Maybe [TriggerConfig])
+  , _cdgAutoScalingGroups :: !(Maybe [Text])
+  , _cdgDeploymentStyle :: !(Maybe DeploymentStyle)
+  , _cdgAutoRollbackConfiguration :: !(Maybe AutoRollbackConfiguration)
+  , _cdgApplicationName :: !Text
+  , _cdgDeploymentGroupName :: !Text
+  , _cdgServiceRoleARN :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateDeploymentGroup' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'cdgDeploymentConfigName' - If specified, the deployment configuration name can be either one of the predefined configurations provided with AWS CodeDeploy or a custom deployment configuration that you create by calling the create deployment configuration operation. The predefined deployment configurations include the following:     * __CodeDeployDefault.AllAtOnce__ attempts to deploy an application revision to as many instances as possible at once. The status of the overall deployment will be displayed as __Succeeded__ if the application revision is deployed to one or more of the instances. The status of the overall deployment will be displayed as __Failed__ if the application revision is not deployed to any of the instances. Using an example of nine instances, CodeDeployDefault.AllAtOnce will attempt to deploy to all nine instances at once. The overall deployment will succeed if deployment to even a single instance is successful; it will fail only if deployments to all nine instances fail.      * __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 is deployed to at least half of the instances (with fractions rounded up); otherwise, the deployment fails. In the example of nine instances, it will deploy to up to four instances at a time. The overall deployment succeeds if deployment to five or more instances succeed; otherwise, the deployment fails. The deployment may be successfully deployed to some instances even if the overall deployment fails.     * __CodeDeployDefault.OneAtATime__ deploys the application revision to only one instance at a time. For deployment groups that contain more than one instance:     * The overall deployment succeeds if the application revision is deployed to all of the instances. The exception to this rule is if deployment to the last instance fails, the overall deployment still succeeds. This is because AWS CodeDeploy allows only one instance at a time to be taken offline with the CodeDeployDefault.OneAtATime configuration.     * The overall deployment fails as soon as the application revision fails to be deployed to any but the last instance. The deployment may be successfully deployed to some instances even if the overall deployment fails.     * In an example using nine instances, it will deploy to one instance at a time. The overall deployment succeeds if deployment to the first eight instances is successful; the overall deployment fails if deployment to any of the first eight instances fails. For deployment groups that contain only one instance, the overall deployment is successful only if deployment to the single instance is successful
+-- * 'cdgEc2TagSet' - Information about groups of tags applied to EC2 instances. The deployment group will include only EC2 instances identified by all the tag groups. Cannot be used in the same call as ec2TagFilters.
 --
--- * 'cdgEc2TagFilters' - The Amazon EC2 tags on which to filter.
+-- * 'cdgDeploymentConfigName' - If specified, the deployment configuration name can be either one of the predefined configurations provided with AWS CodeDeploy or a custom deployment configuration that you create by calling the create deployment configuration operation. CodeDeployDefault.OneAtATime is the default deployment configuration. It is used if a configuration isn't specified for the deployment or the deployment group. For more information about the predefined deployment configurations in AWS CodeDeploy, see <http://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html Working with Deployment Groups in AWS CodeDeploy> in the AWS CodeDeploy User Guide.
 --
--- * 'cdgOnPremisesInstanceTagFilters' - The on-premises instance tags on which to filter.
+-- * 'cdgOnPremisesTagSet' - Information about groups of tags applied to on-premises instances. The deployment group will include only on-premises instances identified by all the tag groups. Cannot be used in the same call as onPremisesInstanceTagFilters.
 --
+-- * 'cdgEc2TagFilters' - The Amazon EC2 tags on which to filter. The deployment group will include EC2 instances with any of the specified tags. Cannot be used in the same call as ec2TagSet.
+--
+-- * 'cdgBlueGreenDeploymentConfiguration' - Information about blue/green deployment options for a deployment group.
+--
+-- * 'cdgLoadBalancerInfo' - Information about the load balancer used in a deployment.
+--
+-- * 'cdgOnPremisesInstanceTagFilters' - The on-premises instance tags on which to filter. The deployment group will include on-premises instances with any of the specified tags. Cannot be used in the same call as OnPremisesTagSet.
+--
 -- * 'cdgAlarmConfiguration' - Information to add about Amazon CloudWatch alarms when the deployment group is created.
 --
 -- * 'cdgTriggerConfigurations' - Information about triggers to create when the deployment group is created. For examples, see <http://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-notify-sns.html Create a Trigger for an AWS CodeDeploy Event> in the AWS CodeDeploy User Guide.
 --
 -- * 'cdgAutoScalingGroups' - A list of associated Auto Scaling groups.
 --
+-- * 'cdgDeploymentStyle' - Information about the type of deployment, in-place or blue/green, that you want to run and whether to route deployment traffic behind a load balancer.
+--
 -- * 'cdgAutoRollbackConfiguration' - Configuration information for an automatic rollback that is added when a deployment group is created.
 --
 -- * 'cdgApplicationName' - The name of an AWS CodeDeploy application associated with the applicable IAM user or AWS account.
@@ -100,28 +121,50 @@
     -> Text -- ^ 'cdgServiceRoleARN'
     -> CreateDeploymentGroup
 createDeploymentGroup pApplicationName_ pDeploymentGroupName_ pServiceRoleARN_ =
-    CreateDeploymentGroup'
-    { _cdgDeploymentConfigName = Nothing
-    , _cdgEc2TagFilters = Nothing
-    , _cdgOnPremisesInstanceTagFilters = Nothing
-    , _cdgAlarmConfiguration = Nothing
-    , _cdgTriggerConfigurations = Nothing
-    , _cdgAutoScalingGroups = Nothing
-    , _cdgAutoRollbackConfiguration = Nothing
-    , _cdgApplicationName = pApplicationName_
-    , _cdgDeploymentGroupName = pDeploymentGroupName_
-    , _cdgServiceRoleARN = pServiceRoleARN_
-    }
+  CreateDeploymentGroup'
+  { _cdgEc2TagSet = Nothing
+  , _cdgDeploymentConfigName = Nothing
+  , _cdgOnPremisesTagSet = Nothing
+  , _cdgEc2TagFilters = Nothing
+  , _cdgBlueGreenDeploymentConfiguration = Nothing
+  , _cdgLoadBalancerInfo = Nothing
+  , _cdgOnPremisesInstanceTagFilters = Nothing
+  , _cdgAlarmConfiguration = Nothing
+  , _cdgTriggerConfigurations = Nothing
+  , _cdgAutoScalingGroups = Nothing
+  , _cdgDeploymentStyle = Nothing
+  , _cdgAutoRollbackConfiguration = Nothing
+  , _cdgApplicationName = pApplicationName_
+  , _cdgDeploymentGroupName = pDeploymentGroupName_
+  , _cdgServiceRoleARN = pServiceRoleARN_
+  }
 
--- | If specified, the deployment configuration name can be either one of the predefined configurations provided with AWS CodeDeploy or a custom deployment configuration that you create by calling the create deployment configuration operation. The predefined deployment configurations include the following:     * __CodeDeployDefault.AllAtOnce__ attempts to deploy an application revision to as many instances as possible at once. The status of the overall deployment will be displayed as __Succeeded__ if the application revision is deployed to one or more of the instances. The status of the overall deployment will be displayed as __Failed__ if the application revision is not deployed to any of the instances. Using an example of nine instances, CodeDeployDefault.AllAtOnce will attempt to deploy to all nine instances at once. The overall deployment will succeed if deployment to even a single instance is successful; it will fail only if deployments to all nine instances fail.      * __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 is deployed to at least half of the instances (with fractions rounded up); otherwise, the deployment fails. In the example of nine instances, it will deploy to up to four instances at a time. The overall deployment succeeds if deployment to five or more instances succeed; otherwise, the deployment fails. The deployment may be successfully deployed to some instances even if the overall deployment fails.     * __CodeDeployDefault.OneAtATime__ deploys the application revision to only one instance at a time. For deployment groups that contain more than one instance:     * The overall deployment succeeds if the application revision is deployed to all of the instances. The exception to this rule is if deployment to the last instance fails, the overall deployment still succeeds. This is because AWS CodeDeploy allows only one instance at a time to be taken offline with the CodeDeployDefault.OneAtATime configuration.     * The overall deployment fails as soon as the application revision fails to be deployed to any but the last instance. The deployment may be successfully deployed to some instances even if the overall deployment fails.     * In an example using nine instances, it will deploy to one instance at a time. The overall deployment succeeds if deployment to the first eight instances is successful; the overall deployment fails if deployment to any of the first eight instances fails. For deployment groups that contain only one instance, the overall deployment is successful only if deployment to the single instance is successful
+
+-- | Information about groups of tags applied to EC2 instances. The deployment group will include only EC2 instances identified by all the tag groups. Cannot be used in the same call as ec2TagFilters.
+cdgEc2TagSet :: Lens' CreateDeploymentGroup (Maybe EC2TagSet)
+cdgEc2TagSet = lens _cdgEc2TagSet (\ s a -> s{_cdgEc2TagSet = a});
+
+-- | If specified, the deployment configuration name can be either one of the predefined configurations provided with AWS CodeDeploy or a custom deployment configuration that you create by calling the create deployment configuration operation. CodeDeployDefault.OneAtATime is the default deployment configuration. It is used if a configuration isn't specified for the deployment or the deployment group. For more information about the predefined deployment configurations in AWS CodeDeploy, see <http://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html Working with Deployment Groups in AWS CodeDeploy> in the AWS CodeDeploy User Guide.
 cdgDeploymentConfigName :: Lens' CreateDeploymentGroup (Maybe Text)
 cdgDeploymentConfigName = lens _cdgDeploymentConfigName (\ s a -> s{_cdgDeploymentConfigName = a});
 
--- | The Amazon EC2 tags on which to filter.
+-- | Information about groups of tags applied to on-premises instances. The deployment group will include only on-premises instances identified by all the tag groups. Cannot be used in the same call as onPremisesInstanceTagFilters.
+cdgOnPremisesTagSet :: Lens' CreateDeploymentGroup (Maybe OnPremisesTagSet)
+cdgOnPremisesTagSet = lens _cdgOnPremisesTagSet (\ s a -> s{_cdgOnPremisesTagSet = a});
+
+-- | The Amazon EC2 tags on which to filter. The deployment group will include EC2 instances with any of the specified tags. Cannot be used in the same call as ec2TagSet.
 cdgEc2TagFilters :: Lens' CreateDeploymentGroup [EC2TagFilter]
 cdgEc2TagFilters = lens _cdgEc2TagFilters (\ s a -> s{_cdgEc2TagFilters = a}) . _Default . _Coerce;
 
--- | The on-premises instance tags on which to filter.
+-- | Information about blue/green deployment options for a deployment group.
+cdgBlueGreenDeploymentConfiguration :: Lens' CreateDeploymentGroup (Maybe BlueGreenDeploymentConfiguration)
+cdgBlueGreenDeploymentConfiguration = lens _cdgBlueGreenDeploymentConfiguration (\ s a -> s{_cdgBlueGreenDeploymentConfiguration = a});
+
+-- | Information about the load balancer used in a deployment.
+cdgLoadBalancerInfo :: Lens' CreateDeploymentGroup (Maybe LoadBalancerInfo)
+cdgLoadBalancerInfo = lens _cdgLoadBalancerInfo (\ s a -> s{_cdgLoadBalancerInfo = a});
+
+-- | The on-premises instance tags on which to filter. The deployment group will include on-premises instances with any of the specified tags. Cannot be used in the same call as OnPremisesTagSet.
 cdgOnPremisesInstanceTagFilters :: Lens' CreateDeploymentGroup [TagFilter]
 cdgOnPremisesInstanceTagFilters = lens _cdgOnPremisesInstanceTagFilters (\ s a -> s{_cdgOnPremisesInstanceTagFilters = a}) . _Default . _Coerce;
 
@@ -137,6 +180,10 @@
 cdgAutoScalingGroups :: Lens' CreateDeploymentGroup [Text]
 cdgAutoScalingGroups = lens _cdgAutoScalingGroups (\ s a -> s{_cdgAutoScalingGroups = a}) . _Default . _Coerce;
 
+-- | Information about the type of deployment, in-place or blue/green, that you want to run and whether to route deployment traffic behind a load balancer.
+cdgDeploymentStyle :: Lens' CreateDeploymentGroup (Maybe DeploymentStyle)
+cdgDeploymentStyle = lens _cdgDeploymentStyle (\ s a -> s{_cdgDeploymentStyle = a});
+
 -- | Configuration information for an automatic rollback that is added when a deployment group is created.
 cdgAutoRollbackConfiguration :: Lens' CreateDeploymentGroup (Maybe AutoRollbackConfiguration)
 cdgAutoRollbackConfiguration = lens _cdgAutoRollbackConfiguration (\ s a -> s{_cdgAutoRollbackConfiguration = a});
@@ -163,9 +210,9 @@
                  CreateDeploymentGroupResponse' <$>
                    (x .?> "deploymentGroupId") <*> (pure (fromEnum s)))
 
-instance Hashable CreateDeploymentGroup
+instance Hashable CreateDeploymentGroup where
 
-instance NFData CreateDeploymentGroup
+instance NFData CreateDeploymentGroup where
 
 instance ToHeaders CreateDeploymentGroup where
         toHeaders
@@ -181,15 +228,21 @@
         toJSON CreateDeploymentGroup'{..}
           = object
               (catMaybes
-                 [("deploymentConfigName" .=) <$>
+                 [("ec2TagSet" .=) <$> _cdgEc2TagSet,
+                  ("deploymentConfigName" .=) <$>
                     _cdgDeploymentConfigName,
+                  ("onPremisesTagSet" .=) <$> _cdgOnPremisesTagSet,
                   ("ec2TagFilters" .=) <$> _cdgEc2TagFilters,
+                  ("blueGreenDeploymentConfiguration" .=) <$>
+                    _cdgBlueGreenDeploymentConfiguration,
+                  ("loadBalancerInfo" .=) <$> _cdgLoadBalancerInfo,
                   ("onPremisesInstanceTagFilters" .=) <$>
                     _cdgOnPremisesInstanceTagFilters,
                   ("alarmConfiguration" .=) <$> _cdgAlarmConfiguration,
                   ("triggerConfigurations" .=) <$>
                     _cdgTriggerConfigurations,
                   ("autoScalingGroups" .=) <$> _cdgAutoScalingGroups,
+                  ("deploymentStyle" .=) <$> _cdgDeploymentStyle,
                   ("autoRollbackConfiguration" .=) <$>
                     _cdgAutoRollbackConfiguration,
                   Just ("applicationName" .= _cdgApplicationName),
@@ -203,16 +256,17 @@
 instance ToQuery CreateDeploymentGroup where
         toQuery = const mempty
 
--- | Represents the output of a create deployment group operation.
+-- | Represents the output of a CreateDeploymentGroup operation.
 --
 --
 --
 -- /See:/ 'createDeploymentGroupResponse' smart constructor.
 data CreateDeploymentGroupResponse = CreateDeploymentGroupResponse'
-    { _cdgrsDeploymentGroupId :: !(Maybe Text)
-    , _cdgrsResponseStatus    :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _cdgrsDeploymentGroupId :: !(Maybe Text)
+  , _cdgrsResponseStatus    :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateDeploymentGroupResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -224,11 +278,10 @@
     :: Int -- ^ 'cdgrsResponseStatus'
     -> CreateDeploymentGroupResponse
 createDeploymentGroupResponse pResponseStatus_ =
-    CreateDeploymentGroupResponse'
-    { _cdgrsDeploymentGroupId = Nothing
-    , _cdgrsResponseStatus = pResponseStatus_
-    }
+  CreateDeploymentGroupResponse'
+  {_cdgrsDeploymentGroupId = Nothing, _cdgrsResponseStatus = pResponseStatus_}
 
+
 -- | A unique deployment group ID.
 cdgrsDeploymentGroupId :: Lens' CreateDeploymentGroupResponse (Maybe Text)
 cdgrsDeploymentGroupId = lens _cdgrsDeploymentGroupId (\ s a -> s{_cdgrsDeploymentGroupId = a});
@@ -237,4 +290,4 @@
 cdgrsResponseStatus :: Lens' CreateDeploymentGroupResponse Int
 cdgrsResponseStatus = lens _cdgrsResponseStatus (\ s a -> s{_cdgrsResponseStatus = a});
 
-instance NFData CreateDeploymentGroupResponse
+instance NFData CreateDeploymentGroupResponse 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
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.DeleteApplication
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -34,22 +34,23 @@
     , DeleteApplicationResponse
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a delete application operation.
+-- | Represents the input of a DeleteApplication operation.
 --
 --
 --
 -- /See:/ 'deleteApplication' smart constructor.
 newtype DeleteApplication = DeleteApplication'
-    { _daApplicationName :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _daApplicationName :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteApplication' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -59,10 +60,9 @@
     :: Text -- ^ 'daApplicationName'
     -> DeleteApplication
 deleteApplication pApplicationName_ =
-    DeleteApplication'
-    { _daApplicationName = pApplicationName_
-    }
+  DeleteApplication' {_daApplicationName = pApplicationName_}
 
+
 -- | The name of an AWS CodeDeploy application associated with the applicable IAM user or AWS account.
 daApplicationName :: Lens' DeleteApplication Text
 daApplicationName = lens _daApplicationName (\ s a -> s{_daApplicationName = a});
@@ -72,9 +72,9 @@
         request = postJSON codeDeploy
         response = receiveNull DeleteApplicationResponse'
 
-instance Hashable DeleteApplication
+instance Hashable DeleteApplication where
 
-instance NFData DeleteApplication
+instance NFData DeleteApplication where
 
 instance ToHeaders DeleteApplication where
         toHeaders
@@ -100,13 +100,15 @@
 
 -- | /See:/ 'deleteApplicationResponse' smart constructor.
 data DeleteApplicationResponse =
-    DeleteApplicationResponse'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  DeleteApplicationResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteApplicationResponse' with the minimum fields required to make a request.
 --
 deleteApplicationResponse
     :: DeleteApplicationResponse
 deleteApplicationResponse = DeleteApplicationResponse'
 
-instance NFData DeleteApplicationResponse
+
+instance NFData DeleteApplicationResponse where
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
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.DeleteDeploymentConfig
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -34,22 +34,23 @@
     , DeleteDeploymentConfigResponse
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a delete deployment configuration operation.
+-- | Represents the input of a DeleteDeploymentConfig operation.
 --
 --
 --
 -- /See:/ 'deleteDeploymentConfig' smart constructor.
 newtype DeleteDeploymentConfig = DeleteDeploymentConfig'
-    { _ddcDeploymentConfigName :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ddcDeploymentConfigName :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteDeploymentConfig' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -59,10 +60,9 @@
     :: Text -- ^ 'ddcDeploymentConfigName'
     -> DeleteDeploymentConfig
 deleteDeploymentConfig pDeploymentConfigName_ =
-    DeleteDeploymentConfig'
-    { _ddcDeploymentConfigName = pDeploymentConfigName_
-    }
+  DeleteDeploymentConfig' {_ddcDeploymentConfigName = pDeploymentConfigName_}
 
+
 -- | The name of a deployment configuration associated with the applicable IAM user or AWS account.
 ddcDeploymentConfigName :: Lens' DeleteDeploymentConfig Text
 ddcDeploymentConfigName = lens _ddcDeploymentConfigName (\ s a -> s{_ddcDeploymentConfigName = a});
@@ -74,9 +74,9 @@
         response
           = receiveNull DeleteDeploymentConfigResponse'
 
-instance Hashable DeleteDeploymentConfig
+instance Hashable DeleteDeploymentConfig where
 
-instance NFData DeleteDeploymentConfig
+instance NFData DeleteDeploymentConfig where
 
 instance ToHeaders DeleteDeploymentConfig where
         toHeaders
@@ -104,13 +104,15 @@
 
 -- | /See:/ 'deleteDeploymentConfigResponse' smart constructor.
 data DeleteDeploymentConfigResponse =
-    DeleteDeploymentConfigResponse'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  DeleteDeploymentConfigResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteDeploymentConfigResponse' with the minimum fields required to make a request.
 --
 deleteDeploymentConfigResponse
     :: DeleteDeploymentConfigResponse
 deleteDeploymentConfigResponse = DeleteDeploymentConfigResponse'
 
-instance NFData DeleteDeploymentConfigResponse
+
+instance NFData DeleteDeploymentConfigResponse where
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
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.DeleteDeploymentGroup
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -38,23 +38,24 @@
     , ddgrsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a delete deployment group operation.
+-- | Represents the input of a DeleteDeploymentGroup operation.
 --
 --
 --
 -- /See:/ 'deleteDeploymentGroup' smart constructor.
 data DeleteDeploymentGroup = DeleteDeploymentGroup'
-    { _ddgApplicationName     :: !Text
-    , _ddgDeploymentGroupName :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ddgApplicationName     :: !Text
+  , _ddgDeploymentGroupName :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteDeploymentGroup' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -67,11 +68,12 @@
     -> Text -- ^ 'ddgDeploymentGroupName'
     -> DeleteDeploymentGroup
 deleteDeploymentGroup pApplicationName_ pDeploymentGroupName_ =
-    DeleteDeploymentGroup'
-    { _ddgApplicationName = pApplicationName_
-    , _ddgDeploymentGroupName = pDeploymentGroupName_
-    }
+  DeleteDeploymentGroup'
+  { _ddgApplicationName = pApplicationName_
+  , _ddgDeploymentGroupName = pDeploymentGroupName_
+  }
 
+
 -- | The name of an AWS CodeDeploy application associated with the applicable IAM user or AWS account.
 ddgApplicationName :: Lens' DeleteDeploymentGroup Text
 ddgApplicationName = lens _ddgApplicationName (\ s a -> s{_ddgApplicationName = a});
@@ -91,9 +93,9 @@
                    (x .?> "hooksNotCleanedUp" .!@ mempty) <*>
                      (pure (fromEnum s)))
 
-instance Hashable DeleteDeploymentGroup
+instance Hashable DeleteDeploymentGroup where
 
-instance NFData DeleteDeploymentGroup
+instance NFData DeleteDeploymentGroup where
 
 instance ToHeaders DeleteDeploymentGroup where
         toHeaders
@@ -119,16 +121,17 @@
 instance ToQuery DeleteDeploymentGroup where
         toQuery = const mempty
 
--- | Represents the output of a delete deployment group operation.
+-- | Represents the output of a DeleteDeploymentGroup operation.
 --
 --
 --
 -- /See:/ 'deleteDeploymentGroupResponse' smart constructor.
 data DeleteDeploymentGroupResponse = DeleteDeploymentGroupResponse'
-    { _ddgrsHooksNotCleanedUp :: !(Maybe [AutoScalingGroup])
-    , _ddgrsResponseStatus    :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ddgrsHooksNotCleanedUp :: !(Maybe [AutoScalingGroup])
+  , _ddgrsResponseStatus    :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteDeploymentGroupResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -140,11 +143,10 @@
     :: Int -- ^ 'ddgrsResponseStatus'
     -> DeleteDeploymentGroupResponse
 deleteDeploymentGroupResponse pResponseStatus_ =
-    DeleteDeploymentGroupResponse'
-    { _ddgrsHooksNotCleanedUp = Nothing
-    , _ddgrsResponseStatus = pResponseStatus_
-    }
+  DeleteDeploymentGroupResponse'
+  {_ddgrsHooksNotCleanedUp = Nothing, _ddgrsResponseStatus = pResponseStatus_}
 
+
 -- | 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 Amazon EC2 instances in the Auto Scaling group. If the output contains data, AWS CodeDeploy could not remove some Auto Scaling lifecycle event hooks from the Amazon EC2 instances in the Auto Scaling group.
 ddgrsHooksNotCleanedUp :: Lens' DeleteDeploymentGroupResponse [AutoScalingGroup]
 ddgrsHooksNotCleanedUp = lens _ddgrsHooksNotCleanedUp (\ s a -> s{_ddgrsHooksNotCleanedUp = a}) . _Default . _Coerce;
@@ -153,4 +155,4 @@
 ddgrsResponseStatus :: Lens' DeleteDeploymentGroupResponse Int
 ddgrsResponseStatus = lens _ddgrsResponseStatus (\ s a -> s{_ddgrsResponseStatus = a});
 
-instance NFData DeleteDeploymentGroupResponse
+instance NFData DeleteDeploymentGroupResponse where
diff --git a/gen/Network/AWS/CodeDeploy/DeregisterOnPremisesInstance.hs b/gen/Network/AWS/CodeDeploy/DeregisterOnPremisesInstance.hs
--- a/gen/Network/AWS/CodeDeploy/DeregisterOnPremisesInstance.hs
+++ b/gen/Network/AWS/CodeDeploy/DeregisterOnPremisesInstance.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.DeregisterOnPremisesInstance
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -34,22 +34,23 @@
     , DeregisterOnPremisesInstanceResponse
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a deregister on-premises instance operation.
+-- | Represents the input of a DeregisterOnPremisesInstance operation.
 --
 --
 --
 -- /See:/ 'deregisterOnPremisesInstance' smart constructor.
 newtype DeregisterOnPremisesInstance = DeregisterOnPremisesInstance'
-    { _dopiInstanceName :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dopiInstanceName :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeregisterOnPremisesInstance' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -59,10 +60,9 @@
     :: Text -- ^ 'dopiInstanceName'
     -> DeregisterOnPremisesInstance
 deregisterOnPremisesInstance pInstanceName_ =
-    DeregisterOnPremisesInstance'
-    { _dopiInstanceName = pInstanceName_
-    }
+  DeregisterOnPremisesInstance' {_dopiInstanceName = pInstanceName_}
 
+
 -- | The name of the on-premises instance to deregister.
 dopiInstanceName :: Lens' DeregisterOnPremisesInstance Text
 dopiInstanceName = lens _dopiInstanceName (\ s a -> s{_dopiInstanceName = a});
@@ -75,9 +75,9 @@
         response
           = receiveNull DeregisterOnPremisesInstanceResponse'
 
-instance Hashable DeregisterOnPremisesInstance
+instance Hashable DeregisterOnPremisesInstance where
 
-instance NFData DeregisterOnPremisesInstance
+instance NFData DeregisterOnPremisesInstance where
 
 instance ToHeaders DeregisterOnPremisesInstance where
         toHeaders
@@ -103,13 +103,16 @@
 
 -- | /See:/ 'deregisterOnPremisesInstanceResponse' smart constructor.
 data DeregisterOnPremisesInstanceResponse =
-    DeregisterOnPremisesInstanceResponse'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  DeregisterOnPremisesInstanceResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeregisterOnPremisesInstanceResponse' with the minimum fields required to make a request.
 --
 deregisterOnPremisesInstanceResponse
     :: DeregisterOnPremisesInstanceResponse
 deregisterOnPremisesInstanceResponse = DeregisterOnPremisesInstanceResponse'
 
+
 instance NFData DeregisterOnPremisesInstanceResponse
+         where
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
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.GetApplication
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -37,22 +37,23 @@
     , garsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a get application operation.
+-- | Represents the input of a GetApplication operation.
 --
 --
 --
 -- /See:/ 'getApplication' smart constructor.
 newtype GetApplication = GetApplication'
-    { _gaApplicationName :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gaApplicationName :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetApplication' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -62,10 +63,9 @@
     :: Text -- ^ 'gaApplicationName'
     -> GetApplication
 getApplication pApplicationName_ =
-    GetApplication'
-    { _gaApplicationName = pApplicationName_
-    }
+  GetApplication' {_gaApplicationName = pApplicationName_}
 
+
 -- | The name of an AWS CodeDeploy application associated with the applicable IAM user or AWS account.
 gaApplicationName :: Lens' GetApplication Text
 gaApplicationName = lens _gaApplicationName (\ s a -> s{_gaApplicationName = a});
@@ -79,9 +79,9 @@
                  GetApplicationResponse' <$>
                    (x .?> "application") <*> (pure (fromEnum s)))
 
-instance Hashable GetApplication
+instance Hashable GetApplication where
 
-instance NFData GetApplication
+instance NFData GetApplication where
 
 instance ToHeaders GetApplication where
         toHeaders
@@ -104,16 +104,17 @@
 instance ToQuery GetApplication where
         toQuery = const mempty
 
--- | Represents the output of a get application operation.
+-- | Represents the output of a GetApplication operation.
 --
 --
 --
 -- /See:/ 'getApplicationResponse' smart constructor.
 data GetApplicationResponse = GetApplicationResponse'
-    { _garsApplication    :: !(Maybe ApplicationInfo)
-    , _garsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _garsApplication    :: !(Maybe ApplicationInfo)
+  , _garsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetApplicationResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -125,11 +126,10 @@
     :: Int -- ^ 'garsResponseStatus'
     -> GetApplicationResponse
 getApplicationResponse pResponseStatus_ =
-    GetApplicationResponse'
-    { _garsApplication = Nothing
-    , _garsResponseStatus = pResponseStatus_
-    }
+  GetApplicationResponse'
+  {_garsApplication = Nothing, _garsResponseStatus = pResponseStatus_}
 
+
 -- | Information about the application.
 garsApplication :: Lens' GetApplicationResponse (Maybe ApplicationInfo)
 garsApplication = lens _garsApplication (\ s a -> s{_garsApplication = a});
@@ -138,4 +138,4 @@
 garsResponseStatus :: Lens' GetApplicationResponse Int
 garsResponseStatus = lens _garsResponseStatus (\ s a -> s{_garsResponseStatus = a});
 
-instance NFData GetApplicationResponse
+instance NFData GetApplicationResponse where
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
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.GetApplicationRevision
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -40,23 +40,24 @@
     , garrsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a get application revision operation.
+-- | Represents the input of a GetApplicationRevision operation.
 --
 --
 --
 -- /See:/ 'getApplicationRevision' smart constructor.
 data GetApplicationRevision = GetApplicationRevision'
-    { _garApplicationName :: !Text
-    , _garRevision        :: !RevisionLocation
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _garApplicationName :: !Text
+  , _garRevision        :: !RevisionLocation
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetApplicationRevision' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -69,11 +70,10 @@
     -> RevisionLocation -- ^ 'garRevision'
     -> GetApplicationRevision
 getApplicationRevision pApplicationName_ pRevision_ =
-    GetApplicationRevision'
-    { _garApplicationName = pApplicationName_
-    , _garRevision = pRevision_
-    }
+  GetApplicationRevision'
+  {_garApplicationName = pApplicationName_, _garRevision = pRevision_}
 
+
 -- | The name of the application that corresponds to the revision.
 garApplicationName :: Lens' GetApplicationRevision Text
 garApplicationName = lens _garApplicationName (\ s a -> s{_garApplicationName = a});
@@ -94,9 +94,9 @@
                      <*> (x .?> "revision")
                      <*> (pure (fromEnum s)))
 
-instance Hashable GetApplicationRevision
+instance Hashable GetApplicationRevision where
 
-instance NFData GetApplicationRevision
+instance NFData GetApplicationRevision where
 
 instance ToHeaders GetApplicationRevision where
         toHeaders
@@ -121,18 +121,19 @@
 instance ToQuery GetApplicationRevision where
         toQuery = const mempty
 
--- | Represents the output of a get application revision operation.
+-- | Represents the output of a GetApplicationRevision operation.
 --
 --
 --
 -- /See:/ 'getApplicationRevisionResponse' smart constructor.
 data GetApplicationRevisionResponse = GetApplicationRevisionResponse'
-    { _garrsApplicationName :: !(Maybe Text)
-    , _garrsRevisionInfo    :: !(Maybe GenericRevisionInfo)
-    , _garrsRevision        :: !(Maybe RevisionLocation)
-    , _garrsResponseStatus  :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _garrsApplicationName :: !(Maybe Text)
+  , _garrsRevisionInfo    :: !(Maybe GenericRevisionInfo)
+  , _garrsRevision        :: !(Maybe RevisionLocation)
+  , _garrsResponseStatus  :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetApplicationRevisionResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -148,13 +149,14 @@
     :: Int -- ^ 'garrsResponseStatus'
     -> GetApplicationRevisionResponse
 getApplicationRevisionResponse pResponseStatus_ =
-    GetApplicationRevisionResponse'
-    { _garrsApplicationName = Nothing
-    , _garrsRevisionInfo = Nothing
-    , _garrsRevision = Nothing
-    , _garrsResponseStatus = pResponseStatus_
-    }
+  GetApplicationRevisionResponse'
+  { _garrsApplicationName = Nothing
+  , _garrsRevisionInfo = Nothing
+  , _garrsRevision = Nothing
+  , _garrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | The name of the application that corresponds to the revision.
 garrsApplicationName :: Lens' GetApplicationRevisionResponse (Maybe Text)
 garrsApplicationName = lens _garrsApplicationName (\ s a -> s{_garrsApplicationName = a});
@@ -171,4 +173,4 @@
 garrsResponseStatus :: Lens' GetApplicationRevisionResponse Int
 garrsResponseStatus = lens _garrsResponseStatus (\ s a -> s{_garrsResponseStatus = a});
 
-instance NFData GetApplicationRevisionResponse
+instance NFData GetApplicationRevisionResponse where
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
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.GetDeployment
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -37,22 +37,23 @@
     , gdrsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a get deployment operation.
+-- | Represents the input of a GetDeployment operation.
 --
 --
 --
 -- /See:/ 'getDeployment' smart constructor.
 newtype GetDeployment = GetDeployment'
-    { _gdDeploymentId :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gdDeploymentId :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetDeployment' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -61,11 +62,9 @@
 getDeployment
     :: Text -- ^ 'gdDeploymentId'
     -> GetDeployment
-getDeployment pDeploymentId_ =
-    GetDeployment'
-    { _gdDeploymentId = pDeploymentId_
-    }
+getDeployment pDeploymentId_ = GetDeployment' {_gdDeploymentId = pDeploymentId_}
 
+
 -- | A deployment ID associated with the applicable IAM user or AWS account.
 gdDeploymentId :: Lens' GetDeployment Text
 gdDeploymentId = lens _gdDeploymentId (\ s a -> s{_gdDeploymentId = a});
@@ -79,9 +78,9 @@
                  GetDeploymentResponse' <$>
                    (x .?> "deploymentInfo") <*> (pure (fromEnum s)))
 
-instance Hashable GetDeployment
+instance Hashable GetDeployment where
 
-instance NFData GetDeployment
+instance NFData GetDeployment where
 
 instance ToHeaders GetDeployment where
         toHeaders
@@ -104,16 +103,17 @@
 instance ToQuery GetDeployment where
         toQuery = const mempty
 
--- | Represents the output of a get deployment operation.
+-- | Represents the output of a GetDeployment operation.
 --
 --
 --
 -- /See:/ 'getDeploymentResponse' smart constructor.
 data GetDeploymentResponse = GetDeploymentResponse'
-    { _gdrsDeploymentInfo :: !(Maybe DeploymentInfo)
-    , _gdrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gdrsDeploymentInfo :: !(Maybe DeploymentInfo)
+  , _gdrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetDeploymentResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -125,11 +125,10 @@
     :: Int -- ^ 'gdrsResponseStatus'
     -> GetDeploymentResponse
 getDeploymentResponse pResponseStatus_ =
-    GetDeploymentResponse'
-    { _gdrsDeploymentInfo = Nothing
-    , _gdrsResponseStatus = pResponseStatus_
-    }
+  GetDeploymentResponse'
+  {_gdrsDeploymentInfo = Nothing, _gdrsResponseStatus = pResponseStatus_}
 
+
 -- | Information about the deployment.
 gdrsDeploymentInfo :: Lens' GetDeploymentResponse (Maybe DeploymentInfo)
 gdrsDeploymentInfo = lens _gdrsDeploymentInfo (\ s a -> s{_gdrsDeploymentInfo = a});
@@ -138,4 +137,4 @@
 gdrsResponseStatus :: Lens' GetDeploymentResponse Int
 gdrsResponseStatus = lens _gdrsResponseStatus (\ s a -> s{_gdrsResponseStatus = a});
 
-instance NFData GetDeploymentResponse
+instance NFData GetDeploymentResponse where
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
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.GetDeploymentConfig
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -37,22 +37,23 @@
     , gdcrsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a get deployment configuration operation.
+-- | Represents the input of a GetDeploymentConfig operation.
 --
 --
 --
 -- /See:/ 'getDeploymentConfig' smart constructor.
 newtype GetDeploymentConfig = GetDeploymentConfig'
-    { _gdcDeploymentConfigName :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gdcDeploymentConfigName :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetDeploymentConfig' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -62,10 +63,9 @@
     :: Text -- ^ 'gdcDeploymentConfigName'
     -> GetDeploymentConfig
 getDeploymentConfig pDeploymentConfigName_ =
-    GetDeploymentConfig'
-    { _gdcDeploymentConfigName = pDeploymentConfigName_
-    }
+  GetDeploymentConfig' {_gdcDeploymentConfigName = pDeploymentConfigName_}
 
+
 -- | The name of a deployment configuration associated with the applicable IAM user or AWS account.
 gdcDeploymentConfigName :: Lens' GetDeploymentConfig Text
 gdcDeploymentConfigName = lens _gdcDeploymentConfigName (\ s a -> s{_gdcDeploymentConfigName = a});
@@ -81,9 +81,9 @@
                    (x .?> "deploymentConfigInfo") <*>
                      (pure (fromEnum s)))
 
-instance Hashable GetDeploymentConfig
+instance Hashable GetDeploymentConfig where
 
-instance NFData GetDeploymentConfig
+instance NFData GetDeploymentConfig where
 
 instance ToHeaders GetDeploymentConfig where
         toHeaders
@@ -109,16 +109,17 @@
 instance ToQuery GetDeploymentConfig where
         toQuery = const mempty
 
--- | Represents the output of a get deployment configuration operation.
+-- | Represents the output of a GetDeploymentConfig operation.
 --
 --
 --
 -- /See:/ 'getDeploymentConfigResponse' smart constructor.
 data GetDeploymentConfigResponse = GetDeploymentConfigResponse'
-    { _gdcrsDeploymentConfigInfo :: !(Maybe DeploymentConfigInfo)
-    , _gdcrsResponseStatus       :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gdcrsDeploymentConfigInfo :: !(Maybe DeploymentConfigInfo)
+  , _gdcrsResponseStatus       :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetDeploymentConfigResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -130,11 +131,12 @@
     :: Int -- ^ 'gdcrsResponseStatus'
     -> GetDeploymentConfigResponse
 getDeploymentConfigResponse pResponseStatus_ =
-    GetDeploymentConfigResponse'
-    { _gdcrsDeploymentConfigInfo = Nothing
-    , _gdcrsResponseStatus = pResponseStatus_
-    }
+  GetDeploymentConfigResponse'
+  { _gdcrsDeploymentConfigInfo = Nothing
+  , _gdcrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Information about the deployment configuration.
 gdcrsDeploymentConfigInfo :: Lens' GetDeploymentConfigResponse (Maybe DeploymentConfigInfo)
 gdcrsDeploymentConfigInfo = lens _gdcrsDeploymentConfigInfo (\ s a -> s{_gdcrsDeploymentConfigInfo = a});
@@ -143,4 +145,4 @@
 gdcrsResponseStatus :: Lens' GetDeploymentConfigResponse Int
 gdcrsResponseStatus = lens _gdcrsResponseStatus (\ s a -> s{_gdcrsResponseStatus = a});
 
-instance NFData GetDeploymentConfigResponse
+instance NFData GetDeploymentConfigResponse where
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
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.GetDeploymentGroup
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -38,23 +38,24 @@
     , gdgrsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a get deployment group operation.
+-- | Represents the input of a GetDeploymentGroup operation.
 --
 --
 --
 -- /See:/ 'getDeploymentGroup' smart constructor.
 data GetDeploymentGroup = GetDeploymentGroup'
-    { _gdgApplicationName     :: !Text
-    , _gdgDeploymentGroupName :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gdgApplicationName     :: !Text
+  , _gdgDeploymentGroupName :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetDeploymentGroup' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -67,11 +68,12 @@
     -> Text -- ^ 'gdgDeploymentGroupName'
     -> GetDeploymentGroup
 getDeploymentGroup pApplicationName_ pDeploymentGroupName_ =
-    GetDeploymentGroup'
-    { _gdgApplicationName = pApplicationName_
-    , _gdgDeploymentGroupName = pDeploymentGroupName_
-    }
+  GetDeploymentGroup'
+  { _gdgApplicationName = pApplicationName_
+  , _gdgDeploymentGroupName = pDeploymentGroupName_
+  }
 
+
 -- | The name of an AWS CodeDeploy application associated with the applicable IAM user or AWS account.
 gdgApplicationName :: Lens' GetDeploymentGroup Text
 gdgApplicationName = lens _gdgApplicationName (\ s a -> s{_gdgApplicationName = a});
@@ -91,9 +93,9 @@
                    (x .?> "deploymentGroupInfo") <*>
                      (pure (fromEnum s)))
 
-instance Hashable GetDeploymentGroup
+instance Hashable GetDeploymentGroup where
 
-instance NFData GetDeploymentGroup
+instance NFData GetDeploymentGroup where
 
 instance ToHeaders GetDeploymentGroup where
         toHeaders
@@ -119,16 +121,17 @@
 instance ToQuery GetDeploymentGroup where
         toQuery = const mempty
 
--- | Represents the output of a get deployment group operation.
+-- | Represents the output of a GetDeploymentGroup operation.
 --
 --
 --
 -- /See:/ 'getDeploymentGroupResponse' smart constructor.
 data GetDeploymentGroupResponse = GetDeploymentGroupResponse'
-    { _gdgrsDeploymentGroupInfo :: !(Maybe DeploymentGroupInfo)
-    , _gdgrsResponseStatus      :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gdgrsDeploymentGroupInfo :: !(Maybe DeploymentGroupInfo)
+  , _gdgrsResponseStatus      :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetDeploymentGroupResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -140,11 +143,10 @@
     :: Int -- ^ 'gdgrsResponseStatus'
     -> GetDeploymentGroupResponse
 getDeploymentGroupResponse pResponseStatus_ =
-    GetDeploymentGroupResponse'
-    { _gdgrsDeploymentGroupInfo = Nothing
-    , _gdgrsResponseStatus = pResponseStatus_
-    }
+  GetDeploymentGroupResponse'
+  {_gdgrsDeploymentGroupInfo = Nothing, _gdgrsResponseStatus = pResponseStatus_}
 
+
 -- | Information about the deployment group.
 gdgrsDeploymentGroupInfo :: Lens' GetDeploymentGroupResponse (Maybe DeploymentGroupInfo)
 gdgrsDeploymentGroupInfo = lens _gdgrsDeploymentGroupInfo (\ s a -> s{_gdgrsDeploymentGroupInfo = a});
@@ -153,4 +155,4 @@
 gdgrsResponseStatus :: Lens' GetDeploymentGroupResponse Int
 gdgrsResponseStatus = lens _gdgrsResponseStatus (\ s a -> s{_gdgrsResponseStatus = a});
 
-instance NFData GetDeploymentGroupResponse
+instance NFData GetDeploymentGroupResponse where
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
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.GetDeploymentInstance
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -38,23 +38,24 @@
     , gdirsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a get deployment instance operation.
+-- | Represents the input of a GetDeploymentInstance operation.
 --
 --
 --
 -- /See:/ 'getDeploymentInstance' smart constructor.
 data GetDeploymentInstance = GetDeploymentInstance'
-    { _gdiDeploymentId :: !Text
-    , _gdiInstanceId   :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gdiDeploymentId :: !Text
+  , _gdiInstanceId   :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetDeploymentInstance' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -67,11 +68,10 @@
     -> Text -- ^ 'gdiInstanceId'
     -> GetDeploymentInstance
 getDeploymentInstance pDeploymentId_ pInstanceId_ =
-    GetDeploymentInstance'
-    { _gdiDeploymentId = pDeploymentId_
-    , _gdiInstanceId = pInstanceId_
-    }
+  GetDeploymentInstance'
+  {_gdiDeploymentId = pDeploymentId_, _gdiInstanceId = pInstanceId_}
 
+
 -- | The unique ID of a deployment.
 gdiDeploymentId :: Lens' GetDeploymentInstance Text
 gdiDeploymentId = lens _gdiDeploymentId (\ s a -> s{_gdiDeploymentId = a});
@@ -90,9 +90,9 @@
                  GetDeploymentInstanceResponse' <$>
                    (x .?> "instanceSummary") <*> (pure (fromEnum s)))
 
-instance Hashable GetDeploymentInstance
+instance Hashable GetDeploymentInstance where
 
-instance NFData GetDeploymentInstance
+instance NFData GetDeploymentInstance where
 
 instance ToHeaders GetDeploymentInstance where
         toHeaders
@@ -117,16 +117,17 @@
 instance ToQuery GetDeploymentInstance where
         toQuery = const mempty
 
--- | Represents the output of a get deployment instance operation.
+-- | Represents the output of a GetDeploymentInstance operation.
 --
 --
 --
 -- /See:/ 'getDeploymentInstanceResponse' smart constructor.
 data GetDeploymentInstanceResponse = GetDeploymentInstanceResponse'
-    { _gdirsInstanceSummary :: !(Maybe InstanceSummary)
-    , _gdirsResponseStatus  :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gdirsInstanceSummary :: !(Maybe InstanceSummary)
+  , _gdirsResponseStatus  :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetDeploymentInstanceResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -138,11 +139,10 @@
     :: Int -- ^ 'gdirsResponseStatus'
     -> GetDeploymentInstanceResponse
 getDeploymentInstanceResponse pResponseStatus_ =
-    GetDeploymentInstanceResponse'
-    { _gdirsInstanceSummary = Nothing
-    , _gdirsResponseStatus = pResponseStatus_
-    }
+  GetDeploymentInstanceResponse'
+  {_gdirsInstanceSummary = Nothing, _gdirsResponseStatus = pResponseStatus_}
 
+
 -- | Information about the instance.
 gdirsInstanceSummary :: Lens' GetDeploymentInstanceResponse (Maybe InstanceSummary)
 gdirsInstanceSummary = lens _gdirsInstanceSummary (\ s a -> s{_gdirsInstanceSummary = a});
@@ -151,4 +151,4 @@
 gdirsResponseStatus :: Lens' GetDeploymentInstanceResponse Int
 gdirsResponseStatus = lens _gdirsResponseStatus (\ s a -> s{_gdirsResponseStatus = a});
 
-instance NFData GetDeploymentInstanceResponse
+instance NFData GetDeploymentInstanceResponse where
diff --git a/gen/Network/AWS/CodeDeploy/GetOnPremisesInstance.hs b/gen/Network/AWS/CodeDeploy/GetOnPremisesInstance.hs
--- a/gen/Network/AWS/CodeDeploy/GetOnPremisesInstance.hs
+++ b/gen/Network/AWS/CodeDeploy/GetOnPremisesInstance.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.GetOnPremisesInstance
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -37,22 +37,23 @@
     , gopirsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a get on-premises instance operation.
+-- | Represents the input of a GetOnPremisesInstance operation.
 --
 --
 --
 -- /See:/ 'getOnPremisesInstance' smart constructor.
 newtype GetOnPremisesInstance = GetOnPremisesInstance'
-    { _gopiInstanceName :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gopiInstanceName :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetOnPremisesInstance' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -62,10 +63,9 @@
     :: Text -- ^ 'gopiInstanceName'
     -> GetOnPremisesInstance
 getOnPremisesInstance pInstanceName_ =
-    GetOnPremisesInstance'
-    { _gopiInstanceName = pInstanceName_
-    }
+  GetOnPremisesInstance' {_gopiInstanceName = pInstanceName_}
 
+
 -- | The name of the on-premises instance about which to get information.
 gopiInstanceName :: Lens' GetOnPremisesInstance Text
 gopiInstanceName = lens _gopiInstanceName (\ s a -> s{_gopiInstanceName = a});
@@ -80,9 +80,9 @@
                  GetOnPremisesInstanceResponse' <$>
                    (x .?> "instanceInfo") <*> (pure (fromEnum s)))
 
-instance Hashable GetOnPremisesInstance
+instance Hashable GetOnPremisesInstance where
 
-instance NFData GetOnPremisesInstance
+instance NFData GetOnPremisesInstance where
 
 instance ToHeaders GetOnPremisesInstance where
         toHeaders
@@ -106,16 +106,17 @@
 instance ToQuery GetOnPremisesInstance where
         toQuery = const mempty
 
--- | Represents the output of a get on-premises instance operation.
+-- | Represents the output of a GetOnPremisesInstance operation.
 --
 --
 --
 -- /See:/ 'getOnPremisesInstanceResponse' smart constructor.
 data GetOnPremisesInstanceResponse = GetOnPremisesInstanceResponse'
-    { _gopirsInstanceInfo   :: !(Maybe InstanceInfo)
-    , _gopirsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gopirsInstanceInfo   :: !(Maybe InstanceInfo)
+  , _gopirsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetOnPremisesInstanceResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -127,11 +128,10 @@
     :: Int -- ^ 'gopirsResponseStatus'
     -> GetOnPremisesInstanceResponse
 getOnPremisesInstanceResponse pResponseStatus_ =
-    GetOnPremisesInstanceResponse'
-    { _gopirsInstanceInfo = Nothing
-    , _gopirsResponseStatus = pResponseStatus_
-    }
+  GetOnPremisesInstanceResponse'
+  {_gopirsInstanceInfo = Nothing, _gopirsResponseStatus = pResponseStatus_}
 
+
 -- | Information about the on-premises instance.
 gopirsInstanceInfo :: Lens' GetOnPremisesInstanceResponse (Maybe InstanceInfo)
 gopirsInstanceInfo = lens _gopirsInstanceInfo (\ s a -> s{_gopirsInstanceInfo = a});
@@ -140,4 +140,4 @@
 gopirsResponseStatus :: Lens' GetOnPremisesInstanceResponse Int
 gopirsResponseStatus = lens _gopirsResponseStatus (\ s a -> s{_gopirsResponseStatus = a});
 
-instance NFData GetOnPremisesInstanceResponse
+instance NFData GetOnPremisesInstanceResponse where
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
@@ -12,15 +12,17 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.ListApplicationRevisions
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Lists information about revisions for an application.
 --
 --
+--
+-- This operation returns paginated results.
 module Network.AWS.CodeDeploy.ListApplicationRevisions
     (
     -- * Creating a Request
@@ -44,28 +46,30 @@
     , larrsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a list application revisions operation.
+-- | Represents the input of a ListApplicationRevisions operation.
 --
 --
 --
 -- /See:/ 'listApplicationRevisions' smart constructor.
 data ListApplicationRevisions = ListApplicationRevisions'
-    { _larS3KeyPrefix     :: !(Maybe Text)
-    , _larDeployed        :: !(Maybe ListStateFilterAction)
-    , _larSortOrder       :: !(Maybe SortOrder)
-    , _larNextToken       :: !(Maybe Text)
-    , _larS3Bucket        :: !(Maybe Text)
-    , _larSortBy          :: !(Maybe ApplicationRevisionSortBy)
-    , _larApplicationName :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _larS3KeyPrefix     :: !(Maybe Text)
+  , _larDeployed        :: !(Maybe ListStateFilterAction)
+  , _larSortOrder       :: !(Maybe SortOrder)
+  , _larNextToken       :: !(Maybe Text)
+  , _larS3Bucket        :: !(Maybe Text)
+  , _larSortBy          :: !(Maybe ApplicationRevisionSortBy)
+  , _larApplicationName :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListApplicationRevisions' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -87,16 +91,17 @@
     :: Text -- ^ 'larApplicationName'
     -> ListApplicationRevisions
 listApplicationRevisions pApplicationName_ =
-    ListApplicationRevisions'
-    { _larS3KeyPrefix = Nothing
-    , _larDeployed = Nothing
-    , _larSortOrder = Nothing
-    , _larNextToken = Nothing
-    , _larS3Bucket = Nothing
-    , _larSortBy = Nothing
-    , _larApplicationName = pApplicationName_
-    }
+  ListApplicationRevisions'
+  { _larS3KeyPrefix = Nothing
+  , _larDeployed = Nothing
+  , _larSortOrder = Nothing
+  , _larNextToken = Nothing
+  , _larS3Bucket = Nothing
+  , _larSortBy = Nothing
+  , _larApplicationName = pApplicationName_
+  }
 
+
 -- | A key prefix for the set of Amazon S3 objects to limit the search for revisions.
 larS3KeyPrefix :: Lens' ListApplicationRevisions (Maybe Text)
 larS3KeyPrefix = lens _larS3KeyPrefix (\ s a -> s{_larS3KeyPrefix = a});
@@ -125,6 +130,13 @@
 larApplicationName :: Lens' ListApplicationRevisions Text
 larApplicationName = lens _larApplicationName (\ s a -> s{_larApplicationName = a});
 
+instance AWSPager ListApplicationRevisions where
+        page rq rs
+          | stop (rs ^. larrsNextToken) = Nothing
+          | stop (rs ^. larrsRevisions) = Nothing
+          | otherwise =
+            Just $ rq & larNextToken .~ rs ^. larrsNextToken
+
 instance AWSRequest ListApplicationRevisions where
         type Rs ListApplicationRevisions =
              ListApplicationRevisionsResponse
@@ -137,9 +149,9 @@
                      (x .?> "revisions" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
-instance Hashable ListApplicationRevisions
+instance Hashable ListApplicationRevisions where
 
-instance NFData ListApplicationRevisions
+instance NFData ListApplicationRevisions where
 
 instance ToHeaders ListApplicationRevisions where
         toHeaders
@@ -169,17 +181,18 @@
 instance ToQuery ListApplicationRevisions where
         toQuery = const mempty
 
--- | Represents the output of a list application revisions operation.
+-- | Represents the output of a ListApplicationRevisions operation.
 --
 --
 --
 -- /See:/ 'listApplicationRevisionsResponse' smart constructor.
 data ListApplicationRevisionsResponse = ListApplicationRevisionsResponse'
-    { _larrsNextToken      :: !(Maybe Text)
-    , _larrsRevisions      :: !(Maybe [RevisionLocation])
-    , _larrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _larrsNextToken      :: !(Maybe Text)
+  , _larrsRevisions      :: !(Maybe [RevisionLocation])
+  , _larrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListApplicationRevisionsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -193,12 +206,13 @@
     :: Int -- ^ 'larrsResponseStatus'
     -> ListApplicationRevisionsResponse
 listApplicationRevisionsResponse pResponseStatus_ =
-    ListApplicationRevisionsResponse'
-    { _larrsNextToken = Nothing
-    , _larrsRevisions = Nothing
-    , _larrsResponseStatus = pResponseStatus_
-    }
+  ListApplicationRevisionsResponse'
+  { _larrsNextToken = Nothing
+  , _larrsRevisions = Nothing
+  , _larrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | If a large amount of information is returned, an identifier will also be returned. It can be used in a subsequent list application revisions call to return the next set of application revisions in the list.
 larrsNextToken :: Lens' ListApplicationRevisionsResponse (Maybe Text)
 larrsNextToken = lens _larrsNextToken (\ s a -> s{_larrsNextToken = a});
@@ -212,3 +226,4 @@
 larrsResponseStatus = lens _larrsResponseStatus (\ s a -> s{_larrsResponseStatus = a});
 
 instance NFData ListApplicationRevisionsResponse
+         where
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
@@ -12,15 +12,17 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.ListApplications
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Lists the applications registered with the applicable IAM user or AWS account.
 --
 --
+--
+-- This operation returns paginated results.
 module Network.AWS.CodeDeploy.ListApplications
     (
     -- * Creating a Request
@@ -38,22 +40,24 @@
     , larsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a list applications operation.
+-- | Represents the input of a ListApplications operation.
 --
 --
 --
 -- /See:/ 'listApplications' smart constructor.
 newtype ListApplications = ListApplications'
-    { _laNextToken :: Maybe Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _laNextToken :: Maybe Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListApplications' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -61,15 +65,20 @@
 -- * 'laNextToken' - An identifier returned from the previous list applications call. It can be used to return the next set of applications in the list.
 listApplications
     :: ListApplications
-listApplications =
-    ListApplications'
-    { _laNextToken = Nothing
-    }
+listApplications = ListApplications' {_laNextToken = Nothing}
 
+
 -- | An identifier returned from the previous list applications call. It can be used to return the next set of applications in the list.
 laNextToken :: Lens' ListApplications (Maybe Text)
 laNextToken = lens _laNextToken (\ s a -> s{_laNextToken = a});
 
+instance AWSPager ListApplications where
+        page rq rs
+          | stop (rs ^. larsNextToken) = Nothing
+          | stop (rs ^. larsApplications) = Nothing
+          | otherwise =
+            Just $ rq & laNextToken .~ rs ^. larsNextToken
+
 instance AWSRequest ListApplications where
         type Rs ListApplications = ListApplicationsResponse
         request = postJSON codeDeploy
@@ -81,9 +90,9 @@
                      (x .?> "applications" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
-instance Hashable ListApplications
+instance Hashable ListApplications where
 
-instance NFData ListApplications
+instance NFData ListApplications where
 
 instance ToHeaders ListApplications where
         toHeaders
@@ -106,17 +115,18 @@
 instance ToQuery ListApplications where
         toQuery = const mempty
 
--- | Represents the output of a list applications operation.
+-- | Represents the output of a ListApplications operation.
 --
 --
 --
 -- /See:/ 'listApplicationsResponse' smart constructor.
 data ListApplicationsResponse = ListApplicationsResponse'
-    { _larsNextToken      :: !(Maybe Text)
-    , _larsApplications   :: !(Maybe [Text])
-    , _larsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _larsNextToken      :: !(Maybe Text)
+  , _larsApplications   :: !(Maybe [Text])
+  , _larsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListApplicationsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -130,12 +140,13 @@
     :: Int -- ^ 'larsResponseStatus'
     -> ListApplicationsResponse
 listApplicationsResponse pResponseStatus_ =
-    ListApplicationsResponse'
-    { _larsNextToken = Nothing
-    , _larsApplications = Nothing
-    , _larsResponseStatus = pResponseStatus_
-    }
+  ListApplicationsResponse'
+  { _larsNextToken = Nothing
+  , _larsApplications = Nothing
+  , _larsResponseStatus = pResponseStatus_
+  }
 
+
 -- | If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent list applications call to return the next set of applications, will also be returned. in the list.
 larsNextToken :: Lens' ListApplicationsResponse (Maybe Text)
 larsNextToken = lens _larsNextToken (\ s a -> s{_larsNextToken = a});
@@ -148,4 +159,4 @@
 larsResponseStatus :: Lens' ListApplicationsResponse Int
 larsResponseStatus = lens _larsResponseStatus (\ s a -> s{_larsResponseStatus = a});
 
-instance NFData ListApplicationsResponse
+instance NFData ListApplicationsResponse where
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
@@ -12,15 +12,17 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.ListDeploymentConfigs
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Lists the deployment configurations with the applicable IAM user or AWS account.
 --
 --
+--
+-- This operation returns paginated results.
 module Network.AWS.CodeDeploy.ListDeploymentConfigs
     (
     -- * Creating a Request
@@ -38,22 +40,24 @@
     , ldcrsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a list deployment configurations operation.
+-- | Represents the input of a ListDeploymentConfigs operation.
 --
 --
 --
 -- /See:/ 'listDeploymentConfigs' smart constructor.
 newtype ListDeploymentConfigs = ListDeploymentConfigs'
-    { _ldcNextToken :: Maybe Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ldcNextToken :: Maybe Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListDeploymentConfigs' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -61,15 +65,20 @@
 -- * 'ldcNextToken' - An identifier returned from the previous list deployment configurations call. It can be used to return the next set of deployment configurations in the list.
 listDeploymentConfigs
     :: ListDeploymentConfigs
-listDeploymentConfigs =
-    ListDeploymentConfigs'
-    { _ldcNextToken = Nothing
-    }
+listDeploymentConfigs = ListDeploymentConfigs' {_ldcNextToken = Nothing}
 
+
 -- | An identifier returned from the previous list deployment configurations call. It can be used to return the next set of deployment configurations in the list.
 ldcNextToken :: Lens' ListDeploymentConfigs (Maybe Text)
 ldcNextToken = lens _ldcNextToken (\ s a -> s{_ldcNextToken = a});
 
+instance AWSPager ListDeploymentConfigs where
+        page rq rs
+          | stop (rs ^. ldcrsNextToken) = Nothing
+          | stop (rs ^. ldcrsDeploymentConfigsList) = Nothing
+          | otherwise =
+            Just $ rq & ldcNextToken .~ rs ^. ldcrsNextToken
+
 instance AWSRequest ListDeploymentConfigs where
         type Rs ListDeploymentConfigs =
              ListDeploymentConfigsResponse
@@ -82,9 +91,9 @@
                      (x .?> "deploymentConfigsList" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
-instance Hashable ListDeploymentConfigs
+instance Hashable ListDeploymentConfigs where
 
-instance NFData ListDeploymentConfigs
+instance NFData ListDeploymentConfigs where
 
 instance ToHeaders ListDeploymentConfigs where
         toHeaders
@@ -107,17 +116,18 @@
 instance ToQuery ListDeploymentConfigs where
         toQuery = const mempty
 
--- | Represents the output of a list deployment configurations operation.
+-- | Represents the output of a ListDeploymentConfigs operation.
 --
 --
 --
 -- /See:/ 'listDeploymentConfigsResponse' smart constructor.
 data ListDeploymentConfigsResponse = ListDeploymentConfigsResponse'
-    { _ldcrsNextToken             :: !(Maybe Text)
-    , _ldcrsDeploymentConfigsList :: !(Maybe [Text])
-    , _ldcrsResponseStatus        :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ldcrsNextToken             :: !(Maybe Text)
+  , _ldcrsDeploymentConfigsList :: !(Maybe [Text])
+  , _ldcrsResponseStatus        :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListDeploymentConfigsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -131,12 +141,13 @@
     :: Int -- ^ 'ldcrsResponseStatus'
     -> ListDeploymentConfigsResponse
 listDeploymentConfigsResponse pResponseStatus_ =
-    ListDeploymentConfigsResponse'
-    { _ldcrsNextToken = Nothing
-    , _ldcrsDeploymentConfigsList = Nothing
-    , _ldcrsResponseStatus = pResponseStatus_
-    }
+  ListDeploymentConfigsResponse'
+  { _ldcrsNextToken = Nothing
+  , _ldcrsDeploymentConfigsList = Nothing
+  , _ldcrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent list deployment configurations call to return the next set of deployment configurations in the list.
 ldcrsNextToken :: Lens' ListDeploymentConfigsResponse (Maybe Text)
 ldcrsNextToken = lens _ldcrsNextToken (\ s a -> s{_ldcrsNextToken = a});
@@ -149,4 +160,4 @@
 ldcrsResponseStatus :: Lens' ListDeploymentConfigsResponse Int
 ldcrsResponseStatus = lens _ldcrsResponseStatus (\ s a -> s{_ldcrsResponseStatus = a});
 
-instance NFData ListDeploymentConfigsResponse
+instance NFData ListDeploymentConfigsResponse where
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
@@ -12,15 +12,17 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.ListDeploymentGroups
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Lists the deployment groups for an application registered with the applicable IAM user or AWS account.
 --
 --
+--
+-- This operation returns paginated results.
 module Network.AWS.CodeDeploy.ListDeploymentGroups
     (
     -- * Creating a Request
@@ -40,23 +42,25 @@
     , ldgrsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a list deployment groups operation.
+-- | Represents the input of a ListDeploymentGroups operation.
 --
 --
 --
 -- /See:/ 'listDeploymentGroups' smart constructor.
 data ListDeploymentGroups = ListDeploymentGroups'
-    { _ldgNextToken       :: !(Maybe Text)
-    , _ldgApplicationName :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ldgNextToken       :: !(Maybe Text)
+  , _ldgApplicationName :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListDeploymentGroups' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -68,11 +72,10 @@
     :: Text -- ^ 'ldgApplicationName'
     -> ListDeploymentGroups
 listDeploymentGroups pApplicationName_ =
-    ListDeploymentGroups'
-    { _ldgNextToken = Nothing
-    , _ldgApplicationName = pApplicationName_
-    }
+  ListDeploymentGroups'
+  {_ldgNextToken = Nothing, _ldgApplicationName = pApplicationName_}
 
+
 -- | An identifier returned from the previous list deployment groups call. It can be used to return the next set of deployment groups in the list.
 ldgNextToken :: Lens' ListDeploymentGroups (Maybe Text)
 ldgNextToken = lens _ldgNextToken (\ s a -> s{_ldgNextToken = a});
@@ -81,6 +84,13 @@
 ldgApplicationName :: Lens' ListDeploymentGroups Text
 ldgApplicationName = lens _ldgApplicationName (\ s a -> s{_ldgApplicationName = a});
 
+instance AWSPager ListDeploymentGroups where
+        page rq rs
+          | stop (rs ^. ldgrsNextToken) = Nothing
+          | stop (rs ^. ldgrsDeploymentGroups) = Nothing
+          | otherwise =
+            Just $ rq & ldgNextToken .~ rs ^. ldgrsNextToken
+
 instance AWSRequest ListDeploymentGroups where
         type Rs ListDeploymentGroups =
              ListDeploymentGroupsResponse
@@ -93,9 +103,9 @@
                      (x .?> "deploymentGroups" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
-instance Hashable ListDeploymentGroups
+instance Hashable ListDeploymentGroups where
 
-instance NFData ListDeploymentGroups
+instance NFData ListDeploymentGroups where
 
 instance ToHeaders ListDeploymentGroups where
         toHeaders
@@ -120,18 +130,19 @@
 instance ToQuery ListDeploymentGroups where
         toQuery = const mempty
 
--- | Represents the output of a list deployment groups operation.
+-- | Represents the output of a ListDeploymentGroups operation.
 --
 --
 --
 -- /See:/ 'listDeploymentGroupsResponse' smart constructor.
 data ListDeploymentGroupsResponse = ListDeploymentGroupsResponse'
-    { _ldgrsNextToken        :: !(Maybe Text)
-    , _ldgrsApplicationName  :: !(Maybe Text)
-    , _ldgrsDeploymentGroups :: !(Maybe [Text])
-    , _ldgrsResponseStatus   :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ldgrsNextToken        :: !(Maybe Text)
+  , _ldgrsApplicationName  :: !(Maybe Text)
+  , _ldgrsDeploymentGroups :: !(Maybe [Text])
+  , _ldgrsResponseStatus   :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListDeploymentGroupsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -147,13 +158,14 @@
     :: Int -- ^ 'ldgrsResponseStatus'
     -> ListDeploymentGroupsResponse
 listDeploymentGroupsResponse pResponseStatus_ =
-    ListDeploymentGroupsResponse'
-    { _ldgrsNextToken = Nothing
-    , _ldgrsApplicationName = Nothing
-    , _ldgrsDeploymentGroups = Nothing
-    , _ldgrsResponseStatus = pResponseStatus_
-    }
+  ListDeploymentGroupsResponse'
+  { _ldgrsNextToken = Nothing
+  , _ldgrsApplicationName = Nothing
+  , _ldgrsDeploymentGroups = Nothing
+  , _ldgrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent list deployment groups call to return the next set of deployment groups in the list.
 ldgrsNextToken :: Lens' ListDeploymentGroupsResponse (Maybe Text)
 ldgrsNextToken = lens _ldgrsNextToken (\ s a -> s{_ldgrsNextToken = a});
@@ -170,4 +182,4 @@
 ldgrsResponseStatus :: Lens' ListDeploymentGroupsResponse Int
 ldgrsResponseStatus = lens _ldgrsResponseStatus (\ s a -> s{_ldgrsResponseStatus = a});
 
-instance NFData ListDeploymentGroupsResponse
+instance NFData ListDeploymentGroupsResponse where
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
@@ -12,24 +12,27 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.ListDeploymentInstances
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Lists the instance for a deployment associated with the applicable IAM user or AWS account.
 --
 --
+--
+-- This operation returns paginated results.
 module Network.AWS.CodeDeploy.ListDeploymentInstances
     (
     -- * Creating a Request
       listDeploymentInstances
     , ListDeploymentInstances
     -- * Request Lenses
-    , ldiInstanceStatusFilter
-    , ldiNextToken
-    , ldiDeploymentId
+    , lInstanceStatusFilter
+    , lNextToken
+    , lInstanceTypeFilter
+    , lDeploymentId
 
     -- * Destructuring the Response
     , listDeploymentInstancesResponse
@@ -40,55 +43,73 @@
     , ldirsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a list deployment instances operation.
+-- | Represents the input of a ListDeploymentInstances operation.
 --
 --
 --
 -- /See:/ 'listDeploymentInstances' smart constructor.
 data ListDeploymentInstances = ListDeploymentInstances'
-    { _ldiInstanceStatusFilter :: !(Maybe [InstanceStatus])
-    , _ldiNextToken            :: !(Maybe Text)
-    , _ldiDeploymentId         :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _lInstanceStatusFilter :: !(Maybe [InstanceStatus])
+  , _lNextToken            :: !(Maybe Text)
+  , _lInstanceTypeFilter   :: !(Maybe [InstanceType])
+  , _lDeploymentId         :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListDeploymentInstances' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ldiInstanceStatusFilter' - A subset of instances to list by status:     * Pending: Include those instance with pending deployments.     * InProgress: Include those instance where deployments are still in progress.     * Succeeded: Include those instances with successful deployments.     * Failed: Include those instance with failed deployments.     * Skipped: Include those instance with skipped deployments.     * Unknown: Include those instance with deployments in an unknown state.
+-- * 'lInstanceStatusFilter' - A subset of instances to list by status:     * Pending: Include those instance with pending deployments.     * InProgress: Include those instance where deployments are still in progress.     * Succeeded: Include those instances with successful deployments.     * Failed: Include those instance with failed deployments.     * Skipped: Include those instance with skipped deployments.     * Unknown: Include those instance with deployments in an unknown state.
 --
--- * 'ldiNextToken' - An identifier returned from the previous list deployment instances call. It can be used to return the next set of deployment instances in the list.
+-- * 'lNextToken' - An identifier returned from the previous list deployment instances call. It can be used to return the next set of deployment instances in the list.
 --
--- * 'ldiDeploymentId' - The unique ID of a deployment.
+-- * 'lInstanceTypeFilter' - The set of instances in a blue/green deployment, either those in the original environment ("BLUE") or those in the replacement environment ("GREEN"), for which you want to view instance information.
+--
+-- * 'lDeploymentId' - The unique ID of a deployment.
 listDeploymentInstances
-    :: Text -- ^ 'ldiDeploymentId'
+    :: Text -- ^ 'lDeploymentId'
     -> ListDeploymentInstances
 listDeploymentInstances pDeploymentId_ =
-    ListDeploymentInstances'
-    { _ldiInstanceStatusFilter = Nothing
-    , _ldiNextToken = Nothing
-    , _ldiDeploymentId = pDeploymentId_
-    }
+  ListDeploymentInstances'
+  { _lInstanceStatusFilter = Nothing
+  , _lNextToken = Nothing
+  , _lInstanceTypeFilter = Nothing
+  , _lDeploymentId = pDeploymentId_
+  }
 
+
 -- | A subset of instances to list by status:     * Pending: Include those instance with pending deployments.     * InProgress: Include those instance where deployments are still in progress.     * Succeeded: Include those instances with successful deployments.     * Failed: Include those instance with failed deployments.     * Skipped: Include those instance with skipped deployments.     * Unknown: Include those instance with deployments in an unknown state.
-ldiInstanceStatusFilter :: Lens' ListDeploymentInstances [InstanceStatus]
-ldiInstanceStatusFilter = lens _ldiInstanceStatusFilter (\ s a -> s{_ldiInstanceStatusFilter = a}) . _Default . _Coerce;
+lInstanceStatusFilter :: Lens' ListDeploymentInstances [InstanceStatus]
+lInstanceStatusFilter = lens _lInstanceStatusFilter (\ s a -> s{_lInstanceStatusFilter = a}) . _Default . _Coerce;
 
 -- | An identifier returned from the previous list deployment instances call. It can be used to return the next set of deployment instances in the list.
-ldiNextToken :: Lens' ListDeploymentInstances (Maybe Text)
-ldiNextToken = lens _ldiNextToken (\ s a -> s{_ldiNextToken = a});
+lNextToken :: Lens' ListDeploymentInstances (Maybe Text)
+lNextToken = lens _lNextToken (\ s a -> s{_lNextToken = a});
 
+-- | The set of instances in a blue/green deployment, either those in the original environment ("BLUE") or those in the replacement environment ("GREEN"), for which you want to view instance information.
+lInstanceTypeFilter :: Lens' ListDeploymentInstances [InstanceType]
+lInstanceTypeFilter = lens _lInstanceTypeFilter (\ s a -> s{_lInstanceTypeFilter = a}) . _Default . _Coerce;
+
 -- | The unique ID of a deployment.
-ldiDeploymentId :: Lens' ListDeploymentInstances Text
-ldiDeploymentId = lens _ldiDeploymentId (\ s a -> s{_ldiDeploymentId = a});
+lDeploymentId :: Lens' ListDeploymentInstances Text
+lDeploymentId = lens _lDeploymentId (\ s a -> s{_lDeploymentId = a});
 
+instance AWSPager ListDeploymentInstances where
+        page rq rs
+          | stop (rs ^. ldirsNextToken) = Nothing
+          | stop (rs ^. ldirsInstancesList) = Nothing
+          | otherwise =
+            Just $ rq & lNextToken .~ rs ^. ldirsNextToken
+
 instance AWSRequest ListDeploymentInstances where
         type Rs ListDeploymentInstances =
              ListDeploymentInstancesResponse
@@ -101,9 +122,9 @@
                      (x .?> "instancesList" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
-instance Hashable ListDeploymentInstances
+instance Hashable ListDeploymentInstances where
 
-instance NFData ListDeploymentInstances
+instance NFData ListDeploymentInstances where
 
 instance ToHeaders ListDeploymentInstances where
         toHeaders
@@ -120,9 +141,10 @@
           = object
               (catMaybes
                  [("instanceStatusFilter" .=) <$>
-                    _ldiInstanceStatusFilter,
-                  ("nextToken" .=) <$> _ldiNextToken,
-                  Just ("deploymentId" .= _ldiDeploymentId)])
+                    _lInstanceStatusFilter,
+                  ("nextToken" .=) <$> _lNextToken,
+                  ("instanceTypeFilter" .=) <$> _lInstanceTypeFilter,
+                  Just ("deploymentId" .= _lDeploymentId)])
 
 instance ToPath ListDeploymentInstances where
         toPath = const "/"
@@ -130,17 +152,18 @@
 instance ToQuery ListDeploymentInstances where
         toQuery = const mempty
 
--- | Represents the output of a list deployment instances operation.
+-- | Represents the output of a ListDeploymentInstances operation.
 --
 --
 --
 -- /See:/ 'listDeploymentInstancesResponse' smart constructor.
 data ListDeploymentInstancesResponse = ListDeploymentInstancesResponse'
-    { _ldirsNextToken      :: !(Maybe Text)
-    , _ldirsInstancesList  :: !(Maybe [Text])
-    , _ldirsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ldirsNextToken      :: !(Maybe Text)
+  , _ldirsInstancesList  :: !(Maybe [Text])
+  , _ldirsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListDeploymentInstancesResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -154,12 +177,13 @@
     :: Int -- ^ 'ldirsResponseStatus'
     -> ListDeploymentInstancesResponse
 listDeploymentInstancesResponse pResponseStatus_ =
-    ListDeploymentInstancesResponse'
-    { _ldirsNextToken = Nothing
-    , _ldirsInstancesList = Nothing
-    , _ldirsResponseStatus = pResponseStatus_
-    }
+  ListDeploymentInstancesResponse'
+  { _ldirsNextToken = Nothing
+  , _ldirsInstancesList = Nothing
+  , _ldirsResponseStatus = pResponseStatus_
+  }
 
+
 -- | If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent list deployment instances call to return the next set of deployment instances in the list.
 ldirsNextToken :: Lens' ListDeploymentInstancesResponse (Maybe Text)
 ldirsNextToken = lens _ldirsNextToken (\ s a -> s{_ldirsNextToken = a});
@@ -172,4 +196,4 @@
 ldirsResponseStatus :: Lens' ListDeploymentInstancesResponse Int
 ldirsResponseStatus = lens _ldirsResponseStatus (\ s a -> s{_ldirsResponseStatus = a});
 
-instance NFData ListDeploymentInstancesResponse
+instance NFData ListDeploymentInstancesResponse where
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
@@ -12,15 +12,17 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.ListDeployments
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Lists the deployments in a deployment group for an application registered with the applicable IAM user or AWS account.
 --
 --
+--
+-- This operation returns paginated results.
 module Network.AWS.CodeDeploy.ListDeployments
     (
     -- * Creating a Request
@@ -42,26 +44,28 @@
     , ldrsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a list deployments operation.
+-- | Represents the input of a ListDeployments operation.
 --
 --
 --
 -- /See:/ 'listDeployments' smart constructor.
 data ListDeployments = ListDeployments'
-    { _ldCreateTimeRange     :: !(Maybe TimeRange)
-    , _ldNextToken           :: !(Maybe Text)
-    , _ldIncludeOnlyStatuses :: !(Maybe [DeploymentStatus])
-    , _ldApplicationName     :: !(Maybe Text)
-    , _ldDeploymentGroupName :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ldCreateTimeRange     :: !(Maybe TimeRange)
+  , _ldNextToken           :: !(Maybe Text)
+  , _ldIncludeOnlyStatuses :: !(Maybe [DeploymentStatus])
+  , _ldApplicationName     :: !(Maybe Text)
+  , _ldDeploymentGroupName :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListDeployments' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -78,14 +82,15 @@
 listDeployments
     :: ListDeployments
 listDeployments =
-    ListDeployments'
-    { _ldCreateTimeRange = Nothing
-    , _ldNextToken = Nothing
-    , _ldIncludeOnlyStatuses = Nothing
-    , _ldApplicationName = Nothing
-    , _ldDeploymentGroupName = Nothing
-    }
+  ListDeployments'
+  { _ldCreateTimeRange = Nothing
+  , _ldNextToken = Nothing
+  , _ldIncludeOnlyStatuses = Nothing
+  , _ldApplicationName = Nothing
+  , _ldDeploymentGroupName = Nothing
+  }
 
+
 -- | A time range (start and end) for returning a subset of the list of deployments.
 ldCreateTimeRange :: Lens' ListDeployments (Maybe TimeRange)
 ldCreateTimeRange = lens _ldCreateTimeRange (\ s a -> s{_ldCreateTimeRange = a});
@@ -106,6 +111,13 @@
 ldDeploymentGroupName :: Lens' ListDeployments (Maybe Text)
 ldDeploymentGroupName = lens _ldDeploymentGroupName (\ s a -> s{_ldDeploymentGroupName = a});
 
+instance AWSPager ListDeployments where
+        page rq rs
+          | stop (rs ^. ldrsNextToken) = Nothing
+          | stop (rs ^. ldrsDeployments) = Nothing
+          | otherwise =
+            Just $ rq & ldNextToken .~ rs ^. ldrsNextToken
+
 instance AWSRequest ListDeployments where
         type Rs ListDeployments = ListDeploymentsResponse
         request = postJSON codeDeploy
@@ -117,9 +129,9 @@
                      (x .?> "deployments" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
-instance Hashable ListDeployments
+instance Hashable ListDeployments where
 
-instance NFData ListDeployments
+instance NFData ListDeployments where
 
 instance ToHeaders ListDeployments where
         toHeaders
@@ -149,17 +161,18 @@
 instance ToQuery ListDeployments where
         toQuery = const mempty
 
--- | Represents the output of a list deployments operation.
+-- | Represents the output of a ListDeployments operation.
 --
 --
 --
 -- /See:/ 'listDeploymentsResponse' smart constructor.
 data ListDeploymentsResponse = ListDeploymentsResponse'
-    { _ldrsNextToken      :: !(Maybe Text)
-    , _ldrsDeployments    :: !(Maybe [Text])
-    , _ldrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ldrsNextToken      :: !(Maybe Text)
+  , _ldrsDeployments    :: !(Maybe [Text])
+  , _ldrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListDeploymentsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -173,12 +186,13 @@
     :: Int -- ^ 'ldrsResponseStatus'
     -> ListDeploymentsResponse
 listDeploymentsResponse pResponseStatus_ =
-    ListDeploymentsResponse'
-    { _ldrsNextToken = Nothing
-    , _ldrsDeployments = Nothing
-    , _ldrsResponseStatus = pResponseStatus_
-    }
+  ListDeploymentsResponse'
+  { _ldrsNextToken = Nothing
+  , _ldrsDeployments = Nothing
+  , _ldrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent list deployments call to return the next set of deployments in the list.
 ldrsNextToken :: Lens' ListDeploymentsResponse (Maybe Text)
 ldrsNextToken = lens _ldrsNextToken (\ s a -> s{_ldrsNextToken = a});
@@ -191,4 +205,4 @@
 ldrsResponseStatus :: Lens' ListDeploymentsResponse Int
 ldrsResponseStatus = lens _ldrsResponseStatus (\ s a -> s{_ldrsResponseStatus = a});
 
-instance NFData ListDeploymentsResponse
+instance NFData ListDeploymentsResponse where
diff --git a/gen/Network/AWS/CodeDeploy/ListGitHubAccountTokenNames.hs b/gen/Network/AWS/CodeDeploy/ListGitHubAccountTokenNames.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/CodeDeploy/ListGitHubAccountTokenNames.hs
@@ -0,0 +1,155 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Network.AWS.CodeDeploy.ListGitHubAccountTokenNames
+-- Copyright   : (c) 2013-2017 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists the names of stored connections to GitHub accounts.
+--
+--
+module Network.AWS.CodeDeploy.ListGitHubAccountTokenNames
+    (
+    -- * Creating a Request
+      listGitHubAccountTokenNames
+    , ListGitHubAccountTokenNames
+    -- * Request Lenses
+    , lghatnNextToken
+
+    -- * Destructuring the Response
+    , listGitHubAccountTokenNamesResponse
+    , ListGitHubAccountTokenNamesResponse
+    -- * Response Lenses
+    , lghatnrsTokenNameList
+    , lghatnrsNextToken
+    , lghatnrsResponseStatus
+    ) where
+
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | Represents the input of a ListGitHubAccountTokenNames operation.
+--
+--
+--
+-- /See:/ 'listGitHubAccountTokenNames' smart constructor.
+newtype ListGitHubAccountTokenNames = ListGitHubAccountTokenNames'
+  { _lghatnNextToken :: Maybe Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListGitHubAccountTokenNames' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lghatnNextToken' - An identifier returned from the previous ListGitHubAccountTokenNames call. It can be used to return the next set of names in the list.
+listGitHubAccountTokenNames
+    :: ListGitHubAccountTokenNames
+listGitHubAccountTokenNames =
+  ListGitHubAccountTokenNames' {_lghatnNextToken = Nothing}
+
+
+-- | An identifier returned from the previous ListGitHubAccountTokenNames call. It can be used to return the next set of names in the list.
+lghatnNextToken :: Lens' ListGitHubAccountTokenNames (Maybe Text)
+lghatnNextToken = lens _lghatnNextToken (\ s a -> s{_lghatnNextToken = a});
+
+instance AWSRequest ListGitHubAccountTokenNames where
+        type Rs ListGitHubAccountTokenNames =
+             ListGitHubAccountTokenNamesResponse
+        request = postJSON codeDeploy
+        response
+          = receiveJSON
+              (\ s h x ->
+                 ListGitHubAccountTokenNamesResponse' <$>
+                   (x .?> "tokenNameList" .!@ mempty) <*>
+                     (x .?> "nextToken")
+                     <*> (pure (fromEnum s)))
+
+instance Hashable ListGitHubAccountTokenNames where
+
+instance NFData ListGitHubAccountTokenNames where
+
+instance ToHeaders ListGitHubAccountTokenNames where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.ListGitHubAccountTokenNames" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON ListGitHubAccountTokenNames where
+        toJSON ListGitHubAccountTokenNames'{..}
+          = object
+              (catMaybes [("nextToken" .=) <$> _lghatnNextToken])
+
+instance ToPath ListGitHubAccountTokenNames where
+        toPath = const "/"
+
+instance ToQuery ListGitHubAccountTokenNames where
+        toQuery = const mempty
+
+-- | Represents the output of a ListGitHubAccountTokenNames operation.
+--
+--
+--
+-- /See:/ 'listGitHubAccountTokenNamesResponse' smart constructor.
+data ListGitHubAccountTokenNamesResponse = ListGitHubAccountTokenNamesResponse'
+  { _lghatnrsTokenNameList  :: !(Maybe [Text])
+  , _lghatnrsNextToken      :: !(Maybe Text)
+  , _lghatnrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ListGitHubAccountTokenNamesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lghatnrsTokenNameList' - A list of names of connections to GitHub accounts.
+--
+-- * 'lghatnrsNextToken' - If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent ListGitHubAccountTokenNames call to return the next set of names in the list.
+--
+-- * 'lghatnrsResponseStatus' - -- | The response status code.
+listGitHubAccountTokenNamesResponse
+    :: Int -- ^ 'lghatnrsResponseStatus'
+    -> ListGitHubAccountTokenNamesResponse
+listGitHubAccountTokenNamesResponse pResponseStatus_ =
+  ListGitHubAccountTokenNamesResponse'
+  { _lghatnrsTokenNameList = Nothing
+  , _lghatnrsNextToken = Nothing
+  , _lghatnrsResponseStatus = pResponseStatus_
+  }
+
+
+-- | A list of names of connections to GitHub accounts.
+lghatnrsTokenNameList :: Lens' ListGitHubAccountTokenNamesResponse [Text]
+lghatnrsTokenNameList = lens _lghatnrsTokenNameList (\ s a -> s{_lghatnrsTokenNameList = a}) . _Default . _Coerce;
+
+-- | If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent ListGitHubAccountTokenNames call to return the next set of names in the list.
+lghatnrsNextToken :: Lens' ListGitHubAccountTokenNamesResponse (Maybe Text)
+lghatnrsNextToken = lens _lghatnrsNextToken (\ s a -> s{_lghatnrsNextToken = a});
+
+-- | -- | The response status code.
+lghatnrsResponseStatus :: Lens' ListGitHubAccountTokenNamesResponse Int
+lghatnrsResponseStatus = lens _lghatnrsResponseStatus (\ s a -> s{_lghatnrsResponseStatus = a});
+
+instance NFData ListGitHubAccountTokenNamesResponse
+         where
diff --git a/gen/Network/AWS/CodeDeploy/ListOnPremisesInstances.hs b/gen/Network/AWS/CodeDeploy/ListOnPremisesInstances.hs
--- a/gen/Network/AWS/CodeDeploy/ListOnPremisesInstances.hs
+++ b/gen/Network/AWS/CodeDeploy/ListOnPremisesInstances.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.ListOnPremisesInstances
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -42,24 +42,25 @@
     , lopirsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a list on-premises instances operation.
+-- | Represents the input of a ListOnPremisesInstances operation.
 --
 --
 --
 -- /See:/ 'listOnPremisesInstances' smart constructor.
 data ListOnPremisesInstances = ListOnPremisesInstances'
-    { _lopiTagFilters         :: !(Maybe [TagFilter])
-    , _lopiNextToken          :: !(Maybe Text)
-    , _lopiRegistrationStatus :: !(Maybe RegistrationStatus)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _lopiTagFilters         :: !(Maybe [TagFilter])
+  , _lopiNextToken          :: !(Maybe Text)
+  , _lopiRegistrationStatus :: !(Maybe RegistrationStatus)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListOnPremisesInstances' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -72,12 +73,13 @@
 listOnPremisesInstances
     :: ListOnPremisesInstances
 listOnPremisesInstances =
-    ListOnPremisesInstances'
-    { _lopiTagFilters = Nothing
-    , _lopiNextToken = Nothing
-    , _lopiRegistrationStatus = Nothing
-    }
+  ListOnPremisesInstances'
+  { _lopiTagFilters = Nothing
+  , _lopiNextToken = Nothing
+  , _lopiRegistrationStatus = Nothing
+  }
 
+
 -- | The on-premises instance tags that will be used to restrict the corresponding on-premises instance names returned.
 lopiTagFilters :: Lens' ListOnPremisesInstances [TagFilter]
 lopiTagFilters = lens _lopiTagFilters (\ s a -> s{_lopiTagFilters = a}) . _Default . _Coerce;
@@ -102,9 +104,9 @@
                      (x .?> "instanceNames" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
-instance Hashable ListOnPremisesInstances
+instance Hashable ListOnPremisesInstances where
 
-instance NFData ListOnPremisesInstances
+instance NFData ListOnPremisesInstances where
 
 instance ToHeaders ListOnPremisesInstances where
         toHeaders
@@ -137,11 +139,12 @@
 --
 -- /See:/ 'listOnPremisesInstancesResponse' smart constructor.
 data ListOnPremisesInstancesResponse = ListOnPremisesInstancesResponse'
-    { _lopirsNextToken      :: !(Maybe Text)
-    , _lopirsInstanceNames  :: !(Maybe [Text])
-    , _lopirsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _lopirsNextToken      :: !(Maybe Text)
+  , _lopirsInstanceNames  :: !(Maybe [Text])
+  , _lopirsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListOnPremisesInstancesResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -155,12 +158,13 @@
     :: Int -- ^ 'lopirsResponseStatus'
     -> ListOnPremisesInstancesResponse
 listOnPremisesInstancesResponse pResponseStatus_ =
-    ListOnPremisesInstancesResponse'
-    { _lopirsNextToken = Nothing
-    , _lopirsInstanceNames = Nothing
-    , _lopirsResponseStatus = pResponseStatus_
-    }
+  ListOnPremisesInstancesResponse'
+  { _lopirsNextToken = Nothing
+  , _lopirsInstanceNames = Nothing
+  , _lopirsResponseStatus = pResponseStatus_
+  }
 
+
 -- | If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent list on-premises instances call to return the next set of on-premises instances in the list.
 lopirsNextToken :: Lens' ListOnPremisesInstancesResponse (Maybe Text)
 lopirsNextToken = lens _lopirsNextToken (\ s a -> s{_lopirsNextToken = a});
@@ -173,4 +177,4 @@
 lopirsResponseStatus :: Lens' ListOnPremisesInstancesResponse Int
 lopirsResponseStatus = lens _lopirsResponseStatus (\ s a -> s{_lopirsResponseStatus = a});
 
-instance NFData ListOnPremisesInstancesResponse
+instance NFData ListOnPremisesInstancesResponse where
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
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.RegisterApplicationRevision
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -36,24 +36,25 @@
     , RegisterApplicationRevisionResponse
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a register application revision operation.
+-- | Represents the input of a RegisterApplicationRevision operation.
 --
 --
 --
 -- /See:/ 'registerApplicationRevision' smart constructor.
 data RegisterApplicationRevision = RegisterApplicationRevision'
-    { _rarDescription     :: !(Maybe Text)
-    , _rarApplicationName :: !Text
-    , _rarRevision        :: !RevisionLocation
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _rarDescription     :: !(Maybe Text)
+  , _rarApplicationName :: !Text
+  , _rarRevision        :: !RevisionLocation
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'RegisterApplicationRevision' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -68,12 +69,13 @@
     -> RevisionLocation -- ^ 'rarRevision'
     -> RegisterApplicationRevision
 registerApplicationRevision pApplicationName_ pRevision_ =
-    RegisterApplicationRevision'
-    { _rarDescription = Nothing
-    , _rarApplicationName = pApplicationName_
-    , _rarRevision = pRevision_
-    }
+  RegisterApplicationRevision'
+  { _rarDescription = Nothing
+  , _rarApplicationName = pApplicationName_
+  , _rarRevision = pRevision_
+  }
 
+
 -- | A comment about the revision.
 rarDescription :: Lens' RegisterApplicationRevision (Maybe Text)
 rarDescription = lens _rarDescription (\ s a -> s{_rarDescription = a});
@@ -93,9 +95,9 @@
         response
           = receiveNull RegisterApplicationRevisionResponse'
 
-instance Hashable RegisterApplicationRevision
+instance Hashable RegisterApplicationRevision where
 
-instance NFData RegisterApplicationRevision
+instance NFData RegisterApplicationRevision where
 
 instance ToHeaders RegisterApplicationRevision where
         toHeaders
@@ -123,13 +125,16 @@
 
 -- | /See:/ 'registerApplicationRevisionResponse' smart constructor.
 data RegisterApplicationRevisionResponse =
-    RegisterApplicationRevisionResponse'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  RegisterApplicationRevisionResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'RegisterApplicationRevisionResponse' with the minimum fields required to make a request.
 --
 registerApplicationRevisionResponse
     :: RegisterApplicationRevisionResponse
 registerApplicationRevisionResponse = RegisterApplicationRevisionResponse'
 
+
 instance NFData RegisterApplicationRevisionResponse
+         where
diff --git a/gen/Network/AWS/CodeDeploy/RegisterOnPremisesInstance.hs b/gen/Network/AWS/CodeDeploy/RegisterOnPremisesInstance.hs
--- a/gen/Network/AWS/CodeDeploy/RegisterOnPremisesInstance.hs
+++ b/gen/Network/AWS/CodeDeploy/RegisterOnPremisesInstance.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.RegisterOnPremisesInstance
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -27,20 +27,21 @@
       registerOnPremisesInstance
     , RegisterOnPremisesInstance
     -- * Request Lenses
-    , ropiInstanceName
     , ropiIamUserARN
+    , ropiIamSessionARN
+    , ropiInstanceName
 
     -- * Destructuring the Response
     , registerOnPremisesInstanceResponse
     , RegisterOnPremisesInstanceResponse
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | Represents the input of the register on-premises instance operation.
 --
@@ -48,35 +49,44 @@
 --
 -- /See:/ 'registerOnPremisesInstance' smart constructor.
 data RegisterOnPremisesInstance = RegisterOnPremisesInstance'
-    { _ropiInstanceName :: !Text
-    , _ropiIamUserARN   :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ropiIamUserARN    :: !(Maybe Text)
+  , _ropiIamSessionARN :: !(Maybe Text)
+  , _ropiInstanceName  :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'RegisterOnPremisesInstance' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ropiInstanceName' - The name of the on-premises instance to register.
---
 -- * 'ropiIamUserARN' - The ARN of the IAM user to associate with the on-premises instance.
+--
+-- * 'ropiIamSessionARN' - The ARN of the IAM session to associate with the on-premises instance.
+--
+-- * 'ropiInstanceName' - The name of the on-premises instance to register.
 registerOnPremisesInstance
     :: Text -- ^ 'ropiInstanceName'
-    -> Text -- ^ 'ropiIamUserARN'
     -> RegisterOnPremisesInstance
-registerOnPremisesInstance pInstanceName_ pIamUserARN_ =
-    RegisterOnPremisesInstance'
-    { _ropiInstanceName = pInstanceName_
-    , _ropiIamUserARN = pIamUserARN_
-    }
+registerOnPremisesInstance pInstanceName_ =
+  RegisterOnPremisesInstance'
+  { _ropiIamUserARN = Nothing
+  , _ropiIamSessionARN = Nothing
+  , _ropiInstanceName = pInstanceName_
+  }
 
--- | The name of the on-premises instance to register.
-ropiInstanceName :: Lens' RegisterOnPremisesInstance Text
-ropiInstanceName = lens _ropiInstanceName (\ s a -> s{_ropiInstanceName = a});
 
 -- | The ARN of the IAM user to associate with the on-premises instance.
-ropiIamUserARN :: Lens' RegisterOnPremisesInstance Text
+ropiIamUserARN :: Lens' RegisterOnPremisesInstance (Maybe Text)
 ropiIamUserARN = lens _ropiIamUserARN (\ s a -> s{_ropiIamUserARN = a});
 
+-- | The ARN of the IAM session to associate with the on-premises instance.
+ropiIamSessionARN :: Lens' RegisterOnPremisesInstance (Maybe Text)
+ropiIamSessionARN = lens _ropiIamSessionARN (\ s a -> s{_ropiIamSessionARN = a});
+
+-- | The name of the on-premises instance to register.
+ropiInstanceName :: Lens' RegisterOnPremisesInstance Text
+ropiInstanceName = lens _ropiInstanceName (\ s a -> s{_ropiInstanceName = a});
+
 instance AWSRequest RegisterOnPremisesInstance where
         type Rs RegisterOnPremisesInstance =
              RegisterOnPremisesInstanceResponse
@@ -84,9 +94,9 @@
         response
           = receiveNull RegisterOnPremisesInstanceResponse'
 
-instance Hashable RegisterOnPremisesInstance
+instance Hashable RegisterOnPremisesInstance where
 
-instance NFData RegisterOnPremisesInstance
+instance NFData RegisterOnPremisesInstance where
 
 instance ToHeaders RegisterOnPremisesInstance where
         toHeaders
@@ -102,8 +112,9 @@
         toJSON RegisterOnPremisesInstance'{..}
           = object
               (catMaybes
-                 [Just ("instanceName" .= _ropiInstanceName),
-                  Just ("iamUserArn" .= _ropiIamUserARN)])
+                 [("iamUserArn" .=) <$> _ropiIamUserARN,
+                  ("iamSessionArn" .=) <$> _ropiIamSessionARN,
+                  Just ("instanceName" .= _ropiInstanceName)])
 
 instance ToPath RegisterOnPremisesInstance where
         toPath = const "/"
@@ -113,13 +124,16 @@
 
 -- | /See:/ 'registerOnPremisesInstanceResponse' smart constructor.
 data RegisterOnPremisesInstanceResponse =
-    RegisterOnPremisesInstanceResponse'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  RegisterOnPremisesInstanceResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'RegisterOnPremisesInstanceResponse' with the minimum fields required to make a request.
 --
 registerOnPremisesInstanceResponse
     :: RegisterOnPremisesInstanceResponse
 registerOnPremisesInstanceResponse = RegisterOnPremisesInstanceResponse'
 
+
 instance NFData RegisterOnPremisesInstanceResponse
+         where
diff --git a/gen/Network/AWS/CodeDeploy/RemoveTagsFromOnPremisesInstances.hs b/gen/Network/AWS/CodeDeploy/RemoveTagsFromOnPremisesInstances.hs
--- a/gen/Network/AWS/CodeDeploy/RemoveTagsFromOnPremisesInstances.hs
+++ b/gen/Network/AWS/CodeDeploy/RemoveTagsFromOnPremisesInstances.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.RemoveTagsFromOnPremisesInstances
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -35,23 +35,24 @@
     , RemoveTagsFromOnPremisesInstancesResponse
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a remove tags from on-premises instances operation.
+-- | Represents the input of a RemoveTagsFromOnPremisesInstances operation.
 --
 --
 --
 -- /See:/ 'removeTagsFromOnPremisesInstances' smart constructor.
 data RemoveTagsFromOnPremisesInstances = RemoveTagsFromOnPremisesInstances'
-    { _rtfopiTags          :: ![Tag]
-    , _rtfopiInstanceNames :: ![Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _rtfopiTags          :: ![Tag]
+  , _rtfopiInstanceNames :: ![Text]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'RemoveTagsFromOnPremisesInstances' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -62,11 +63,10 @@
 removeTagsFromOnPremisesInstances
     :: RemoveTagsFromOnPremisesInstances
 removeTagsFromOnPremisesInstances =
-    RemoveTagsFromOnPremisesInstances'
-    { _rtfopiTags = mempty
-    , _rtfopiInstanceNames = mempty
-    }
+  RemoveTagsFromOnPremisesInstances'
+  {_rtfopiTags = mempty, _rtfopiInstanceNames = mempty}
 
+
 -- | The tag key-value pairs to remove from the on-premises instances.
 rtfopiTags :: Lens' RemoveTagsFromOnPremisesInstances [Tag]
 rtfopiTags = lens _rtfopiTags (\ s a -> s{_rtfopiTags = a}) . _Coerce;
@@ -85,8 +85,10 @@
               RemoveTagsFromOnPremisesInstancesResponse'
 
 instance Hashable RemoveTagsFromOnPremisesInstances
+         where
 
 instance NFData RemoveTagsFromOnPremisesInstances
+         where
 
 instance ToHeaders RemoveTagsFromOnPremisesInstances
          where
@@ -117,15 +119,18 @@
 
 -- | /See:/ 'removeTagsFromOnPremisesInstancesResponse' smart constructor.
 data RemoveTagsFromOnPremisesInstancesResponse =
-    RemoveTagsFromOnPremisesInstancesResponse'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  RemoveTagsFromOnPremisesInstancesResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'RemoveTagsFromOnPremisesInstancesResponse' with the minimum fields required to make a request.
 --
 removeTagsFromOnPremisesInstancesResponse
     :: RemoveTagsFromOnPremisesInstancesResponse
 removeTagsFromOnPremisesInstancesResponse =
-    RemoveTagsFromOnPremisesInstancesResponse'
+  RemoveTagsFromOnPremisesInstancesResponse'
 
+
 instance NFData
-         RemoveTagsFromOnPremisesInstancesResponse
+           RemoveTagsFromOnPremisesInstancesResponse
+         where
diff --git a/gen/Network/AWS/CodeDeploy/SkipWaitTimeForInstanceTermination.hs b/gen/Network/AWS/CodeDeploy/SkipWaitTimeForInstanceTermination.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/CodeDeploy/SkipWaitTimeForInstanceTermination.hs
@@ -0,0 +1,123 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Network.AWS.CodeDeploy.SkipWaitTimeForInstanceTermination
+-- Copyright   : (c) 2013-2017 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- In a blue/green deployment, overrides any specified wait time and starts terminating instances immediately after the traffic routing is completed.
+--
+--
+module Network.AWS.CodeDeploy.SkipWaitTimeForInstanceTermination
+    (
+    -- * Creating a Request
+      skipWaitTimeForInstanceTermination
+    , SkipWaitTimeForInstanceTermination
+    -- * Request Lenses
+    , swtfitDeploymentId
+
+    -- * Destructuring the Response
+    , skipWaitTimeForInstanceTerminationResponse
+    , SkipWaitTimeForInstanceTerminationResponse
+    ) where
+
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'skipWaitTimeForInstanceTermination' smart constructor.
+newtype SkipWaitTimeForInstanceTermination = SkipWaitTimeForInstanceTermination'
+  { _swtfitDeploymentId :: Maybe Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'SkipWaitTimeForInstanceTermination' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'swtfitDeploymentId' - The ID of the blue/green deployment for which you want to skip the instance termination wait time.
+skipWaitTimeForInstanceTermination
+    :: SkipWaitTimeForInstanceTermination
+skipWaitTimeForInstanceTermination =
+  SkipWaitTimeForInstanceTermination' {_swtfitDeploymentId = Nothing}
+
+
+-- | The ID of the blue/green deployment for which you want to skip the instance termination wait time.
+swtfitDeploymentId :: Lens' SkipWaitTimeForInstanceTermination (Maybe Text)
+swtfitDeploymentId = lens _swtfitDeploymentId (\ s a -> s{_swtfitDeploymentId = a});
+
+instance AWSRequest
+           SkipWaitTimeForInstanceTermination
+         where
+        type Rs SkipWaitTimeForInstanceTermination =
+             SkipWaitTimeForInstanceTerminationResponse
+        request = postJSON codeDeploy
+        response
+          = receiveNull
+              SkipWaitTimeForInstanceTerminationResponse'
+
+instance Hashable SkipWaitTimeForInstanceTermination
+         where
+
+instance NFData SkipWaitTimeForInstanceTermination
+         where
+
+instance ToHeaders SkipWaitTimeForInstanceTermination
+         where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.SkipWaitTimeForInstanceTermination"
+                       :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON SkipWaitTimeForInstanceTermination
+         where
+        toJSON SkipWaitTimeForInstanceTermination'{..}
+          = object
+              (catMaybes
+                 [("deploymentId" .=) <$> _swtfitDeploymentId])
+
+instance ToPath SkipWaitTimeForInstanceTermination
+         where
+        toPath = const "/"
+
+instance ToQuery SkipWaitTimeForInstanceTermination
+         where
+        toQuery = const mempty
+
+-- | /See:/ 'skipWaitTimeForInstanceTerminationResponse' smart constructor.
+data SkipWaitTimeForInstanceTerminationResponse =
+  SkipWaitTimeForInstanceTerminationResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'SkipWaitTimeForInstanceTerminationResponse' with the minimum fields required to make a request.
+--
+skipWaitTimeForInstanceTerminationResponse
+    :: SkipWaitTimeForInstanceTerminationResponse
+skipWaitTimeForInstanceTerminationResponse =
+  SkipWaitTimeForInstanceTerminationResponse'
+
+
+instance NFData
+           SkipWaitTimeForInstanceTerminationResponse
+         where
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
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.StopDeployment
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -39,23 +39,24 @@
     , sdrsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of a stop deployment operation.
+-- | Represents the input of a StopDeployment operation.
 --
 --
 --
 -- /See:/ 'stopDeployment' smart constructor.
 data StopDeployment = StopDeployment'
-    { _sdAutoRollbackEnabled :: !(Maybe Bool)
-    , _sdDeploymentId        :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _sdAutoRollbackEnabled :: !(Maybe Bool)
+  , _sdDeploymentId        :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'StopDeployment' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -67,11 +68,10 @@
     :: Text -- ^ 'sdDeploymentId'
     -> StopDeployment
 stopDeployment pDeploymentId_ =
-    StopDeployment'
-    { _sdAutoRollbackEnabled = Nothing
-    , _sdDeploymentId = pDeploymentId_
-    }
+  StopDeployment'
+  {_sdAutoRollbackEnabled = Nothing, _sdDeploymentId = pDeploymentId_}
 
+
 -- | Indicates, when a deployment is stopped, whether instances that have been updated should be rolled back to the previous version of the application revision.
 sdAutoRollbackEnabled :: Lens' StopDeployment (Maybe Bool)
 sdAutoRollbackEnabled = lens _sdAutoRollbackEnabled (\ s a -> s{_sdAutoRollbackEnabled = a});
@@ -90,9 +90,9 @@
                    (x .?> "status") <*> (x .?> "statusMessage") <*>
                      (pure (fromEnum s)))
 
-instance Hashable StopDeployment
+instance Hashable StopDeployment where
 
-instance NFData StopDeployment
+instance NFData StopDeployment where
 
 instance ToHeaders StopDeployment where
         toHeaders
@@ -117,17 +117,18 @@
 instance ToQuery StopDeployment where
         toQuery = const mempty
 
--- | Represents the output of a stop deployment operation.
+-- | Represents the output of a StopDeployment operation.
 --
 --
 --
 -- /See:/ 'stopDeploymentResponse' smart constructor.
 data StopDeploymentResponse = StopDeploymentResponse'
-    { _sdrsStatus         :: !(Maybe StopStatus)
-    , _sdrsStatusMessage  :: !(Maybe Text)
-    , _sdrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _sdrsStatus         :: !(Maybe StopStatus)
+  , _sdrsStatusMessage  :: !(Maybe Text)
+  , _sdrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'StopDeploymentResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -141,12 +142,13 @@
     :: Int -- ^ 'sdrsResponseStatus'
     -> StopDeploymentResponse
 stopDeploymentResponse pResponseStatus_ =
-    StopDeploymentResponse'
-    { _sdrsStatus = Nothing
-    , _sdrsStatusMessage = Nothing
-    , _sdrsResponseStatus = pResponseStatus_
-    }
+  StopDeploymentResponse'
+  { _sdrsStatus = Nothing
+  , _sdrsStatusMessage = Nothing
+  , _sdrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | The status of the stop deployment operation:     * Pending: The stop operation is pending.     * Succeeded: The stop operation was successful.
 sdrsStatus :: Lens' StopDeploymentResponse (Maybe StopStatus)
 sdrsStatus = lens _sdrsStatus (\ s a -> s{_sdrsStatus = a});
@@ -159,4 +161,4 @@
 sdrsResponseStatus :: Lens' StopDeploymentResponse Int
 sdrsResponseStatus = lens _sdrsResponseStatus (\ s a -> s{_sdrsResponseStatus = a});
 
-instance NFData StopDeploymentResponse
+instance NFData StopDeploymentResponse where
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
@@ -4,9 +4,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.Types
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -19,25 +19,38 @@
     , _LifecycleHookLimitExceededException
     , _InvalidTimeRangeException
     , _InvalidTagException
+    , _InvalidFileExistsBehaviorException
     , _InvalidAlarmConfigException
     , _InstanceNameAlreadyRegisteredException
     , _IAMUserARNRequiredException
     , _InvalidDeploymentGroupNameException
+    , _InvalidInstanceTypeException
+    , _IAMSessionARNAlreadyRegisteredException
     , _DescriptionTooLongException
     , _InvalidIAMUserARNException
+    , _InvalidOnPremisesTagCombinationException
     , _DeploymentNotStartedException
     , _DeploymentConfigLimitExceededException
     , _RoleRequiredException
+    , _InvalidLoadBalancerInfoException
+    , _InvalidBlueGreenDeploymentConfigurationException
     , _InvalidRoleException
     , _DeploymentConfigAlreadyExistsException
+    , _InvalidTargetInstancesException
     , _DeploymentLimitExceededException
     , _IAMUserARNAlreadyRegisteredException
+    , _InvalidIAMSessionARNException
     , _InstanceLimitExceededException
+    , _InvalidDeploymentStyleException
     , _InvalidDeployedStateFilterException
     , _InvalidAutoScalingGroupException
     , _InvalidApplicationNameException
+    , _GitHubAccountTokenDoesNotExistException
     , _ApplicationDoesNotExistException
     , _InvalidMinimumHealthyHostValueException
+    , _UnsupportedActionForDeploymentTypeException
+    , _ResourceValidationException
+    , _InvalidEC2TagCombinationException
     , _AlarmsLimitExceededException
     , _InvalidTagFilterException
     , _InvalidTriggerConfigException
@@ -54,6 +67,7 @@
     , _InvalidDeploymentConfigNameException
     , _DeploymentConfigNameRequiredException
     , _DeploymentIdRequiredException
+    , _DeploymentIsNotInReadyStateException
     , _InvalidNextTokenException
     , _InstanceIdRequiredException
     , _InvalidDeploymentIdException
@@ -69,6 +83,7 @@
     , _InvalidEC2TagException
     , _InvalidInstanceNameException
     , _InstanceNameRequiredException
+    , _MultipleIAMARNsProvidedException
     , _TriggerTargetsLimitExceededException
     , _InvalidDeploymentStatusException
     , _InvalidRegistrationStatusException
@@ -78,7 +93,10 @@
     , _InvalidInstanceStatusException
     , _TagLimitExceededException
     , _ApplicationLimitExceededException
+    , _TagSetListLimitExceededException
     , _InvalidOperationException
+    , _InvalidDeploymentInstanceTypeException
+    , _IAMARNRequiredException
     , _InvalidKeyPrefixFilterException
 
     -- * ApplicationRevisionSortBy
@@ -96,15 +114,36 @@
     -- * DeploymentCreator
     , DeploymentCreator (..)
 
+    -- * DeploymentOption
+    , DeploymentOption (..)
+
+    -- * DeploymentReadyAction
+    , DeploymentReadyAction (..)
+
     -- * DeploymentStatus
     , DeploymentStatus (..)
 
+    -- * DeploymentType
+    , DeploymentType (..)
+
     -- * EC2TagFilterType
     , EC2TagFilterType (..)
 
+    -- * FileExistsBehavior
+    , FileExistsBehavior (..)
+
+    -- * GreenFleetProvisioningAction
+    , GreenFleetProvisioningAction (..)
+
+    -- * InstanceAction
+    , InstanceAction (..)
+
     -- * InstanceStatus
     , InstanceStatus (..)
 
+    -- * InstanceType
+    , InstanceType (..)
+
     -- * LifecycleErrorCode
     , LifecycleErrorCode (..)
 
@@ -153,6 +192,7 @@
     , aiLinkedToGitHub
     , aiApplicationId
     , aiApplicationName
+    , aiGitHubAccountName
     , aiCreateTime
 
     -- * AutoRollbackConfiguration
@@ -167,6 +207,19 @@
     , asgHook
     , asgName
 
+    -- * BlueGreenDeploymentConfiguration
+    , BlueGreenDeploymentConfiguration
+    , blueGreenDeploymentConfiguration
+    , bgdcDeploymentReadyOption
+    , bgdcGreenFleetProvisioningOption
+    , bgdcTerminateBlueInstancesOnDeploymentSuccess
+
+    -- * BlueInstanceTerminationOption
+    , BlueInstanceTerminationOption
+    , blueInstanceTerminationOption
+    , bitoAction
+    , bitoTerminationWaitTimeInMinutes
+
     -- * DeploymentConfigInfo
     , DeploymentConfigInfo
     , deploymentConfigInfo
@@ -179,15 +232,22 @@
     , DeploymentGroupInfo
     , deploymentGroupInfo
     , dgiServiceRoleARN
+    , dgiEc2TagSet
     , dgiDeploymentConfigName
+    , dgiLastAttemptedDeployment
+    , dgiOnPremisesTagSet
     , dgiTargetRevision
     , dgiEc2TagFilters
+    , dgiBlueGreenDeploymentConfiguration
+    , dgiLoadBalancerInfo
     , dgiOnPremisesInstanceTagFilters
+    , dgiLastSuccessfulDeployment
     , dgiApplicationName
     , dgiAlarmConfiguration
     , dgiTriggerConfigurations
     , dgiDeploymentGroupId
     , dgiAutoScalingGroups
+    , dgiDeploymentStyle
     , dgiAutoRollbackConfiguration
     , dgiDeploymentGroupName
 
@@ -198,14 +258,22 @@
     , diStatus
     , diDeploymentId
     , diDeploymentConfigName
+    , diPreviousRevision
+    , diInstanceTerminationWaitTimeStarted
     , diStartTime
     , diCompleteTime
+    , diBlueGreenDeploymentConfiguration
     , diErrorInformation
+    , diLoadBalancerInfo
+    , diAdditionalDeploymentStatusInfo
     , diDeploymentOverview
+    , diFileExistsBehavior
     , diApplicationName
     , diRollbackInfo
+    , diTargetInstances
     , diRevision
     , diDescription
+    , diDeploymentStyle
     , diCreateTime
     , diAutoRollbackConfiguration
     , diUpdateOutdatedInstancesOnly
@@ -219,8 +287,21 @@
     , doSkipped
     , doInProgress
     , doSucceeded
+    , doReady
     , doFailed
 
+    -- * DeploymentReadyOption
+    , DeploymentReadyOption
+    , deploymentReadyOption
+    , droActionOnTimeout
+    , droWaitTimeInMinutes
+
+    -- * DeploymentStyle
+    , DeploymentStyle
+    , deploymentStyle
+    , dsDeploymentOption
+    , dsDeploymentType
+
     -- * Diagnostics
     , Diagnostics
     , diagnostics
@@ -236,6 +317,16 @@
     , etfKey
     , etfType
 
+    -- * EC2TagSet
+    , EC2TagSet
+    , ec2TagSet
+    , etsEc2TagSetList
+
+    -- * ELBInfo
+    , ELBInfo
+    , eLBInfo
+    , elbiName
+
     -- * ErrorInformation
     , ErrorInformation
     , errorInformation
@@ -257,6 +348,11 @@
     , ghlCommitId
     , ghlRepository
 
+    -- * GreenFleetProvisioningOption
+    , GreenFleetProvisioningOption
+    , greenFleetProvisioningOption
+    , gfpoAction
+
     -- * InstanceInfo
     , InstanceInfo
     , instanceInfo
@@ -265,6 +361,7 @@
     , iiDeregisterTime
     , iiIamUserARN
     , iiInstanceName
+    , iiIamSessionARN
     , iiTags
 
     -- * InstanceSummary
@@ -275,7 +372,16 @@
     , isDeploymentId
     , isLastUpdatedAt
     , isLifecycleEvents
+    , isInstanceType
 
+    -- * LastDeploymentInfo
+    , LastDeploymentInfo
+    , lastDeploymentInfo
+    , ldiStatus
+    , ldiDeploymentId
+    , ldiEndTime
+    , ldiCreateTime
+
     -- * LifecycleEvent
     , LifecycleEvent
     , lifecycleEvent
@@ -285,12 +391,23 @@
     , leDiagnostics
     , leEndTime
 
+    -- * LoadBalancerInfo
+    , LoadBalancerInfo
+    , loadBalancerInfo
+    , lbiElbInfoList
+    , lbiTargetGroupInfoList
+
     -- * MinimumHealthyHosts
     , MinimumHealthyHosts
     , minimumHealthyHosts
     , mhhValue
     , mhhType
 
+    -- * OnPremisesTagSet
+    , OnPremisesTagSet
+    , onPremisesTagSet
+    , optsOnPremisesTagSetList
+
     -- * RevisionInfo
     , RevisionInfo
     , revisionInfo
@@ -333,6 +450,18 @@
     , tfKey
     , tfType
 
+    -- * TargetGroupInfo
+    , TargetGroupInfo
+    , targetGroupInfo
+    , tgiName
+
+    -- * TargetInstances
+    , TargetInstances
+    , targetInstances
+    , tiEc2TagSet
+    , tiTagFilters
+    , tiAutoScalingGroups
+
     -- * TimeRange
     , TimeRange
     , timeRange
@@ -347,38 +476,40 @@
     , tcTriggerTargetARN
     ) where
 
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.CodeDeploy.Types.Sum
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Sign.V4
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.CodeDeploy.Types.Sum
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Sign.V4
 
 -- | API version @2014-10-06@ of the Amazon CodeDeploy SDK configuration.
 codeDeploy :: Service
 codeDeploy =
-    Service
-    { _svcAbbrev = "CodeDeploy"
-    , _svcSigner = v4
-    , _svcPrefix = "codedeploy"
-    , _svcVersion = "2014-10-06"
-    , _svcEndpoint = defaultEndpoint codeDeploy
-    , _svcTimeout = Just 70
-    , _svcCheck = statusSuccess
-    , _svcError = parseJSONError "CodeDeploy"
-    , _svcRetry = retry
-    }
+  Service
+  { _svcAbbrev = "CodeDeploy"
+  , _svcSigner = v4
+  , _svcPrefix = "codedeploy"
+  , _svcVersion = "2014-10-06"
+  , _svcEndpoint = defaultEndpoint codeDeploy
+  , _svcTimeout = Just 70
+  , _svcCheck = statusSuccess
+  , _svcError = parseJSONError "CodeDeploy"
+  , _svcRetry = retry
+  }
   where
     retry =
-        Exponential
-        { _retryBase = 5.0e-2
-        , _retryGrowth = 2
-        , _retryAttempts = 5
-        , _retryCheck = check
-        }
+      Exponential
+      { _retryBase = 5.0e-2
+      , _retryGrowth = 2
+      , _retryAttempts = 5
+      , _retryCheck = check
+      }
     check e
+      | has (hasCode "ThrottledException" . hasStatus 400) e =
+        Just "throttled_exception"
       | has (hasStatus 429) e = Just "too_many_requests"
       | has (hasCode "ThrottlingException" . hasStatus 400) e =
-          Just "throttling_exception"
+        Just "throttling_exception"
       | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"
       | has (hasStatus 504) e = Just "gateway_timeout"
       | has (hasStatus 502) e = Just "bad_gateway"
@@ -387,26 +518,38 @@
       | has (hasStatus 509) e = Just "limit_exceeded"
       | otherwise = Nothing
 
+
 -- | The limit for lifecycle hooks was exceeded.
 --
 --
 _LifecycleHookLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
 _LifecycleHookLimitExceededException =
-    _ServiceError . hasCode "LifecycleHookLimitExceededException"
+  _MatchServiceError codeDeploy "LifecycleHookLimitExceededException"
 
+
 -- | The specified time range was specified in an invalid format.
 --
 --
 _InvalidTimeRangeException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidTimeRangeException =
-    _ServiceError . hasCode "InvalidTimeRangeException"
+  _MatchServiceError codeDeploy "InvalidTimeRangeException"
 
+
 -- | The specified tag was specified in an invalid format.
 --
 --
 _InvalidTagException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidTagException = _ServiceError . hasCode "InvalidTagException"
+_InvalidTagException = _MatchServiceError codeDeploy "InvalidTagException"
 
+
+-- | An invalid fileExistsBehavior option was specified to determine how AWS CodeDeploy handles files or directories that already exist in a deployment target location but weren't part of the previous successful deployment. Valid values include "DISALLOW", "OVERWRITE", and "RETAIN".
+--
+--
+_InvalidFileExistsBehaviorException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidFileExistsBehaviorException =
+  _MatchServiceError codeDeploy "InvalidFileExistsBehaviorException"
+
+
 -- | The format of the alarm configuration is invalid. Possible causes include:
 --
 --
@@ -424,418 +567,628 @@
 --
 _InvalidAlarmConfigException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidAlarmConfigException =
-    _ServiceError . hasCode "InvalidAlarmConfigException"
+  _MatchServiceError codeDeploy "InvalidAlarmConfigException"
 
+
 -- | The specified on-premises instance name is already registered.
 --
 --
 _InstanceNameAlreadyRegisteredException :: AsError a => Getting (First ServiceError) a ServiceError
 _InstanceNameAlreadyRegisteredException =
-    _ServiceError . hasCode "InstanceNameAlreadyRegisteredException"
+  _MatchServiceError codeDeploy "InstanceNameAlreadyRegisteredException"
 
+
 -- | An IAM user ARN was not specified.
 --
 --
 _IAMUserARNRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
 _IAMUserARNRequiredException =
-    _ServiceError . hasCode "IamUserArnRequiredException"
+  _MatchServiceError codeDeploy "IamUserArnRequiredException"
 
+
 -- | The deployment group name was specified in an invalid format.
 --
 --
 _InvalidDeploymentGroupNameException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidDeploymentGroupNameException =
-    _ServiceError . hasCode "InvalidDeploymentGroupNameException"
+  _MatchServiceError codeDeploy "InvalidDeploymentGroupNameException"
 
+
+-- | An invalid instance type was specified for instances in a blue/green deployment. Valid values include "Blue" for an original environment and "Green" for a replacement environment.
+--
+--
+_InvalidInstanceTypeException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidInstanceTypeException =
+  _MatchServiceError codeDeploy "InvalidInstanceTypeException"
+
+
+-- | The request included an IAM session ARN that has already been used to register a different instance.
+--
+--
+_IAMSessionARNAlreadyRegisteredException :: AsError a => Getting (First ServiceError) a ServiceError
+_IAMSessionARNAlreadyRegisteredException =
+  _MatchServiceError codeDeploy "IamSessionArnAlreadyRegisteredException"
+
+
 -- | The description is too long.
 --
 --
 _DescriptionTooLongException :: AsError a => Getting (First ServiceError) a ServiceError
 _DescriptionTooLongException =
-    _ServiceError . hasCode "DescriptionTooLongException"
+  _MatchServiceError codeDeploy "DescriptionTooLongException"
 
+
 -- | The IAM user ARN was specified in an invalid format.
 --
 --
 _InvalidIAMUserARNException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidIAMUserARNException =
-    _ServiceError . hasCode "InvalidIamUserArnException"
+  _MatchServiceError codeDeploy "InvalidIamUserArnException"
 
+
+-- | A call was submitted that specified both OnPremisesTagFilters and OnPremisesTagSet, but only one of these data types can be used in a single call.
+--
+--
+_InvalidOnPremisesTagCombinationException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidOnPremisesTagCombinationException =
+  _MatchServiceError codeDeploy "InvalidOnPremisesTagCombinationException"
+
+
 -- | The specified deployment has not started.
 --
 --
 _DeploymentNotStartedException :: AsError a => Getting (First ServiceError) a ServiceError
 _DeploymentNotStartedException =
-    _ServiceError . hasCode "DeploymentNotStartedException"
+  _MatchServiceError codeDeploy "DeploymentNotStartedException"
 
+
 -- | The deployment configurations limit was exceeded.
 --
 --
 _DeploymentConfigLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
 _DeploymentConfigLimitExceededException =
-    _ServiceError . hasCode "DeploymentConfigLimitExceededException"
+  _MatchServiceError codeDeploy "DeploymentConfigLimitExceededException"
 
+
 -- | The role ID was not specified.
 --
 --
 _RoleRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_RoleRequiredException = _ServiceError . hasCode "RoleRequiredException"
+_RoleRequiredException = _MatchServiceError codeDeploy "RoleRequiredException"
 
+
+-- | An invalid load balancer name, or no load balancer name, was specified.
+--
+--
+_InvalidLoadBalancerInfoException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidLoadBalancerInfoException =
+  _MatchServiceError codeDeploy "InvalidLoadBalancerInfoException"
+
+
+-- | The configuration for the blue/green deployment group was provided in an invalid format. For information about deployment configuration format, see 'CreateDeploymentConfig' .
+--
+--
+_InvalidBlueGreenDeploymentConfigurationException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidBlueGreenDeploymentConfigurationException =
+  _MatchServiceError
+    codeDeploy
+    "InvalidBlueGreenDeploymentConfigurationException"
+
+
 -- | The service role ARN was specified in an invalid format. Or, if an Auto Scaling group was specified, the specified service role does not grant the appropriate permissions to Auto Scaling.
 --
 --
 _InvalidRoleException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidRoleException = _ServiceError . hasCode "InvalidRoleException"
+_InvalidRoleException = _MatchServiceError codeDeploy "InvalidRoleException"
 
+
 -- | A deployment configuration with the specified name already exists with the applicable IAM user or AWS account.
 --
 --
 _DeploymentConfigAlreadyExistsException :: AsError a => Getting (First ServiceError) a ServiceError
 _DeploymentConfigAlreadyExistsException =
-    _ServiceError . hasCode "DeploymentConfigAlreadyExistsException"
+  _MatchServiceError codeDeploy "DeploymentConfigAlreadyExistsException"
 
+
+-- | The target instance configuration is invalid. Possible causes include:
+--
+--
+--     * Configuration data for target instances was entered for an in-place deployment.
+--
+--     * The limit of 10 tags for a tag type was exceeded.
+--
+--     * The combined length of the tag names exceeded the limit.
+--
+--     * A specified tag is not currently applied to any instances.
+--
+--
+--
+_InvalidTargetInstancesException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidTargetInstancesException =
+  _MatchServiceError codeDeploy "InvalidTargetInstancesException"
+
+
 -- | The number of allowed deployments was exceeded.
 --
 --
 _DeploymentLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
 _DeploymentLimitExceededException =
-    _ServiceError . hasCode "DeploymentLimitExceededException"
+  _MatchServiceError codeDeploy "DeploymentLimitExceededException"
 
+
 -- | The specified IAM user ARN is already registered with an on-premises instance.
 --
 --
 _IAMUserARNAlreadyRegisteredException :: AsError a => Getting (First ServiceError) a ServiceError
 _IAMUserARNAlreadyRegisteredException =
-    _ServiceError . hasCode "IamUserArnAlreadyRegisteredException"
+  _MatchServiceError codeDeploy "IamUserArnAlreadyRegisteredException"
 
+
+-- | The IAM session ARN was specified in an invalid format.
+--
+--
+_InvalidIAMSessionARNException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidIAMSessionARNException =
+  _MatchServiceError codeDeploy "InvalidIamSessionArnException"
+
+
 -- | The maximum number of allowed on-premises instances in a single call was exceeded.
 --
 --
 _InstanceLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
 _InstanceLimitExceededException =
-    _ServiceError . hasCode "InstanceLimitExceededException"
+  _MatchServiceError codeDeploy "InstanceLimitExceededException"
 
+
+-- | An invalid deployment style was specified. Valid deployment types include "IN_PLACE" and "BLUE_GREEN". Valid deployment options include "WITH_TRAFFIC_CONTROL" and "WITHOUT_TRAFFIC_CONTROL".
+--
+--
+_InvalidDeploymentStyleException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidDeploymentStyleException =
+  _MatchServiceError codeDeploy "InvalidDeploymentStyleException"
+
+
 -- | The deployed state filter was specified in an invalid format.
 --
 --
 _InvalidDeployedStateFilterException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidDeployedStateFilterException =
-    _ServiceError . hasCode "InvalidDeployedStateFilterException"
+  _MatchServiceError codeDeploy "InvalidDeployedStateFilterException"
 
+
 -- | The Auto Scaling group was specified in an invalid format or does not exist.
 --
 --
 _InvalidAutoScalingGroupException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidAutoScalingGroupException =
-    _ServiceError . hasCode "InvalidAutoScalingGroupException"
+  _MatchServiceError codeDeploy "InvalidAutoScalingGroupException"
 
+
 -- | The application name was specified in an invalid format.
 --
 --
 _InvalidApplicationNameException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidApplicationNameException =
-    _ServiceError . hasCode "InvalidApplicationNameException"
+  _MatchServiceError codeDeploy "InvalidApplicationNameException"
 
+
+-- | No GitHub account connection exists with the named specified in the call.
+--
+--
+_GitHubAccountTokenDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
+_GitHubAccountTokenDoesNotExistException =
+  _MatchServiceError codeDeploy "GitHubAccountTokenDoesNotExistException"
+
+
 -- | The application does not exist with the applicable IAM user or AWS account.
 --
 --
 _ApplicationDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
 _ApplicationDoesNotExistException =
-    _ServiceError . hasCode "ApplicationDoesNotExistException"
+  _MatchServiceError codeDeploy "ApplicationDoesNotExistException"
 
+
 -- | The minimum healthy instance value was specified in an invalid format.
 --
 --
 _InvalidMinimumHealthyHostValueException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidMinimumHealthyHostValueException =
-    _ServiceError . hasCode "InvalidMinimumHealthyHostValueException"
+  _MatchServiceError codeDeploy "InvalidMinimumHealthyHostValueException"
 
+
+-- | A call was submitted that is not supported for the specified deployment type.
+--
+--
+_UnsupportedActionForDeploymentTypeException :: AsError a => Getting (First ServiceError) a ServiceError
+_UnsupportedActionForDeploymentTypeException =
+  _MatchServiceError codeDeploy "UnsupportedActionForDeploymentTypeException"
+
+
+-- | The specified resource could not be validated.
+--
+--
+_ResourceValidationException :: AsError a => Getting (First ServiceError) a ServiceError
+_ResourceValidationException =
+  _MatchServiceError codeDeploy "ResourceValidationException"
+
+
+-- | A call was submitted that specified both Ec2TagFilters and Ec2TagSet, but only one of these data types can be used in a single call.
+--
+--
+_InvalidEC2TagCombinationException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidEC2TagCombinationException =
+  _MatchServiceError codeDeploy "InvalidEC2TagCombinationException"
+
+
 -- | The maximum number of alarms for a deployment group (10) was exceeded.
 --
 --
 _AlarmsLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
 _AlarmsLimitExceededException =
-    _ServiceError . hasCode "AlarmsLimitExceededException"
+  _MatchServiceError codeDeploy "AlarmsLimitExceededException"
 
+
 -- | The specified tag filter was specified in an invalid format.
 --
 --
 _InvalidTagFilterException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidTagFilterException =
-    _ServiceError . hasCode "InvalidTagFilterException"
+  _MatchServiceError codeDeploy "InvalidTagFilterException"
 
+
 -- | The trigger was specified in an invalid format.
 --
 --
 _InvalidTriggerConfigException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidTriggerConfigException =
-    _ServiceError . hasCode "InvalidTriggerConfigException"
+  _MatchServiceError codeDeploy "InvalidTriggerConfigException"
 
+
 -- | A tag was not specified.
 --
 --
 _TagRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_TagRequiredException = _ServiceError . hasCode "TagRequiredException"
+_TagRequiredException = _MatchServiceError codeDeploy "TagRequiredException"
 
+
 -- | The deployment group name was not specified.
 --
 --
 _DeploymentGroupNameRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
 _DeploymentGroupNameRequiredException =
-    _ServiceError . hasCode "DeploymentGroupNameRequiredException"
+  _MatchServiceError codeDeploy "DeploymentGroupNameRequiredException"
 
+
 -- | A bucket name is required, but was not provided.
 --
 --
 _BucketNameFilterRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
 _BucketNameFilterRequiredException =
-    _ServiceError . hasCode "BucketNameFilterRequiredException"
+  _MatchServiceError codeDeploy "BucketNameFilterRequiredException"
 
+
 -- | The deployment configuration does not exist with the applicable IAM user or AWS account.
 --
 --
 _DeploymentConfigDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
 _DeploymentConfigDoesNotExistException =
-    _ServiceError . hasCode "DeploymentConfigDoesNotExistException"
+  _MatchServiceError codeDeploy "DeploymentConfigDoesNotExistException"
 
+
 -- | The bucket name either doesn't exist or was specified in an invalid format.
 --
 --
 _InvalidBucketNameFilterException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidBucketNameFilterException =
-    _ServiceError . hasCode "InvalidBucketNameFilterException"
+  _MatchServiceError codeDeploy "InvalidBucketNameFilterException"
 
+
 -- | A deployment group with the specified name already exists with the applicable IAM user or AWS account.
 --
 --
 _DeploymentGroupAlreadyExistsException :: AsError a => Getting (First ServiceError) a ServiceError
 _DeploymentGroupAlreadyExistsException =
-    _ServiceError . hasCode "DeploymentGroupAlreadyExistsException"
+  _MatchServiceError codeDeploy "DeploymentGroupAlreadyExistsException"
 
+
 -- | The column name to sort by is either not present or was specified in an invalid format.
 --
 --
 _InvalidSortByException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidSortByException = _ServiceError . hasCode "InvalidSortByException"
+_InvalidSortByException = _MatchServiceError codeDeploy "InvalidSortByException"
 
+
 -- | The named revision does not exist with the applicable IAM user or AWS account.
 --
 --
 _RevisionDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
 _RevisionDoesNotExistException =
-    _ServiceError . hasCode "RevisionDoesNotExistException"
+  _MatchServiceError codeDeploy "RevisionDoesNotExistException"
 
+
 -- | The deployment groups limit was exceeded.
 --
 --
 _DeploymentGroupLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
 _DeploymentGroupLimitExceededException =
-    _ServiceError . hasCode "DeploymentGroupLimitExceededException"
+  _MatchServiceError codeDeploy "DeploymentGroupLimitExceededException"
 
+
 -- | The named deployment group does not exist with the applicable IAM user or AWS account.
 --
 --
 _DeploymentGroupDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
 _DeploymentGroupDoesNotExistException =
-    _ServiceError . hasCode "DeploymentGroupDoesNotExistException"
+  _MatchServiceError codeDeploy "DeploymentGroupDoesNotExistException"
 
+
 -- | The deployment configuration name was specified in an invalid format.
 --
 --
 _InvalidDeploymentConfigNameException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidDeploymentConfigNameException =
-    _ServiceError . hasCode "InvalidDeploymentConfigNameException"
+  _MatchServiceError codeDeploy "InvalidDeploymentConfigNameException"
 
+
 -- | The deployment configuration name was not specified.
 --
 --
 _DeploymentConfigNameRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
 _DeploymentConfigNameRequiredException =
-    _ServiceError . hasCode "DeploymentConfigNameRequiredException"
+  _MatchServiceError codeDeploy "DeploymentConfigNameRequiredException"
 
+
 -- | At least one deployment ID must be specified.
 --
 --
 _DeploymentIdRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
 _DeploymentIdRequiredException =
-    _ServiceError . hasCode "DeploymentIdRequiredException"
+  _MatchServiceError codeDeploy "DeploymentIdRequiredException"
 
+
+-- | The deployment does not have a status of Ready and can't continue yet.
+--
+--
+_DeploymentIsNotInReadyStateException :: AsError a => Getting (First ServiceError) a ServiceError
+_DeploymentIsNotInReadyStateException =
+  _MatchServiceError codeDeploy "DeploymentIsNotInReadyStateException"
+
+
 -- | The next token was specified in an invalid format.
 --
 --
 _InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidNextTokenException =
-    _ServiceError . hasCode "InvalidNextTokenException"
+  _MatchServiceError codeDeploy "InvalidNextTokenException"
 
+
 -- | The instance ID was not specified.
 --
 --
 _InstanceIdRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
 _InstanceIdRequiredException =
-    _ServiceError . hasCode "InstanceIdRequiredException"
+  _MatchServiceError codeDeploy "InstanceIdRequiredException"
 
+
 -- | At least one of the deployment IDs was specified in an invalid format.
 --
 --
 _InvalidDeploymentIdException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidDeploymentIdException =
-    _ServiceError . hasCode "InvalidDeploymentIdException"
+  _MatchServiceError codeDeploy "InvalidDeploymentIdException"
 
+
 -- | The sort order was specified in an invalid format.
 --
 --
 _InvalidSortOrderException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidSortOrderException =
-    _ServiceError . hasCode "InvalidSortOrderException"
+  _MatchServiceError codeDeploy "InvalidSortOrderException"
 
+
 -- | The automatic rollback configuration was specified in an invalid format. For example, automatic rollback is enabled but an invalid triggering event type or no event types were listed.
 --
 --
 _InvalidAutoRollbackConfigException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidAutoRollbackConfigException =
-    _ServiceError . hasCode "InvalidAutoRollbackConfigException"
+  _MatchServiceError codeDeploy "InvalidAutoRollbackConfigException"
 
+
 -- | The deployment is already complete.
 --
 --
 _DeploymentAlreadyCompletedException :: AsError a => Getting (First ServiceError) a ServiceError
 _DeploymentAlreadyCompletedException =
-    _ServiceError . hasCode "DeploymentAlreadyCompletedException"
+  _MatchServiceError codeDeploy "DeploymentAlreadyCompletedException"
 
+
 -- | The deployment does not exist with the applicable IAM user or AWS account.
 --
 --
 _DeploymentDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
 _DeploymentDoesNotExistException =
-    _ServiceError . hasCode "DeploymentDoesNotExistException"
+  _MatchServiceError codeDeploy "DeploymentDoesNotExistException"
 
+
 -- | The maximum number of names or IDs allowed for this request (100) was exceeded.
 --
 --
 _BatchLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
 _BatchLimitExceededException =
-    _ServiceError . hasCode "BatchLimitExceededException"
+  _MatchServiceError codeDeploy "BatchLimitExceededException"
 
+
 -- | The revision was specified in an invalid format.
 --
 --
 _InvalidRevisionException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidRevisionException = _ServiceError . hasCode "InvalidRevisionException"
+_InvalidRevisionException =
+  _MatchServiceError codeDeploy "InvalidRevisionException"
 
+
 -- | The revision ID was not specified.
 --
 --
 _RevisionRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
 _RevisionRequiredException =
-    _ServiceError . hasCode "RevisionRequiredException"
+  _MatchServiceError codeDeploy "RevisionRequiredException"
 
+
 -- | The specified instance does not exist in the deployment group.
 --
 --
 _InstanceDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
 _InstanceDoesNotExistException =
-    _ServiceError . hasCode "InstanceDoesNotExistException"
+  _MatchServiceError codeDeploy "InstanceDoesNotExistException"
 
+
 -- | The deployment configuration is still in use.
 --
 --
 _DeploymentConfigInUseException :: AsError a => Getting (First ServiceError) a ServiceError
 _DeploymentConfigInUseException =
-    _ServiceError . hasCode "DeploymentConfigInUseException"
+  _MatchServiceError codeDeploy "DeploymentConfigInUseException"
 
+
 -- | The tag was specified in an invalid format.
 --
 --
 _InvalidEC2TagException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidEC2TagException = _ServiceError . hasCode "InvalidEC2TagException"
+_InvalidEC2TagException = _MatchServiceError codeDeploy "InvalidEC2TagException"
 
+
 -- | The specified on-premises instance name was specified in an invalid format.
 --
 --
 _InvalidInstanceNameException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidInstanceNameException =
-    _ServiceError . hasCode "InvalidInstanceNameException"
+  _MatchServiceError codeDeploy "InvalidInstanceNameException"
 
+
 -- | An on-premises instance name was not specified.
 --
 --
 _InstanceNameRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
 _InstanceNameRequiredException =
-    _ServiceError . hasCode "InstanceNameRequiredException"
+  _MatchServiceError codeDeploy "InstanceNameRequiredException"
 
+
+-- | Both an IAM user ARN and an IAM session ARN were included in the request. Use only one ARN type.
+--
+--
+_MultipleIAMARNsProvidedException :: AsError a => Getting (First ServiceError) a ServiceError
+_MultipleIAMARNsProvidedException =
+  _MatchServiceError codeDeploy "MultipleIamArnsProvidedException"
+
+
 -- | The maximum allowed number of triggers was exceeded.
 --
 --
 _TriggerTargetsLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
 _TriggerTargetsLimitExceededException =
-    _ServiceError . hasCode "TriggerTargetsLimitExceededException"
+  _MatchServiceError codeDeploy "TriggerTargetsLimitExceededException"
 
+
 -- | The specified deployment status doesn't exist or cannot be determined.
 --
 --
 _InvalidDeploymentStatusException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidDeploymentStatusException =
-    _ServiceError . hasCode "InvalidDeploymentStatusException"
+  _MatchServiceError codeDeploy "InvalidDeploymentStatusException"
 
+
 -- | The registration status was specified in an invalid format.
 --
 --
 _InvalidRegistrationStatusException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidRegistrationStatusException =
-    _ServiceError . hasCode "InvalidRegistrationStatusException"
+  _MatchServiceError codeDeploy "InvalidRegistrationStatusException"
 
+
 -- | The minimum number of required application names was not specified.
 --
 --
 _ApplicationNameRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
 _ApplicationNameRequiredException =
-    _ServiceError . hasCode "ApplicationNameRequiredException"
+  _MatchServiceError codeDeploy "ApplicationNameRequiredException"
 
+
 -- | The specified on-premises instance is not registered.
 --
 --
 _InstanceNotRegisteredException :: AsError a => Getting (First ServiceError) a ServiceError
 _InstanceNotRegisteredException =
-    _ServiceError . hasCode "InstanceNotRegisteredException"
+  _MatchServiceError codeDeploy "InstanceNotRegisteredException"
 
+
 -- | An application with the specified name already exists with the applicable IAM user or AWS account.
 --
 --
 _ApplicationAlreadyExistsException :: AsError a => Getting (First ServiceError) a ServiceError
 _ApplicationAlreadyExistsException =
-    _ServiceError . hasCode "ApplicationAlreadyExistsException"
+  _MatchServiceError codeDeploy "ApplicationAlreadyExistsException"
 
+
 -- | The specified instance status does not exist.
 --
 --
 _InvalidInstanceStatusException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidInstanceStatusException =
-    _ServiceError . hasCode "InvalidInstanceStatusException"
+  _MatchServiceError codeDeploy "InvalidInstanceStatusException"
 
+
 -- | The maximum allowed number of tags was exceeded.
 --
 --
 _TagLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
 _TagLimitExceededException =
-    _ServiceError . hasCode "TagLimitExceededException"
+  _MatchServiceError codeDeploy "TagLimitExceededException"
 
+
 -- | More applications were attempted to be created than are allowed.
 --
 --
 _ApplicationLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
 _ApplicationLimitExceededException =
-    _ServiceError . hasCode "ApplicationLimitExceededException"
+  _MatchServiceError codeDeploy "ApplicationLimitExceededException"
 
+
+-- | The number of tag groups included in the tag set list exceeded the maximum allowed limit of 3.
+--
+--
+_TagSetListLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
+_TagSetListLimitExceededException =
+  _MatchServiceError codeDeploy "TagSetListLimitExceededException"
+
+
 -- | An invalid operation was detected.
 --
 --
 _InvalidOperationException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidOperationException =
-    _ServiceError . hasCode "InvalidOperationException"
+  _MatchServiceError codeDeploy "InvalidOperationException"
 
+
+-- | An instance type was specified for an in-place deployment. Instance types are supported for blue/green deployments only.
+--
+--
+_InvalidDeploymentInstanceTypeException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidDeploymentInstanceTypeException =
+  _MatchServiceError codeDeploy "InvalidDeploymentInstanceTypeException"
+
+
+-- | No IAM ARN was included in the request. You must use an IAM session ARN or IAM user ARN in the request.
+--
+--
+_IAMARNRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
+_IAMARNRequiredException =
+  _MatchServiceError codeDeploy "IamArnRequiredException"
+
+
 -- | The specified key prefix filter was specified in an invalid format.
 --
 --
 _InvalidKeyPrefixFilterException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidKeyPrefixFilterException =
-    _ServiceError . hasCode "InvalidKeyPrefixFilterException"
+  _MatchServiceError codeDeploy "InvalidKeyPrefixFilterException"
+
diff --git a/gen/Network/AWS/CodeDeploy/Types/Product.hs b/gen/Network/AWS/CodeDeploy/Types/Product.hs
--- a/gen/Network/AWS/CodeDeploy/Types/Product.hs
+++ b/gen/Network/AWS/CodeDeploy/Types/Product.hs
@@ -9,1727 +9,2514 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.Types.Product
--- Copyright   : (c) 2013-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
-module Network.AWS.CodeDeploy.Types.Product where
-
-import           Network.AWS.CodeDeploy.Types.Sum
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-
--- | Information about an alarm.
---
---
---
--- /See:/ 'alarm' smart constructor.
-newtype Alarm = Alarm'
-    { _aName :: Maybe Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Alarm' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aName' - The name of the alarm. Maximum length is 255 characters. Each alarm name can be used only once in a list of alarms.
-alarm
-    :: Alarm
-alarm =
-    Alarm'
-    { _aName = Nothing
-    }
-
--- | The name of the alarm. Maximum length is 255 characters. Each alarm name can be used only once in a list of alarms.
-aName :: Lens' Alarm (Maybe Text)
-aName = lens _aName (\ s a -> s{_aName = a});
-
-instance FromJSON Alarm where
-        parseJSON
-          = withObject "Alarm"
-              (\ x -> Alarm' <$> (x .:? "name"))
-
-instance Hashable Alarm
-
-instance NFData Alarm
-
-instance ToJSON Alarm where
-        toJSON Alarm'{..}
-          = object (catMaybes [("name" .=) <$> _aName])
-
--- | Information about alarms associated with the deployment group.
---
---
---
--- /See:/ 'alarmConfiguration' smart constructor.
-data AlarmConfiguration = AlarmConfiguration'
-    { _acIgnorePollAlarmFailure :: !(Maybe Bool)
-    , _acEnabled                :: !(Maybe Bool)
-    , _acAlarms                 :: !(Maybe [Alarm])
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AlarmConfiguration' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'acIgnorePollAlarmFailure' - Indicates whether a deployment should continue if information about the current state of alarms cannot be retrieved from Amazon CloudWatch. The default value is false.     * true: The deployment will proceed even if alarm status information can't be retrieved from Amazon CloudWatch.     * false: The deployment will stop if alarm status information can't be retrieved from Amazon CloudWatch.
---
--- * 'acEnabled' - Indicates whether the alarm configuration is enabled.
---
--- * 'acAlarms' - A list of alarms configured for the deployment group. A maximum of 10 alarms can be added to a deployment group.
-alarmConfiguration
-    :: AlarmConfiguration
-alarmConfiguration =
-    AlarmConfiguration'
-    { _acIgnorePollAlarmFailure = Nothing
-    , _acEnabled = Nothing
-    , _acAlarms = Nothing
-    }
-
--- | Indicates whether a deployment should continue if information about the current state of alarms cannot be retrieved from Amazon CloudWatch. The default value is false.     * true: The deployment will proceed even if alarm status information can't be retrieved from Amazon CloudWatch.     * false: The deployment will stop if alarm status information can't be retrieved from Amazon CloudWatch.
-acIgnorePollAlarmFailure :: Lens' AlarmConfiguration (Maybe Bool)
-acIgnorePollAlarmFailure = lens _acIgnorePollAlarmFailure (\ s a -> s{_acIgnorePollAlarmFailure = a});
-
--- | Indicates whether the alarm configuration is enabled.
-acEnabled :: Lens' AlarmConfiguration (Maybe Bool)
-acEnabled = lens _acEnabled (\ s a -> s{_acEnabled = a});
-
--- | A list of alarms configured for the deployment group. A maximum of 10 alarms can be added to a deployment group.
-acAlarms :: Lens' AlarmConfiguration [Alarm]
-acAlarms = lens _acAlarms (\ s a -> s{_acAlarms = a}) . _Default . _Coerce;
-
-instance FromJSON AlarmConfiguration where
-        parseJSON
-          = withObject "AlarmConfiguration"
-              (\ x ->
-                 AlarmConfiguration' <$>
-                   (x .:? "ignorePollAlarmFailure") <*>
-                     (x .:? "enabled")
-                     <*> (x .:? "alarms" .!= mempty))
-
-instance Hashable AlarmConfiguration
-
-instance NFData AlarmConfiguration
-
-instance ToJSON AlarmConfiguration where
-        toJSON AlarmConfiguration'{..}
-          = object
-              (catMaybes
-                 [("ignorePollAlarmFailure" .=) <$>
-                    _acIgnorePollAlarmFailure,
-                  ("enabled" .=) <$> _acEnabled,
-                  ("alarms" .=) <$> _acAlarms])
-
--- | Information about an application.
---
---
---
--- /See:/ 'applicationInfo' smart constructor.
-data ApplicationInfo = ApplicationInfo'
-    { _aiLinkedToGitHub  :: !(Maybe Bool)
-    , _aiApplicationId   :: !(Maybe Text)
-    , _aiApplicationName :: !(Maybe Text)
-    , _aiCreateTime      :: !(Maybe POSIX)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ApplicationInfo' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aiLinkedToGitHub' - True if the user has authenticated with GitHub for the specified application; otherwise, false.
---
--- * 'aiApplicationId' - The application ID.
---
--- * 'aiApplicationName' - The application name.
---
--- * 'aiCreateTime' - The time at which the application was created.
-applicationInfo
-    :: ApplicationInfo
-applicationInfo =
-    ApplicationInfo'
-    { _aiLinkedToGitHub = Nothing
-    , _aiApplicationId = Nothing
-    , _aiApplicationName = Nothing
-    , _aiCreateTime = Nothing
-    }
-
--- | True if the user has authenticated with GitHub for the specified application; otherwise, false.
-aiLinkedToGitHub :: Lens' ApplicationInfo (Maybe Bool)
-aiLinkedToGitHub = lens _aiLinkedToGitHub (\ s a -> s{_aiLinkedToGitHub = a});
-
--- | The application ID.
-aiApplicationId :: Lens' ApplicationInfo (Maybe Text)
-aiApplicationId = lens _aiApplicationId (\ s a -> s{_aiApplicationId = a});
-
--- | The application name.
-aiApplicationName :: Lens' ApplicationInfo (Maybe Text)
-aiApplicationName = lens _aiApplicationName (\ s a -> s{_aiApplicationName = a});
-
--- | The time at which the application was created.
-aiCreateTime :: Lens' ApplicationInfo (Maybe UTCTime)
-aiCreateTime = lens _aiCreateTime (\ s a -> s{_aiCreateTime = a}) . mapping _Time;
-
-instance FromJSON ApplicationInfo where
-        parseJSON
-          = withObject "ApplicationInfo"
-              (\ x ->
-                 ApplicationInfo' <$>
-                   (x .:? "linkedToGitHub") <*> (x .:? "applicationId")
-                     <*> (x .:? "applicationName")
-                     <*> (x .:? "createTime"))
-
-instance Hashable ApplicationInfo
-
-instance NFData ApplicationInfo
-
--- | Information about a configuration for automatically rolling back to a previous version of an application revision when a deployment doesn't complete successfully.
---
---
---
--- /See:/ 'autoRollbackConfiguration' smart constructor.
-data AutoRollbackConfiguration = AutoRollbackConfiguration'
-    { _arcEnabled :: !(Maybe Bool)
-    , _arcEvents  :: !(Maybe [AutoRollbackEvent])
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AutoRollbackConfiguration' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'arcEnabled' - Indicates whether a defined automatic rollback configuration is currently enabled.
---
--- * 'arcEvents' - The event type or types that trigger a rollback.
-autoRollbackConfiguration
-    :: AutoRollbackConfiguration
-autoRollbackConfiguration =
-    AutoRollbackConfiguration'
-    { _arcEnabled = Nothing
-    , _arcEvents = Nothing
-    }
-
--- | Indicates whether a defined automatic rollback configuration is currently enabled.
-arcEnabled :: Lens' AutoRollbackConfiguration (Maybe Bool)
-arcEnabled = lens _arcEnabled (\ s a -> s{_arcEnabled = a});
-
--- | The event type or types that trigger a rollback.
-arcEvents :: Lens' AutoRollbackConfiguration [AutoRollbackEvent]
-arcEvents = lens _arcEvents (\ s a -> s{_arcEvents = a}) . _Default . _Coerce;
-
-instance FromJSON AutoRollbackConfiguration where
-        parseJSON
-          = withObject "AutoRollbackConfiguration"
-              (\ x ->
-                 AutoRollbackConfiguration' <$>
-                   (x .:? "enabled") <*> (x .:? "events" .!= mempty))
-
-instance Hashable AutoRollbackConfiguration
-
-instance NFData AutoRollbackConfiguration
-
-instance ToJSON AutoRollbackConfiguration where
-        toJSON AutoRollbackConfiguration'{..}
-          = object
-              (catMaybes
-                 [("enabled" .=) <$> _arcEnabled,
-                  ("events" .=) <$> _arcEvents])
-
--- | Information about an Auto Scaling group.
---
---
---
--- /See:/ 'autoScalingGroup' smart constructor.
-data AutoScalingGroup = AutoScalingGroup'
-    { _asgHook :: !(Maybe Text)
-    , _asgName :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AutoScalingGroup' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'asgHook' - An Auto Scaling lifecycle event hook name.
---
--- * 'asgName' - The Auto Scaling group name.
-autoScalingGroup
-    :: AutoScalingGroup
-autoScalingGroup =
-    AutoScalingGroup'
-    { _asgHook = Nothing
-    , _asgName = Nothing
-    }
-
--- | An Auto Scaling lifecycle event hook name.
-asgHook :: Lens' AutoScalingGroup (Maybe Text)
-asgHook = lens _asgHook (\ s a -> s{_asgHook = a});
-
--- | The Auto Scaling group name.
-asgName :: Lens' AutoScalingGroup (Maybe Text)
-asgName = lens _asgName (\ s a -> s{_asgName = a});
-
-instance FromJSON AutoScalingGroup where
-        parseJSON
-          = withObject "AutoScalingGroup"
-              (\ x ->
-                 AutoScalingGroup' <$>
-                   (x .:? "hook") <*> (x .:? "name"))
-
-instance Hashable AutoScalingGroup
-
-instance NFData AutoScalingGroup
-
--- | Information about a deployment configuration.
---
---
---
--- /See:/ 'deploymentConfigInfo' smart constructor.
-data DeploymentConfigInfo = DeploymentConfigInfo'
-    { _dciDeploymentConfigName :: !(Maybe Text)
-    , _dciMinimumHealthyHosts  :: !(Maybe MinimumHealthyHosts)
-    , _dciDeploymentConfigId   :: !(Maybe Text)
-    , _dciCreateTime           :: !(Maybe POSIX)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DeploymentConfigInfo' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dciDeploymentConfigName' - The deployment configuration name.
---
--- * 'dciMinimumHealthyHosts' - Information about the number or percentage of minimum healthy instance.
---
--- * 'dciDeploymentConfigId' - The deployment configuration ID.
---
--- * 'dciCreateTime' - The time at which the deployment configuration was created.
-deploymentConfigInfo
-    :: DeploymentConfigInfo
-deploymentConfigInfo =
-    DeploymentConfigInfo'
-    { _dciDeploymentConfigName = Nothing
-    , _dciMinimumHealthyHosts = Nothing
-    , _dciDeploymentConfigId = Nothing
-    , _dciCreateTime = Nothing
-    }
-
--- | The deployment configuration name.
-dciDeploymentConfigName :: Lens' DeploymentConfigInfo (Maybe Text)
-dciDeploymentConfigName = lens _dciDeploymentConfigName (\ s a -> s{_dciDeploymentConfigName = a});
-
--- | Information about the number or percentage of minimum healthy instance.
-dciMinimumHealthyHosts :: Lens' DeploymentConfigInfo (Maybe MinimumHealthyHosts)
-dciMinimumHealthyHosts = lens _dciMinimumHealthyHosts (\ s a -> s{_dciMinimumHealthyHosts = a});
-
--- | The deployment configuration ID.
-dciDeploymentConfigId :: Lens' DeploymentConfigInfo (Maybe Text)
-dciDeploymentConfigId = lens _dciDeploymentConfigId (\ s a -> s{_dciDeploymentConfigId = a});
-
--- | The time at which the deployment configuration was created.
-dciCreateTime :: Lens' DeploymentConfigInfo (Maybe UTCTime)
-dciCreateTime = lens _dciCreateTime (\ s a -> s{_dciCreateTime = a}) . mapping _Time;
-
-instance FromJSON DeploymentConfigInfo where
-        parseJSON
-          = withObject "DeploymentConfigInfo"
-              (\ x ->
-                 DeploymentConfigInfo' <$>
-                   (x .:? "deploymentConfigName") <*>
-                     (x .:? "minimumHealthyHosts")
-                     <*> (x .:? "deploymentConfigId")
-                     <*> (x .:? "createTime"))
-
-instance Hashable DeploymentConfigInfo
-
-instance NFData DeploymentConfigInfo
-
--- | Information about a deployment group.
---
---
---
--- /See:/ 'deploymentGroupInfo' smart constructor.
-data DeploymentGroupInfo = DeploymentGroupInfo'
-    { _dgiServiceRoleARN               :: !(Maybe Text)
-    , _dgiDeploymentConfigName         :: !(Maybe Text)
-    , _dgiTargetRevision               :: !(Maybe RevisionLocation)
-    , _dgiEc2TagFilters                :: !(Maybe [EC2TagFilter])
-    , _dgiOnPremisesInstanceTagFilters :: !(Maybe [TagFilter])
-    , _dgiApplicationName              :: !(Maybe Text)
-    , _dgiAlarmConfiguration           :: !(Maybe AlarmConfiguration)
-    , _dgiTriggerConfigurations        :: !(Maybe [TriggerConfig])
-    , _dgiDeploymentGroupId            :: !(Maybe Text)
-    , _dgiAutoScalingGroups            :: !(Maybe [AutoScalingGroup])
-    , _dgiAutoRollbackConfiguration    :: !(Maybe AutoRollbackConfiguration)
-    , _dgiDeploymentGroupName          :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DeploymentGroupInfo' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dgiServiceRoleARN' - A service role ARN.
---
--- * 'dgiDeploymentConfigName' - The deployment configuration name.
---
--- * 'dgiTargetRevision' - Information about the deployment group's target revision, including type and location.
---
--- * 'dgiEc2TagFilters' - The Amazon EC2 tags on which to filter.
---
--- * 'dgiOnPremisesInstanceTagFilters' - The on-premises instance tags on which to filter.
---
--- * 'dgiApplicationName' - The application name.
---
--- * 'dgiAlarmConfiguration' - A list of alarms associated with the deployment group.
---
--- * 'dgiTriggerConfigurations' - Information about triggers associated with the deployment group.
---
--- * 'dgiDeploymentGroupId' - The deployment group ID.
---
--- * 'dgiAutoScalingGroups' - A list of associated Auto Scaling groups.
---
--- * 'dgiAutoRollbackConfiguration' - Information about the automatic rollback configuration associated with the deployment group.
---
--- * 'dgiDeploymentGroupName' - The deployment group name.
-deploymentGroupInfo
-    :: DeploymentGroupInfo
-deploymentGroupInfo =
-    DeploymentGroupInfo'
-    { _dgiServiceRoleARN = Nothing
-    , _dgiDeploymentConfigName = Nothing
-    , _dgiTargetRevision = Nothing
-    , _dgiEc2TagFilters = Nothing
-    , _dgiOnPremisesInstanceTagFilters = Nothing
-    , _dgiApplicationName = Nothing
-    , _dgiAlarmConfiguration = Nothing
-    , _dgiTriggerConfigurations = Nothing
-    , _dgiDeploymentGroupId = Nothing
-    , _dgiAutoScalingGroups = Nothing
-    , _dgiAutoRollbackConfiguration = Nothing
-    , _dgiDeploymentGroupName = Nothing
-    }
-
--- | A service role ARN.
-dgiServiceRoleARN :: Lens' DeploymentGroupInfo (Maybe Text)
-dgiServiceRoleARN = lens _dgiServiceRoleARN (\ s a -> s{_dgiServiceRoleARN = a});
-
--- | The deployment configuration name.
-dgiDeploymentConfigName :: Lens' DeploymentGroupInfo (Maybe Text)
-dgiDeploymentConfigName = lens _dgiDeploymentConfigName (\ s a -> s{_dgiDeploymentConfigName = a});
-
--- | Information about the deployment group's target revision, including type and location.
-dgiTargetRevision :: Lens' DeploymentGroupInfo (Maybe RevisionLocation)
-dgiTargetRevision = lens _dgiTargetRevision (\ s a -> s{_dgiTargetRevision = a});
-
--- | The Amazon EC2 tags on which to filter.
-dgiEc2TagFilters :: Lens' DeploymentGroupInfo [EC2TagFilter]
-dgiEc2TagFilters = lens _dgiEc2TagFilters (\ s a -> s{_dgiEc2TagFilters = a}) . _Default . _Coerce;
-
--- | The on-premises instance tags on which to filter.
-dgiOnPremisesInstanceTagFilters :: Lens' DeploymentGroupInfo [TagFilter]
-dgiOnPremisesInstanceTagFilters = lens _dgiOnPremisesInstanceTagFilters (\ s a -> s{_dgiOnPremisesInstanceTagFilters = a}) . _Default . _Coerce;
-
--- | The application name.
-dgiApplicationName :: Lens' DeploymentGroupInfo (Maybe Text)
-dgiApplicationName = lens _dgiApplicationName (\ s a -> s{_dgiApplicationName = a});
-
--- | A list of alarms associated with the deployment group.
-dgiAlarmConfiguration :: Lens' DeploymentGroupInfo (Maybe AlarmConfiguration)
-dgiAlarmConfiguration = lens _dgiAlarmConfiguration (\ s a -> s{_dgiAlarmConfiguration = a});
-
--- | Information about triggers associated with the deployment group.
-dgiTriggerConfigurations :: Lens' DeploymentGroupInfo [TriggerConfig]
-dgiTriggerConfigurations = lens _dgiTriggerConfigurations (\ s a -> s{_dgiTriggerConfigurations = a}) . _Default . _Coerce;
-
--- | The deployment group ID.
-dgiDeploymentGroupId :: Lens' DeploymentGroupInfo (Maybe Text)
-dgiDeploymentGroupId = lens _dgiDeploymentGroupId (\ s a -> s{_dgiDeploymentGroupId = a});
-
--- | A list of associated Auto Scaling groups.
-dgiAutoScalingGroups :: Lens' DeploymentGroupInfo [AutoScalingGroup]
-dgiAutoScalingGroups = lens _dgiAutoScalingGroups (\ s a -> s{_dgiAutoScalingGroups = a}) . _Default . _Coerce;
-
--- | Information about the automatic rollback configuration associated with the deployment group.
-dgiAutoRollbackConfiguration :: Lens' DeploymentGroupInfo (Maybe AutoRollbackConfiguration)
-dgiAutoRollbackConfiguration = lens _dgiAutoRollbackConfiguration (\ s a -> s{_dgiAutoRollbackConfiguration = a});
-
--- | The deployment group name.
-dgiDeploymentGroupName :: Lens' DeploymentGroupInfo (Maybe Text)
-dgiDeploymentGroupName = lens _dgiDeploymentGroupName (\ s a -> s{_dgiDeploymentGroupName = a});
-
-instance FromJSON DeploymentGroupInfo where
-        parseJSON
-          = withObject "DeploymentGroupInfo"
-              (\ x ->
-                 DeploymentGroupInfo' <$>
-                   (x .:? "serviceRoleArn") <*>
-                     (x .:? "deploymentConfigName")
-                     <*> (x .:? "targetRevision")
-                     <*> (x .:? "ec2TagFilters" .!= mempty)
-                     <*> (x .:? "onPremisesInstanceTagFilters" .!= mempty)
-                     <*> (x .:? "applicationName")
-                     <*> (x .:? "alarmConfiguration")
-                     <*> (x .:? "triggerConfigurations" .!= mempty)
-                     <*> (x .:? "deploymentGroupId")
-                     <*> (x .:? "autoScalingGroups" .!= mempty)
-                     <*> (x .:? "autoRollbackConfiguration")
-                     <*> (x .:? "deploymentGroupName"))
-
-instance Hashable DeploymentGroupInfo
-
-instance NFData DeploymentGroupInfo
-
--- | Information about a deployment.
---
---
---
--- /See:/ 'deploymentInfo' smart constructor.
-data DeploymentInfo = DeploymentInfo'
-    { _diCreator                       :: !(Maybe DeploymentCreator)
-    , _diStatus                        :: !(Maybe DeploymentStatus)
-    , _diDeploymentId                  :: !(Maybe Text)
-    , _diDeploymentConfigName          :: !(Maybe Text)
-    , _diStartTime                     :: !(Maybe POSIX)
-    , _diCompleteTime                  :: !(Maybe POSIX)
-    , _diErrorInformation              :: !(Maybe ErrorInformation)
-    , _diDeploymentOverview            :: !(Maybe DeploymentOverview)
-    , _diApplicationName               :: !(Maybe Text)
-    , _diRollbackInfo                  :: !(Maybe RollbackInfo)
-    , _diRevision                      :: !(Maybe RevisionLocation)
-    , _diDescription                   :: !(Maybe Text)
-    , _diCreateTime                    :: !(Maybe POSIX)
-    , _diAutoRollbackConfiguration     :: !(Maybe AutoRollbackConfiguration)
-    , _diUpdateOutdatedInstancesOnly   :: !(Maybe Bool)
-    , _diDeploymentGroupName           :: !(Maybe Text)
-    , _diIgnoreApplicationStopFailures :: !(Maybe Bool)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DeploymentInfo' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'diCreator' - The means by which the deployment was created:     * user: A user created the deployment.     * autoscaling: Auto Scaling created the deployment.     * codeDeployRollback: A rollback process created the deployment.
---
--- * 'diStatus' - The current state of the deployment as a whole.
---
--- * 'diDeploymentId' - The deployment ID.
---
--- * 'diDeploymentConfigName' - The deployment configuration name.
---
--- * 'diStartTime' - A timestamp indicating when the deployment was deployed to the deployment group. In some cases, the reported value of the start time may be later than the complete time. This is due to differences in the clock settings of back-end servers that participate in the deployment process.
---
--- * 'diCompleteTime' - A timestamp indicating when the deployment was complete.
---
--- * 'diErrorInformation' - Information about any error associated with this deployment.
---
--- * 'diDeploymentOverview' - A summary of the deployment status of the instances in the deployment.
---
--- * 'diApplicationName' - The application name.
---
--- * 'diRollbackInfo' - Information about a deployment rollback.
---
--- * 'diRevision' - Information about the location of stored application artifacts and the service from which to retrieve them.
---
--- * 'diDescription' - A comment about the deployment.
---
--- * 'diCreateTime' - A timestamp indicating when the deployment was created.
---
--- * 'diAutoRollbackConfiguration' - Information about the automatic rollback configuration associated with the deployment.
---
--- * 'diUpdateOutdatedInstancesOnly' - Indicates whether only instances that are not running the latest application revision are to be deployed to.
---
--- * 'diDeploymentGroupName' - The deployment group name.
---
--- * 'diIgnoreApplicationStopFailures' - If true, then if the deployment causes the ApplicationStop deployment lifecycle event to an instance to fail, the deployment to that instance will not be considered to have failed at that point and will continue on to the BeforeInstall deployment lifecycle event. If false or not specified, then if the deployment causes the ApplicationStop deployment lifecycle event to an instance to fail, the deployment to that instance will stop, and the deployment to that instance will be considered to have failed.
-deploymentInfo
-    :: DeploymentInfo
-deploymentInfo =
-    DeploymentInfo'
-    { _diCreator = Nothing
-    , _diStatus = Nothing
-    , _diDeploymentId = Nothing
-    , _diDeploymentConfigName = Nothing
-    , _diStartTime = Nothing
-    , _diCompleteTime = Nothing
-    , _diErrorInformation = Nothing
-    , _diDeploymentOverview = Nothing
-    , _diApplicationName = Nothing
-    , _diRollbackInfo = Nothing
-    , _diRevision = Nothing
-    , _diDescription = Nothing
-    , _diCreateTime = Nothing
-    , _diAutoRollbackConfiguration = Nothing
-    , _diUpdateOutdatedInstancesOnly = Nothing
-    , _diDeploymentGroupName = Nothing
-    , _diIgnoreApplicationStopFailures = Nothing
-    }
-
--- | The means by which the deployment was created:     * user: A user created the deployment.     * autoscaling: Auto Scaling created the deployment.     * codeDeployRollback: A rollback process created the deployment.
-diCreator :: Lens' DeploymentInfo (Maybe DeploymentCreator)
-diCreator = lens _diCreator (\ s a -> s{_diCreator = a});
-
--- | The current state of the deployment as a whole.
-diStatus :: Lens' DeploymentInfo (Maybe DeploymentStatus)
-diStatus = lens _diStatus (\ s a -> s{_diStatus = a});
-
--- | The deployment ID.
-diDeploymentId :: Lens' DeploymentInfo (Maybe Text)
-diDeploymentId = lens _diDeploymentId (\ s a -> s{_diDeploymentId = a});
-
--- | The deployment configuration name.
-diDeploymentConfigName :: Lens' DeploymentInfo (Maybe Text)
-diDeploymentConfigName = lens _diDeploymentConfigName (\ s a -> s{_diDeploymentConfigName = a});
-
--- | A timestamp indicating when the deployment was deployed to the deployment group. In some cases, the reported value of the start time may be later than the complete time. This is due to differences in the clock settings of back-end servers that participate in the deployment process.
-diStartTime :: Lens' DeploymentInfo (Maybe UTCTime)
-diStartTime = lens _diStartTime (\ s a -> s{_diStartTime = a}) . mapping _Time;
-
--- | A timestamp indicating when the deployment was complete.
-diCompleteTime :: Lens' DeploymentInfo (Maybe UTCTime)
-diCompleteTime = lens _diCompleteTime (\ s a -> s{_diCompleteTime = a}) . mapping _Time;
-
--- | Information about any error associated with this deployment.
-diErrorInformation :: Lens' DeploymentInfo (Maybe ErrorInformation)
-diErrorInformation = lens _diErrorInformation (\ s a -> s{_diErrorInformation = a});
-
--- | A summary of the deployment status of the instances in the deployment.
-diDeploymentOverview :: Lens' DeploymentInfo (Maybe DeploymentOverview)
-diDeploymentOverview = lens _diDeploymentOverview (\ s a -> s{_diDeploymentOverview = a});
-
--- | The application name.
-diApplicationName :: Lens' DeploymentInfo (Maybe Text)
-diApplicationName = lens _diApplicationName (\ s a -> s{_diApplicationName = a});
-
--- | Information about a deployment rollback.
-diRollbackInfo :: Lens' DeploymentInfo (Maybe RollbackInfo)
-diRollbackInfo = lens _diRollbackInfo (\ s a -> s{_diRollbackInfo = a});
-
--- | Information about the location of stored application artifacts and the service from which to retrieve them.
-diRevision :: Lens' DeploymentInfo (Maybe RevisionLocation)
-diRevision = lens _diRevision (\ s a -> s{_diRevision = a});
-
--- | A comment about the deployment.
-diDescription :: Lens' DeploymentInfo (Maybe Text)
-diDescription = lens _diDescription (\ s a -> s{_diDescription = a});
-
--- | A timestamp indicating when the deployment was created.
-diCreateTime :: Lens' DeploymentInfo (Maybe UTCTime)
-diCreateTime = lens _diCreateTime (\ s a -> s{_diCreateTime = a}) . mapping _Time;
-
--- | Information about the automatic rollback configuration associated with the deployment.
-diAutoRollbackConfiguration :: Lens' DeploymentInfo (Maybe AutoRollbackConfiguration)
-diAutoRollbackConfiguration = lens _diAutoRollbackConfiguration (\ s a -> s{_diAutoRollbackConfiguration = a});
-
--- | Indicates whether only instances that are not running the latest application revision are to be deployed to.
-diUpdateOutdatedInstancesOnly :: Lens' DeploymentInfo (Maybe Bool)
-diUpdateOutdatedInstancesOnly = lens _diUpdateOutdatedInstancesOnly (\ s a -> s{_diUpdateOutdatedInstancesOnly = a});
-
--- | The deployment group name.
-diDeploymentGroupName :: Lens' DeploymentInfo (Maybe Text)
-diDeploymentGroupName = lens _diDeploymentGroupName (\ s a -> s{_diDeploymentGroupName = a});
-
--- | If true, then if the deployment causes the ApplicationStop deployment lifecycle event to an instance to fail, the deployment to that instance will not be considered to have failed at that point and will continue on to the BeforeInstall deployment lifecycle event. If false or not specified, then if the deployment causes the ApplicationStop deployment lifecycle event to an instance to fail, the deployment to that instance will stop, and the deployment to that instance will be considered to have failed.
-diIgnoreApplicationStopFailures :: Lens' DeploymentInfo (Maybe Bool)
-diIgnoreApplicationStopFailures = lens _diIgnoreApplicationStopFailures (\ s a -> s{_diIgnoreApplicationStopFailures = a});
-
-instance FromJSON DeploymentInfo where
-        parseJSON
-          = withObject "DeploymentInfo"
-              (\ x ->
-                 DeploymentInfo' <$>
-                   (x .:? "creator") <*> (x .:? "status") <*>
-                     (x .:? "deploymentId")
-                     <*> (x .:? "deploymentConfigName")
-                     <*> (x .:? "startTime")
-                     <*> (x .:? "completeTime")
-                     <*> (x .:? "errorInformation")
-                     <*> (x .:? "deploymentOverview")
-                     <*> (x .:? "applicationName")
-                     <*> (x .:? "rollbackInfo")
-                     <*> (x .:? "revision")
-                     <*> (x .:? "description")
-                     <*> (x .:? "createTime")
-                     <*> (x .:? "autoRollbackConfiguration")
-                     <*> (x .:? "updateOutdatedInstancesOnly")
-                     <*> (x .:? "deploymentGroupName")
-                     <*> (x .:? "ignoreApplicationStopFailures"))
-
-instance Hashable DeploymentInfo
-
-instance NFData DeploymentInfo
-
--- | Information about the deployment status of the instances in the deployment.
---
---
---
--- /See:/ 'deploymentOverview' smart constructor.
-data DeploymentOverview = DeploymentOverview'
-    { _doPending    :: !(Maybe Integer)
-    , _doSkipped    :: !(Maybe Integer)
-    , _doInProgress :: !(Maybe Integer)
-    , _doSucceeded  :: !(Maybe Integer)
-    , _doFailed     :: !(Maybe Integer)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DeploymentOverview' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'doPending' - The number of instances in the deployment in a pending state.
---
--- * 'doSkipped' - The number of instances in the deployment in a skipped state.
---
--- * 'doInProgress' - The number of instances in which the deployment is in progress.
---
--- * 'doSucceeded' - The number of instances in the deployment to which revisions have been successfully deployed.
---
--- * 'doFailed' - The number of instances in the deployment in a failed state.
-deploymentOverview
-    :: DeploymentOverview
-deploymentOverview =
-    DeploymentOverview'
-    { _doPending = Nothing
-    , _doSkipped = Nothing
-    , _doInProgress = Nothing
-    , _doSucceeded = Nothing
-    , _doFailed = Nothing
-    }
-
--- | The number of instances in the deployment in a pending state.
-doPending :: Lens' DeploymentOverview (Maybe Integer)
-doPending = lens _doPending (\ s a -> s{_doPending = a});
-
--- | The number of instances in the deployment in a skipped state.
-doSkipped :: Lens' DeploymentOverview (Maybe Integer)
-doSkipped = lens _doSkipped (\ s a -> s{_doSkipped = a});
-
--- | The number of instances in which the deployment is in progress.
-doInProgress :: Lens' DeploymentOverview (Maybe Integer)
-doInProgress = lens _doInProgress (\ s a -> s{_doInProgress = a});
-
--- | The number of instances in the deployment to which revisions have been successfully deployed.
-doSucceeded :: Lens' DeploymentOverview (Maybe Integer)
-doSucceeded = lens _doSucceeded (\ s a -> s{_doSucceeded = a});
-
--- | The number of instances in the deployment in a failed state.
-doFailed :: Lens' DeploymentOverview (Maybe Integer)
-doFailed = lens _doFailed (\ s a -> s{_doFailed = a});
-
-instance FromJSON DeploymentOverview where
-        parseJSON
-          = withObject "DeploymentOverview"
-              (\ x ->
-                 DeploymentOverview' <$>
-                   (x .:? "Pending") <*> (x .:? "Skipped") <*>
-                     (x .:? "InProgress")
-                     <*> (x .:? "Succeeded")
-                     <*> (x .:? "Failed"))
-
-instance Hashable DeploymentOverview
-
-instance NFData DeploymentOverview
-
--- | Diagnostic information about executable scripts that are part of a deployment.
---
---
---
--- /See:/ 'diagnostics' smart constructor.
-data Diagnostics = Diagnostics'
-    { _dLogTail    :: !(Maybe Text)
-    , _dErrorCode  :: !(Maybe LifecycleErrorCode)
-    , _dScriptName :: !(Maybe Text)
-    , _dMessage    :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Diagnostics' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dLogTail' - The last portion of the diagnostic log. If available, AWS CodeDeploy returns up to the last 4 KB of the diagnostic log.
---
--- * 'dErrorCode' - The associated error code:     * Success: The specified script ran.     * ScriptMissing: The specified script was not found in the specified location.     * ScriptNotExecutable: The specified script is not a recognized executable file type.     * ScriptTimedOut: The specified script did not finish running in the specified time period.     * ScriptFailed: The specified script failed to run as expected.     * UnknownError: The specified script did not run for an unknown reason.
---
--- * 'dScriptName' - The name of the script.
---
--- * 'dMessage' - The message associated with the error.
-diagnostics
-    :: Diagnostics
-diagnostics =
-    Diagnostics'
-    { _dLogTail = Nothing
-    , _dErrorCode = Nothing
-    , _dScriptName = Nothing
-    , _dMessage = Nothing
-    }
-
--- | The last portion of the diagnostic log. If available, AWS CodeDeploy returns up to the last 4 KB of the diagnostic log.
-dLogTail :: Lens' Diagnostics (Maybe Text)
-dLogTail = lens _dLogTail (\ s a -> s{_dLogTail = a});
-
--- | The associated error code:     * Success: The specified script ran.     * ScriptMissing: The specified script was not found in the specified location.     * ScriptNotExecutable: The specified script is not a recognized executable file type.     * ScriptTimedOut: The specified script did not finish running in the specified time period.     * ScriptFailed: The specified script failed to run as expected.     * UnknownError: The specified script did not run for an unknown reason.
-dErrorCode :: Lens' Diagnostics (Maybe LifecycleErrorCode)
-dErrorCode = lens _dErrorCode (\ s a -> s{_dErrorCode = a});
-
--- | The name of the script.
-dScriptName :: Lens' Diagnostics (Maybe Text)
-dScriptName = lens _dScriptName (\ s a -> s{_dScriptName = a});
-
--- | The message associated with the error.
-dMessage :: Lens' Diagnostics (Maybe Text)
-dMessage = lens _dMessage (\ s a -> s{_dMessage = a});
-
-instance FromJSON Diagnostics where
-        parseJSON
-          = withObject "Diagnostics"
-              (\ x ->
-                 Diagnostics' <$>
-                   (x .:? "logTail") <*> (x .:? "errorCode") <*>
-                     (x .:? "scriptName")
-                     <*> (x .:? "message"))
-
-instance Hashable Diagnostics
-
-instance NFData Diagnostics
-
--- | Information about a tag filter.
---
---
---
--- /See:/ 'ec2TagFilter' smart constructor.
-data EC2TagFilter = EC2TagFilter'
-    { _etfValue :: !(Maybe Text)
-    , _etfKey   :: !(Maybe Text)
-    , _etfType  :: !(Maybe EC2TagFilterType)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'EC2TagFilter' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'etfValue' - The tag filter value.
---
--- * 'etfKey' - The tag filter key.
---
--- * 'etfType' - The tag filter type:     * KEY_ONLY: Key only.     * VALUE_ONLY: Value only.     * KEY_AND_VALUE: Key and value.
-ec2TagFilter
-    :: EC2TagFilter
-ec2TagFilter =
-    EC2TagFilter'
-    { _etfValue = Nothing
-    , _etfKey = Nothing
-    , _etfType = Nothing
-    }
-
--- | The tag filter value.
-etfValue :: Lens' EC2TagFilter (Maybe Text)
-etfValue = lens _etfValue (\ s a -> s{_etfValue = a});
-
--- | The tag filter key.
-etfKey :: Lens' EC2TagFilter (Maybe Text)
-etfKey = lens _etfKey (\ s a -> s{_etfKey = a});
-
--- | The tag filter type:     * KEY_ONLY: Key only.     * VALUE_ONLY: Value only.     * KEY_AND_VALUE: Key and value.
-etfType :: Lens' EC2TagFilter (Maybe EC2TagFilterType)
-etfType = lens _etfType (\ s a -> s{_etfType = a});
-
-instance FromJSON EC2TagFilter where
-        parseJSON
-          = withObject "EC2TagFilter"
-              (\ x ->
-                 EC2TagFilter' <$>
-                   (x .:? "Value") <*> (x .:? "Key") <*> (x .:? "Type"))
-
-instance Hashable EC2TagFilter
-
-instance NFData EC2TagFilter
-
-instance ToJSON EC2TagFilter where
-        toJSON EC2TagFilter'{..}
-          = object
-              (catMaybes
-                 [("Value" .=) <$> _etfValue, ("Key" .=) <$> _etfKey,
-                  ("Type" .=) <$> _etfType])
-
--- | Information about a deployment error.
---
---
---
--- /See:/ 'errorInformation' smart constructor.
-data ErrorInformation = ErrorInformation'
-    { _eiCode    :: !(Maybe DeployErrorCode)
-    , _eiMessage :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ErrorInformation' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'eiCode' - The error code:     * APPLICATION_MISSING: The application was missing. This error code will most likely be raised if the application is deleted after the deployment is created but before it is started.     * DEPLOYMENT_GROUP_MISSING: The deployment group was missing. This error code will most likely be raised if the deployment group is deleted after the deployment is created but before it is started.     * HEALTH_CONSTRAINTS: The deployment failed on too many instances to be successfully deployed within the instance health constraints specified.     * HEALTH_CONSTRAINTS_INVALID: The revision cannot be successfully deployed within the instance health constraints specified.     * IAM_ROLE_MISSING: The service role cannot be accessed.     * IAM_ROLE_PERMISSIONS: The service role does not have 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 instance were specified, or no instance can be found.     * OVER_MAX_INSTANCES: The maximum number of instance 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. This error code will most likely be raised if the revision is deleted after the deployment is created but before it is started.
---
--- * 'eiMessage' - An accompanying error message.
-errorInformation
-    :: ErrorInformation
-errorInformation =
-    ErrorInformation'
-    { _eiCode = Nothing
-    , _eiMessage = Nothing
-    }
-
--- | The error code:     * APPLICATION_MISSING: The application was missing. This error code will most likely be raised if the application is deleted after the deployment is created but before it is started.     * DEPLOYMENT_GROUP_MISSING: The deployment group was missing. This error code will most likely be raised if the deployment group is deleted after the deployment is created but before it is started.     * HEALTH_CONSTRAINTS: The deployment failed on too many instances to be successfully deployed within the instance health constraints specified.     * HEALTH_CONSTRAINTS_INVALID: The revision cannot be successfully deployed within the instance health constraints specified.     * IAM_ROLE_MISSING: The service role cannot be accessed.     * IAM_ROLE_PERMISSIONS: The service role does not have 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 instance were specified, or no instance can be found.     * OVER_MAX_INSTANCES: The maximum number of instance 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. This error code will most likely be raised if the revision is deleted after the deployment is created but before it is started.
-eiCode :: Lens' ErrorInformation (Maybe DeployErrorCode)
-eiCode = lens _eiCode (\ s a -> s{_eiCode = a});
-
--- | An accompanying error message.
-eiMessage :: Lens' ErrorInformation (Maybe Text)
-eiMessage = lens _eiMessage (\ s a -> s{_eiMessage = a});
-
-instance FromJSON ErrorInformation where
-        parseJSON
-          = withObject "ErrorInformation"
-              (\ x ->
-                 ErrorInformation' <$>
-                   (x .:? "code") <*> (x .:? "message"))
-
-instance Hashable ErrorInformation
-
-instance NFData ErrorInformation
-
--- | Information about an application revision.
---
---
---
--- /See:/ 'genericRevisionInfo' smart constructor.
-data GenericRevisionInfo = GenericRevisionInfo'
-    { _griRegisterTime     :: !(Maybe POSIX)
-    , _griFirstUsedTime    :: !(Maybe POSIX)
-    , _griDeploymentGroups :: !(Maybe [Text])
-    , _griLastUsedTime     :: !(Maybe POSIX)
-    , _griDescription      :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'GenericRevisionInfo' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'griRegisterTime' - When the revision was registered with AWS CodeDeploy.
---
--- * 'griFirstUsedTime' - When the revision was first used by AWS CodeDeploy.
---
--- * 'griDeploymentGroups' - The deployment groups for which this is the current target revision.
---
--- * 'griLastUsedTime' - When the revision was last used by AWS CodeDeploy.
---
--- * 'griDescription' - A comment about the revision.
-genericRevisionInfo
-    :: GenericRevisionInfo
-genericRevisionInfo =
-    GenericRevisionInfo'
-    { _griRegisterTime = Nothing
-    , _griFirstUsedTime = Nothing
-    , _griDeploymentGroups = Nothing
-    , _griLastUsedTime = Nothing
-    , _griDescription = Nothing
-    }
-
--- | When the revision was registered with AWS CodeDeploy.
-griRegisterTime :: Lens' GenericRevisionInfo (Maybe UTCTime)
-griRegisterTime = lens _griRegisterTime (\ s a -> s{_griRegisterTime = a}) . mapping _Time;
-
--- | When the revision was first used by AWS CodeDeploy.
-griFirstUsedTime :: Lens' GenericRevisionInfo (Maybe UTCTime)
-griFirstUsedTime = lens _griFirstUsedTime (\ s a -> s{_griFirstUsedTime = a}) . mapping _Time;
-
--- | The deployment groups for which this is the current target revision.
-griDeploymentGroups :: Lens' GenericRevisionInfo [Text]
-griDeploymentGroups = lens _griDeploymentGroups (\ s a -> s{_griDeploymentGroups = a}) . _Default . _Coerce;
-
--- | When the revision was last used by AWS CodeDeploy.
-griLastUsedTime :: Lens' GenericRevisionInfo (Maybe UTCTime)
-griLastUsedTime = lens _griLastUsedTime (\ s a -> s{_griLastUsedTime = a}) . mapping _Time;
-
--- | A comment about the revision.
-griDescription :: Lens' GenericRevisionInfo (Maybe Text)
-griDescription = lens _griDescription (\ s a -> s{_griDescription = a});
-
-instance FromJSON GenericRevisionInfo where
-        parseJSON
-          = withObject "GenericRevisionInfo"
-              (\ x ->
-                 GenericRevisionInfo' <$>
-                   (x .:? "registerTime") <*> (x .:? "firstUsedTime")
-                     <*> (x .:? "deploymentGroups" .!= mempty)
-                     <*> (x .:? "lastUsedTime")
-                     <*> (x .:? "description"))
-
-instance Hashable GenericRevisionInfo
-
-instance NFData GenericRevisionInfo
-
--- | Information about the location of application artifacts stored in GitHub.
---
---
---
--- /See:/ 'gitHubLocation' smart constructor.
-data GitHubLocation = GitHubLocation'
-    { _ghlCommitId   :: !(Maybe Text)
-    , _ghlRepository :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'GitHubLocation' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ghlCommitId' - The SHA1 commit ID of the GitHub commit that represents the bundled artifacts for the application revision.
---
--- * 'ghlRepository' - The GitHub account and repository pair that stores a reference to the commit that represents the bundled artifacts for the application revision.  Specified as account/repository.
-gitHubLocation
-    :: GitHubLocation
-gitHubLocation =
-    GitHubLocation'
-    { _ghlCommitId = Nothing
-    , _ghlRepository = Nothing
-    }
-
--- | The SHA1 commit ID of the GitHub commit that represents the bundled artifacts for the application revision.
-ghlCommitId :: Lens' GitHubLocation (Maybe Text)
-ghlCommitId = lens _ghlCommitId (\ s a -> s{_ghlCommitId = a});
-
--- | The GitHub account and repository pair that stores a reference to the commit that represents the bundled artifacts for the application revision.  Specified as account/repository.
-ghlRepository :: Lens' GitHubLocation (Maybe Text)
-ghlRepository = lens _ghlRepository (\ s a -> s{_ghlRepository = a});
-
-instance FromJSON GitHubLocation where
-        parseJSON
-          = withObject "GitHubLocation"
-              (\ x ->
-                 GitHubLocation' <$>
-                   (x .:? "commitId") <*> (x .:? "repository"))
-
-instance Hashable GitHubLocation
-
-instance NFData GitHubLocation
-
-instance ToJSON GitHubLocation where
-        toJSON GitHubLocation'{..}
-          = object
-              (catMaybes
-                 [("commitId" .=) <$> _ghlCommitId,
-                  ("repository" .=) <$> _ghlRepository])
-
--- | Information about an on-premises instance.
---
---
---
--- /See:/ 'instanceInfo' smart constructor.
-data InstanceInfo = InstanceInfo'
-    { _iiRegisterTime   :: !(Maybe POSIX)
-    , _iiInstanceARN    :: !(Maybe Text)
-    , _iiDeregisterTime :: !(Maybe POSIX)
-    , _iiIamUserARN     :: !(Maybe Text)
-    , _iiInstanceName   :: !(Maybe Text)
-    , _iiTags           :: !(Maybe [Tag])
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'InstanceInfo' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iiRegisterTime' - The time at which the on-premises instance was registered.
---
--- * 'iiInstanceARN' - The ARN of the on-premises instance.
---
--- * 'iiDeregisterTime' - If the on-premises instance was deregistered, the time at which the on-premises instance was deregistered.
---
--- * 'iiIamUserARN' - The IAM user ARN associated with the on-premises instance.
---
--- * 'iiInstanceName' - The name of the on-premises instance.
---
--- * 'iiTags' - The tags currently associated with the on-premises instance.
-instanceInfo
-    :: InstanceInfo
-instanceInfo =
-    InstanceInfo'
-    { _iiRegisterTime = Nothing
-    , _iiInstanceARN = Nothing
-    , _iiDeregisterTime = Nothing
-    , _iiIamUserARN = Nothing
-    , _iiInstanceName = Nothing
-    , _iiTags = Nothing
-    }
-
--- | The time at which the on-premises instance was registered.
-iiRegisterTime :: Lens' InstanceInfo (Maybe UTCTime)
-iiRegisterTime = lens _iiRegisterTime (\ s a -> s{_iiRegisterTime = a}) . mapping _Time;
-
--- | The ARN of the on-premises instance.
-iiInstanceARN :: Lens' InstanceInfo (Maybe Text)
-iiInstanceARN = lens _iiInstanceARN (\ s a -> s{_iiInstanceARN = a});
-
--- | If the on-premises instance was deregistered, the time at which 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 name of the on-premises instance.
-iiInstanceName :: Lens' InstanceInfo (Maybe Text)
-iiInstanceName = lens _iiInstanceName (\ s a -> s{_iiInstanceName = a});
-
--- | The tags currently associated with the on-premises instance.
-iiTags :: Lens' InstanceInfo [Tag]
-iiTags = lens _iiTags (\ s a -> s{_iiTags = a}) . _Default . _Coerce;
-
-instance FromJSON InstanceInfo where
-        parseJSON
-          = withObject "InstanceInfo"
-              (\ x ->
-                 InstanceInfo' <$>
-                   (x .:? "registerTime") <*> (x .:? "instanceArn") <*>
-                     (x .:? "deregisterTime")
-                     <*> (x .:? "iamUserArn")
-                     <*> (x .:? "instanceName")
-                     <*> (x .:? "tags" .!= mempty))
-
-instance Hashable InstanceInfo
-
-instance NFData InstanceInfo
-
--- | Information about an instance in a deployment.
---
---
---
--- /See:/ 'instanceSummary' smart constructor.
-data InstanceSummary = InstanceSummary'
-    { _isInstanceId      :: !(Maybe Text)
-    , _isStatus          :: !(Maybe InstanceStatus)
-    , _isDeploymentId    :: !(Maybe Text)
-    , _isLastUpdatedAt   :: !(Maybe POSIX)
-    , _isLifecycleEvents :: !(Maybe [LifecycleEvent])
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'InstanceSummary' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'isInstanceId' - The instance ID.
---
--- * 'isStatus' - The deployment status for this instance:     * Pending: The deployment is pending for this instance.     * In Progress: The deployment is in progress for this instance.     * Succeeded: The deployment has succeeded for this instance.     * Failed: The deployment has failed for this instance.     * Skipped: The deployment has been skipped for this instance.     * Unknown: The deployment status is unknown for this instance.
---
--- * 'isDeploymentId' - The deployment ID.
---
--- * 'isLastUpdatedAt' - A timestamp indicating when the instance information was last updated.
---
--- * 'isLifecycleEvents' - A list of lifecycle events for this instance.
-instanceSummary
-    :: InstanceSummary
-instanceSummary =
-    InstanceSummary'
-    { _isInstanceId = Nothing
-    , _isStatus = Nothing
-    , _isDeploymentId = Nothing
-    , _isLastUpdatedAt = Nothing
-    , _isLifecycleEvents = Nothing
-    }
-
--- | The instance ID.
-isInstanceId :: Lens' InstanceSummary (Maybe Text)
-isInstanceId = lens _isInstanceId (\ s a -> s{_isInstanceId = a});
-
--- | The deployment status for this instance:     * Pending: The deployment is pending for this instance.     * In Progress: The deployment is in progress for this instance.     * Succeeded: The deployment has succeeded for this instance.     * Failed: The deployment has failed for this instance.     * Skipped: The deployment has been skipped for this instance.     * Unknown: The deployment status is unknown for this instance.
-isStatus :: Lens' InstanceSummary (Maybe InstanceStatus)
-isStatus = lens _isStatus (\ s a -> s{_isStatus = a});
-
--- | The deployment ID.
-isDeploymentId :: Lens' InstanceSummary (Maybe Text)
-isDeploymentId = lens _isDeploymentId (\ s a -> s{_isDeploymentId = a});
-
--- | A timestamp indicating when the instance information was last updated.
-isLastUpdatedAt :: Lens' InstanceSummary (Maybe UTCTime)
-isLastUpdatedAt = lens _isLastUpdatedAt (\ s a -> s{_isLastUpdatedAt = a}) . mapping _Time;
-
--- | A list of lifecycle events for this instance.
-isLifecycleEvents :: Lens' InstanceSummary [LifecycleEvent]
-isLifecycleEvents = lens _isLifecycleEvents (\ s a -> s{_isLifecycleEvents = a}) . _Default . _Coerce;
-
-instance FromJSON InstanceSummary where
-        parseJSON
-          = withObject "InstanceSummary"
-              (\ x ->
-                 InstanceSummary' <$>
-                   (x .:? "instanceId") <*> (x .:? "status") <*>
-                     (x .:? "deploymentId")
-                     <*> (x .:? "lastUpdatedAt")
-                     <*> (x .:? "lifecycleEvents" .!= mempty))
-
-instance Hashable InstanceSummary
-
-instance NFData InstanceSummary
-
--- | Information about a deployment lifecycle event.
---
---
---
--- /See:/ 'lifecycleEvent' smart constructor.
-data LifecycleEvent = LifecycleEvent'
-    { _leStatus             :: !(Maybe LifecycleEventStatus)
-    , _leLifecycleEventName :: !(Maybe Text)
-    , _leStartTime          :: !(Maybe POSIX)
-    , _leDiagnostics        :: !(Maybe Diagnostics)
-    , _leEndTime            :: !(Maybe POSIX)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'LifecycleEvent' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'leStatus' - The deployment lifecycle event status:     * Pending: The deployment lifecycle event is pending.     * InProgress: The deployment lifecycle event is in progress.     * Succeeded: The deployment lifecycle event ran successfully.     * Failed: The deployment lifecycle event has failed.     * Skipped: The deployment lifecycle event has been skipped.     * Unknown: The deployment lifecycle event is unknown.
---
--- * 'leLifecycleEventName' - The deployment lifecycle event name, such as ApplicationStop, BeforeInstall, AfterInstall, ApplicationStart, or ValidateService.
---
--- * 'leStartTime' - A timestamp indicating when the deployment lifecycle event started.
---
--- * 'leDiagnostics' - Diagnostic information about the deployment lifecycle event.
---
--- * 'leEndTime' - A timestamp indicating when the deployment lifecycle event ended.
-lifecycleEvent
-    :: LifecycleEvent
-lifecycleEvent =
-    LifecycleEvent'
-    { _leStatus = Nothing
-    , _leLifecycleEventName = Nothing
-    , _leStartTime = Nothing
-    , _leDiagnostics = Nothing
-    , _leEndTime = Nothing
-    }
-
--- | The deployment lifecycle event status:     * Pending: The deployment lifecycle event is pending.     * InProgress: The deployment lifecycle event is in progress.     * Succeeded: The deployment lifecycle event ran successfully.     * Failed: The deployment lifecycle event has failed.     * Skipped: The deployment lifecycle event has been skipped.     * Unknown: The deployment lifecycle event is unknown.
-leStatus :: Lens' LifecycleEvent (Maybe LifecycleEventStatus)
-leStatus = lens _leStatus (\ s a -> s{_leStatus = a});
-
--- | The deployment lifecycle event name, such as ApplicationStop, BeforeInstall, AfterInstall, ApplicationStart, or ValidateService.
-leLifecycleEventName :: Lens' LifecycleEvent (Maybe Text)
-leLifecycleEventName = lens _leLifecycleEventName (\ s a -> s{_leLifecycleEventName = a});
-
--- | A timestamp indicating when the deployment lifecycle event started.
-leStartTime :: Lens' LifecycleEvent (Maybe UTCTime)
-leStartTime = lens _leStartTime (\ s a -> s{_leStartTime = a}) . mapping _Time;
-
--- | Diagnostic information about the deployment lifecycle event.
-leDiagnostics :: Lens' LifecycleEvent (Maybe Diagnostics)
-leDiagnostics = lens _leDiagnostics (\ s a -> s{_leDiagnostics = a});
-
--- | A timestamp indicating when the deployment lifecycle event ended.
-leEndTime :: Lens' LifecycleEvent (Maybe UTCTime)
-leEndTime = lens _leEndTime (\ s a -> s{_leEndTime = a}) . mapping _Time;
-
-instance FromJSON LifecycleEvent where
-        parseJSON
-          = withObject "LifecycleEvent"
-              (\ x ->
-                 LifecycleEvent' <$>
-                   (x .:? "status") <*> (x .:? "lifecycleEventName") <*>
-                     (x .:? "startTime")
-                     <*> (x .:? "diagnostics")
-                     <*> (x .:? "endTime"))
-
-instance Hashable LifecycleEvent
-
-instance NFData LifecycleEvent
-
--- | Information about minimum healthy instance.
---
---
---
--- /See:/ 'minimumHealthyHosts' smart constructor.
-data MinimumHealthyHosts = MinimumHealthyHosts'
-    { _mhhValue :: !(Maybe Int)
-    , _mhhType  :: !(Maybe MinimumHealthyHostsType)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'MinimumHealthyHosts' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mhhValue' - The minimum healthy instance value.
---
--- * 'mhhType' - The minimum healthy instance type:     * HOST_COUNT: The minimum number of healthy instance as an absolute value.     * FLEET_PERCENT: The minimum number of healthy instance as a percentage of the total number of instance in the deployment. In an example of nine instance, if a HOST_COUNT of six is specified, deploy to up to three instances at a time. The deployment will be successful if six or more instances are deployed to successfully; otherwise, the deployment fails. If a FLEET_PERCENT of 40 is specified, deploy to up to five instance at a time. The deployment will be successful if four or more instance are deployed to successfully; otherwise, the deployment fails.
-minimumHealthyHosts
-    :: MinimumHealthyHosts
-minimumHealthyHosts =
-    MinimumHealthyHosts'
-    { _mhhValue = Nothing
-    , _mhhType = Nothing
-    }
-
--- | The minimum healthy instance value.
-mhhValue :: Lens' MinimumHealthyHosts (Maybe Int)
-mhhValue = lens _mhhValue (\ s a -> s{_mhhValue = a});
-
--- | The minimum healthy instance type:     * HOST_COUNT: The minimum number of healthy instance as an absolute value.     * FLEET_PERCENT: The minimum number of healthy instance as a percentage of the total number of instance in the deployment. In an example of nine instance, if a HOST_COUNT of six is specified, deploy to up to three instances at a time. The deployment will be successful if six or more instances are deployed to successfully; otherwise, the deployment fails. If a FLEET_PERCENT of 40 is specified, deploy to up to five instance at a time. The deployment will be successful if four or more instance are deployed to successfully; otherwise, the deployment fails.
-mhhType :: Lens' MinimumHealthyHosts (Maybe MinimumHealthyHostsType)
-mhhType = lens _mhhType (\ s a -> s{_mhhType = a});
-
-instance FromJSON MinimumHealthyHosts where
-        parseJSON
-          = withObject "MinimumHealthyHosts"
-              (\ x ->
-                 MinimumHealthyHosts' <$>
-                   (x .:? "value") <*> (x .:? "type"))
-
-instance Hashable MinimumHealthyHosts
-
-instance NFData MinimumHealthyHosts
-
-instance ToJSON MinimumHealthyHosts where
-        toJSON MinimumHealthyHosts'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _mhhValue,
-                  ("type" .=) <$> _mhhType])
-
--- | Information about an application revision.
---
---
---
--- /See:/ 'revisionInfo' smart constructor.
-data RevisionInfo = RevisionInfo'
-    { _riGenericRevisionInfo :: !(Maybe GenericRevisionInfo)
-    , _riRevisionLocation    :: !(Maybe RevisionLocation)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'RevisionInfo' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'riGenericRevisionInfo' - Undocumented member.
---
--- * 'riRevisionLocation' - Undocumented member.
-revisionInfo
-    :: RevisionInfo
-revisionInfo =
-    RevisionInfo'
-    { _riGenericRevisionInfo = Nothing
-    , _riRevisionLocation = Nothing
-    }
-
--- | Undocumented member.
-riGenericRevisionInfo :: Lens' RevisionInfo (Maybe GenericRevisionInfo)
-riGenericRevisionInfo = lens _riGenericRevisionInfo (\ s a -> s{_riGenericRevisionInfo = a});
-
--- | Undocumented member.
-riRevisionLocation :: Lens' RevisionInfo (Maybe RevisionLocation)
-riRevisionLocation = lens _riRevisionLocation (\ s a -> s{_riRevisionLocation = a});
-
-instance FromJSON RevisionInfo where
-        parseJSON
-          = withObject "RevisionInfo"
-              (\ x ->
-                 RevisionInfo' <$>
-                   (x .:? "genericRevisionInfo") <*>
-                     (x .:? "revisionLocation"))
-
-instance Hashable RevisionInfo
-
-instance NFData RevisionInfo
-
--- | Information about the location of an application revision.
---
---
---
--- /See:/ 'revisionLocation' smart constructor.
-data RevisionLocation = RevisionLocation'
-    { _rlRevisionType   :: !(Maybe RevisionLocationType)
-    , _rlS3Location     :: !(Maybe S3Location)
-    , _rlGitHubLocation :: !(Maybe GitHubLocation)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'RevisionLocation' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rlRevisionType' - The type of application revision:     * S3: An application revision stored in Amazon S3.     * GitHub: An application revision stored in GitHub.
---
--- * 'rlS3Location' - Undocumented member.
---
--- * 'rlGitHubLocation' - Undocumented member.
-revisionLocation
-    :: RevisionLocation
-revisionLocation =
-    RevisionLocation'
-    { _rlRevisionType = Nothing
-    , _rlS3Location = Nothing
-    , _rlGitHubLocation = Nothing
-    }
-
--- | The type of application revision:     * S3: An application revision stored in Amazon S3.     * GitHub: An application revision stored in GitHub.
-rlRevisionType :: Lens' RevisionLocation (Maybe RevisionLocationType)
-rlRevisionType = lens _rlRevisionType (\ s a -> s{_rlRevisionType = a});
-
--- | Undocumented member.
-rlS3Location :: Lens' RevisionLocation (Maybe S3Location)
-rlS3Location = lens _rlS3Location (\ s a -> s{_rlS3Location = a});
-
--- | Undocumented member.
-rlGitHubLocation :: Lens' RevisionLocation (Maybe GitHubLocation)
-rlGitHubLocation = lens _rlGitHubLocation (\ s a -> s{_rlGitHubLocation = a});
-
-instance FromJSON RevisionLocation where
-        parseJSON
-          = withObject "RevisionLocation"
-              (\ x ->
-                 RevisionLocation' <$>
-                   (x .:? "revisionType") <*> (x .:? "s3Location") <*>
-                     (x .:? "gitHubLocation"))
-
-instance Hashable RevisionLocation
-
-instance NFData RevisionLocation
-
-instance ToJSON RevisionLocation where
-        toJSON RevisionLocation'{..}
-          = object
-              (catMaybes
-                 [("revisionType" .=) <$> _rlRevisionType,
-                  ("s3Location" .=) <$> _rlS3Location,
-                  ("gitHubLocation" .=) <$> _rlGitHubLocation])
-
--- | Information about a deployment rollback.
---
---
---
--- /See:/ 'rollbackInfo' smart constructor.
-data RollbackInfo = RollbackInfo'
-    { _riRollbackTriggeringDeploymentId :: !(Maybe Text)
-    , _riRollbackMessage                :: !(Maybe Text)
-    , _riRollbackDeploymentId           :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'RollbackInfo' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'riRollbackTriggeringDeploymentId' - The deployment ID of the deployment that was underway and triggered a rollback deployment because it failed or was stopped.
---
--- * 'riRollbackMessage' - Information describing the status of a deployment rollback; for example, whether the deployment can't be rolled back, is in progress, failed, or succeeded.
---
--- * 'riRollbackDeploymentId' - The ID of the deployment rollback.
-rollbackInfo
-    :: RollbackInfo
-rollbackInfo =
-    RollbackInfo'
-    { _riRollbackTriggeringDeploymentId = Nothing
-    , _riRollbackMessage = Nothing
-    , _riRollbackDeploymentId = Nothing
-    }
-
--- | The deployment ID of the deployment that was underway and triggered a rollback deployment because it failed or was stopped.
-riRollbackTriggeringDeploymentId :: Lens' RollbackInfo (Maybe Text)
-riRollbackTriggeringDeploymentId = lens _riRollbackTriggeringDeploymentId (\ s a -> s{_riRollbackTriggeringDeploymentId = a});
-
--- | Information describing the status of a deployment rollback; for example, whether the deployment can't be rolled back, is in progress, failed, or succeeded.
-riRollbackMessage :: Lens' RollbackInfo (Maybe Text)
-riRollbackMessage = lens _riRollbackMessage (\ s a -> s{_riRollbackMessage = a});
-
--- | The ID of the deployment rollback.
-riRollbackDeploymentId :: Lens' RollbackInfo (Maybe Text)
-riRollbackDeploymentId = lens _riRollbackDeploymentId (\ s a -> s{_riRollbackDeploymentId = a});
-
-instance FromJSON RollbackInfo where
-        parseJSON
-          = withObject "RollbackInfo"
-              (\ x ->
-                 RollbackInfo' <$>
-                   (x .:? "rollbackTriggeringDeploymentId") <*>
-                     (x .:? "rollbackMessage")
-                     <*> (x .:? "rollbackDeploymentId"))
-
-instance Hashable RollbackInfo
-
-instance NFData RollbackInfo
-
--- | Information about the location of application artifacts stored in Amazon S3.
---
---
---
--- /See:/ 's3Location' smart constructor.
-data S3Location = S3Location'
-    { _slBundleType :: !(Maybe BundleType)
-    , _slETag       :: !(Maybe Text)
-    , _slBucket     :: !(Maybe Text)
-    , _slKey        :: !(Maybe Text)
-    , _slVersion    :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'S3Location' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'slBundleType' - The file type of the application revision. Must be one of the following:     * tar: A tar archive file.     * tgz: A compressed tar archive file.     * zip: A zip archive file.
---
--- * 'slETag' - The ETag of the Amazon S3 object that represents the bundled artifacts for the application revision. If the ETag is not specified as an input parameter, ETag validation of the object will be skipped.
---
--- * 'slBucket' - The name of the Amazon S3 bucket where the application revision is stored.
---
--- * 'slKey' - The name of the Amazon S3 object that represents the bundled artifacts for the application revision.
---
--- * 'slVersion' - A specific version of the Amazon S3 object that represents the bundled artifacts for the application revision. If the version is not specified, the system will use the most recent version by default.
-s3Location
-    :: S3Location
-s3Location =
-    S3Location'
-    { _slBundleType = Nothing
-    , _slETag = Nothing
-    , _slBucket = Nothing
-    , _slKey = Nothing
-    , _slVersion = Nothing
-    }
-
--- | The file type of the application revision. Must be one of the following:     * tar: A tar archive file.     * tgz: A compressed tar archive file.     * zip: A zip archive file.
-slBundleType :: Lens' S3Location (Maybe BundleType)
-slBundleType = lens _slBundleType (\ s a -> s{_slBundleType = a});
-
--- | The ETag of the Amazon S3 object that represents the bundled artifacts for the application revision. If the ETag is not specified as an input parameter, ETag validation of the object will be skipped.
-slETag :: Lens' S3Location (Maybe Text)
-slETag = lens _slETag (\ s a -> s{_slETag = a});
-
--- | The name of the Amazon S3 bucket where the application revision is stored.
-slBucket :: Lens' S3Location (Maybe Text)
-slBucket = lens _slBucket (\ s a -> s{_slBucket = a});
-
--- | The name of the Amazon S3 object that represents the bundled artifacts for the application revision.
-slKey :: Lens' S3Location (Maybe Text)
-slKey = lens _slKey (\ s a -> s{_slKey = a});
-
--- | A specific version of the Amazon S3 object that represents the bundled artifacts for the application revision. If the version is not specified, the system will use the most recent version by default.
-slVersion :: Lens' S3Location (Maybe Text)
-slVersion = lens _slVersion (\ s a -> s{_slVersion = a});
-
-instance FromJSON S3Location where
-        parseJSON
-          = withObject "S3Location"
-              (\ x ->
-                 S3Location' <$>
-                   (x .:? "bundleType") <*> (x .:? "eTag") <*>
-                     (x .:? "bucket")
-                     <*> (x .:? "key")
-                     <*> (x .:? "version"))
-
-instance Hashable S3Location
-
-instance NFData S3Location
-
-instance ToJSON S3Location where
-        toJSON S3Location'{..}
-          = object
-              (catMaybes
-                 [("bundleType" .=) <$> _slBundleType,
-                  ("eTag" .=) <$> _slETag, ("bucket" .=) <$> _slBucket,
-                  ("key" .=) <$> _slKey,
-                  ("version" .=) <$> _slVersion])
-
--- | Information about a tag.
---
---
---
--- /See:/ 'tag' smart constructor.
-data Tag = Tag'
-    { _tagValue :: !(Maybe Text)
-    , _tagKey   :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Tag' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tagValue' - The tag's value.
---
--- * 'tagKey' - The tag's key.
-tag
-    :: Tag
-tag =
-    Tag'
-    { _tagValue = Nothing
-    , _tagKey = Nothing
-    }
-
--- | The tag's value.
-tagValue :: Lens' Tag (Maybe Text)
-tagValue = lens _tagValue (\ s a -> s{_tagValue = a});
-
--- | The tag's key.
-tagKey :: Lens' Tag (Maybe Text)
-tagKey = lens _tagKey (\ s a -> s{_tagKey = a});
-
-instance FromJSON Tag where
-        parseJSON
-          = withObject "Tag"
-              (\ x -> Tag' <$> (x .:? "Value") <*> (x .:? "Key"))
-
-instance Hashable Tag
-
-instance NFData Tag
-
-instance ToJSON Tag where
-        toJSON Tag'{..}
-          = object
-              (catMaybes
-                 [("Value" .=) <$> _tagValue, ("Key" .=) <$> _tagKey])
-
--- | Information about an on-premises instance tag filter.
---
---
---
--- /See:/ 'tagFilter' smart constructor.
-data TagFilter = TagFilter'
-    { _tfValue :: !(Maybe Text)
-    , _tfKey   :: !(Maybe Text)
-    , _tfType  :: !(Maybe TagFilterType)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'TagFilter' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tfValue' - The on-premises instance tag filter value.
---
--- * 'tfKey' - The on-premises instance tag filter key.
---
--- * 'tfType' - The on-premises instance tag filter type:     * KEY_ONLY: Key only.     * VALUE_ONLY: Value only.     * KEY_AND_VALUE: Key and value.
-tagFilter
-    :: TagFilter
-tagFilter =
-    TagFilter'
-    { _tfValue = Nothing
-    , _tfKey = Nothing
-    , _tfType = Nothing
-    }
-
--- | The on-premises instance tag filter value.
-tfValue :: Lens' TagFilter (Maybe Text)
-tfValue = lens _tfValue (\ s a -> s{_tfValue = a});
-
--- | 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});
-
-instance FromJSON TagFilter where
-        parseJSON
-          = withObject "TagFilter"
-              (\ x ->
-                 TagFilter' <$>
-                   (x .:? "Value") <*> (x .:? "Key") <*> (x .:? "Type"))
-
-instance Hashable TagFilter
-
-instance NFData TagFilter
-
-instance ToJSON TagFilter where
-        toJSON TagFilter'{..}
-          = object
-              (catMaybes
-                 [("Value" .=) <$> _tfValue, ("Key" .=) <$> _tfKey,
-                  ("Type" .=) <$> _tfType])
-
--- | Information about a time range.
---
---
---
--- /See:/ 'timeRange' smart constructor.
-data TimeRange = TimeRange'
-    { _trStart :: !(Maybe POSIX)
-    , _trEnd   :: !(Maybe POSIX)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'TimeRange' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'trStart' - The start time of the time range.
---
--- * 'trEnd' - The end time of the time range.
-timeRange
-    :: TimeRange
-timeRange =
-    TimeRange'
-    { _trStart = Nothing
-    , _trEnd = Nothing
-    }
-
--- | The start time of the time range.
-trStart :: Lens' TimeRange (Maybe UTCTime)
-trStart = lens _trStart (\ s a -> s{_trStart = a}) . mapping _Time;
-
--- | The end time of the time range.
-trEnd :: Lens' TimeRange (Maybe UTCTime)
-trEnd = lens _trEnd (\ s a -> s{_trEnd = a}) . mapping _Time;
-
-instance Hashable TimeRange
-
-instance NFData TimeRange
-
-instance ToJSON TimeRange where
-        toJSON TimeRange'{..}
-          = object
-              (catMaybes
-                 [("start" .=) <$> _trStart, ("end" .=) <$> _trEnd])
-
--- | Information about notification triggers for the deployment group.
---
---
---
--- /See:/ 'triggerConfig' smart constructor.
-data TriggerConfig = TriggerConfig'
-    { _tcTriggerName      :: !(Maybe Text)
-    , _tcTriggerEvents    :: !(Maybe [TriggerEventType])
-    , _tcTriggerTargetARN :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'TriggerConfig' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tcTriggerName' - The name of the notification trigger.
---
--- * 'tcTriggerEvents' - The event type or types for which notifications are triggered.
---
--- * 'tcTriggerTargetARN' - The ARN of the Amazon Simple Notification Service topic through which notifications about deployment or instance events are sent.
-triggerConfig
-    :: TriggerConfig
-triggerConfig =
-    TriggerConfig'
-    { _tcTriggerName = Nothing
-    , _tcTriggerEvents = Nothing
-    , _tcTriggerTargetARN = Nothing
-    }
-
--- | The name of the notification trigger.
-tcTriggerName :: Lens' TriggerConfig (Maybe Text)
-tcTriggerName = lens _tcTriggerName (\ s a -> s{_tcTriggerName = a});
-
--- | The event type or types for which notifications are triggered.
-tcTriggerEvents :: Lens' TriggerConfig [TriggerEventType]
-tcTriggerEvents = lens _tcTriggerEvents (\ s a -> s{_tcTriggerEvents = a}) . _Default . _Coerce;
-
--- | The ARN of the Amazon Simple Notification Service topic through which notifications about deployment or instance events are sent.
-tcTriggerTargetARN :: Lens' TriggerConfig (Maybe Text)
-tcTriggerTargetARN = lens _tcTriggerTargetARN (\ s a -> s{_tcTriggerTargetARN = a});
-
-instance FromJSON TriggerConfig where
-        parseJSON
-          = withObject "TriggerConfig"
-              (\ x ->
-                 TriggerConfig' <$>
-                   (x .:? "triggerName") <*>
-                     (x .:? "triggerEvents" .!= mempty)
-                     <*> (x .:? "triggerTargetArn"))
-
-instance Hashable TriggerConfig
-
-instance NFData TriggerConfig
+-- Copyright   : (c) 2013-2017 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.AWS.CodeDeploy.Types.Product where
+
+import Network.AWS.CodeDeploy.Types.Sum
+import Network.AWS.Lens
+import Network.AWS.Prelude
+
+-- | Information about an alarm.
+--
+--
+--
+-- /See:/ 'alarm' smart constructor.
+newtype Alarm = Alarm'
+  { _aName :: Maybe Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'Alarm' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aName' - The name of the alarm. Maximum length is 255 characters. Each alarm name can be used only once in a list of alarms.
+alarm
+    :: Alarm
+alarm = Alarm' {_aName = Nothing}
+
+
+-- | The name of the alarm. Maximum length is 255 characters. Each alarm name can be used only once in a list of alarms.
+aName :: Lens' Alarm (Maybe Text)
+aName = lens _aName (\ s a -> s{_aName = a});
+
+instance FromJSON Alarm where
+        parseJSON
+          = withObject "Alarm"
+              (\ x -> Alarm' <$> (x .:? "name"))
+
+instance Hashable Alarm where
+
+instance NFData Alarm where
+
+instance ToJSON Alarm where
+        toJSON Alarm'{..}
+          = object (catMaybes [("name" .=) <$> _aName])
+
+-- | Information about alarms associated with the deployment group.
+--
+--
+--
+-- /See:/ 'alarmConfiguration' smart constructor.
+data AlarmConfiguration = AlarmConfiguration'
+  { _acIgnorePollAlarmFailure :: !(Maybe Bool)
+  , _acEnabled                :: !(Maybe Bool)
+  , _acAlarms                 :: !(Maybe [Alarm])
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AlarmConfiguration' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'acIgnorePollAlarmFailure' - Indicates whether a deployment should continue if information about the current state of alarms cannot be retrieved from Amazon CloudWatch. The default value is false.     * true: The deployment will proceed even if alarm status information can't be retrieved from Amazon CloudWatch.     * false: The deployment will stop if alarm status information can't be retrieved from Amazon CloudWatch.
+--
+-- * 'acEnabled' - Indicates whether the alarm configuration is enabled.
+--
+-- * 'acAlarms' - A list of alarms configured for the deployment group. A maximum of 10 alarms can be added to a deployment group.
+alarmConfiguration
+    :: AlarmConfiguration
+alarmConfiguration =
+  AlarmConfiguration'
+  { _acIgnorePollAlarmFailure = Nothing
+  , _acEnabled = Nothing
+  , _acAlarms = Nothing
+  }
+
+
+-- | Indicates whether a deployment should continue if information about the current state of alarms cannot be retrieved from Amazon CloudWatch. The default value is false.     * true: The deployment will proceed even if alarm status information can't be retrieved from Amazon CloudWatch.     * false: The deployment will stop if alarm status information can't be retrieved from Amazon CloudWatch.
+acIgnorePollAlarmFailure :: Lens' AlarmConfiguration (Maybe Bool)
+acIgnorePollAlarmFailure = lens _acIgnorePollAlarmFailure (\ s a -> s{_acIgnorePollAlarmFailure = a});
+
+-- | Indicates whether the alarm configuration is enabled.
+acEnabled :: Lens' AlarmConfiguration (Maybe Bool)
+acEnabled = lens _acEnabled (\ s a -> s{_acEnabled = a});
+
+-- | A list of alarms configured for the deployment group. A maximum of 10 alarms can be added to a deployment group.
+acAlarms :: Lens' AlarmConfiguration [Alarm]
+acAlarms = lens _acAlarms (\ s a -> s{_acAlarms = a}) . _Default . _Coerce;
+
+instance FromJSON AlarmConfiguration where
+        parseJSON
+          = withObject "AlarmConfiguration"
+              (\ x ->
+                 AlarmConfiguration' <$>
+                   (x .:? "ignorePollAlarmFailure") <*>
+                     (x .:? "enabled")
+                     <*> (x .:? "alarms" .!= mempty))
+
+instance Hashable AlarmConfiguration where
+
+instance NFData AlarmConfiguration where
+
+instance ToJSON AlarmConfiguration where
+        toJSON AlarmConfiguration'{..}
+          = object
+              (catMaybes
+                 [("ignorePollAlarmFailure" .=) <$>
+                    _acIgnorePollAlarmFailure,
+                  ("enabled" .=) <$> _acEnabled,
+                  ("alarms" .=) <$> _acAlarms])
+
+-- | Information about an application.
+--
+--
+--
+-- /See:/ 'applicationInfo' smart constructor.
+data ApplicationInfo = ApplicationInfo'
+  { _aiLinkedToGitHub    :: !(Maybe Bool)
+  , _aiApplicationId     :: !(Maybe Text)
+  , _aiApplicationName   :: !(Maybe Text)
+  , _aiGitHubAccountName :: !(Maybe Text)
+  , _aiCreateTime        :: !(Maybe POSIX)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ApplicationInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aiLinkedToGitHub' - True if the user has authenticated with GitHub for the specified application; otherwise, false.
+--
+-- * 'aiApplicationId' - The application ID.
+--
+-- * 'aiApplicationName' - The application name.
+--
+-- * 'aiGitHubAccountName' - The name for a connection to a GitHub account.
+--
+-- * 'aiCreateTime' - The time at which the application was created.
+applicationInfo
+    :: ApplicationInfo
+applicationInfo =
+  ApplicationInfo'
+  { _aiLinkedToGitHub = Nothing
+  , _aiApplicationId = Nothing
+  , _aiApplicationName = Nothing
+  , _aiGitHubAccountName = Nothing
+  , _aiCreateTime = Nothing
+  }
+
+
+-- | True if the user has authenticated with GitHub for the specified application; otherwise, false.
+aiLinkedToGitHub :: Lens' ApplicationInfo (Maybe Bool)
+aiLinkedToGitHub = lens _aiLinkedToGitHub (\ s a -> s{_aiLinkedToGitHub = a});
+
+-- | The application ID.
+aiApplicationId :: Lens' ApplicationInfo (Maybe Text)
+aiApplicationId = lens _aiApplicationId (\ s a -> s{_aiApplicationId = a});
+
+-- | The application name.
+aiApplicationName :: Lens' ApplicationInfo (Maybe Text)
+aiApplicationName = lens _aiApplicationName (\ s a -> s{_aiApplicationName = a});
+
+-- | The name for a connection to a GitHub account.
+aiGitHubAccountName :: Lens' ApplicationInfo (Maybe Text)
+aiGitHubAccountName = lens _aiGitHubAccountName (\ s a -> s{_aiGitHubAccountName = a});
+
+-- | The time at which the application was created.
+aiCreateTime :: Lens' ApplicationInfo (Maybe UTCTime)
+aiCreateTime = lens _aiCreateTime (\ s a -> s{_aiCreateTime = a}) . mapping _Time;
+
+instance FromJSON ApplicationInfo where
+        parseJSON
+          = withObject "ApplicationInfo"
+              (\ x ->
+                 ApplicationInfo' <$>
+                   (x .:? "linkedToGitHub") <*> (x .:? "applicationId")
+                     <*> (x .:? "applicationName")
+                     <*> (x .:? "gitHubAccountName")
+                     <*> (x .:? "createTime"))
+
+instance Hashable ApplicationInfo where
+
+instance NFData ApplicationInfo where
+
+-- | Information about a configuration for automatically rolling back to a previous version of an application revision when a deployment doesn't complete successfully.
+--
+--
+--
+-- /See:/ 'autoRollbackConfiguration' smart constructor.
+data AutoRollbackConfiguration = AutoRollbackConfiguration'
+  { _arcEnabled :: !(Maybe Bool)
+  , _arcEvents  :: !(Maybe [AutoRollbackEvent])
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AutoRollbackConfiguration' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'arcEnabled' - Indicates whether a defined automatic rollback configuration is currently enabled.
+--
+-- * 'arcEvents' - The event type or types that trigger a rollback.
+autoRollbackConfiguration
+    :: AutoRollbackConfiguration
+autoRollbackConfiguration =
+  AutoRollbackConfiguration' {_arcEnabled = Nothing, _arcEvents = Nothing}
+
+
+-- | Indicates whether a defined automatic rollback configuration is currently enabled.
+arcEnabled :: Lens' AutoRollbackConfiguration (Maybe Bool)
+arcEnabled = lens _arcEnabled (\ s a -> s{_arcEnabled = a});
+
+-- | The event type or types that trigger a rollback.
+arcEvents :: Lens' AutoRollbackConfiguration [AutoRollbackEvent]
+arcEvents = lens _arcEvents (\ s a -> s{_arcEvents = a}) . _Default . _Coerce;
+
+instance FromJSON AutoRollbackConfiguration where
+        parseJSON
+          = withObject "AutoRollbackConfiguration"
+              (\ x ->
+                 AutoRollbackConfiguration' <$>
+                   (x .:? "enabled") <*> (x .:? "events" .!= mempty))
+
+instance Hashable AutoRollbackConfiguration where
+
+instance NFData AutoRollbackConfiguration where
+
+instance ToJSON AutoRollbackConfiguration where
+        toJSON AutoRollbackConfiguration'{..}
+          = object
+              (catMaybes
+                 [("enabled" .=) <$> _arcEnabled,
+                  ("events" .=) <$> _arcEvents])
+
+-- | Information about an Auto Scaling group.
+--
+--
+--
+-- /See:/ 'autoScalingGroup' smart constructor.
+data AutoScalingGroup = AutoScalingGroup'
+  { _asgHook :: !(Maybe Text)
+  , _asgName :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AutoScalingGroup' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'asgHook' - An Auto Scaling lifecycle event hook name.
+--
+-- * 'asgName' - The Auto Scaling group name.
+autoScalingGroup
+    :: AutoScalingGroup
+autoScalingGroup = AutoScalingGroup' {_asgHook = Nothing, _asgName = Nothing}
+
+
+-- | An Auto Scaling lifecycle event hook name.
+asgHook :: Lens' AutoScalingGroup (Maybe Text)
+asgHook = lens _asgHook (\ s a -> s{_asgHook = a});
+
+-- | The Auto Scaling group name.
+asgName :: Lens' AutoScalingGroup (Maybe Text)
+asgName = lens _asgName (\ s a -> s{_asgName = a});
+
+instance FromJSON AutoScalingGroup where
+        parseJSON
+          = withObject "AutoScalingGroup"
+              (\ x ->
+                 AutoScalingGroup' <$>
+                   (x .:? "hook") <*> (x .:? "name"))
+
+instance Hashable AutoScalingGroup where
+
+instance NFData AutoScalingGroup where
+
+-- | Information about blue/green deployment options for a deployment group.
+--
+--
+--
+-- /See:/ 'blueGreenDeploymentConfiguration' smart constructor.
+data BlueGreenDeploymentConfiguration = BlueGreenDeploymentConfiguration'
+  { _bgdcDeploymentReadyOption :: !(Maybe DeploymentReadyOption)
+  , _bgdcGreenFleetProvisioningOption :: !(Maybe GreenFleetProvisioningOption)
+  , _bgdcTerminateBlueInstancesOnDeploymentSuccess :: !(Maybe BlueInstanceTerminationOption)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BlueGreenDeploymentConfiguration' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bgdcDeploymentReadyOption' - Information about the action to take when newly provisioned instances are ready to receive traffic in a blue/green deployment.
+--
+-- * 'bgdcGreenFleetProvisioningOption' - Information about how instances are provisioned for a replacement environment in a blue/green deployment.
+--
+-- * 'bgdcTerminateBlueInstancesOnDeploymentSuccess' - Information about whether to terminate instances in the original fleet during a blue/green deployment.
+blueGreenDeploymentConfiguration
+    :: BlueGreenDeploymentConfiguration
+blueGreenDeploymentConfiguration =
+  BlueGreenDeploymentConfiguration'
+  { _bgdcDeploymentReadyOption = Nothing
+  , _bgdcGreenFleetProvisioningOption = Nothing
+  , _bgdcTerminateBlueInstancesOnDeploymentSuccess = Nothing
+  }
+
+
+-- | Information about the action to take when newly provisioned instances are ready to receive traffic in a blue/green deployment.
+bgdcDeploymentReadyOption :: Lens' BlueGreenDeploymentConfiguration (Maybe DeploymentReadyOption)
+bgdcDeploymentReadyOption = lens _bgdcDeploymentReadyOption (\ s a -> s{_bgdcDeploymentReadyOption = a});
+
+-- | Information about how instances are provisioned for a replacement environment in a blue/green deployment.
+bgdcGreenFleetProvisioningOption :: Lens' BlueGreenDeploymentConfiguration (Maybe GreenFleetProvisioningOption)
+bgdcGreenFleetProvisioningOption = lens _bgdcGreenFleetProvisioningOption (\ s a -> s{_bgdcGreenFleetProvisioningOption = a});
+
+-- | Information about whether to terminate instances in the original fleet during a blue/green deployment.
+bgdcTerminateBlueInstancesOnDeploymentSuccess :: Lens' BlueGreenDeploymentConfiguration (Maybe BlueInstanceTerminationOption)
+bgdcTerminateBlueInstancesOnDeploymentSuccess = lens _bgdcTerminateBlueInstancesOnDeploymentSuccess (\ s a -> s{_bgdcTerminateBlueInstancesOnDeploymentSuccess = a});
+
+instance FromJSON BlueGreenDeploymentConfiguration
+         where
+        parseJSON
+          = withObject "BlueGreenDeploymentConfiguration"
+              (\ x ->
+                 BlueGreenDeploymentConfiguration' <$>
+                   (x .:? "deploymentReadyOption") <*>
+                     (x .:? "greenFleetProvisioningOption")
+                     <*>
+                     (x .:? "terminateBlueInstancesOnDeploymentSuccess"))
+
+instance Hashable BlueGreenDeploymentConfiguration
+         where
+
+instance NFData BlueGreenDeploymentConfiguration
+         where
+
+instance ToJSON BlueGreenDeploymentConfiguration
+         where
+        toJSON BlueGreenDeploymentConfiguration'{..}
+          = object
+              (catMaybes
+                 [("deploymentReadyOption" .=) <$>
+                    _bgdcDeploymentReadyOption,
+                  ("greenFleetProvisioningOption" .=) <$>
+                    _bgdcGreenFleetProvisioningOption,
+                  ("terminateBlueInstancesOnDeploymentSuccess" .=) <$>
+                    _bgdcTerminateBlueInstancesOnDeploymentSuccess])
+
+-- | Information about whether instances in the original environment are terminated when a blue/green deployment is successful.
+--
+--
+--
+-- /See:/ 'blueInstanceTerminationOption' smart constructor.
+data BlueInstanceTerminationOption = BlueInstanceTerminationOption'
+  { _bitoAction                       :: !(Maybe InstanceAction)
+  , _bitoTerminationWaitTimeInMinutes :: !(Maybe Int)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'BlueInstanceTerminationOption' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bitoAction' - The action to take on instances in the original environment after a successful blue/green deployment.     * TERMINATE: Instances are terminated after a specified wait time.     * KEEP_ALIVE: Instances are left running after they are deregistered from the load balancer and removed from the deployment group.
+--
+-- * 'bitoTerminationWaitTimeInMinutes' - The number of minutes to wait after a successful blue/green deployment before terminating instances from the original environment.
+blueInstanceTerminationOption
+    :: BlueInstanceTerminationOption
+blueInstanceTerminationOption =
+  BlueInstanceTerminationOption'
+  {_bitoAction = Nothing, _bitoTerminationWaitTimeInMinutes = Nothing}
+
+
+-- | The action to take on instances in the original environment after a successful blue/green deployment.     * TERMINATE: Instances are terminated after a specified wait time.     * KEEP_ALIVE: Instances are left running after they are deregistered from the load balancer and removed from the deployment group.
+bitoAction :: Lens' BlueInstanceTerminationOption (Maybe InstanceAction)
+bitoAction = lens _bitoAction (\ s a -> s{_bitoAction = a});
+
+-- | The number of minutes to wait after a successful blue/green deployment before terminating instances from the original environment.
+bitoTerminationWaitTimeInMinutes :: Lens' BlueInstanceTerminationOption (Maybe Int)
+bitoTerminationWaitTimeInMinutes = lens _bitoTerminationWaitTimeInMinutes (\ s a -> s{_bitoTerminationWaitTimeInMinutes = a});
+
+instance FromJSON BlueInstanceTerminationOption where
+        parseJSON
+          = withObject "BlueInstanceTerminationOption"
+              (\ x ->
+                 BlueInstanceTerminationOption' <$>
+                   (x .:? "action") <*>
+                     (x .:? "terminationWaitTimeInMinutes"))
+
+instance Hashable BlueInstanceTerminationOption where
+
+instance NFData BlueInstanceTerminationOption where
+
+instance ToJSON BlueInstanceTerminationOption where
+        toJSON BlueInstanceTerminationOption'{..}
+          = object
+              (catMaybes
+                 [("action" .=) <$> _bitoAction,
+                  ("terminationWaitTimeInMinutes" .=) <$>
+                    _bitoTerminationWaitTimeInMinutes])
+
+-- | Information about a deployment configuration.
+--
+--
+--
+-- /See:/ 'deploymentConfigInfo' smart constructor.
+data DeploymentConfigInfo = DeploymentConfigInfo'
+  { _dciDeploymentConfigName :: !(Maybe Text)
+  , _dciMinimumHealthyHosts  :: !(Maybe MinimumHealthyHosts)
+  , _dciDeploymentConfigId   :: !(Maybe Text)
+  , _dciCreateTime           :: !(Maybe POSIX)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DeploymentConfigInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dciDeploymentConfigName' - The deployment configuration name.
+--
+-- * 'dciMinimumHealthyHosts' - Information about the number or percentage of minimum healthy instance.
+--
+-- * 'dciDeploymentConfigId' - The deployment configuration ID.
+--
+-- * 'dciCreateTime' - The time at which the deployment configuration was created.
+deploymentConfigInfo
+    :: DeploymentConfigInfo
+deploymentConfigInfo =
+  DeploymentConfigInfo'
+  { _dciDeploymentConfigName = Nothing
+  , _dciMinimumHealthyHosts = Nothing
+  , _dciDeploymentConfigId = Nothing
+  , _dciCreateTime = Nothing
+  }
+
+
+-- | The deployment configuration name.
+dciDeploymentConfigName :: Lens' DeploymentConfigInfo (Maybe Text)
+dciDeploymentConfigName = lens _dciDeploymentConfigName (\ s a -> s{_dciDeploymentConfigName = a});
+
+-- | Information about the number or percentage of minimum healthy instance.
+dciMinimumHealthyHosts :: Lens' DeploymentConfigInfo (Maybe MinimumHealthyHosts)
+dciMinimumHealthyHosts = lens _dciMinimumHealthyHosts (\ s a -> s{_dciMinimumHealthyHosts = a});
+
+-- | The deployment configuration ID.
+dciDeploymentConfigId :: Lens' DeploymentConfigInfo (Maybe Text)
+dciDeploymentConfigId = lens _dciDeploymentConfigId (\ s a -> s{_dciDeploymentConfigId = a});
+
+-- | The time at which the deployment configuration was created.
+dciCreateTime :: Lens' DeploymentConfigInfo (Maybe UTCTime)
+dciCreateTime = lens _dciCreateTime (\ s a -> s{_dciCreateTime = a}) . mapping _Time;
+
+instance FromJSON DeploymentConfigInfo where
+        parseJSON
+          = withObject "DeploymentConfigInfo"
+              (\ x ->
+                 DeploymentConfigInfo' <$>
+                   (x .:? "deploymentConfigName") <*>
+                     (x .:? "minimumHealthyHosts")
+                     <*> (x .:? "deploymentConfigId")
+                     <*> (x .:? "createTime"))
+
+instance Hashable DeploymentConfigInfo where
+
+instance NFData DeploymentConfigInfo where
+
+-- | Information about a deployment group.
+--
+--
+--
+-- /See:/ 'deploymentGroupInfo' smart constructor.
+data DeploymentGroupInfo = DeploymentGroupInfo'
+  { _dgiServiceRoleARN :: !(Maybe Text)
+  , _dgiEc2TagSet :: !(Maybe EC2TagSet)
+  , _dgiDeploymentConfigName :: !(Maybe Text)
+  , _dgiLastAttemptedDeployment :: !(Maybe LastDeploymentInfo)
+  , _dgiOnPremisesTagSet :: !(Maybe OnPremisesTagSet)
+  , _dgiTargetRevision :: !(Maybe RevisionLocation)
+  , _dgiEc2TagFilters :: !(Maybe [EC2TagFilter])
+  , _dgiBlueGreenDeploymentConfiguration :: !(Maybe BlueGreenDeploymentConfiguration)
+  , _dgiLoadBalancerInfo :: !(Maybe LoadBalancerInfo)
+  , _dgiOnPremisesInstanceTagFilters :: !(Maybe [TagFilter])
+  , _dgiLastSuccessfulDeployment :: !(Maybe LastDeploymentInfo)
+  , _dgiApplicationName :: !(Maybe Text)
+  , _dgiAlarmConfiguration :: !(Maybe AlarmConfiguration)
+  , _dgiTriggerConfigurations :: !(Maybe [TriggerConfig])
+  , _dgiDeploymentGroupId :: !(Maybe Text)
+  , _dgiAutoScalingGroups :: !(Maybe [AutoScalingGroup])
+  , _dgiDeploymentStyle :: !(Maybe DeploymentStyle)
+  , _dgiAutoRollbackConfiguration :: !(Maybe AutoRollbackConfiguration)
+  , _dgiDeploymentGroupName :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DeploymentGroupInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dgiServiceRoleARN' - A service role ARN.
+--
+-- * 'dgiEc2TagSet' - Information about groups of tags applied to an EC2 instance. The deployment group includes only EC2 instances identified by all the tag groups. Cannot be used in the same call as ec2TagFilters.
+--
+-- * 'dgiDeploymentConfigName' - The deployment configuration name.
+--
+-- * 'dgiLastAttemptedDeployment' - Information about the most recent attempted deployment to the deployment group.
+--
+-- * 'dgiOnPremisesTagSet' - Information about groups of tags applied to an on-premises instance. The deployment group includes only on-premises instances identified by all the tag groups. Cannot be used in the same call as onPremisesInstanceTagFilters.
+--
+-- * 'dgiTargetRevision' - Information about the deployment group's target revision, including type and location.
+--
+-- * 'dgiEc2TagFilters' - The Amazon EC2 tags on which to filter. The deployment group includes EC2 instances with any of the specified tags.
+--
+-- * 'dgiBlueGreenDeploymentConfiguration' - Information about blue/green deployment options for a deployment group.
+--
+-- * 'dgiLoadBalancerInfo' - Information about the load balancer to use in a deployment.
+--
+-- * 'dgiOnPremisesInstanceTagFilters' - The on-premises instance tags on which to filter. The deployment group includes on-premises instances with any of the specified tags.
+--
+-- * 'dgiLastSuccessfulDeployment' - Information about the most recent successful deployment to the deployment group.
+--
+-- * 'dgiApplicationName' - The application name.
+--
+-- * 'dgiAlarmConfiguration' - A list of alarms associated with the deployment group.
+--
+-- * 'dgiTriggerConfigurations' - Information about triggers associated with the deployment group.
+--
+-- * 'dgiDeploymentGroupId' - The deployment group ID.
+--
+-- * 'dgiAutoScalingGroups' - A list of associated Auto Scaling groups.
+--
+-- * 'dgiDeploymentStyle' - Information about the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer.
+--
+-- * 'dgiAutoRollbackConfiguration' - Information about the automatic rollback configuration associated with the deployment group.
+--
+-- * 'dgiDeploymentGroupName' - The deployment group name.
+deploymentGroupInfo
+    :: DeploymentGroupInfo
+deploymentGroupInfo =
+  DeploymentGroupInfo'
+  { _dgiServiceRoleARN = Nothing
+  , _dgiEc2TagSet = Nothing
+  , _dgiDeploymentConfigName = Nothing
+  , _dgiLastAttemptedDeployment = Nothing
+  , _dgiOnPremisesTagSet = Nothing
+  , _dgiTargetRevision = Nothing
+  , _dgiEc2TagFilters = Nothing
+  , _dgiBlueGreenDeploymentConfiguration = Nothing
+  , _dgiLoadBalancerInfo = Nothing
+  , _dgiOnPremisesInstanceTagFilters = Nothing
+  , _dgiLastSuccessfulDeployment = Nothing
+  , _dgiApplicationName = Nothing
+  , _dgiAlarmConfiguration = Nothing
+  , _dgiTriggerConfigurations = Nothing
+  , _dgiDeploymentGroupId = Nothing
+  , _dgiAutoScalingGroups = Nothing
+  , _dgiDeploymentStyle = Nothing
+  , _dgiAutoRollbackConfiguration = Nothing
+  , _dgiDeploymentGroupName = Nothing
+  }
+
+
+-- | A service role ARN.
+dgiServiceRoleARN :: Lens' DeploymentGroupInfo (Maybe Text)
+dgiServiceRoleARN = lens _dgiServiceRoleARN (\ s a -> s{_dgiServiceRoleARN = a});
+
+-- | Information about groups of tags applied to an EC2 instance. The deployment group includes only EC2 instances identified by all the tag groups. Cannot be used in the same call as ec2TagFilters.
+dgiEc2TagSet :: Lens' DeploymentGroupInfo (Maybe EC2TagSet)
+dgiEc2TagSet = lens _dgiEc2TagSet (\ s a -> s{_dgiEc2TagSet = a});
+
+-- | The deployment configuration name.
+dgiDeploymentConfigName :: Lens' DeploymentGroupInfo (Maybe Text)
+dgiDeploymentConfigName = lens _dgiDeploymentConfigName (\ s a -> s{_dgiDeploymentConfigName = a});
+
+-- | Information about the most recent attempted deployment to the deployment group.
+dgiLastAttemptedDeployment :: Lens' DeploymentGroupInfo (Maybe LastDeploymentInfo)
+dgiLastAttemptedDeployment = lens _dgiLastAttemptedDeployment (\ s a -> s{_dgiLastAttemptedDeployment = a});
+
+-- | Information about groups of tags applied to an on-premises instance. The deployment group includes only on-premises instances identified by all the tag groups. Cannot be used in the same call as onPremisesInstanceTagFilters.
+dgiOnPremisesTagSet :: Lens' DeploymentGroupInfo (Maybe OnPremisesTagSet)
+dgiOnPremisesTagSet = lens _dgiOnPremisesTagSet (\ s a -> s{_dgiOnPremisesTagSet = a});
+
+-- | Information about the deployment group's target revision, including type and location.
+dgiTargetRevision :: Lens' DeploymentGroupInfo (Maybe RevisionLocation)
+dgiTargetRevision = lens _dgiTargetRevision (\ s a -> s{_dgiTargetRevision = a});
+
+-- | The Amazon EC2 tags on which to filter. The deployment group includes EC2 instances with any of the specified tags.
+dgiEc2TagFilters :: Lens' DeploymentGroupInfo [EC2TagFilter]
+dgiEc2TagFilters = lens _dgiEc2TagFilters (\ s a -> s{_dgiEc2TagFilters = a}) . _Default . _Coerce;
+
+-- | Information about blue/green deployment options for a deployment group.
+dgiBlueGreenDeploymentConfiguration :: Lens' DeploymentGroupInfo (Maybe BlueGreenDeploymentConfiguration)
+dgiBlueGreenDeploymentConfiguration = lens _dgiBlueGreenDeploymentConfiguration (\ s a -> s{_dgiBlueGreenDeploymentConfiguration = a});
+
+-- | Information about the load balancer to use in a deployment.
+dgiLoadBalancerInfo :: Lens' DeploymentGroupInfo (Maybe LoadBalancerInfo)
+dgiLoadBalancerInfo = lens _dgiLoadBalancerInfo (\ s a -> s{_dgiLoadBalancerInfo = a});
+
+-- | The on-premises instance tags on which to filter. The deployment group includes on-premises instances with any of the specified tags.
+dgiOnPremisesInstanceTagFilters :: Lens' DeploymentGroupInfo [TagFilter]
+dgiOnPremisesInstanceTagFilters = lens _dgiOnPremisesInstanceTagFilters (\ s a -> s{_dgiOnPremisesInstanceTagFilters = a}) . _Default . _Coerce;
+
+-- | Information about the most recent successful deployment to the deployment group.
+dgiLastSuccessfulDeployment :: Lens' DeploymentGroupInfo (Maybe LastDeploymentInfo)
+dgiLastSuccessfulDeployment = lens _dgiLastSuccessfulDeployment (\ s a -> s{_dgiLastSuccessfulDeployment = a});
+
+-- | The application name.
+dgiApplicationName :: Lens' DeploymentGroupInfo (Maybe Text)
+dgiApplicationName = lens _dgiApplicationName (\ s a -> s{_dgiApplicationName = a});
+
+-- | A list of alarms associated with the deployment group.
+dgiAlarmConfiguration :: Lens' DeploymentGroupInfo (Maybe AlarmConfiguration)
+dgiAlarmConfiguration = lens _dgiAlarmConfiguration (\ s a -> s{_dgiAlarmConfiguration = a});
+
+-- | Information about triggers associated with the deployment group.
+dgiTriggerConfigurations :: Lens' DeploymentGroupInfo [TriggerConfig]
+dgiTriggerConfigurations = lens _dgiTriggerConfigurations (\ s a -> s{_dgiTriggerConfigurations = a}) . _Default . _Coerce;
+
+-- | The deployment group ID.
+dgiDeploymentGroupId :: Lens' DeploymentGroupInfo (Maybe Text)
+dgiDeploymentGroupId = lens _dgiDeploymentGroupId (\ s a -> s{_dgiDeploymentGroupId = a});
+
+-- | A list of associated Auto Scaling groups.
+dgiAutoScalingGroups :: Lens' DeploymentGroupInfo [AutoScalingGroup]
+dgiAutoScalingGroups = lens _dgiAutoScalingGroups (\ s a -> s{_dgiAutoScalingGroups = a}) . _Default . _Coerce;
+
+-- | Information about the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer.
+dgiDeploymentStyle :: Lens' DeploymentGroupInfo (Maybe DeploymentStyle)
+dgiDeploymentStyle = lens _dgiDeploymentStyle (\ s a -> s{_dgiDeploymentStyle = a});
+
+-- | Information about the automatic rollback configuration associated with the deployment group.
+dgiAutoRollbackConfiguration :: Lens' DeploymentGroupInfo (Maybe AutoRollbackConfiguration)
+dgiAutoRollbackConfiguration = lens _dgiAutoRollbackConfiguration (\ s a -> s{_dgiAutoRollbackConfiguration = a});
+
+-- | The deployment group name.
+dgiDeploymentGroupName :: Lens' DeploymentGroupInfo (Maybe Text)
+dgiDeploymentGroupName = lens _dgiDeploymentGroupName (\ s a -> s{_dgiDeploymentGroupName = a});
+
+instance FromJSON DeploymentGroupInfo where
+        parseJSON
+          = withObject "DeploymentGroupInfo"
+              (\ x ->
+                 DeploymentGroupInfo' <$>
+                   (x .:? "serviceRoleArn") <*> (x .:? "ec2TagSet") <*>
+                     (x .:? "deploymentConfigName")
+                     <*> (x .:? "lastAttemptedDeployment")
+                     <*> (x .:? "onPremisesTagSet")
+                     <*> (x .:? "targetRevision")
+                     <*> (x .:? "ec2TagFilters" .!= mempty)
+                     <*> (x .:? "blueGreenDeploymentConfiguration")
+                     <*> (x .:? "loadBalancerInfo")
+                     <*> (x .:? "onPremisesInstanceTagFilters" .!= mempty)
+                     <*> (x .:? "lastSuccessfulDeployment")
+                     <*> (x .:? "applicationName")
+                     <*> (x .:? "alarmConfiguration")
+                     <*> (x .:? "triggerConfigurations" .!= mempty)
+                     <*> (x .:? "deploymentGroupId")
+                     <*> (x .:? "autoScalingGroups" .!= mempty)
+                     <*> (x .:? "deploymentStyle")
+                     <*> (x .:? "autoRollbackConfiguration")
+                     <*> (x .:? "deploymentGroupName"))
+
+instance Hashable DeploymentGroupInfo where
+
+instance NFData DeploymentGroupInfo where
+
+-- | Information about a deployment.
+--
+--
+--
+-- /See:/ 'deploymentInfo' smart constructor.
+data DeploymentInfo = DeploymentInfo'
+  { _diCreator :: !(Maybe DeploymentCreator)
+  , _diStatus :: !(Maybe DeploymentStatus)
+  , _diDeploymentId :: !(Maybe Text)
+  , _diDeploymentConfigName :: !(Maybe Text)
+  , _diPreviousRevision :: !(Maybe RevisionLocation)
+  , _diInstanceTerminationWaitTimeStarted :: !(Maybe Bool)
+  , _diStartTime :: !(Maybe POSIX)
+  , _diCompleteTime :: !(Maybe POSIX)
+  , _diBlueGreenDeploymentConfiguration :: !(Maybe BlueGreenDeploymentConfiguration)
+  , _diErrorInformation :: !(Maybe ErrorInformation)
+  , _diLoadBalancerInfo :: !(Maybe LoadBalancerInfo)
+  , _diAdditionalDeploymentStatusInfo :: !(Maybe Text)
+  , _diDeploymentOverview :: !(Maybe DeploymentOverview)
+  , _diFileExistsBehavior :: !(Maybe FileExistsBehavior)
+  , _diApplicationName :: !(Maybe Text)
+  , _diRollbackInfo :: !(Maybe RollbackInfo)
+  , _diTargetInstances :: !(Maybe TargetInstances)
+  , _diRevision :: !(Maybe RevisionLocation)
+  , _diDescription :: !(Maybe Text)
+  , _diDeploymentStyle :: !(Maybe DeploymentStyle)
+  , _diCreateTime :: !(Maybe POSIX)
+  , _diAutoRollbackConfiguration :: !(Maybe AutoRollbackConfiguration)
+  , _diUpdateOutdatedInstancesOnly :: !(Maybe Bool)
+  , _diDeploymentGroupName :: !(Maybe Text)
+  , _diIgnoreApplicationStopFailures :: !(Maybe Bool)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DeploymentInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'diCreator' - The means by which the deployment was created:     * user: A user created the deployment.     * autoscaling: Auto Scaling created the deployment.     * codeDeployRollback: A rollback process created the deployment.
+--
+-- * 'diStatus' - The current state of the deployment as a whole.
+--
+-- * 'diDeploymentId' - The deployment ID.
+--
+-- * 'diDeploymentConfigName' - The deployment configuration name.
+--
+-- * 'diPreviousRevision' - Information about the application revision that was deployed to the deployment group before the most recent successful deployment.
+--
+-- * 'diInstanceTerminationWaitTimeStarted' - Indicates whether the wait period set for the termination of instances in the original environment has started. Status is 'false' if the KEEP_ALIVE option is specified; otherwise, 'true' as soon as the termination wait period starts.
+--
+-- * 'diStartTime' - A timestamp indicating when the deployment was deployed to the deployment group. In some cases, the reported value of the start time may be later than the complete time. This is due to differences in the clock settings of back-end servers that participate in the deployment process.
+--
+-- * 'diCompleteTime' - A timestamp indicating when the deployment was complete.
+--
+-- * 'diBlueGreenDeploymentConfiguration' - Information about blue/green deployment options for this deployment.
+--
+-- * 'diErrorInformation' - Information about any error associated with this deployment.
+--
+-- * 'diLoadBalancerInfo' - Information about the load balancer used in the deployment.
+--
+-- * 'diAdditionalDeploymentStatusInfo' - Provides information about the results of a deployment, such as whether instances in the original environment in a blue/green deployment were not terminated.
+--
+-- * 'diDeploymentOverview' - A summary of the deployment status of the instances in the deployment.
+--
+-- * 'diFileExistsBehavior' - Information about how AWS CodeDeploy handles files that already exist in a deployment target location but weren't part of the previous successful deployment.     * DISALLOW: The deployment fails. This is also the default behavior if no option is specified.     * OVERWRITE: The version of the file from the application revision currently being deployed replaces the version already on the instance.     * RETAIN: The version of the file already on the instance is kept and used as part of the new deployment.
+--
+-- * 'diApplicationName' - The application name.
+--
+-- * 'diRollbackInfo' - Information about a deployment rollback.
+--
+-- * 'diTargetInstances' - Information about the instances that belong to the replacement environment in a blue/green deployment.
+--
+-- * 'diRevision' - Information about the location of stored application artifacts and the service from which to retrieve them.
+--
+-- * 'diDescription' - A comment about the deployment.
+--
+-- * 'diDeploymentStyle' - Information about the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer.
+--
+-- * 'diCreateTime' - A timestamp indicating when the deployment was created.
+--
+-- * 'diAutoRollbackConfiguration' - Information about the automatic rollback configuration associated with the deployment.
+--
+-- * 'diUpdateOutdatedInstancesOnly' - Indicates whether only instances that are not running the latest application revision are to be deployed to.
+--
+-- * 'diDeploymentGroupName' - The deployment group name.
+--
+-- * 'diIgnoreApplicationStopFailures' - If true, then if the deployment causes the ApplicationStop deployment lifecycle event to an instance to fail, the deployment to that instance will not be considered to have failed at that point and will continue on to the BeforeInstall deployment lifecycle event. If false or not specified, then if the deployment causes the ApplicationStop deployment lifecycle event to an instance to fail, the deployment to that instance will stop, and the deployment to that instance will be considered to have failed.
+deploymentInfo
+    :: DeploymentInfo
+deploymentInfo =
+  DeploymentInfo'
+  { _diCreator = Nothing
+  , _diStatus = Nothing
+  , _diDeploymentId = Nothing
+  , _diDeploymentConfigName = Nothing
+  , _diPreviousRevision = Nothing
+  , _diInstanceTerminationWaitTimeStarted = Nothing
+  , _diStartTime = Nothing
+  , _diCompleteTime = Nothing
+  , _diBlueGreenDeploymentConfiguration = Nothing
+  , _diErrorInformation = Nothing
+  , _diLoadBalancerInfo = Nothing
+  , _diAdditionalDeploymentStatusInfo = Nothing
+  , _diDeploymentOverview = Nothing
+  , _diFileExistsBehavior = Nothing
+  , _diApplicationName = Nothing
+  , _diRollbackInfo = Nothing
+  , _diTargetInstances = Nothing
+  , _diRevision = Nothing
+  , _diDescription = Nothing
+  , _diDeploymentStyle = Nothing
+  , _diCreateTime = Nothing
+  , _diAutoRollbackConfiguration = Nothing
+  , _diUpdateOutdatedInstancesOnly = Nothing
+  , _diDeploymentGroupName = Nothing
+  , _diIgnoreApplicationStopFailures = Nothing
+  }
+
+
+-- | The means by which the deployment was created:     * user: A user created the deployment.     * autoscaling: Auto Scaling created the deployment.     * codeDeployRollback: A rollback process created the deployment.
+diCreator :: Lens' DeploymentInfo (Maybe DeploymentCreator)
+diCreator = lens _diCreator (\ s a -> s{_diCreator = a});
+
+-- | The current state of the deployment as a whole.
+diStatus :: Lens' DeploymentInfo (Maybe DeploymentStatus)
+diStatus = lens _diStatus (\ s a -> s{_diStatus = a});
+
+-- | The deployment ID.
+diDeploymentId :: Lens' DeploymentInfo (Maybe Text)
+diDeploymentId = lens _diDeploymentId (\ s a -> s{_diDeploymentId = a});
+
+-- | The deployment configuration name.
+diDeploymentConfigName :: Lens' DeploymentInfo (Maybe Text)
+diDeploymentConfigName = lens _diDeploymentConfigName (\ s a -> s{_diDeploymentConfigName = a});
+
+-- | Information about the application revision that was deployed to the deployment group before the most recent successful deployment.
+diPreviousRevision :: Lens' DeploymentInfo (Maybe RevisionLocation)
+diPreviousRevision = lens _diPreviousRevision (\ s a -> s{_diPreviousRevision = a});
+
+-- | Indicates whether the wait period set for the termination of instances in the original environment has started. Status is 'false' if the KEEP_ALIVE option is specified; otherwise, 'true' as soon as the termination wait period starts.
+diInstanceTerminationWaitTimeStarted :: Lens' DeploymentInfo (Maybe Bool)
+diInstanceTerminationWaitTimeStarted = lens _diInstanceTerminationWaitTimeStarted (\ s a -> s{_diInstanceTerminationWaitTimeStarted = a});
+
+-- | A timestamp indicating when the deployment was deployed to the deployment group. In some cases, the reported value of the start time may be later than the complete time. This is due to differences in the clock settings of back-end servers that participate in the deployment process.
+diStartTime :: Lens' DeploymentInfo (Maybe UTCTime)
+diStartTime = lens _diStartTime (\ s a -> s{_diStartTime = a}) . mapping _Time;
+
+-- | A timestamp indicating when the deployment was complete.
+diCompleteTime :: Lens' DeploymentInfo (Maybe UTCTime)
+diCompleteTime = lens _diCompleteTime (\ s a -> s{_diCompleteTime = a}) . mapping _Time;
+
+-- | Information about blue/green deployment options for this deployment.
+diBlueGreenDeploymentConfiguration :: Lens' DeploymentInfo (Maybe BlueGreenDeploymentConfiguration)
+diBlueGreenDeploymentConfiguration = lens _diBlueGreenDeploymentConfiguration (\ s a -> s{_diBlueGreenDeploymentConfiguration = a});
+
+-- | Information about any error associated with this deployment.
+diErrorInformation :: Lens' DeploymentInfo (Maybe ErrorInformation)
+diErrorInformation = lens _diErrorInformation (\ s a -> s{_diErrorInformation = a});
+
+-- | Information about the load balancer used in the deployment.
+diLoadBalancerInfo :: Lens' DeploymentInfo (Maybe LoadBalancerInfo)
+diLoadBalancerInfo = lens _diLoadBalancerInfo (\ s a -> s{_diLoadBalancerInfo = a});
+
+-- | Provides information about the results of a deployment, such as whether instances in the original environment in a blue/green deployment were not terminated.
+diAdditionalDeploymentStatusInfo :: Lens' DeploymentInfo (Maybe Text)
+diAdditionalDeploymentStatusInfo = lens _diAdditionalDeploymentStatusInfo (\ s a -> s{_diAdditionalDeploymentStatusInfo = a});
+
+-- | A summary of the deployment status of the instances in the deployment.
+diDeploymentOverview :: Lens' DeploymentInfo (Maybe DeploymentOverview)
+diDeploymentOverview = lens _diDeploymentOverview (\ s a -> s{_diDeploymentOverview = a});
+
+-- | Information about how AWS CodeDeploy handles files that already exist in a deployment target location but weren't part of the previous successful deployment.     * DISALLOW: The deployment fails. This is also the default behavior if no option is specified.     * OVERWRITE: The version of the file from the application revision currently being deployed replaces the version already on the instance.     * RETAIN: The version of the file already on the instance is kept and used as part of the new deployment.
+diFileExistsBehavior :: Lens' DeploymentInfo (Maybe FileExistsBehavior)
+diFileExistsBehavior = lens _diFileExistsBehavior (\ s a -> s{_diFileExistsBehavior = a});
+
+-- | The application name.
+diApplicationName :: Lens' DeploymentInfo (Maybe Text)
+diApplicationName = lens _diApplicationName (\ s a -> s{_diApplicationName = a});
+
+-- | Information about a deployment rollback.
+diRollbackInfo :: Lens' DeploymentInfo (Maybe RollbackInfo)
+diRollbackInfo = lens _diRollbackInfo (\ s a -> s{_diRollbackInfo = a});
+
+-- | Information about the instances that belong to the replacement environment in a blue/green deployment.
+diTargetInstances :: Lens' DeploymentInfo (Maybe TargetInstances)
+diTargetInstances = lens _diTargetInstances (\ s a -> s{_diTargetInstances = a});
+
+-- | Information about the location of stored application artifacts and the service from which to retrieve them.
+diRevision :: Lens' DeploymentInfo (Maybe RevisionLocation)
+diRevision = lens _diRevision (\ s a -> s{_diRevision = a});
+
+-- | A comment about the deployment.
+diDescription :: Lens' DeploymentInfo (Maybe Text)
+diDescription = lens _diDescription (\ s a -> s{_diDescription = a});
+
+-- | Information about the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer.
+diDeploymentStyle :: Lens' DeploymentInfo (Maybe DeploymentStyle)
+diDeploymentStyle = lens _diDeploymentStyle (\ s a -> s{_diDeploymentStyle = a});
+
+-- | A timestamp indicating when the deployment was created.
+diCreateTime :: Lens' DeploymentInfo (Maybe UTCTime)
+diCreateTime = lens _diCreateTime (\ s a -> s{_diCreateTime = a}) . mapping _Time;
+
+-- | Information about the automatic rollback configuration associated with the deployment.
+diAutoRollbackConfiguration :: Lens' DeploymentInfo (Maybe AutoRollbackConfiguration)
+diAutoRollbackConfiguration = lens _diAutoRollbackConfiguration (\ s a -> s{_diAutoRollbackConfiguration = a});
+
+-- | Indicates whether only instances that are not running the latest application revision are to be deployed to.
+diUpdateOutdatedInstancesOnly :: Lens' DeploymentInfo (Maybe Bool)
+diUpdateOutdatedInstancesOnly = lens _diUpdateOutdatedInstancesOnly (\ s a -> s{_diUpdateOutdatedInstancesOnly = a});
+
+-- | The deployment group name.
+diDeploymentGroupName :: Lens' DeploymentInfo (Maybe Text)
+diDeploymentGroupName = lens _diDeploymentGroupName (\ s a -> s{_diDeploymentGroupName = a});
+
+-- | If true, then if the deployment causes the ApplicationStop deployment lifecycle event to an instance to fail, the deployment to that instance will not be considered to have failed at that point and will continue on to the BeforeInstall deployment lifecycle event. If false or not specified, then if the deployment causes the ApplicationStop deployment lifecycle event to an instance to fail, the deployment to that instance will stop, and the deployment to that instance will be considered to have failed.
+diIgnoreApplicationStopFailures :: Lens' DeploymentInfo (Maybe Bool)
+diIgnoreApplicationStopFailures = lens _diIgnoreApplicationStopFailures (\ s a -> s{_diIgnoreApplicationStopFailures = a});
+
+instance FromJSON DeploymentInfo where
+        parseJSON
+          = withObject "DeploymentInfo"
+              (\ x ->
+                 DeploymentInfo' <$>
+                   (x .:? "creator") <*> (x .:? "status") <*>
+                     (x .:? "deploymentId")
+                     <*> (x .:? "deploymentConfigName")
+                     <*> (x .:? "previousRevision")
+                     <*> (x .:? "instanceTerminationWaitTimeStarted")
+                     <*> (x .:? "startTime")
+                     <*> (x .:? "completeTime")
+                     <*> (x .:? "blueGreenDeploymentConfiguration")
+                     <*> (x .:? "errorInformation")
+                     <*> (x .:? "loadBalancerInfo")
+                     <*> (x .:? "additionalDeploymentStatusInfo")
+                     <*> (x .:? "deploymentOverview")
+                     <*> (x .:? "fileExistsBehavior")
+                     <*> (x .:? "applicationName")
+                     <*> (x .:? "rollbackInfo")
+                     <*> (x .:? "targetInstances")
+                     <*> (x .:? "revision")
+                     <*> (x .:? "description")
+                     <*> (x .:? "deploymentStyle")
+                     <*> (x .:? "createTime")
+                     <*> (x .:? "autoRollbackConfiguration")
+                     <*> (x .:? "updateOutdatedInstancesOnly")
+                     <*> (x .:? "deploymentGroupName")
+                     <*> (x .:? "ignoreApplicationStopFailures"))
+
+instance Hashable DeploymentInfo where
+
+instance NFData DeploymentInfo where
+
+-- | Information about the deployment status of the instances in the deployment.
+--
+--
+--
+-- /See:/ 'deploymentOverview' smart constructor.
+data DeploymentOverview = DeploymentOverview'
+  { _doPending    :: !(Maybe Integer)
+  , _doSkipped    :: !(Maybe Integer)
+  , _doInProgress :: !(Maybe Integer)
+  , _doSucceeded  :: !(Maybe Integer)
+  , _doReady      :: !(Maybe Integer)
+  , _doFailed     :: !(Maybe Integer)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DeploymentOverview' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'doPending' - The number of instances in the deployment in a pending state.
+--
+-- * 'doSkipped' - The number of instances in the deployment in a skipped state.
+--
+-- * 'doInProgress' - The number of instances in which the deployment is in progress.
+--
+-- * 'doSucceeded' - The number of instances in the deployment to which revisions have been successfully deployed.
+--
+-- * 'doReady' - The number of instances in a replacement environment ready to receive traffic in a blue/green deployment.
+--
+-- * 'doFailed' - The number of instances in the deployment in a failed state.
+deploymentOverview
+    :: DeploymentOverview
+deploymentOverview =
+  DeploymentOverview'
+  { _doPending = Nothing
+  , _doSkipped = Nothing
+  , _doInProgress = Nothing
+  , _doSucceeded = Nothing
+  , _doReady = Nothing
+  , _doFailed = Nothing
+  }
+
+
+-- | The number of instances in the deployment in a pending state.
+doPending :: Lens' DeploymentOverview (Maybe Integer)
+doPending = lens _doPending (\ s a -> s{_doPending = a});
+
+-- | The number of instances in the deployment in a skipped state.
+doSkipped :: Lens' DeploymentOverview (Maybe Integer)
+doSkipped = lens _doSkipped (\ s a -> s{_doSkipped = a});
+
+-- | The number of instances in which the deployment is in progress.
+doInProgress :: Lens' DeploymentOverview (Maybe Integer)
+doInProgress = lens _doInProgress (\ s a -> s{_doInProgress = a});
+
+-- | The number of instances in the deployment to which revisions have been successfully deployed.
+doSucceeded :: Lens' DeploymentOverview (Maybe Integer)
+doSucceeded = lens _doSucceeded (\ s a -> s{_doSucceeded = a});
+
+-- | The number of instances in a replacement environment ready to receive traffic in a blue/green deployment.
+doReady :: Lens' DeploymentOverview (Maybe Integer)
+doReady = lens _doReady (\ s a -> s{_doReady = a});
+
+-- | The number of instances in the deployment in a failed state.
+doFailed :: Lens' DeploymentOverview (Maybe Integer)
+doFailed = lens _doFailed (\ s a -> s{_doFailed = a});
+
+instance FromJSON DeploymentOverview where
+        parseJSON
+          = withObject "DeploymentOverview"
+              (\ x ->
+                 DeploymentOverview' <$>
+                   (x .:? "Pending") <*> (x .:? "Skipped") <*>
+                     (x .:? "InProgress")
+                     <*> (x .:? "Succeeded")
+                     <*> (x .:? "Ready")
+                     <*> (x .:? "Failed"))
+
+instance Hashable DeploymentOverview where
+
+instance NFData DeploymentOverview where
+
+-- | Information about how traffic is rerouted to instances in a replacement environment in a blue/green deployment.
+--
+--
+--
+-- /See:/ 'deploymentReadyOption' smart constructor.
+data DeploymentReadyOption = DeploymentReadyOption'
+  { _droActionOnTimeout   :: !(Maybe DeploymentReadyAction)
+  , _droWaitTimeInMinutes :: !(Maybe Int)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DeploymentReadyOption' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'droActionOnTimeout' - Information about when to reroute traffic from an original environment to a replacement environment in a blue/green deployment.     * CONTINUE_DEPLOYMENT: Register new instances with the load balancer immediately after the new application revision is installed on the instances in the replacement environment.     * STOP_DEPLOYMENT: Do not register new instances with load balancer unless traffic is rerouted manually. If traffic is not rerouted manually before the end of the specified wait period, the deployment status is changed to Stopped.
+--
+-- * 'droWaitTimeInMinutes' - The number of minutes to wait before the status of a blue/green deployment changed to Stopped if rerouting is not started manually. Applies only to the STOP_DEPLOYMENT option for actionOnTimeout
+deploymentReadyOption
+    :: DeploymentReadyOption
+deploymentReadyOption =
+  DeploymentReadyOption'
+  {_droActionOnTimeout = Nothing, _droWaitTimeInMinutes = Nothing}
+
+
+-- | Information about when to reroute traffic from an original environment to a replacement environment in a blue/green deployment.     * CONTINUE_DEPLOYMENT: Register new instances with the load balancer immediately after the new application revision is installed on the instances in the replacement environment.     * STOP_DEPLOYMENT: Do not register new instances with load balancer unless traffic is rerouted manually. If traffic is not rerouted manually before the end of the specified wait period, the deployment status is changed to Stopped.
+droActionOnTimeout :: Lens' DeploymentReadyOption (Maybe DeploymentReadyAction)
+droActionOnTimeout = lens _droActionOnTimeout (\ s a -> s{_droActionOnTimeout = a});
+
+-- | The number of minutes to wait before the status of a blue/green deployment changed to Stopped if rerouting is not started manually. Applies only to the STOP_DEPLOYMENT option for actionOnTimeout
+droWaitTimeInMinutes :: Lens' DeploymentReadyOption (Maybe Int)
+droWaitTimeInMinutes = lens _droWaitTimeInMinutes (\ s a -> s{_droWaitTimeInMinutes = a});
+
+instance FromJSON DeploymentReadyOption where
+        parseJSON
+          = withObject "DeploymentReadyOption"
+              (\ x ->
+                 DeploymentReadyOption' <$>
+                   (x .:? "actionOnTimeout") <*>
+                     (x .:? "waitTimeInMinutes"))
+
+instance Hashable DeploymentReadyOption where
+
+instance NFData DeploymentReadyOption where
+
+instance ToJSON DeploymentReadyOption where
+        toJSON DeploymentReadyOption'{..}
+          = object
+              (catMaybes
+                 [("actionOnTimeout" .=) <$> _droActionOnTimeout,
+                  ("waitTimeInMinutes" .=) <$> _droWaitTimeInMinutes])
+
+-- | Information about the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer.
+--
+--
+--
+-- /See:/ 'deploymentStyle' smart constructor.
+data DeploymentStyle = DeploymentStyle'
+  { _dsDeploymentOption :: !(Maybe DeploymentOption)
+  , _dsDeploymentType   :: !(Maybe DeploymentType)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DeploymentStyle' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dsDeploymentOption' - Indicates whether to route deployment traffic behind a load balancer.
+--
+-- * 'dsDeploymentType' - Indicates whether to run an in-place deployment or a blue/green deployment.
+deploymentStyle
+    :: DeploymentStyle
+deploymentStyle =
+  DeploymentStyle' {_dsDeploymentOption = Nothing, _dsDeploymentType = Nothing}
+
+
+-- | Indicates whether to route deployment traffic behind a load balancer.
+dsDeploymentOption :: Lens' DeploymentStyle (Maybe DeploymentOption)
+dsDeploymentOption = lens _dsDeploymentOption (\ s a -> s{_dsDeploymentOption = a});
+
+-- | Indicates whether to run an in-place deployment or a blue/green deployment.
+dsDeploymentType :: Lens' DeploymentStyle (Maybe DeploymentType)
+dsDeploymentType = lens _dsDeploymentType (\ s a -> s{_dsDeploymentType = a});
+
+instance FromJSON DeploymentStyle where
+        parseJSON
+          = withObject "DeploymentStyle"
+              (\ x ->
+                 DeploymentStyle' <$>
+                   (x .:? "deploymentOption") <*>
+                     (x .:? "deploymentType"))
+
+instance Hashable DeploymentStyle where
+
+instance NFData DeploymentStyle where
+
+instance ToJSON DeploymentStyle where
+        toJSON DeploymentStyle'{..}
+          = object
+              (catMaybes
+                 [("deploymentOption" .=) <$> _dsDeploymentOption,
+                  ("deploymentType" .=) <$> _dsDeploymentType])
+
+-- | Diagnostic information about executable scripts that are part of a deployment.
+--
+--
+--
+-- /See:/ 'diagnostics' smart constructor.
+data Diagnostics = Diagnostics'
+  { _dLogTail    :: !(Maybe Text)
+  , _dErrorCode  :: !(Maybe LifecycleErrorCode)
+  , _dScriptName :: !(Maybe Text)
+  , _dMessage    :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'Diagnostics' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dLogTail' - The last portion of the diagnostic log. If available, AWS CodeDeploy returns up to the last 4 KB of the diagnostic log.
+--
+-- * 'dErrorCode' - The associated error code:     * Success: The specified script ran.     * ScriptMissing: The specified script was not found in the specified location.     * ScriptNotExecutable: The specified script is not a recognized executable file type.     * ScriptTimedOut: The specified script did not finish running in the specified time period.     * ScriptFailed: The specified script failed to run as expected.     * UnknownError: The specified script did not run for an unknown reason.
+--
+-- * 'dScriptName' - The name of the script.
+--
+-- * 'dMessage' - The message associated with the error.
+diagnostics
+    :: Diagnostics
+diagnostics =
+  Diagnostics'
+  { _dLogTail = Nothing
+  , _dErrorCode = Nothing
+  , _dScriptName = Nothing
+  , _dMessage = Nothing
+  }
+
+
+-- | The last portion of the diagnostic log. If available, AWS CodeDeploy returns up to the last 4 KB of the diagnostic log.
+dLogTail :: Lens' Diagnostics (Maybe Text)
+dLogTail = lens _dLogTail (\ s a -> s{_dLogTail = a});
+
+-- | The associated error code:     * Success: The specified script ran.     * ScriptMissing: The specified script was not found in the specified location.     * ScriptNotExecutable: The specified script is not a recognized executable file type.     * ScriptTimedOut: The specified script did not finish running in the specified time period.     * ScriptFailed: The specified script failed to run as expected.     * UnknownError: The specified script did not run for an unknown reason.
+dErrorCode :: Lens' Diagnostics (Maybe LifecycleErrorCode)
+dErrorCode = lens _dErrorCode (\ s a -> s{_dErrorCode = a});
+
+-- | The name of the script.
+dScriptName :: Lens' Diagnostics (Maybe Text)
+dScriptName = lens _dScriptName (\ s a -> s{_dScriptName = a});
+
+-- | The message associated with the error.
+dMessage :: Lens' Diagnostics (Maybe Text)
+dMessage = lens _dMessage (\ s a -> s{_dMessage = a});
+
+instance FromJSON Diagnostics where
+        parseJSON
+          = withObject "Diagnostics"
+              (\ x ->
+                 Diagnostics' <$>
+                   (x .:? "logTail") <*> (x .:? "errorCode") <*>
+                     (x .:? "scriptName")
+                     <*> (x .:? "message"))
+
+instance Hashable Diagnostics where
+
+instance NFData Diagnostics where
+
+-- | Information about an EC2 tag filter.
+--
+--
+--
+-- /See:/ 'ec2TagFilter' smart constructor.
+data EC2TagFilter = EC2TagFilter'
+  { _etfValue :: !(Maybe Text)
+  , _etfKey   :: !(Maybe Text)
+  , _etfType  :: !(Maybe EC2TagFilterType)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'EC2TagFilter' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'etfValue' - The tag filter value.
+--
+-- * 'etfKey' - The tag filter key.
+--
+-- * 'etfType' - The tag filter type:     * KEY_ONLY: Key only.     * VALUE_ONLY: Value only.     * KEY_AND_VALUE: Key and value.
+ec2TagFilter
+    :: EC2TagFilter
+ec2TagFilter =
+  EC2TagFilter' {_etfValue = Nothing, _etfKey = Nothing, _etfType = Nothing}
+
+
+-- | The tag filter value.
+etfValue :: Lens' EC2TagFilter (Maybe Text)
+etfValue = lens _etfValue (\ s a -> s{_etfValue = a});
+
+-- | The tag filter key.
+etfKey :: Lens' EC2TagFilter (Maybe Text)
+etfKey = lens _etfKey (\ s a -> s{_etfKey = a});
+
+-- | The tag filter type:     * KEY_ONLY: Key only.     * VALUE_ONLY: Value only.     * KEY_AND_VALUE: Key and value.
+etfType :: Lens' EC2TagFilter (Maybe EC2TagFilterType)
+etfType = lens _etfType (\ s a -> s{_etfType = a});
+
+instance FromJSON EC2TagFilter where
+        parseJSON
+          = withObject "EC2TagFilter"
+              (\ x ->
+                 EC2TagFilter' <$>
+                   (x .:? "Value") <*> (x .:? "Key") <*> (x .:? "Type"))
+
+instance Hashable EC2TagFilter where
+
+instance NFData EC2TagFilter where
+
+instance ToJSON EC2TagFilter where
+        toJSON EC2TagFilter'{..}
+          = object
+              (catMaybes
+                 [("Value" .=) <$> _etfValue, ("Key" .=) <$> _etfKey,
+                  ("Type" .=) <$> _etfType])
+
+-- | Information about groups of EC2 instance tags.
+--
+--
+--
+-- /See:/ 'ec2TagSet' smart constructor.
+newtype EC2TagSet = EC2TagSet'
+  { _etsEc2TagSetList :: Maybe [[EC2TagFilter]]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'EC2TagSet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'etsEc2TagSetList' - A list containing other lists of EC2 instance tag groups. In order for an instance to be included in the deployment group, it must be identified by all the tag groups in the list.
+ec2TagSet
+    :: EC2TagSet
+ec2TagSet = EC2TagSet' {_etsEc2TagSetList = Nothing}
+
+
+-- | A list containing other lists of EC2 instance tag groups. In order for an instance to be included in the deployment group, it must be identified by all the tag groups in the list.
+etsEc2TagSetList :: Lens' EC2TagSet [[EC2TagFilter]]
+etsEc2TagSetList = lens _etsEc2TagSetList (\ s a -> s{_etsEc2TagSetList = a}) . _Default . _Coerce;
+
+instance FromJSON EC2TagSet where
+        parseJSON
+          = withObject "EC2TagSet"
+              (\ x ->
+                 EC2TagSet' <$> (x .:? "ec2TagSetList" .!= mempty))
+
+instance Hashable EC2TagSet where
+
+instance NFData EC2TagSet where
+
+instance ToJSON EC2TagSet where
+        toJSON EC2TagSet'{..}
+          = object
+              (catMaybes
+                 [("ec2TagSetList" .=) <$> _etsEc2TagSetList])
+
+-- | Information about a load balancer in Elastic Load Balancing to use in a deployment. Instances are registered directly with a load balancer, and traffic is routed to the load balancer.
+--
+--
+--
+-- /See:/ 'eLBInfo' smart constructor.
+newtype ELBInfo = ELBInfo'
+  { _elbiName :: Maybe Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ELBInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'elbiName' - For blue/green deployments, the name of the load balancer that will be used to route traffic from original instances to replacement instances in a blue/green deployment. For in-place deployments, the name of the load balancer that instances are deregistered from, so they are not serving traffic during a deployment, and then re-registered with after the deployment completes.
+eLBInfo
+    :: ELBInfo
+eLBInfo = ELBInfo' {_elbiName = Nothing}
+
+
+-- | For blue/green deployments, the name of the load balancer that will be used to route traffic from original instances to replacement instances in a blue/green deployment. For in-place deployments, the name of the load balancer that instances are deregistered from, so they are not serving traffic during a deployment, and then re-registered with after the deployment completes.
+elbiName :: Lens' ELBInfo (Maybe Text)
+elbiName = lens _elbiName (\ s a -> s{_elbiName = a});
+
+instance FromJSON ELBInfo where
+        parseJSON
+          = withObject "ELBInfo"
+              (\ x -> ELBInfo' <$> (x .:? "name"))
+
+instance Hashable ELBInfo where
+
+instance NFData ELBInfo where
+
+instance ToJSON ELBInfo where
+        toJSON ELBInfo'{..}
+          = object (catMaybes [("name" .=) <$> _elbiName])
+
+-- | Information about a deployment error.
+--
+--
+--
+-- /See:/ 'errorInformation' smart constructor.
+data ErrorInformation = ErrorInformation'
+  { _eiCode    :: !(Maybe DeployErrorCode)
+  , _eiMessage :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ErrorInformation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'eiCode' - For information about additional error codes, see <http://docs.aws.amazon.com/codedeploy/latest/userguide/error-codes.html Error Codes for AWS CodeDeploy> in the <http://docs.aws.amazon.com/codedeploy/latest/userguide AWS CodeDeploy User Guide> . The error code:     * APPLICATION_MISSING: The application was missing. This error code will most likely be raised if the application is deleted after the deployment is created but before it is started.     * DEPLOYMENT_GROUP_MISSING: The deployment group was missing. This error code will most likely be raised if the deployment group is deleted after the deployment is created but before it is started.     * HEALTH_CONSTRAINTS: The deployment failed on too many instances to be successfully deployed within the instance health constraints specified.     * HEALTH_CONSTRAINTS_INVALID: The revision cannot be successfully deployed within the instance health constraints specified.     * IAM_ROLE_MISSING: The service role cannot be accessed.     * IAM_ROLE_PERMISSIONS: The service role does not have 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 instance were specified, or no instance can be found.     * OVER_MAX_INSTANCES: The maximum number of instance 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. This error code will most likely be raised if the revision is deleted after the deployment is created but before it is started.
+--
+-- * 'eiMessage' - An accompanying error message.
+errorInformation
+    :: ErrorInformation
+errorInformation = ErrorInformation' {_eiCode = Nothing, _eiMessage = Nothing}
+
+
+-- | For information about additional error codes, see <http://docs.aws.amazon.com/codedeploy/latest/userguide/error-codes.html Error Codes for AWS CodeDeploy> in the <http://docs.aws.amazon.com/codedeploy/latest/userguide AWS CodeDeploy User Guide> . The error code:     * APPLICATION_MISSING: The application was missing. This error code will most likely be raised if the application is deleted after the deployment is created but before it is started.     * DEPLOYMENT_GROUP_MISSING: The deployment group was missing. This error code will most likely be raised if the deployment group is deleted after the deployment is created but before it is started.     * HEALTH_CONSTRAINTS: The deployment failed on too many instances to be successfully deployed within the instance health constraints specified.     * HEALTH_CONSTRAINTS_INVALID: The revision cannot be successfully deployed within the instance health constraints specified.     * IAM_ROLE_MISSING: The service role cannot be accessed.     * IAM_ROLE_PERMISSIONS: The service role does not have 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 instance were specified, or no instance can be found.     * OVER_MAX_INSTANCES: The maximum number of instance 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. This error code will most likely be raised if the revision is deleted after the deployment is created but before it is started.
+eiCode :: Lens' ErrorInformation (Maybe DeployErrorCode)
+eiCode = lens _eiCode (\ s a -> s{_eiCode = a});
+
+-- | An accompanying error message.
+eiMessage :: Lens' ErrorInformation (Maybe Text)
+eiMessage = lens _eiMessage (\ s a -> s{_eiMessage = a});
+
+instance FromJSON ErrorInformation where
+        parseJSON
+          = withObject "ErrorInformation"
+              (\ x ->
+                 ErrorInformation' <$>
+                   (x .:? "code") <*> (x .:? "message"))
+
+instance Hashable ErrorInformation where
+
+instance NFData ErrorInformation where
+
+-- | Information about an application revision.
+--
+--
+--
+-- /See:/ 'genericRevisionInfo' smart constructor.
+data GenericRevisionInfo = GenericRevisionInfo'
+  { _griRegisterTime     :: !(Maybe POSIX)
+  , _griFirstUsedTime    :: !(Maybe POSIX)
+  , _griDeploymentGroups :: !(Maybe [Text])
+  , _griLastUsedTime     :: !(Maybe POSIX)
+  , _griDescription      :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GenericRevisionInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'griRegisterTime' - When the revision was registered with AWS CodeDeploy.
+--
+-- * 'griFirstUsedTime' - When the revision was first used by AWS CodeDeploy.
+--
+-- * 'griDeploymentGroups' - The deployment groups for which this is the current target revision.
+--
+-- * 'griLastUsedTime' - When the revision was last used by AWS CodeDeploy.
+--
+-- * 'griDescription' - A comment about the revision.
+genericRevisionInfo
+    :: GenericRevisionInfo
+genericRevisionInfo =
+  GenericRevisionInfo'
+  { _griRegisterTime = Nothing
+  , _griFirstUsedTime = Nothing
+  , _griDeploymentGroups = Nothing
+  , _griLastUsedTime = Nothing
+  , _griDescription = Nothing
+  }
+
+
+-- | When the revision was registered with AWS CodeDeploy.
+griRegisterTime :: Lens' GenericRevisionInfo (Maybe UTCTime)
+griRegisterTime = lens _griRegisterTime (\ s a -> s{_griRegisterTime = a}) . mapping _Time;
+
+-- | When the revision was first used by AWS CodeDeploy.
+griFirstUsedTime :: Lens' GenericRevisionInfo (Maybe UTCTime)
+griFirstUsedTime = lens _griFirstUsedTime (\ s a -> s{_griFirstUsedTime = a}) . mapping _Time;
+
+-- | The deployment groups for which this is the current target revision.
+griDeploymentGroups :: Lens' GenericRevisionInfo [Text]
+griDeploymentGroups = lens _griDeploymentGroups (\ s a -> s{_griDeploymentGroups = a}) . _Default . _Coerce;
+
+-- | When the revision was last used by AWS CodeDeploy.
+griLastUsedTime :: Lens' GenericRevisionInfo (Maybe UTCTime)
+griLastUsedTime = lens _griLastUsedTime (\ s a -> s{_griLastUsedTime = a}) . mapping _Time;
+
+-- | A comment about the revision.
+griDescription :: Lens' GenericRevisionInfo (Maybe Text)
+griDescription = lens _griDescription (\ s a -> s{_griDescription = a});
+
+instance FromJSON GenericRevisionInfo where
+        parseJSON
+          = withObject "GenericRevisionInfo"
+              (\ x ->
+                 GenericRevisionInfo' <$>
+                   (x .:? "registerTime") <*> (x .:? "firstUsedTime")
+                     <*> (x .:? "deploymentGroups" .!= mempty)
+                     <*> (x .:? "lastUsedTime")
+                     <*> (x .:? "description"))
+
+instance Hashable GenericRevisionInfo where
+
+instance NFData GenericRevisionInfo where
+
+-- | Information about the location of application artifacts stored in GitHub.
+--
+--
+--
+-- /See:/ 'gitHubLocation' smart constructor.
+data GitHubLocation = GitHubLocation'
+  { _ghlCommitId   :: !(Maybe Text)
+  , _ghlRepository :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GitHubLocation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ghlCommitId' - The SHA1 commit ID of the GitHub commit that represents the bundled artifacts for the application revision.
+--
+-- * 'ghlRepository' - The GitHub account and repository pair that stores a reference to the commit that represents the bundled artifacts for the application revision.  Specified as account/repository.
+gitHubLocation
+    :: GitHubLocation
+gitHubLocation =
+  GitHubLocation' {_ghlCommitId = Nothing, _ghlRepository = Nothing}
+
+
+-- | The SHA1 commit ID of the GitHub commit that represents the bundled artifacts for the application revision.
+ghlCommitId :: Lens' GitHubLocation (Maybe Text)
+ghlCommitId = lens _ghlCommitId (\ s a -> s{_ghlCommitId = a});
+
+-- | The GitHub account and repository pair that stores a reference to the commit that represents the bundled artifacts for the application revision.  Specified as account/repository.
+ghlRepository :: Lens' GitHubLocation (Maybe Text)
+ghlRepository = lens _ghlRepository (\ s a -> s{_ghlRepository = a});
+
+instance FromJSON GitHubLocation where
+        parseJSON
+          = withObject "GitHubLocation"
+              (\ x ->
+                 GitHubLocation' <$>
+                   (x .:? "commitId") <*> (x .:? "repository"))
+
+instance Hashable GitHubLocation where
+
+instance NFData GitHubLocation where
+
+instance ToJSON GitHubLocation where
+        toJSON GitHubLocation'{..}
+          = object
+              (catMaybes
+                 [("commitId" .=) <$> _ghlCommitId,
+                  ("repository" .=) <$> _ghlRepository])
+
+-- | Information about the instances that belong to the replacement environment in a blue/green deployment.
+--
+--
+--
+-- /See:/ 'greenFleetProvisioningOption' smart constructor.
+newtype GreenFleetProvisioningOption = GreenFleetProvisioningOption'
+  { _gfpoAction :: Maybe GreenFleetProvisioningAction
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GreenFleetProvisioningOption' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gfpoAction' - The method used to add instances to a replacement environment.     * DISCOVER_EXISTING: Use instances that already exist or will be created manually.     * COPY_AUTO_SCALING_GROUP: Use settings from a specified Auto Scaling group to define and create instances in a new Auto Scaling group.
+greenFleetProvisioningOption
+    :: GreenFleetProvisioningOption
+greenFleetProvisioningOption =
+  GreenFleetProvisioningOption' {_gfpoAction = Nothing}
+
+
+-- | The method used to add instances to a replacement environment.     * DISCOVER_EXISTING: Use instances that already exist or will be created manually.     * COPY_AUTO_SCALING_GROUP: Use settings from a specified Auto Scaling group to define and create instances in a new Auto Scaling group.
+gfpoAction :: Lens' GreenFleetProvisioningOption (Maybe GreenFleetProvisioningAction)
+gfpoAction = lens _gfpoAction (\ s a -> s{_gfpoAction = a});
+
+instance FromJSON GreenFleetProvisioningOption where
+        parseJSON
+          = withObject "GreenFleetProvisioningOption"
+              (\ x ->
+                 GreenFleetProvisioningOption' <$> (x .:? "action"))
+
+instance Hashable GreenFleetProvisioningOption where
+
+instance NFData GreenFleetProvisioningOption where
+
+instance ToJSON GreenFleetProvisioningOption where
+        toJSON GreenFleetProvisioningOption'{..}
+          = object (catMaybes [("action" .=) <$> _gfpoAction])
+
+-- | Information about an on-premises instance.
+--
+--
+--
+-- /See:/ 'instanceInfo' smart constructor.
+data InstanceInfo = InstanceInfo'
+  { _iiRegisterTime   :: !(Maybe POSIX)
+  , _iiInstanceARN    :: !(Maybe Text)
+  , _iiDeregisterTime :: !(Maybe POSIX)
+  , _iiIamUserARN     :: !(Maybe Text)
+  , _iiInstanceName   :: !(Maybe Text)
+  , _iiIamSessionARN  :: !(Maybe Text)
+  , _iiTags           :: !(Maybe [Tag])
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'InstanceInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'iiRegisterTime' - The time at which the on-premises instance was registered.
+--
+-- * 'iiInstanceARN' - The ARN of the on-premises instance.
+--
+-- * 'iiDeregisterTime' - If the on-premises instance was deregistered, the time at which the on-premises instance was deregistered.
+--
+-- * 'iiIamUserARN' - The IAM user ARN associated with the on-premises instance.
+--
+-- * 'iiInstanceName' - The name of the on-premises instance.
+--
+-- * 'iiIamSessionARN' - The ARN of the IAM session associated with the on-premises instance.
+--
+-- * 'iiTags' - The tags currently associated with the on-premises instance.
+instanceInfo
+    :: InstanceInfo
+instanceInfo =
+  InstanceInfo'
+  { _iiRegisterTime = Nothing
+  , _iiInstanceARN = Nothing
+  , _iiDeregisterTime = Nothing
+  , _iiIamUserARN = Nothing
+  , _iiInstanceName = Nothing
+  , _iiIamSessionARN = Nothing
+  , _iiTags = Nothing
+  }
+
+
+-- | The time at which the on-premises instance was registered.
+iiRegisterTime :: Lens' InstanceInfo (Maybe UTCTime)
+iiRegisterTime = lens _iiRegisterTime (\ s a -> s{_iiRegisterTime = a}) . mapping _Time;
+
+-- | The ARN of the on-premises instance.
+iiInstanceARN :: Lens' InstanceInfo (Maybe Text)
+iiInstanceARN = lens _iiInstanceARN (\ s a -> s{_iiInstanceARN = a});
+
+-- | If the on-premises instance was deregistered, the time at which 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 name of the on-premises instance.
+iiInstanceName :: Lens' InstanceInfo (Maybe Text)
+iiInstanceName = lens _iiInstanceName (\ s a -> s{_iiInstanceName = a});
+
+-- | The ARN of the IAM session associated with the on-premises instance.
+iiIamSessionARN :: Lens' InstanceInfo (Maybe Text)
+iiIamSessionARN = lens _iiIamSessionARN (\ s a -> s{_iiIamSessionARN = a});
+
+-- | The tags currently associated with the on-premises instance.
+iiTags :: Lens' InstanceInfo [Tag]
+iiTags = lens _iiTags (\ s a -> s{_iiTags = a}) . _Default . _Coerce;
+
+instance FromJSON InstanceInfo where
+        parseJSON
+          = withObject "InstanceInfo"
+              (\ x ->
+                 InstanceInfo' <$>
+                   (x .:? "registerTime") <*> (x .:? "instanceArn") <*>
+                     (x .:? "deregisterTime")
+                     <*> (x .:? "iamUserArn")
+                     <*> (x .:? "instanceName")
+                     <*> (x .:? "iamSessionArn")
+                     <*> (x .:? "tags" .!= mempty))
+
+instance Hashable InstanceInfo where
+
+instance NFData InstanceInfo where
+
+-- | Information about an instance in a deployment.
+--
+--
+--
+-- /See:/ 'instanceSummary' smart constructor.
+data InstanceSummary = InstanceSummary'
+  { _isInstanceId      :: !(Maybe Text)
+  , _isStatus          :: !(Maybe InstanceStatus)
+  , _isDeploymentId    :: !(Maybe Text)
+  , _isLastUpdatedAt   :: !(Maybe POSIX)
+  , _isLifecycleEvents :: !(Maybe [LifecycleEvent])
+  , _isInstanceType    :: !(Maybe InstanceType)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'InstanceSummary' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'isInstanceId' - The instance ID.
+--
+-- * 'isStatus' - The deployment status for this instance:     * Pending: The deployment is pending for this instance.     * In Progress: The deployment is in progress for this instance.     * Succeeded: The deployment has succeeded for this instance.     * Failed: The deployment has failed for this instance.     * Skipped: The deployment has been skipped for this instance.     * Unknown: The deployment status is unknown for this instance.
+--
+-- * 'isDeploymentId' - The deployment ID.
+--
+-- * 'isLastUpdatedAt' - A timestamp indicating when the instance information was last updated.
+--
+-- * 'isLifecycleEvents' - A list of lifecycle events for this instance.
+--
+-- * 'isInstanceType' - Information about which environment an instance belongs to in a blue/green deployment.     * BLUE: The instance is part of the original environment.     * GREEN: The instance is part of the replacement environment.
+instanceSummary
+    :: InstanceSummary
+instanceSummary =
+  InstanceSummary'
+  { _isInstanceId = Nothing
+  , _isStatus = Nothing
+  , _isDeploymentId = Nothing
+  , _isLastUpdatedAt = Nothing
+  , _isLifecycleEvents = Nothing
+  , _isInstanceType = Nothing
+  }
+
+
+-- | The instance ID.
+isInstanceId :: Lens' InstanceSummary (Maybe Text)
+isInstanceId = lens _isInstanceId (\ s a -> s{_isInstanceId = a});
+
+-- | The deployment status for this instance:     * Pending: The deployment is pending for this instance.     * In Progress: The deployment is in progress for this instance.     * Succeeded: The deployment has succeeded for this instance.     * Failed: The deployment has failed for this instance.     * Skipped: The deployment has been skipped for this instance.     * Unknown: The deployment status is unknown for this instance.
+isStatus :: Lens' InstanceSummary (Maybe InstanceStatus)
+isStatus = lens _isStatus (\ s a -> s{_isStatus = a});
+
+-- | The deployment ID.
+isDeploymentId :: Lens' InstanceSummary (Maybe Text)
+isDeploymentId = lens _isDeploymentId (\ s a -> s{_isDeploymentId = a});
+
+-- | A timestamp indicating when the instance information was last updated.
+isLastUpdatedAt :: Lens' InstanceSummary (Maybe UTCTime)
+isLastUpdatedAt = lens _isLastUpdatedAt (\ s a -> s{_isLastUpdatedAt = a}) . mapping _Time;
+
+-- | A list of lifecycle events for this instance.
+isLifecycleEvents :: Lens' InstanceSummary [LifecycleEvent]
+isLifecycleEvents = lens _isLifecycleEvents (\ s a -> s{_isLifecycleEvents = a}) . _Default . _Coerce;
+
+-- | Information about which environment an instance belongs to in a blue/green deployment.     * BLUE: The instance is part of the original environment.     * GREEN: The instance is part of the replacement environment.
+isInstanceType :: Lens' InstanceSummary (Maybe InstanceType)
+isInstanceType = lens _isInstanceType (\ s a -> s{_isInstanceType = a});
+
+instance FromJSON InstanceSummary where
+        parseJSON
+          = withObject "InstanceSummary"
+              (\ x ->
+                 InstanceSummary' <$>
+                   (x .:? "instanceId") <*> (x .:? "status") <*>
+                     (x .:? "deploymentId")
+                     <*> (x .:? "lastUpdatedAt")
+                     <*> (x .:? "lifecycleEvents" .!= mempty)
+                     <*> (x .:? "instanceType"))
+
+instance Hashable InstanceSummary where
+
+instance NFData InstanceSummary where
+
+-- | Information about the most recent attempted or successful deployment to a deployment group.
+--
+--
+--
+-- /See:/ 'lastDeploymentInfo' smart constructor.
+data LastDeploymentInfo = LastDeploymentInfo'
+  { _ldiStatus       :: !(Maybe DeploymentStatus)
+  , _ldiDeploymentId :: !(Maybe Text)
+  , _ldiEndTime      :: !(Maybe POSIX)
+  , _ldiCreateTime   :: !(Maybe POSIX)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'LastDeploymentInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ldiStatus' - The status of the most recent deployment.
+--
+-- * 'ldiDeploymentId' - The deployment ID.
+--
+-- * 'ldiEndTime' - A timestamp indicating when the most recent deployment to the deployment group completed.
+--
+-- * 'ldiCreateTime' - A timestamp indicating when the most recent deployment to the deployment group started.
+lastDeploymentInfo
+    :: LastDeploymentInfo
+lastDeploymentInfo =
+  LastDeploymentInfo'
+  { _ldiStatus = Nothing
+  , _ldiDeploymentId = Nothing
+  , _ldiEndTime = Nothing
+  , _ldiCreateTime = Nothing
+  }
+
+
+-- | The status of the most recent deployment.
+ldiStatus :: Lens' LastDeploymentInfo (Maybe DeploymentStatus)
+ldiStatus = lens _ldiStatus (\ s a -> s{_ldiStatus = a});
+
+-- | The deployment ID.
+ldiDeploymentId :: Lens' LastDeploymentInfo (Maybe Text)
+ldiDeploymentId = lens _ldiDeploymentId (\ s a -> s{_ldiDeploymentId = a});
+
+-- | A timestamp indicating when the most recent deployment to the deployment group completed.
+ldiEndTime :: Lens' LastDeploymentInfo (Maybe UTCTime)
+ldiEndTime = lens _ldiEndTime (\ s a -> s{_ldiEndTime = a}) . mapping _Time;
+
+-- | A timestamp indicating when the most recent deployment to the deployment group started.
+ldiCreateTime :: Lens' LastDeploymentInfo (Maybe UTCTime)
+ldiCreateTime = lens _ldiCreateTime (\ s a -> s{_ldiCreateTime = a}) . mapping _Time;
+
+instance FromJSON LastDeploymentInfo where
+        parseJSON
+          = withObject "LastDeploymentInfo"
+              (\ x ->
+                 LastDeploymentInfo' <$>
+                   (x .:? "status") <*> (x .:? "deploymentId") <*>
+                     (x .:? "endTime")
+                     <*> (x .:? "createTime"))
+
+instance Hashable LastDeploymentInfo where
+
+instance NFData LastDeploymentInfo where
+
+-- | Information about a deployment lifecycle event.
+--
+--
+--
+-- /See:/ 'lifecycleEvent' smart constructor.
+data LifecycleEvent = LifecycleEvent'
+  { _leStatus             :: !(Maybe LifecycleEventStatus)
+  , _leLifecycleEventName :: !(Maybe Text)
+  , _leStartTime          :: !(Maybe POSIX)
+  , _leDiagnostics        :: !(Maybe Diagnostics)
+  , _leEndTime            :: !(Maybe POSIX)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'LifecycleEvent' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'leStatus' - The deployment lifecycle event status:     * Pending: The deployment lifecycle event is pending.     * InProgress: The deployment lifecycle event is in progress.     * Succeeded: The deployment lifecycle event ran successfully.     * Failed: The deployment lifecycle event has failed.     * Skipped: The deployment lifecycle event has been skipped.     * Unknown: The deployment lifecycle event is unknown.
+--
+-- * 'leLifecycleEventName' - The deployment lifecycle event name, such as ApplicationStop, BeforeInstall, AfterInstall, ApplicationStart, or ValidateService.
+--
+-- * 'leStartTime' - A timestamp indicating when the deployment lifecycle event started.
+--
+-- * 'leDiagnostics' - Diagnostic information about the deployment lifecycle event.
+--
+-- * 'leEndTime' - A timestamp indicating when the deployment lifecycle event ended.
+lifecycleEvent
+    :: LifecycleEvent
+lifecycleEvent =
+  LifecycleEvent'
+  { _leStatus = Nothing
+  , _leLifecycleEventName = Nothing
+  , _leStartTime = Nothing
+  , _leDiagnostics = Nothing
+  , _leEndTime = Nothing
+  }
+
+
+-- | The deployment lifecycle event status:     * Pending: The deployment lifecycle event is pending.     * InProgress: The deployment lifecycle event is in progress.     * Succeeded: The deployment lifecycle event ran successfully.     * Failed: The deployment lifecycle event has failed.     * Skipped: The deployment lifecycle event has been skipped.     * Unknown: The deployment lifecycle event is unknown.
+leStatus :: Lens' LifecycleEvent (Maybe LifecycleEventStatus)
+leStatus = lens _leStatus (\ s a -> s{_leStatus = a});
+
+-- | The deployment lifecycle event name, such as ApplicationStop, BeforeInstall, AfterInstall, ApplicationStart, or ValidateService.
+leLifecycleEventName :: Lens' LifecycleEvent (Maybe Text)
+leLifecycleEventName = lens _leLifecycleEventName (\ s a -> s{_leLifecycleEventName = a});
+
+-- | A timestamp indicating when the deployment lifecycle event started.
+leStartTime :: Lens' LifecycleEvent (Maybe UTCTime)
+leStartTime = lens _leStartTime (\ s a -> s{_leStartTime = a}) . mapping _Time;
+
+-- | Diagnostic information about the deployment lifecycle event.
+leDiagnostics :: Lens' LifecycleEvent (Maybe Diagnostics)
+leDiagnostics = lens _leDiagnostics (\ s a -> s{_leDiagnostics = a});
+
+-- | A timestamp indicating when the deployment lifecycle event ended.
+leEndTime :: Lens' LifecycleEvent (Maybe UTCTime)
+leEndTime = lens _leEndTime (\ s a -> s{_leEndTime = a}) . mapping _Time;
+
+instance FromJSON LifecycleEvent where
+        parseJSON
+          = withObject "LifecycleEvent"
+              (\ x ->
+                 LifecycleEvent' <$>
+                   (x .:? "status") <*> (x .:? "lifecycleEventName") <*>
+                     (x .:? "startTime")
+                     <*> (x .:? "diagnostics")
+                     <*> (x .:? "endTime"))
+
+instance Hashable LifecycleEvent where
+
+instance NFData LifecycleEvent where
+
+-- | Information about the Elastic Load Balancing load balancer or target group used in a deployment.
+--
+--
+--
+-- /See:/ 'loadBalancerInfo' smart constructor.
+data LoadBalancerInfo = LoadBalancerInfo'
+  { _lbiElbInfoList         :: !(Maybe [ELBInfo])
+  , _lbiTargetGroupInfoList :: !(Maybe [TargetGroupInfo])
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'LoadBalancerInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lbiElbInfoList' - An array containing information about the load balancer to use for load balancing in a deployment. In Elastic Load Balancing, load balancers are used with Classic Load Balancers.
+--
+-- * 'lbiTargetGroupInfoList' - An array containing information about the target group to use for load balancing in a deployment. In Elastic Load Balancing, target groups are used with Application Load Balancers.
+loadBalancerInfo
+    :: LoadBalancerInfo
+loadBalancerInfo =
+  LoadBalancerInfo'
+  {_lbiElbInfoList = Nothing, _lbiTargetGroupInfoList = Nothing}
+
+
+-- | An array containing information about the load balancer to use for load balancing in a deployment. In Elastic Load Balancing, load balancers are used with Classic Load Balancers.
+lbiElbInfoList :: Lens' LoadBalancerInfo [ELBInfo]
+lbiElbInfoList = lens _lbiElbInfoList (\ s a -> s{_lbiElbInfoList = a}) . _Default . _Coerce;
+
+-- | An array containing information about the target group to use for load balancing in a deployment. In Elastic Load Balancing, target groups are used with Application Load Balancers.
+lbiTargetGroupInfoList :: Lens' LoadBalancerInfo [TargetGroupInfo]
+lbiTargetGroupInfoList = lens _lbiTargetGroupInfoList (\ s a -> s{_lbiTargetGroupInfoList = a}) . _Default . _Coerce;
+
+instance FromJSON LoadBalancerInfo where
+        parseJSON
+          = withObject "LoadBalancerInfo"
+              (\ x ->
+                 LoadBalancerInfo' <$>
+                   (x .:? "elbInfoList" .!= mempty) <*>
+                     (x .:? "targetGroupInfoList" .!= mempty))
+
+instance Hashable LoadBalancerInfo where
+
+instance NFData LoadBalancerInfo where
+
+instance ToJSON LoadBalancerInfo where
+        toJSON LoadBalancerInfo'{..}
+          = object
+              (catMaybes
+                 [("elbInfoList" .=) <$> _lbiElbInfoList,
+                  ("targetGroupInfoList" .=) <$>
+                    _lbiTargetGroupInfoList])
+
+-- | Information about minimum healthy instance.
+--
+--
+--
+-- /See:/ 'minimumHealthyHosts' smart constructor.
+data MinimumHealthyHosts = MinimumHealthyHosts'
+  { _mhhValue :: !(Maybe Int)
+  , _mhhType  :: !(Maybe MinimumHealthyHostsType)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'MinimumHealthyHosts' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mhhValue' - The minimum healthy instance value.
+--
+-- * 'mhhType' - The minimum healthy instance type:     * HOST_COUNT: The minimum number of healthy instance as an absolute value.     * FLEET_PERCENT: The minimum number of healthy instance as a percentage of the total number of instance in the deployment. In an example of nine instance, if a HOST_COUNT of six is specified, deploy to up to three instances at a time. The deployment will be successful if six or more instances are deployed to successfully; otherwise, the deployment fails. If a FLEET_PERCENT of 40 is specified, deploy to up to five instance at a time. The deployment will be successful if four or more instance are deployed to successfully; otherwise, the deployment fails. For more information, see <http://docs.aws.amazon.com/codedeploy/latest/userguide/instances-health.html AWS CodeDeploy Instance Health> in the /AWS CodeDeploy User Guide/ .
+minimumHealthyHosts
+    :: MinimumHealthyHosts
+minimumHealthyHosts =
+  MinimumHealthyHosts' {_mhhValue = Nothing, _mhhType = Nothing}
+
+
+-- | The minimum healthy instance value.
+mhhValue :: Lens' MinimumHealthyHosts (Maybe Int)
+mhhValue = lens _mhhValue (\ s a -> s{_mhhValue = a});
+
+-- | The minimum healthy instance type:     * HOST_COUNT: The minimum number of healthy instance as an absolute value.     * FLEET_PERCENT: The minimum number of healthy instance as a percentage of the total number of instance in the deployment. In an example of nine instance, if a HOST_COUNT of six is specified, deploy to up to three instances at a time. The deployment will be successful if six or more instances are deployed to successfully; otherwise, the deployment fails. If a FLEET_PERCENT of 40 is specified, deploy to up to five instance at a time. The deployment will be successful if four or more instance are deployed to successfully; otherwise, the deployment fails. For more information, see <http://docs.aws.amazon.com/codedeploy/latest/userguide/instances-health.html AWS CodeDeploy Instance Health> in the /AWS CodeDeploy User Guide/ .
+mhhType :: Lens' MinimumHealthyHosts (Maybe MinimumHealthyHostsType)
+mhhType = lens _mhhType (\ s a -> s{_mhhType = a});
+
+instance FromJSON MinimumHealthyHosts where
+        parseJSON
+          = withObject "MinimumHealthyHosts"
+              (\ x ->
+                 MinimumHealthyHosts' <$>
+                   (x .:? "value") <*> (x .:? "type"))
+
+instance Hashable MinimumHealthyHosts where
+
+instance NFData MinimumHealthyHosts where
+
+instance ToJSON MinimumHealthyHosts where
+        toJSON MinimumHealthyHosts'{..}
+          = object
+              (catMaybes
+                 [("value" .=) <$> _mhhValue,
+                  ("type" .=) <$> _mhhType])
+
+-- | Information about groups of on-premises instance tags.
+--
+--
+--
+-- /See:/ 'onPremisesTagSet' smart constructor.
+newtype OnPremisesTagSet = OnPremisesTagSet'
+  { _optsOnPremisesTagSetList :: Maybe [[TagFilter]]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'OnPremisesTagSet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'optsOnPremisesTagSetList' - A list containing other lists of on-premises instance tag groups. In order for an instance to be included in the deployment group, it must be identified by all the tag groups in the list.
+onPremisesTagSet
+    :: OnPremisesTagSet
+onPremisesTagSet = OnPremisesTagSet' {_optsOnPremisesTagSetList = Nothing}
+
+
+-- | A list containing other lists of on-premises instance tag groups. In order for an instance to be included in the deployment group, it must be identified by all the tag groups in the list.
+optsOnPremisesTagSetList :: Lens' OnPremisesTagSet [[TagFilter]]
+optsOnPremisesTagSetList = lens _optsOnPremisesTagSetList (\ s a -> s{_optsOnPremisesTagSetList = a}) . _Default . _Coerce;
+
+instance FromJSON OnPremisesTagSet where
+        parseJSON
+          = withObject "OnPremisesTagSet"
+              (\ x ->
+                 OnPremisesTagSet' <$>
+                   (x .:? "onPremisesTagSetList" .!= mempty))
+
+instance Hashable OnPremisesTagSet where
+
+instance NFData OnPremisesTagSet where
+
+instance ToJSON OnPremisesTagSet where
+        toJSON OnPremisesTagSet'{..}
+          = object
+              (catMaybes
+                 [("onPremisesTagSetList" .=) <$>
+                    _optsOnPremisesTagSetList])
+
+-- | Information about an application revision.
+--
+--
+--
+-- /See:/ 'revisionInfo' smart constructor.
+data RevisionInfo = RevisionInfo'
+  { _riGenericRevisionInfo :: !(Maybe GenericRevisionInfo)
+  , _riRevisionLocation    :: !(Maybe RevisionLocation)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'RevisionInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'riGenericRevisionInfo' - Information about an application revision, including usage details and associated deployment groups.
+--
+-- * 'riRevisionLocation' - Information about the location and type of an application revision.
+revisionInfo
+    :: RevisionInfo
+revisionInfo =
+  RevisionInfo'
+  {_riGenericRevisionInfo = Nothing, _riRevisionLocation = Nothing}
+
+
+-- | Information about an application revision, including usage details and associated deployment groups.
+riGenericRevisionInfo :: Lens' RevisionInfo (Maybe GenericRevisionInfo)
+riGenericRevisionInfo = lens _riGenericRevisionInfo (\ s a -> s{_riGenericRevisionInfo = a});
+
+-- | Information about the location and type of an application revision.
+riRevisionLocation :: Lens' RevisionInfo (Maybe RevisionLocation)
+riRevisionLocation = lens _riRevisionLocation (\ s a -> s{_riRevisionLocation = a});
+
+instance FromJSON RevisionInfo where
+        parseJSON
+          = withObject "RevisionInfo"
+              (\ x ->
+                 RevisionInfo' <$>
+                   (x .:? "genericRevisionInfo") <*>
+                     (x .:? "revisionLocation"))
+
+instance Hashable RevisionInfo where
+
+instance NFData RevisionInfo where
+
+-- | Information about the location of an application revision.
+--
+--
+--
+-- /See:/ 'revisionLocation' smart constructor.
+data RevisionLocation = RevisionLocation'
+  { _rlRevisionType   :: !(Maybe RevisionLocationType)
+  , _rlS3Location     :: !(Maybe S3Location)
+  , _rlGitHubLocation :: !(Maybe GitHubLocation)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'RevisionLocation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rlRevisionType' - The type of application revision:     * S3: An application revision stored in Amazon S3.     * GitHub: An application revision stored in GitHub.
+--
+-- * 'rlS3Location' - Information about the location of application artifacts stored in Amazon S3.
+--
+-- * 'rlGitHubLocation' - Information about the location of application artifacts stored in GitHub.
+revisionLocation
+    :: RevisionLocation
+revisionLocation =
+  RevisionLocation'
+  { _rlRevisionType = Nothing
+  , _rlS3Location = Nothing
+  , _rlGitHubLocation = Nothing
+  }
+
+
+-- | The type of application revision:     * S3: An application revision stored in Amazon S3.     * GitHub: An application revision stored in GitHub.
+rlRevisionType :: Lens' RevisionLocation (Maybe RevisionLocationType)
+rlRevisionType = lens _rlRevisionType (\ s a -> s{_rlRevisionType = a});
+
+-- | Information about the location of application artifacts stored in Amazon S3.
+rlS3Location :: Lens' RevisionLocation (Maybe S3Location)
+rlS3Location = lens _rlS3Location (\ s a -> s{_rlS3Location = a});
+
+-- | Information about the location of application artifacts stored in GitHub.
+rlGitHubLocation :: Lens' RevisionLocation (Maybe GitHubLocation)
+rlGitHubLocation = lens _rlGitHubLocation (\ s a -> s{_rlGitHubLocation = a});
+
+instance FromJSON RevisionLocation where
+        parseJSON
+          = withObject "RevisionLocation"
+              (\ x ->
+                 RevisionLocation' <$>
+                   (x .:? "revisionType") <*> (x .:? "s3Location") <*>
+                     (x .:? "gitHubLocation"))
+
+instance Hashable RevisionLocation where
+
+instance NFData RevisionLocation where
+
+instance ToJSON RevisionLocation where
+        toJSON RevisionLocation'{..}
+          = object
+              (catMaybes
+                 [("revisionType" .=) <$> _rlRevisionType,
+                  ("s3Location" .=) <$> _rlS3Location,
+                  ("gitHubLocation" .=) <$> _rlGitHubLocation])
+
+-- | Information about a deployment rollback.
+--
+--
+--
+-- /See:/ 'rollbackInfo' smart constructor.
+data RollbackInfo = RollbackInfo'
+  { _riRollbackTriggeringDeploymentId :: !(Maybe Text)
+  , _riRollbackMessage                :: !(Maybe Text)
+  , _riRollbackDeploymentId           :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'RollbackInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'riRollbackTriggeringDeploymentId' - The deployment ID of the deployment that was underway and triggered a rollback deployment because it failed or was stopped.
+--
+-- * 'riRollbackMessage' - Information describing the status of a deployment rollback; for example, whether the deployment can't be rolled back, is in progress, failed, or succeeded.
+--
+-- * 'riRollbackDeploymentId' - The ID of the deployment rollback.
+rollbackInfo
+    :: RollbackInfo
+rollbackInfo =
+  RollbackInfo'
+  { _riRollbackTriggeringDeploymentId = Nothing
+  , _riRollbackMessage = Nothing
+  , _riRollbackDeploymentId = Nothing
+  }
+
+
+-- | The deployment ID of the deployment that was underway and triggered a rollback deployment because it failed or was stopped.
+riRollbackTriggeringDeploymentId :: Lens' RollbackInfo (Maybe Text)
+riRollbackTriggeringDeploymentId = lens _riRollbackTriggeringDeploymentId (\ s a -> s{_riRollbackTriggeringDeploymentId = a});
+
+-- | Information describing the status of a deployment rollback; for example, whether the deployment can't be rolled back, is in progress, failed, or succeeded.
+riRollbackMessage :: Lens' RollbackInfo (Maybe Text)
+riRollbackMessage = lens _riRollbackMessage (\ s a -> s{_riRollbackMessage = a});
+
+-- | The ID of the deployment rollback.
+riRollbackDeploymentId :: Lens' RollbackInfo (Maybe Text)
+riRollbackDeploymentId = lens _riRollbackDeploymentId (\ s a -> s{_riRollbackDeploymentId = a});
+
+instance FromJSON RollbackInfo where
+        parseJSON
+          = withObject "RollbackInfo"
+              (\ x ->
+                 RollbackInfo' <$>
+                   (x .:? "rollbackTriggeringDeploymentId") <*>
+                     (x .:? "rollbackMessage")
+                     <*> (x .:? "rollbackDeploymentId"))
+
+instance Hashable RollbackInfo where
+
+instance NFData RollbackInfo where
+
+-- | Information about the location of application artifacts stored in Amazon S3.
+--
+--
+--
+-- /See:/ 's3Location' smart constructor.
+data S3Location = S3Location'
+  { _slBundleType :: !(Maybe BundleType)
+  , _slETag       :: !(Maybe Text)
+  , _slBucket     :: !(Maybe Text)
+  , _slKey        :: !(Maybe Text)
+  , _slVersion    :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'S3Location' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'slBundleType' - The file type of the application revision. Must be one of the following:     * tar: A tar archive file.     * tgz: A compressed tar archive file.     * zip: A zip archive file.
+--
+-- * 'slETag' - The ETag of the Amazon S3 object that represents the bundled artifacts for the application revision. If the ETag is not specified as an input parameter, ETag validation of the object will be skipped.
+--
+-- * 'slBucket' - The name of the Amazon S3 bucket where the application revision is stored.
+--
+-- * 'slKey' - The name of the Amazon S3 object that represents the bundled artifacts for the application revision.
+--
+-- * 'slVersion' - A specific version of the Amazon S3 object that represents the bundled artifacts for the application revision. If the version is not specified, the system will use the most recent version by default.
+s3Location
+    :: S3Location
+s3Location =
+  S3Location'
+  { _slBundleType = Nothing
+  , _slETag = Nothing
+  , _slBucket = Nothing
+  , _slKey = Nothing
+  , _slVersion = Nothing
+  }
+
+
+-- | The file type of the application revision. Must be one of the following:     * tar: A tar archive file.     * tgz: A compressed tar archive file.     * zip: A zip archive file.
+slBundleType :: Lens' S3Location (Maybe BundleType)
+slBundleType = lens _slBundleType (\ s a -> s{_slBundleType = a});
+
+-- | The ETag of the Amazon S3 object that represents the bundled artifacts for the application revision. If the ETag is not specified as an input parameter, ETag validation of the object will be skipped.
+slETag :: Lens' S3Location (Maybe Text)
+slETag = lens _slETag (\ s a -> s{_slETag = a});
+
+-- | The name of the Amazon S3 bucket where the application revision is stored.
+slBucket :: Lens' S3Location (Maybe Text)
+slBucket = lens _slBucket (\ s a -> s{_slBucket = a});
+
+-- | The name of the Amazon S3 object that represents the bundled artifacts for the application revision.
+slKey :: Lens' S3Location (Maybe Text)
+slKey = lens _slKey (\ s a -> s{_slKey = a});
+
+-- | A specific version of the Amazon S3 object that represents the bundled artifacts for the application revision. If the version is not specified, the system will use the most recent version by default.
+slVersion :: Lens' S3Location (Maybe Text)
+slVersion = lens _slVersion (\ s a -> s{_slVersion = a});
+
+instance FromJSON S3Location where
+        parseJSON
+          = withObject "S3Location"
+              (\ x ->
+                 S3Location' <$>
+                   (x .:? "bundleType") <*> (x .:? "eTag") <*>
+                     (x .:? "bucket")
+                     <*> (x .:? "key")
+                     <*> (x .:? "version"))
+
+instance Hashable S3Location where
+
+instance NFData S3Location where
+
+instance ToJSON S3Location where
+        toJSON S3Location'{..}
+          = object
+              (catMaybes
+                 [("bundleType" .=) <$> _slBundleType,
+                  ("eTag" .=) <$> _slETag, ("bucket" .=) <$> _slBucket,
+                  ("key" .=) <$> _slKey,
+                  ("version" .=) <$> _slVersion])
+
+-- | Information about a tag.
+--
+--
+--
+-- /See:/ 'tag' smart constructor.
+data Tag = Tag'
+  { _tagValue :: !(Maybe Text)
+  , _tagKey   :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'Tag' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tagValue' - The tag's value.
+--
+-- * 'tagKey' - The tag's key.
+tag
+    :: Tag
+tag = Tag' {_tagValue = Nothing, _tagKey = Nothing}
+
+
+-- | The tag's value.
+tagValue :: Lens' Tag (Maybe Text)
+tagValue = lens _tagValue (\ s a -> s{_tagValue = a});
+
+-- | The tag's key.
+tagKey :: Lens' Tag (Maybe Text)
+tagKey = lens _tagKey (\ s a -> s{_tagKey = a});
+
+instance FromJSON Tag where
+        parseJSON
+          = withObject "Tag"
+              (\ x -> Tag' <$> (x .:? "Value") <*> (x .:? "Key"))
+
+instance Hashable Tag where
+
+instance NFData Tag where
+
+instance ToJSON Tag where
+        toJSON Tag'{..}
+          = object
+              (catMaybes
+                 [("Value" .=) <$> _tagValue, ("Key" .=) <$> _tagKey])
+
+-- | Information about an on-premises instance tag filter.
+--
+--
+--
+-- /See:/ 'tagFilter' smart constructor.
+data TagFilter = TagFilter'
+  { _tfValue :: !(Maybe Text)
+  , _tfKey   :: !(Maybe Text)
+  , _tfType  :: !(Maybe TagFilterType)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'TagFilter' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tfValue' - The on-premises instance tag filter value.
+--
+-- * 'tfKey' - The on-premises instance tag filter key.
+--
+-- * 'tfType' - The on-premises instance tag filter type:     * KEY_ONLY: Key only.     * VALUE_ONLY: Value only.     * KEY_AND_VALUE: Key and value.
+tagFilter
+    :: TagFilter
+tagFilter = TagFilter' {_tfValue = Nothing, _tfKey = Nothing, _tfType = Nothing}
+
+
+-- | The on-premises instance tag filter value.
+tfValue :: Lens' TagFilter (Maybe Text)
+tfValue = lens _tfValue (\ s a -> s{_tfValue = a});
+
+-- | 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});
+
+instance FromJSON TagFilter where
+        parseJSON
+          = withObject "TagFilter"
+              (\ x ->
+                 TagFilter' <$>
+                   (x .:? "Value") <*> (x .:? "Key") <*> (x .:? "Type"))
+
+instance Hashable TagFilter where
+
+instance NFData TagFilter where
+
+instance ToJSON TagFilter where
+        toJSON TagFilter'{..}
+          = object
+              (catMaybes
+                 [("Value" .=) <$> _tfValue, ("Key" .=) <$> _tfKey,
+                  ("Type" .=) <$> _tfType])
+
+-- | Information about a target group in Elastic Load Balancing to use in a deployment. Instances are registered as targets in a target group, and traffic is routed to the target group.
+--
+--
+--
+-- /See:/ 'targetGroupInfo' smart constructor.
+newtype TargetGroupInfo = TargetGroupInfo'
+  { _tgiName :: Maybe Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'TargetGroupInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tgiName' - For blue/green deployments, the name of the target group that instances in the original environment are deregistered from, and instances in the replacement environment registered with. For in-place deployments, the name of the target group that instances are deregistered from, so they are not serving traffic during a deployment, and then re-registered with after the deployment completes.
+targetGroupInfo
+    :: TargetGroupInfo
+targetGroupInfo = TargetGroupInfo' {_tgiName = Nothing}
+
+
+-- | For blue/green deployments, the name of the target group that instances in the original environment are deregistered from, and instances in the replacement environment registered with. For in-place deployments, the name of the target group that instances are deregistered from, so they are not serving traffic during a deployment, and then re-registered with after the deployment completes.
+tgiName :: Lens' TargetGroupInfo (Maybe Text)
+tgiName = lens _tgiName (\ s a -> s{_tgiName = a});
+
+instance FromJSON TargetGroupInfo where
+        parseJSON
+          = withObject "TargetGroupInfo"
+              (\ x -> TargetGroupInfo' <$> (x .:? "name"))
+
+instance Hashable TargetGroupInfo where
+
+instance NFData TargetGroupInfo where
+
+instance ToJSON TargetGroupInfo where
+        toJSON TargetGroupInfo'{..}
+          = object (catMaybes [("name" .=) <$> _tgiName])
+
+-- | Information about the instances to be used in the replacement environment in a blue/green deployment.
+--
+--
+--
+-- /See:/ 'targetInstances' smart constructor.
+data TargetInstances = TargetInstances'
+  { _tiEc2TagSet         :: !(Maybe EC2TagSet)
+  , _tiTagFilters        :: !(Maybe [EC2TagFilter])
+  , _tiAutoScalingGroups :: !(Maybe [Text])
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'TargetInstances' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tiEc2TagSet' - Information about the groups of EC2 instance tags that an instance must be identified by in order for it to be included in the replacement environment for a blue/green deployment. Cannot be used in the same call as tagFilters.
+--
+-- * 'tiTagFilters' - The tag filter key, type, and value used to identify Amazon EC2 instances in a replacement environment for a blue/green deployment. Cannot be used in the same call as ec2TagSet.
+--
+-- * 'tiAutoScalingGroups' - The names of one or more Auto Scaling groups to identify a replacement environment for a blue/green deployment.
+targetInstances
+    :: TargetInstances
+targetInstances =
+  TargetInstances'
+  { _tiEc2TagSet = Nothing
+  , _tiTagFilters = Nothing
+  , _tiAutoScalingGroups = Nothing
+  }
+
+
+-- | Information about the groups of EC2 instance tags that an instance must be identified by in order for it to be included in the replacement environment for a blue/green deployment. Cannot be used in the same call as tagFilters.
+tiEc2TagSet :: Lens' TargetInstances (Maybe EC2TagSet)
+tiEc2TagSet = lens _tiEc2TagSet (\ s a -> s{_tiEc2TagSet = a});
+
+-- | The tag filter key, type, and value used to identify Amazon EC2 instances in a replacement environment for a blue/green deployment. Cannot be used in the same call as ec2TagSet.
+tiTagFilters :: Lens' TargetInstances [EC2TagFilter]
+tiTagFilters = lens _tiTagFilters (\ s a -> s{_tiTagFilters = a}) . _Default . _Coerce;
+
+-- | The names of one or more Auto Scaling groups to identify a replacement environment for a blue/green deployment.
+tiAutoScalingGroups :: Lens' TargetInstances [Text]
+tiAutoScalingGroups = lens _tiAutoScalingGroups (\ s a -> s{_tiAutoScalingGroups = a}) . _Default . _Coerce;
+
+instance FromJSON TargetInstances where
+        parseJSON
+          = withObject "TargetInstances"
+              (\ x ->
+                 TargetInstances' <$>
+                   (x .:? "ec2TagSet") <*>
+                     (x .:? "tagFilters" .!= mempty)
+                     <*> (x .:? "autoScalingGroups" .!= mempty))
+
+instance Hashable TargetInstances where
+
+instance NFData TargetInstances where
+
+instance ToJSON TargetInstances where
+        toJSON TargetInstances'{..}
+          = object
+              (catMaybes
+                 [("ec2TagSet" .=) <$> _tiEc2TagSet,
+                  ("tagFilters" .=) <$> _tiTagFilters,
+                  ("autoScalingGroups" .=) <$> _tiAutoScalingGroups])
+
+-- | Information about a time range.
+--
+--
+--
+-- /See:/ 'timeRange' smart constructor.
+data TimeRange = TimeRange'
+  { _trStart :: !(Maybe POSIX)
+  , _trEnd   :: !(Maybe POSIX)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'TimeRange' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'trStart' - The start time of the time range.
+--
+-- * 'trEnd' - The end time of the time range.
+timeRange
+    :: TimeRange
+timeRange = TimeRange' {_trStart = Nothing, _trEnd = Nothing}
+
+
+-- | The start time of the time range.
+trStart :: Lens' TimeRange (Maybe UTCTime)
+trStart = lens _trStart (\ s a -> s{_trStart = a}) . mapping _Time;
+
+-- | The end time of the time range.
+trEnd :: Lens' TimeRange (Maybe UTCTime)
+trEnd = lens _trEnd (\ s a -> s{_trEnd = a}) . mapping _Time;
+
+instance Hashable TimeRange where
+
+instance NFData TimeRange where
+
+instance ToJSON TimeRange where
+        toJSON TimeRange'{..}
+          = object
+              (catMaybes
+                 [("start" .=) <$> _trStart, ("end" .=) <$> _trEnd])
+
+-- | Information about notification triggers for the deployment group.
+--
+--
+--
+-- /See:/ 'triggerConfig' smart constructor.
+data TriggerConfig = TriggerConfig'
+  { _tcTriggerName      :: !(Maybe Text)
+  , _tcTriggerEvents    :: !(Maybe [TriggerEventType])
+  , _tcTriggerTargetARN :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'TriggerConfig' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tcTriggerName' - The name of the notification trigger.
+--
+-- * 'tcTriggerEvents' - The event type or types for which notifications are triggered.
+--
+-- * 'tcTriggerTargetARN' - The ARN of the Amazon Simple Notification Service topic through which notifications about deployment or instance events are sent.
+triggerConfig
+    :: TriggerConfig
+triggerConfig =
+  TriggerConfig'
+  { _tcTriggerName = Nothing
+  , _tcTriggerEvents = Nothing
+  , _tcTriggerTargetARN = Nothing
+  }
+
+
+-- | The name of the notification trigger.
+tcTriggerName :: Lens' TriggerConfig (Maybe Text)
+tcTriggerName = lens _tcTriggerName (\ s a -> s{_tcTriggerName = a});
+
+-- | The event type or types for which notifications are triggered.
+tcTriggerEvents :: Lens' TriggerConfig [TriggerEventType]
+tcTriggerEvents = lens _tcTriggerEvents (\ s a -> s{_tcTriggerEvents = a}) . _Default . _Coerce;
+
+-- | The ARN of the Amazon Simple Notification Service topic through which notifications about deployment or instance events are sent.
+tcTriggerTargetARN :: Lens' TriggerConfig (Maybe Text)
+tcTriggerTargetARN = lens _tcTriggerTargetARN (\ s a -> s{_tcTriggerTargetARN = a});
+
+instance FromJSON TriggerConfig where
+        parseJSON
+          = withObject "TriggerConfig"
+              (\ x ->
+                 TriggerConfig' <$>
+                   (x .:? "triggerName") <*>
+                     (x .:? "triggerEvents" .!= mempty)
+                     <*> (x .:? "triggerTargetArn"))
+
+instance Hashable TriggerConfig where
+
+instance NFData TriggerConfig where
 
 instance ToJSON TriggerConfig where
         toJSON TriggerConfig'{..}
diff --git a/gen/Network/AWS/CodeDeploy/Types/Sum.hs b/gen/Network/AWS/CodeDeploy/Types/Sum.hs
--- a/gen/Network/AWS/CodeDeploy/Types/Sum.hs
+++ b/gen/Network/AWS/CodeDeploy/Types/Sum.hs
@@ -9,22 +9,23 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.Types.Sum
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 module Network.AWS.CodeDeploy.Types.Sum where
 
-import           Network.AWS.Prelude
+import Network.AWS.Prelude
 
 data ApplicationRevisionSortBy
-    = FirstUsedTime
-    | LastUsedTime
-    | RegisterTime
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = FirstUsedTime
+  | LastUsedTime
+  | RegisterTime
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText ApplicationRevisionSortBy where
     parser = takeLowerText >>= \case
         "firstusedtime" -> pure FirstUsedTime
@@ -49,11 +50,12 @@
     toJSON = toJSONText
 
 data AutoRollbackEvent
-    = AREDeploymentFailure
-    | AREDeploymentStopOnAlarm
-    | AREDeploymentStopOnRequest
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = AREDeploymentFailure
+  | AREDeploymentStopOnAlarm
+  | AREDeploymentStopOnRequest
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText AutoRollbackEvent where
     parser = takeLowerText >>= \case
         "deployment_failure" -> pure AREDeploymentFailure
@@ -81,11 +83,12 @@
     parseJSON = parseJSONText "AutoRollbackEvent"
 
 data BundleType
-    = TAR
-    | TGZ
-    | Zip
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = TAR
+  | TGZ
+  | Zip
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText BundleType where
     parser = takeLowerText >>= \case
         "tar" -> pure TAR
@@ -113,26 +116,27 @@
     parseJSON = parseJSONText "BundleType"
 
 data DeployErrorCode
-    = AgentIssue
-    | AlarmActive
-    | ApplicationMissing
-    | AutoScalingConfiguration
-    | AutoScalingIAMRolePermissions
-    | DeploymentGroupMissing
-    | HealthConstraints
-    | HealthConstraintsInvalid
-    | IAMRoleMissing
-    | IAMRolePermissions
-    | InternalError
-    | ManualStop
-    | NoEC2Subscription
-    | NoInstances
-    | OverMaxInstances
-    | RevisionMissing
-    | Throttled
-    | Timeout
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = AgentIssue
+  | AlarmActive
+  | ApplicationMissing
+  | AutoScalingConfiguration
+  | AutoScalingIAMRolePermissions
+  | DeploymentGroupMissing
+  | HealthConstraints
+  | HealthConstraintsInvalid
+  | IAMRoleMissing
+  | IAMRolePermissions
+  | InternalError
+  | ManualStop
+  | NoEC2Subscription
+  | NoInstances
+  | OverMaxInstances
+  | RevisionMissing
+  | Throttled
+  | Timeout
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText DeployErrorCode where
     parser = takeLowerText >>= \case
         "agent_issue" -> pure AgentIssue
@@ -187,11 +191,12 @@
     parseJSON = parseJSONText "DeployErrorCode"
 
 data DeploymentCreator
-    = Autoscaling
-    | CodeDeployRollback
-    | User
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = Autoscaling
+  | CodeDeployRollback
+  | User
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText DeploymentCreator where
     parser = takeLowerText >>= \case
         "autoscaling" -> pure Autoscaling
@@ -215,25 +220,88 @@
 instance FromJSON DeploymentCreator where
     parseJSON = parseJSONText "DeploymentCreator"
 
+data DeploymentOption
+  = WithTrafficControl
+  | WithoutTrafficControl
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
+
+
+instance FromText DeploymentOption where
+    parser = takeLowerText >>= \case
+        "with_traffic_control" -> pure WithTrafficControl
+        "without_traffic_control" -> pure WithoutTrafficControl
+        e -> fromTextError $ "Failure parsing DeploymentOption from value: '" <> e
+           <> "'. Accepted values: with_traffic_control, without_traffic_control"
+
+instance ToText DeploymentOption where
+    toText = \case
+        WithTrafficControl -> "WITH_TRAFFIC_CONTROL"
+        WithoutTrafficControl -> "WITHOUT_TRAFFIC_CONTROL"
+
+instance Hashable     DeploymentOption
+instance NFData       DeploymentOption
+instance ToByteString DeploymentOption
+instance ToQuery      DeploymentOption
+instance ToHeader     DeploymentOption
+
+instance ToJSON DeploymentOption where
+    toJSON = toJSONText
+
+instance FromJSON DeploymentOption where
+    parseJSON = parseJSONText "DeploymentOption"
+
+data DeploymentReadyAction
+  = ContinueDeployment
+  | StopDeployment
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
+
+
+instance FromText DeploymentReadyAction where
+    parser = takeLowerText >>= \case
+        "continue_deployment" -> pure ContinueDeployment
+        "stop_deployment" -> pure StopDeployment
+        e -> fromTextError $ "Failure parsing DeploymentReadyAction from value: '" <> e
+           <> "'. Accepted values: continue_deployment, stop_deployment"
+
+instance ToText DeploymentReadyAction where
+    toText = \case
+        ContinueDeployment -> "CONTINUE_DEPLOYMENT"
+        StopDeployment -> "STOP_DEPLOYMENT"
+
+instance Hashable     DeploymentReadyAction
+instance NFData       DeploymentReadyAction
+instance ToByteString DeploymentReadyAction
+instance ToQuery      DeploymentReadyAction
+instance ToHeader     DeploymentReadyAction
+
+instance ToJSON DeploymentReadyAction where
+    toJSON = toJSONText
+
+instance FromJSON DeploymentReadyAction where
+    parseJSON = parseJSONText "DeploymentReadyAction"
+
 data DeploymentStatus
-    = Created
-    | Failed
-    | InProgress
-    | Queued
-    | Stopped
-    | Succeeded
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = Created
+  | Failed
+  | InProgress
+  | Queued
+  | Ready
+  | Stopped
+  | Succeeded
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText DeploymentStatus where
     parser = takeLowerText >>= \case
         "created" -> pure Created
         "failed" -> pure Failed
         "inprogress" -> pure InProgress
         "queued" -> pure Queued
+        "ready" -> pure Ready
         "stopped" -> pure Stopped
         "succeeded" -> pure Succeeded
         e -> fromTextError $ "Failure parsing DeploymentStatus from value: '" <> e
-           <> "'. Accepted values: created, failed, inprogress, queued, stopped, succeeded"
+           <> "'. Accepted values: created, failed, inprogress, queued, ready, stopped, succeeded"
 
 instance ToText DeploymentStatus where
     toText = \case
@@ -241,6 +309,7 @@
         Failed -> "Failed"
         InProgress -> "InProgress"
         Queued -> "Queued"
+        Ready -> "Ready"
         Stopped -> "Stopped"
         Succeeded -> "Succeeded"
 
@@ -256,12 +325,43 @@
 instance FromJSON DeploymentStatus where
     parseJSON = parseJSONText "DeploymentStatus"
 
+data DeploymentType
+  = BlueGreen
+  | InPlace
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
+
+
+instance FromText DeploymentType where
+    parser = takeLowerText >>= \case
+        "blue_green" -> pure BlueGreen
+        "in_place" -> pure InPlace
+        e -> fromTextError $ "Failure parsing DeploymentType from value: '" <> e
+           <> "'. Accepted values: blue_green, in_place"
+
+instance ToText DeploymentType where
+    toText = \case
+        BlueGreen -> "BLUE_GREEN"
+        InPlace -> "IN_PLACE"
+
+instance Hashable     DeploymentType
+instance NFData       DeploymentType
+instance ToByteString DeploymentType
+instance ToQuery      DeploymentType
+instance ToHeader     DeploymentType
+
+instance ToJSON DeploymentType where
+    toJSON = toJSONText
+
+instance FromJSON DeploymentType where
+    parseJSON = parseJSONText "DeploymentType"
+
 data EC2TagFilterType
-    = KeyAndValue
-    | KeyOnly
-    | ValueOnly
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = KeyAndValue
+  | KeyOnly
+  | ValueOnly
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText EC2TagFilterType where
     parser = takeLowerText >>= \case
         "key_and_value" -> pure KeyAndValue
@@ -288,31 +388,128 @@
 instance FromJSON EC2TagFilterType where
     parseJSON = parseJSONText "EC2TagFilterType"
 
+data FileExistsBehavior
+  = Disallow
+  | Overwrite
+  | Retain
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
+
+
+instance FromText FileExistsBehavior where
+    parser = takeLowerText >>= \case
+        "disallow" -> pure Disallow
+        "overwrite" -> pure Overwrite
+        "retain" -> pure Retain
+        e -> fromTextError $ "Failure parsing FileExistsBehavior from value: '" <> e
+           <> "'. Accepted values: disallow, overwrite, retain"
+
+instance ToText FileExistsBehavior where
+    toText = \case
+        Disallow -> "DISALLOW"
+        Overwrite -> "OVERWRITE"
+        Retain -> "RETAIN"
+
+instance Hashable     FileExistsBehavior
+instance NFData       FileExistsBehavior
+instance ToByteString FileExistsBehavior
+instance ToQuery      FileExistsBehavior
+instance ToHeader     FileExistsBehavior
+
+instance ToJSON FileExistsBehavior where
+    toJSON = toJSONText
+
+instance FromJSON FileExistsBehavior where
+    parseJSON = parseJSONText "FileExistsBehavior"
+
+data GreenFleetProvisioningAction
+  = CopyAutoScalingGroup
+  | DiscoverExisting
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
+
+
+instance FromText GreenFleetProvisioningAction where
+    parser = takeLowerText >>= \case
+        "copy_auto_scaling_group" -> pure CopyAutoScalingGroup
+        "discover_existing" -> pure DiscoverExisting
+        e -> fromTextError $ "Failure parsing GreenFleetProvisioningAction from value: '" <> e
+           <> "'. Accepted values: copy_auto_scaling_group, discover_existing"
+
+instance ToText GreenFleetProvisioningAction where
+    toText = \case
+        CopyAutoScalingGroup -> "COPY_AUTO_SCALING_GROUP"
+        DiscoverExisting -> "DISCOVER_EXISTING"
+
+instance Hashable     GreenFleetProvisioningAction
+instance NFData       GreenFleetProvisioningAction
+instance ToByteString GreenFleetProvisioningAction
+instance ToQuery      GreenFleetProvisioningAction
+instance ToHeader     GreenFleetProvisioningAction
+
+instance ToJSON GreenFleetProvisioningAction where
+    toJSON = toJSONText
+
+instance FromJSON GreenFleetProvisioningAction where
+    parseJSON = parseJSONText "GreenFleetProvisioningAction"
+
+data InstanceAction
+  = KeepAlive
+  | Terminate
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
+
+
+instance FromText InstanceAction where
+    parser = takeLowerText >>= \case
+        "keep_alive" -> pure KeepAlive
+        "terminate" -> pure Terminate
+        e -> fromTextError $ "Failure parsing InstanceAction from value: '" <> e
+           <> "'. Accepted values: keep_alive, terminate"
+
+instance ToText InstanceAction where
+    toText = \case
+        KeepAlive -> "KEEP_ALIVE"
+        Terminate -> "TERMINATE"
+
+instance Hashable     InstanceAction
+instance NFData       InstanceAction
+instance ToByteString InstanceAction
+instance ToQuery      InstanceAction
+instance ToHeader     InstanceAction
+
+instance ToJSON InstanceAction where
+    toJSON = toJSONText
+
+instance FromJSON InstanceAction where
+    parseJSON = parseJSONText "InstanceAction"
+
 data InstanceStatus
-    = ISFailed
-    | ISInProgress
-    | ISPending
-    | ISSkipped
-    | ISSucceeded
-    | ISUnknown
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = ISFailed
+  | ISInProgress
+  | ISPending
+  | ISReady
+  | ISSkipped
+  | ISSucceeded
+  | ISUnknown
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText InstanceStatus where
     parser = takeLowerText >>= \case
         "failed" -> pure ISFailed
         "inprogress" -> pure ISInProgress
         "pending" -> pure ISPending
+        "ready" -> pure ISReady
         "skipped" -> pure ISSkipped
         "succeeded" -> pure ISSucceeded
         "unknown" -> pure ISUnknown
         e -> fromTextError $ "Failure parsing InstanceStatus from value: '" <> e
-           <> "'. Accepted values: failed, inprogress, pending, skipped, succeeded, unknown"
+           <> "'. Accepted values: failed, inprogress, pending, ready, skipped, succeeded, unknown"
 
 instance ToText InstanceStatus where
     toText = \case
         ISFailed -> "Failed"
         ISInProgress -> "InProgress"
         ISPending -> "Pending"
+        ISReady -> "Ready"
         ISSkipped -> "Skipped"
         ISSucceeded -> "Succeeded"
         ISUnknown -> "Unknown"
@@ -329,15 +526,46 @@
 instance FromJSON InstanceStatus where
     parseJSON = parseJSONText "InstanceStatus"
 
+data InstanceType
+  = Blue
+  | Green
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
+
+
+instance FromText InstanceType where
+    parser = takeLowerText >>= \case
+        "blue" -> pure Blue
+        "green" -> pure Green
+        e -> fromTextError $ "Failure parsing InstanceType from value: '" <> e
+           <> "'. Accepted values: blue, green"
+
+instance ToText InstanceType where
+    toText = \case
+        Blue -> "Blue"
+        Green -> "Green"
+
+instance Hashable     InstanceType
+instance NFData       InstanceType
+instance ToByteString InstanceType
+instance ToQuery      InstanceType
+instance ToHeader     InstanceType
+
+instance ToJSON InstanceType where
+    toJSON = toJSONText
+
+instance FromJSON InstanceType where
+    parseJSON = parseJSONText "InstanceType"
+
 data LifecycleErrorCode
-    = ScriptFailed
-    | ScriptMissing
-    | ScriptNotExecutable
-    | ScriptTimedOut
-    | Success
-    | UnknownError
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = ScriptFailed
+  | ScriptMissing
+  | ScriptNotExecutable
+  | ScriptTimedOut
+  | Success
+  | UnknownError
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText LifecycleErrorCode where
     parser = takeLowerText >>= \case
         "scriptfailed" -> pure ScriptFailed
@@ -368,14 +596,15 @@
     parseJSON = parseJSONText "LifecycleErrorCode"
 
 data LifecycleEventStatus
-    = LESFailed
-    | LESInProgress
-    | LESPending
-    | LESSkipped
-    | LESSucceeded
-    | LESUnknown
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = LESFailed
+  | LESInProgress
+  | LESPending
+  | LESSkipped
+  | LESSucceeded
+  | LESUnknown
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText LifecycleEventStatus where
     parser = takeLowerText >>= \case
         "failed" -> pure LESFailed
@@ -406,11 +635,12 @@
     parseJSON = parseJSONText "LifecycleEventStatus"
 
 data ListStateFilterAction
-    = Exclude
-    | Ignore
-    | Include
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = Exclude
+  | Ignore
+  | Include
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText ListStateFilterAction where
     parser = takeLowerText >>= \case
         "exclude" -> pure Exclude
@@ -435,10 +665,11 @@
     toJSON = toJSONText
 
 data MinimumHealthyHostsType
-    = FleetPercent
-    | HostCount
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = FleetPercent
+  | HostCount
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText MinimumHealthyHostsType where
     parser = takeLowerText >>= \case
         "fleet_percent" -> pure FleetPercent
@@ -464,10 +695,11 @@
     parseJSON = parseJSONText "MinimumHealthyHostsType"
 
 data RegistrationStatus
-    = Deregistered
-    | Registered
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = Deregistered
+  | Registered
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText RegistrationStatus where
     parser = takeLowerText >>= \case
         "deregistered" -> pure Deregistered
@@ -490,10 +722,11 @@
     toJSON = toJSONText
 
 data RevisionLocationType
-    = GitHub
-    | S3
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = GitHub
+  | S3
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText RevisionLocationType where
     parser = takeLowerText >>= \case
         "github" -> pure GitHub
@@ -519,10 +752,11 @@
     parseJSON = parseJSONText "RevisionLocationType"
 
 data SortOrder
-    = Ascending
-    | Descending
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = Ascending
+  | Descending
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText SortOrder where
     parser = takeLowerText >>= \case
         "ascending" -> pure Ascending
@@ -545,10 +779,11 @@
     toJSON = toJSONText
 
 data StopStatus
-    = SSPending
-    | SSSucceeded
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = SSPending
+  | SSSucceeded
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText StopStatus where
     parser = takeLowerText >>= \case
         "pending" -> pure SSPending
@@ -571,11 +806,12 @@
     parseJSON = parseJSONText "StopStatus"
 
 data TagFilterType
-    = TFTKeyAndValue
-    | TFTKeyOnly
-    | TFTValueOnly
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = TFTKeyAndValue
+  | TFTKeyOnly
+  | TFTValueOnly
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText TagFilterType where
     parser = takeLowerText >>= \case
         "key_and_value" -> pure TFTKeyAndValue
@@ -603,37 +839,44 @@
     parseJSON = parseJSONText "TagFilterType"
 
 data TriggerEventType
-    = DeploymentFailure
-    | DeploymentRollback
-    | DeploymentStart
-    | DeploymentStop
-    | DeploymentSuccess
-    | InstanceFailure
-    | InstanceStart
-    | InstanceSuccess
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = DeploymentFailure
+  | DeploymentReady
+  | DeploymentRollback
+  | DeploymentStart
+  | DeploymentStop
+  | DeploymentSuccess
+  | InstanceFailure
+  | InstanceReady
+  | InstanceStart
+  | InstanceSuccess
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText TriggerEventType where
     parser = takeLowerText >>= \case
         "deploymentfailure" -> pure DeploymentFailure
+        "deploymentready" -> pure DeploymentReady
         "deploymentrollback" -> pure DeploymentRollback
         "deploymentstart" -> pure DeploymentStart
         "deploymentstop" -> pure DeploymentStop
         "deploymentsuccess" -> pure DeploymentSuccess
         "instancefailure" -> pure InstanceFailure
+        "instanceready" -> pure InstanceReady
         "instancestart" -> pure InstanceStart
         "instancesuccess" -> pure InstanceSuccess
         e -> fromTextError $ "Failure parsing TriggerEventType from value: '" <> e
-           <> "'. Accepted values: deploymentfailure, deploymentrollback, deploymentstart, deploymentstop, deploymentsuccess, instancefailure, instancestart, instancesuccess"
+           <> "'. Accepted values: deploymentfailure, deploymentready, deploymentrollback, deploymentstart, deploymentstop, deploymentsuccess, instancefailure, instanceready, instancestart, instancesuccess"
 
 instance ToText TriggerEventType where
     toText = \case
         DeploymentFailure -> "DeploymentFailure"
+        DeploymentReady -> "DeploymentReady"
         DeploymentRollback -> "DeploymentRollback"
         DeploymentStart -> "DeploymentStart"
         DeploymentStop -> "DeploymentStop"
         DeploymentSuccess -> "DeploymentSuccess"
         InstanceFailure -> "InstanceFailure"
+        InstanceReady -> "InstanceReady"
         InstanceStart -> "InstanceStart"
         InstanceSuccess -> "InstanceSuccess"
 
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
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.UpdateApplication
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -35,23 +35,24 @@
     , UpdateApplicationResponse
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of an update application operation.
+-- | Represents the input of an UpdateApplication operation.
 --
 --
 --
 -- /See:/ 'updateApplication' smart constructor.
 data UpdateApplication = UpdateApplication'
-    { _uaNewApplicationName :: !(Maybe Text)
-    , _uaApplicationName    :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _uaNewApplicationName :: !(Maybe Text)
+  , _uaApplicationName    :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateApplication' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -62,11 +63,10 @@
 updateApplication
     :: UpdateApplication
 updateApplication =
-    UpdateApplication'
-    { _uaNewApplicationName = Nothing
-    , _uaApplicationName = Nothing
-    }
+  UpdateApplication'
+  {_uaNewApplicationName = Nothing, _uaApplicationName = Nothing}
 
+
 -- | The new name to give the application.
 uaNewApplicationName :: Lens' UpdateApplication (Maybe Text)
 uaNewApplicationName = lens _uaNewApplicationName (\ s a -> s{_uaNewApplicationName = a});
@@ -80,9 +80,9 @@
         request = postJSON codeDeploy
         response = receiveNull UpdateApplicationResponse'
 
-instance Hashable UpdateApplication
+instance Hashable UpdateApplication where
 
-instance NFData UpdateApplication
+instance NFData UpdateApplication where
 
 instance ToHeaders UpdateApplication where
         toHeaders
@@ -109,13 +109,15 @@
 
 -- | /See:/ 'updateApplicationResponse' smart constructor.
 data UpdateApplicationResponse =
-    UpdateApplicationResponse'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  UpdateApplicationResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateApplicationResponse' with the minimum fields required to make a request.
 --
 updateApplicationResponse
     :: UpdateApplicationResponse
 updateApplicationResponse = UpdateApplicationResponse'
 
-instance NFData UpdateApplicationResponse
+
+instance NFData UpdateApplicationResponse where
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
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.UpdateDeploymentGroup
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -28,13 +28,18 @@
     , UpdateDeploymentGroup
     -- * Request Lenses
     , udgServiceRoleARN
+    , udgEc2TagSet
     , udgDeploymentConfigName
+    , udgOnPremisesTagSet
     , udgNewDeploymentGroupName
     , udgEc2TagFilters
+    , udgBlueGreenDeploymentConfiguration
+    , udgLoadBalancerInfo
     , udgOnPremisesInstanceTagFilters
     , udgAlarmConfiguration
     , udgTriggerConfigurations
     , udgAutoScalingGroups
+    , udgDeploymentStyle
     , udgAutoRollbackConfiguration
     , udgApplicationName
     , udgCurrentDeploymentGroupName
@@ -47,44 +52,58 @@
     , udgrsResponseStatus
     ) where
 
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.CodeDeploy.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.CodeDeploy.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- | Represents the input of an update deployment group operation.
+-- | Represents the input of an UpdateDeploymentGroup operation.
 --
 --
 --
 -- /See:/ 'updateDeploymentGroup' smart constructor.
 data UpdateDeploymentGroup = UpdateDeploymentGroup'
-    { _udgServiceRoleARN               :: !(Maybe Text)
-    , _udgDeploymentConfigName         :: !(Maybe Text)
-    , _udgNewDeploymentGroupName       :: !(Maybe Text)
-    , _udgEc2TagFilters                :: !(Maybe [EC2TagFilter])
-    , _udgOnPremisesInstanceTagFilters :: !(Maybe [TagFilter])
-    , _udgAlarmConfiguration           :: !(Maybe AlarmConfiguration)
-    , _udgTriggerConfigurations        :: !(Maybe [TriggerConfig])
-    , _udgAutoScalingGroups            :: !(Maybe [Text])
-    , _udgAutoRollbackConfiguration    :: !(Maybe AutoRollbackConfiguration)
-    , _udgApplicationName              :: !Text
-    , _udgCurrentDeploymentGroupName   :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _udgServiceRoleARN :: !(Maybe Text)
+  , _udgEc2TagSet :: !(Maybe EC2TagSet)
+  , _udgDeploymentConfigName :: !(Maybe Text)
+  , _udgOnPremisesTagSet :: !(Maybe OnPremisesTagSet)
+  , _udgNewDeploymentGroupName :: !(Maybe Text)
+  , _udgEc2TagFilters :: !(Maybe [EC2TagFilter])
+  , _udgBlueGreenDeploymentConfiguration :: !(Maybe BlueGreenDeploymentConfiguration)
+  , _udgLoadBalancerInfo :: !(Maybe LoadBalancerInfo)
+  , _udgOnPremisesInstanceTagFilters :: !(Maybe [TagFilter])
+  , _udgAlarmConfiguration :: !(Maybe AlarmConfiguration)
+  , _udgTriggerConfigurations :: !(Maybe [TriggerConfig])
+  , _udgAutoScalingGroups :: !(Maybe [Text])
+  , _udgDeploymentStyle :: !(Maybe DeploymentStyle)
+  , _udgAutoRollbackConfiguration :: !(Maybe AutoRollbackConfiguration)
+  , _udgApplicationName :: !Text
+  , _udgCurrentDeploymentGroupName :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateDeploymentGroup' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
 -- * 'udgServiceRoleARN' - A replacement ARN for the service role, if you want to change it.
 --
+-- * 'udgEc2TagSet' - Information about groups of tags applied to on-premises instances. The deployment group will include only EC2 instances identified by all the tag groups.
+--
 -- * 'udgDeploymentConfigName' - The replacement deployment configuration name to use, if you want to change it.
 --
+-- * 'udgOnPremisesTagSet' - Information about an on-premises instance tag set. The deployment group will include only on-premises instances identified by all the tag groups.
+--
 -- * 'udgNewDeploymentGroupName' - The new name of the deployment group, if you want to change it.
 --
 -- * 'udgEc2TagFilters' - The replacement set of Amazon EC2 tags on which to filter, if you want to change them. To keep the existing tags, enter their names. To remove tags, do not enter any tag names.
 --
+-- * 'udgBlueGreenDeploymentConfiguration' - Information about blue/green deployment options for a deployment group.
+--
+-- * 'udgLoadBalancerInfo' - Information about the load balancer used in a deployment.
+--
 -- * 'udgOnPremisesInstanceTagFilters' - The replacement set of on-premises instance tags on which to filter, if you want to change them. To keep the existing tags, enter their names. To remove tags, do not enter any tag names.
 --
 -- * 'udgAlarmConfiguration' - Information to add or change about Amazon CloudWatch alarms when the deployment group is updated.
@@ -93,6 +112,8 @@
 --
 -- * 'udgAutoScalingGroups' - The replacement list of Auto Scaling groups to be included in the deployment group, if you want to change them. To keep the Auto Scaling groups, enter their names. To remove Auto Scaling groups, do not enter any Auto Scaling group names.
 --
+-- * 'udgDeploymentStyle' - Information about the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer.
+--
 -- * 'udgAutoRollbackConfiguration' - Information for an automatic rollback configuration that is added or changed when a deployment group is updated.
 --
 -- * 'udgApplicationName' - The application name corresponding to the deployment group to update.
@@ -103,28 +124,42 @@
     -> Text -- ^ 'udgCurrentDeploymentGroupName'
     -> UpdateDeploymentGroup
 updateDeploymentGroup pApplicationName_ pCurrentDeploymentGroupName_ =
-    UpdateDeploymentGroup'
-    { _udgServiceRoleARN = Nothing
-    , _udgDeploymentConfigName = Nothing
-    , _udgNewDeploymentGroupName = Nothing
-    , _udgEc2TagFilters = Nothing
-    , _udgOnPremisesInstanceTagFilters = Nothing
-    , _udgAlarmConfiguration = Nothing
-    , _udgTriggerConfigurations = Nothing
-    , _udgAutoScalingGroups = Nothing
-    , _udgAutoRollbackConfiguration = Nothing
-    , _udgApplicationName = pApplicationName_
-    , _udgCurrentDeploymentGroupName = pCurrentDeploymentGroupName_
-    }
+  UpdateDeploymentGroup'
+  { _udgServiceRoleARN = Nothing
+  , _udgEc2TagSet = Nothing
+  , _udgDeploymentConfigName = Nothing
+  , _udgOnPremisesTagSet = Nothing
+  , _udgNewDeploymentGroupName = Nothing
+  , _udgEc2TagFilters = Nothing
+  , _udgBlueGreenDeploymentConfiguration = Nothing
+  , _udgLoadBalancerInfo = Nothing
+  , _udgOnPremisesInstanceTagFilters = Nothing
+  , _udgAlarmConfiguration = Nothing
+  , _udgTriggerConfigurations = Nothing
+  , _udgAutoScalingGroups = Nothing
+  , _udgDeploymentStyle = Nothing
+  , _udgAutoRollbackConfiguration = Nothing
+  , _udgApplicationName = pApplicationName_
+  , _udgCurrentDeploymentGroupName = pCurrentDeploymentGroupName_
+  }
 
+
 -- | A replacement ARN for the service role, if you want to change it.
 udgServiceRoleARN :: Lens' UpdateDeploymentGroup (Maybe Text)
 udgServiceRoleARN = lens _udgServiceRoleARN (\ s a -> s{_udgServiceRoleARN = a});
 
+-- | Information about groups of tags applied to on-premises instances. The deployment group will include only EC2 instances identified by all the tag groups.
+udgEc2TagSet :: Lens' UpdateDeploymentGroup (Maybe EC2TagSet)
+udgEc2TagSet = lens _udgEc2TagSet (\ s a -> s{_udgEc2TagSet = a});
+
 -- | The replacement deployment configuration name to use, if you want to change it.
 udgDeploymentConfigName :: Lens' UpdateDeploymentGroup (Maybe Text)
 udgDeploymentConfigName = lens _udgDeploymentConfigName (\ s a -> s{_udgDeploymentConfigName = a});
 
+-- | Information about an on-premises instance tag set. The deployment group will include only on-premises instances identified by all the tag groups.
+udgOnPremisesTagSet :: Lens' UpdateDeploymentGroup (Maybe OnPremisesTagSet)
+udgOnPremisesTagSet = lens _udgOnPremisesTagSet (\ s a -> s{_udgOnPremisesTagSet = a});
+
 -- | The new name of the deployment group, if you want to change it.
 udgNewDeploymentGroupName :: Lens' UpdateDeploymentGroup (Maybe Text)
 udgNewDeploymentGroupName = lens _udgNewDeploymentGroupName (\ s a -> s{_udgNewDeploymentGroupName = a});
@@ -133,6 +168,14 @@
 udgEc2TagFilters :: Lens' UpdateDeploymentGroup [EC2TagFilter]
 udgEc2TagFilters = lens _udgEc2TagFilters (\ s a -> s{_udgEc2TagFilters = a}) . _Default . _Coerce;
 
+-- | Information about blue/green deployment options for a deployment group.
+udgBlueGreenDeploymentConfiguration :: Lens' UpdateDeploymentGroup (Maybe BlueGreenDeploymentConfiguration)
+udgBlueGreenDeploymentConfiguration = lens _udgBlueGreenDeploymentConfiguration (\ s a -> s{_udgBlueGreenDeploymentConfiguration = a});
+
+-- | Information about the load balancer used in a deployment.
+udgLoadBalancerInfo :: Lens' UpdateDeploymentGroup (Maybe LoadBalancerInfo)
+udgLoadBalancerInfo = lens _udgLoadBalancerInfo (\ s a -> s{_udgLoadBalancerInfo = a});
+
 -- | The replacement set of on-premises instance tags on which to filter, if you want to change them. To keep the existing tags, enter their names. To remove tags, do not enter any tag names.
 udgOnPremisesInstanceTagFilters :: Lens' UpdateDeploymentGroup [TagFilter]
 udgOnPremisesInstanceTagFilters = lens _udgOnPremisesInstanceTagFilters (\ s a -> s{_udgOnPremisesInstanceTagFilters = a}) . _Default . _Coerce;
@@ -149,6 +192,10 @@
 udgAutoScalingGroups :: Lens' UpdateDeploymentGroup [Text]
 udgAutoScalingGroups = lens _udgAutoScalingGroups (\ s a -> s{_udgAutoScalingGroups = a}) . _Default . _Coerce;
 
+-- | Information about the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer.
+udgDeploymentStyle :: Lens' UpdateDeploymentGroup (Maybe DeploymentStyle)
+udgDeploymentStyle = lens _udgDeploymentStyle (\ s a -> s{_udgDeploymentStyle = a});
+
 -- | Information for an automatic rollback configuration that is added or changed when a deployment group is updated.
 udgAutoRollbackConfiguration :: Lens' UpdateDeploymentGroup (Maybe AutoRollbackConfiguration)
 udgAutoRollbackConfiguration = lens _udgAutoRollbackConfiguration (\ s a -> s{_udgAutoRollbackConfiguration = a});
@@ -172,9 +219,9 @@
                    (x .?> "hooksNotCleanedUp" .!@ mempty) <*>
                      (pure (fromEnum s)))
 
-instance Hashable UpdateDeploymentGroup
+instance Hashable UpdateDeploymentGroup where
 
-instance NFData UpdateDeploymentGroup
+instance NFData UpdateDeploymentGroup where
 
 instance ToHeaders UpdateDeploymentGroup where
         toHeaders
@@ -191,17 +238,23 @@
           = object
               (catMaybes
                  [("serviceRoleArn" .=) <$> _udgServiceRoleARN,
+                  ("ec2TagSet" .=) <$> _udgEc2TagSet,
                   ("deploymentConfigName" .=) <$>
                     _udgDeploymentConfigName,
+                  ("onPremisesTagSet" .=) <$> _udgOnPremisesTagSet,
                   ("newDeploymentGroupName" .=) <$>
                     _udgNewDeploymentGroupName,
                   ("ec2TagFilters" .=) <$> _udgEc2TagFilters,
+                  ("blueGreenDeploymentConfiguration" .=) <$>
+                    _udgBlueGreenDeploymentConfiguration,
+                  ("loadBalancerInfo" .=) <$> _udgLoadBalancerInfo,
                   ("onPremisesInstanceTagFilters" .=) <$>
                     _udgOnPremisesInstanceTagFilters,
                   ("alarmConfiguration" .=) <$> _udgAlarmConfiguration,
                   ("triggerConfigurations" .=) <$>
                     _udgTriggerConfigurations,
                   ("autoScalingGroups" .=) <$> _udgAutoScalingGroups,
+                  ("deploymentStyle" .=) <$> _udgDeploymentStyle,
                   ("autoRollbackConfiguration" .=) <$>
                     _udgAutoRollbackConfiguration,
                   Just ("applicationName" .= _udgApplicationName),
@@ -215,16 +268,17 @@
 instance ToQuery UpdateDeploymentGroup where
         toQuery = const mempty
 
--- | Represents the output of an update deployment group operation.
+-- | Represents the output of an UpdateDeploymentGroup operation.
 --
 --
 --
 -- /See:/ 'updateDeploymentGroupResponse' smart constructor.
 data UpdateDeploymentGroupResponse = UpdateDeploymentGroupResponse'
-    { _udgrsHooksNotCleanedUp :: !(Maybe [AutoScalingGroup])
-    , _udgrsResponseStatus    :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _udgrsHooksNotCleanedUp :: !(Maybe [AutoScalingGroup])
+  , _udgrsResponseStatus    :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateDeploymentGroupResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -236,11 +290,10 @@
     :: Int -- ^ 'udgrsResponseStatus'
     -> UpdateDeploymentGroupResponse
 updateDeploymentGroupResponse pResponseStatus_ =
-    UpdateDeploymentGroupResponse'
-    { _udgrsHooksNotCleanedUp = Nothing
-    , _udgrsResponseStatus = pResponseStatus_
-    }
+  UpdateDeploymentGroupResponse'
+  {_udgrsHooksNotCleanedUp = Nothing, _udgrsResponseStatus = pResponseStatus_}
 
+
 -- | 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 account. If the output contains data, AWS CodeDeploy could not remove some Auto Scaling lifecycle event hooks from the AWS account.
 udgrsHooksNotCleanedUp :: Lens' UpdateDeploymentGroupResponse [AutoScalingGroup]
 udgrsHooksNotCleanedUp = lens _udgrsHooksNotCleanedUp (\ s a -> s{_udgrsHooksNotCleanedUp = a}) . _Default . _Coerce;
@@ -249,4 +302,4 @@
 udgrsResponseStatus :: Lens' UpdateDeploymentGroupResponse Int
 udgrsResponseStatus = lens _udgrsResponseStatus (\ s a -> s{_udgrsResponseStatus = a});
 
-instance NFData UpdateDeploymentGroupResponse
+instance NFData UpdateDeploymentGroupResponse where
diff --git a/gen/Network/AWS/CodeDeploy/Waiters.hs b/gen/Network/AWS/CodeDeploy/Waiters.hs
--- a/gen/Network/AWS/CodeDeploy/Waiters.hs
+++ b/gen/Network/AWS/CodeDeploy/Waiters.hs
@@ -7,40 +7,40 @@
 
 -- |
 -- Module      : Network.AWS.CodeDeploy.Waiters
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 module Network.AWS.CodeDeploy.Waiters where
 
-import           Network.AWS.CodeDeploy.GetDeployment
-import           Network.AWS.CodeDeploy.Types
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Waiter
+import Network.AWS.CodeDeploy.GetDeployment
+import Network.AWS.CodeDeploy.Types
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Waiter
 
 -- | Polls 'Network.AWS.CodeDeploy.GetDeployment' every 15 seconds until a successful state is reached. An error is returned after 120 failed checks.
 deploymentSuccessful :: Wait GetDeployment
 deploymentSuccessful =
-    Wait
-    { _waitName = "DeploymentSuccessful"
-    , _waitAttempts = 120
-    , _waitDelay = 15
-    , _waitAcceptors = [ matchAll
-                             "Succeeded"
-                             AcceptSuccess
-                             (gdrsDeploymentInfo .
-                              _Just . diStatus . _Just . to toTextCI)
-                       , matchAll
-                             "Failed"
-                             AcceptFailure
-                             (gdrsDeploymentInfo .
-                              _Just . diStatus . _Just . to toTextCI)
-                       , matchAll
-                             "Stopped"
-                             AcceptFailure
-                             (gdrsDeploymentInfo .
-                              _Just . diStatus . _Just . to toTextCI)]
-    }
+  Wait
+  { _waitName = "DeploymentSuccessful"
+  , _waitAttempts = 120
+  , _waitDelay = 15
+  , _waitAcceptors =
+      [ matchAll
+          "Succeeded"
+          AcceptSuccess
+          (gdrsDeploymentInfo . _Just . diStatus . _Just . to toTextCI)
+      , matchAll
+          "Failed"
+          AcceptFailure
+          (gdrsDeploymentInfo . _Just . diStatus . _Just . to toTextCI)
+      , matchAll
+          "Stopped"
+          AcceptFailure
+          (gdrsDeploymentInfo . _Just . diStatus . _Just . to toTextCI)
+      ]
+  }
+
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -2,9 +2,9 @@
 
 -- |
 -- Module      : Main
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
diff --git a/test/Test/AWS/Gen/CodeDeploy.hs b/test/Test/AWS/Gen/CodeDeploy.hs
--- a/test/Test/AWS/Gen/CodeDeploy.hs
+++ b/test/Test/AWS/Gen/CodeDeploy.hs
@@ -5,20 +5,20 @@
 
 -- |
 -- Module      : Test.AWS.Gen.CodeDeploy
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 module Test.AWS.Gen.CodeDeploy where
 
 import Data.Proxy
+import Network.AWS.CodeDeploy
+import Test.AWS.CodeDeploy.Internal
 import Test.AWS.Fixture
 import Test.AWS.Prelude
 import Test.Tasty
-import Network.AWS.CodeDeploy
-import Test.AWS.CodeDeploy.Internal
 
 -- Auto-generated: the actual test selection needs to be manually placed into
 -- the top-level so that real test data can be incrementally added.
@@ -73,6 +73,9 @@
 --         , requestRegisterApplicationRevision $
 --             registerApplicationRevision
 --
+--         , requestContinueDeployment $
+--             continueDeployment
+--
 --         , requestBatchGetApplications $
 --             batchGetApplications
 --
@@ -94,9 +97,15 @@
 --         , requestStopDeployment $
 --             stopDeployment
 --
+--         , requestListGitHubAccountTokenNames $
+--             listGitHubAccountTokenNames
+--
 --         , requestBatchGetDeploymentInstances $
 --             batchGetDeploymentInstances
 --
+--         , requestSkipWaitTimeForInstanceTermination $
+--             skipWaitTimeForInstanceTermination
+--
 --         , requestGetApplication $
 --             getApplication
 --
@@ -181,6 +190,9 @@
 --         , responseRegisterApplicationRevision $
 --             registerApplicationRevisionResponse
 --
+--         , responseContinueDeployment $
+--             continueDeploymentResponse
+--
 --         , responseBatchGetApplications $
 --             batchGetApplicationsResponse
 --
@@ -202,9 +214,15 @@
 --         , responseStopDeployment $
 --             stopDeploymentResponse
 --
+--         , responseListGitHubAccountTokenNames $
+--             listGitHubAccountTokenNamesResponse
+--
 --         , responseBatchGetDeploymentInstances $
 --             batchGetDeploymentInstancesResponse
 --
+--         , responseSkipWaitTimeForInstanceTermination $
+--             skipWaitTimeForInstanceTerminationResponse
+--
 --         , responseGetApplication $
 --             getApplicationResponse
 --
@@ -321,6 +339,11 @@
     "RegisterApplicationRevision"
     "fixture/RegisterApplicationRevision.yaml"
 
+requestContinueDeployment :: ContinueDeployment -> TestTree
+requestContinueDeployment = req
+    "ContinueDeployment"
+    "fixture/ContinueDeployment.yaml"
+
 requestBatchGetApplications :: BatchGetApplications -> TestTree
 requestBatchGetApplications = req
     "BatchGetApplications"
@@ -356,11 +379,21 @@
     "StopDeployment"
     "fixture/StopDeployment.yaml"
 
+requestListGitHubAccountTokenNames :: ListGitHubAccountTokenNames -> TestTree
+requestListGitHubAccountTokenNames = req
+    "ListGitHubAccountTokenNames"
+    "fixture/ListGitHubAccountTokenNames.yaml"
+
 requestBatchGetDeploymentInstances :: BatchGetDeploymentInstances -> TestTree
 requestBatchGetDeploymentInstances = req
     "BatchGetDeploymentInstances"
     "fixture/BatchGetDeploymentInstances.yaml"
 
+requestSkipWaitTimeForInstanceTermination :: SkipWaitTimeForInstanceTermination -> TestTree
+requestSkipWaitTimeForInstanceTermination = req
+    "SkipWaitTimeForInstanceTermination"
+    "fixture/SkipWaitTimeForInstanceTermination.yaml"
+
 requestGetApplication :: GetApplication -> TestTree
 requestGetApplication = req
     "GetApplication"
@@ -528,6 +561,13 @@
     codeDeploy
     (Proxy :: Proxy RegisterApplicationRevision)
 
+responseContinueDeployment :: ContinueDeploymentResponse -> TestTree
+responseContinueDeployment = res
+    "ContinueDeploymentResponse"
+    "fixture/ContinueDeploymentResponse.proto"
+    codeDeploy
+    (Proxy :: Proxy ContinueDeployment)
+
 responseBatchGetApplications :: BatchGetApplicationsResponse -> TestTree
 responseBatchGetApplications = res
     "BatchGetApplicationsResponse"
@@ -577,12 +617,26 @@
     codeDeploy
     (Proxy :: Proxy StopDeployment)
 
+responseListGitHubAccountTokenNames :: ListGitHubAccountTokenNamesResponse -> TestTree
+responseListGitHubAccountTokenNames = res
+    "ListGitHubAccountTokenNamesResponse"
+    "fixture/ListGitHubAccountTokenNamesResponse.proto"
+    codeDeploy
+    (Proxy :: Proxy ListGitHubAccountTokenNames)
+
 responseBatchGetDeploymentInstances :: BatchGetDeploymentInstancesResponse -> TestTree
 responseBatchGetDeploymentInstances = res
     "BatchGetDeploymentInstancesResponse"
     "fixture/BatchGetDeploymentInstancesResponse.proto"
     codeDeploy
     (Proxy :: Proxy BatchGetDeploymentInstances)
+
+responseSkipWaitTimeForInstanceTermination :: SkipWaitTimeForInstanceTerminationResponse -> TestTree
+responseSkipWaitTimeForInstanceTermination = res
+    "SkipWaitTimeForInstanceTerminationResponse"
+    "fixture/SkipWaitTimeForInstanceTerminationResponse.proto"
+    codeDeploy
+    (Proxy :: Proxy SkipWaitTimeForInstanceTermination)
 
 responseGetApplication :: GetApplicationResponse -> TestTree
 responseGetApplication = res
