diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,24 +1,90 @@
 # Amazon CodeDeploy SDK
 
-> _Warning:_ This is an experimental preview release which is still under heavy development and not intended for public consumption, _caveat emptor_!
-
+* [Version](#version)
 * [Description](#description)
 * [Contribute](#contribute)
 * [Licence](#licence)
 
+
+## Version
+
+`1.0.0`
+
+
 ## Description
 
-Amazon CodeDeploy is a service that automates code deployments to Amazon EC2
-instances. Amazon CodeDeploy makes it easier for you to rapidly release new
-features, helps you avoid downtime during deployment, and handles the
-complexity of updating your applications. You can use Amazon CodeDeploy to
-automate deployments, eliminating the need for error-prone manual operations,
-and the service scales with your infrastructure so you can easily deploy to
-one EC2 instance or thousands.
+AWS CodeDeploy __Overview__
 
+This is the AWS CodeDeploy API Reference. This guide provides
+descriptions of the AWS CodeDeploy APIs. For additional information, see
+the
+<http://docs.aws.amazon.com/codedeploy/latest/userguide AWS CodeDeploy User Guide>.
+
+__Using the APIs__
+
+You can use the AWS CodeDeploy APIs to work with the following items:
+
+-   Applications are unique identifiers that AWS CodeDeploy uses to
+    ensure that the correct combinations of revisions, deployment
+    configurations, and deployment groups are being referenced during
+    deployments.
+
+    You can use the AWS CodeDeploy APIs to create, delete, get, list,
+    and update applications.
+
+-   Deployment configurations are sets of deployment rules and
+    deployment success and failure conditions that AWS CodeDeploy uses
+    during deployments.
+
+    You can use the AWS CodeDeploy APIs to create, delete, get, and list
+    deployment configurations.
+
+-   Deployment groups are groups of instances to which application
+    revisions can be deployed.
+
+    You can use the AWS CodeDeploy APIs to create, delete, get, list,
+    and update deployment groups.
+
+-   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 instances.
+
+-   Deployments represent the process of deploying revisions to
+    instances.
+
+    You can use the AWS CodeDeploy APIs to create, get, list, and stop
+    deployments.
+
+-   Application revisions are archive files that are stored in Amazon S3
+    buckets or GitHub repositories. These revisions contain source
+    content (such as source code, web pages, executable files, any
+    deployment scripts, and similar) along with an Application
+    Specification file (AppSpec file). (The AppSpec file is unique to
+    AWS CodeDeploy; it defines a series of deployment actions that you
+    want AWS CodeDeploy to execute.) An application revision is uniquely
+    identified by its Amazon S3 object key and its ETag, version, or
+    both (for application revisions that are stored in Amazon S3
+    buckets) or by its repository name and commit ID (for applications
+    revisions that are stored in GitHub repositories). Application
+    revisions are deployed through deployment groups.
+
+    You can use the AWS CodeDeploy APIs to get, list, and register
+    application revisions.
+
 Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-codedeploy)
 and the [AWS API Reference](http://docs.aws.amazon.com/codedeploy/latest/APIReference/Welcome.html).
 
+The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/amazonka),
+which provides mechanisms for specifying AuthN/AuthZ information and sending requests.
+
+Use of lenses is required for constructing and manipulating types.
+This is due to the amount of nesting of AWS types and transparency regarding
+de/serialisation into more palatable Haskell values.
+The provided lenses should be compatible with any of the major lens libraries
+[lens](http://hackage.haskell.org/package/lens) or [lens-family-core](http://hackage.haskell.org/package/lens-family-core).
 
 ## Contribute
 
diff --git a/amazonka-codedeploy.cabal b/amazonka-codedeploy.cabal
--- a/amazonka-codedeploy.cabal
+++ b/amazonka-codedeploy.cabal
@@ -1,31 +1,92 @@
 name:                  amazonka-codedeploy
-version:               0.3.6
+version:               1.0.0
 synopsis:              Amazon CodeDeploy SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
 license-file:          LICENSE
 author:                Brendan Hay
 maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
-copyright:             Copyright (c) 2013-2014 Brendan Hay
+copyright:             Copyright (c) 2013-2015 Brendan Hay
 category:              Network, AWS, Cloud, Distributed Computing
 build-type:            Simple
 extra-source-files:    README.md
 cabal-version:         >= 1.10
 
 description:
-    Amazon CodeDeploy is a service that automates code deployments to Amazon EC2
-    instances. Amazon CodeDeploy makes it easier for you to rapidly release new
-    features, helps you avoid downtime during deployment, and handles the
-    complexity of updating your applications. You can use Amazon CodeDeploy to
-    automate deployments, eliminating the need for error-prone manual operations,
-    and the service scales with your infrastructure so you can easily deploy to
-    one EC2 instance or thousands.
+    AWS CodeDeploy __Overview__
 
+    This is the AWS CodeDeploy API Reference. This guide provides
+    descriptions of the AWS CodeDeploy APIs. For additional information, see
+    the
+    <http://docs.aws.amazon.com/codedeploy/latest/userguide AWS CodeDeploy User Guide>.
+
+    __Using the APIs__
+
+    You can use the AWS CodeDeploy APIs to work with the following items:
+
+    -   Applications are unique identifiers that AWS CodeDeploy uses to
+        ensure that the correct combinations of revisions, deployment
+        configurations, and deployment groups are being referenced during
+        deployments.
+
+        You can use the AWS CodeDeploy APIs to create, delete, get, list,
+        and update applications.
+
+    -   Deployment configurations are sets of deployment rules and
+        deployment success and failure conditions that AWS CodeDeploy uses
+        during deployments.
+
+        You can use the AWS CodeDeploy APIs to create, delete, get, and list
+        deployment configurations.
+
+    -   Deployment groups are groups of instances to which application
+        revisions can be deployed.
+
+        You can use the AWS CodeDeploy APIs to create, delete, get, list,
+        and update deployment groups.
+
+    -   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 instances.
+
+    -   Deployments represent the process of deploying revisions to
+        instances.
+
+        You can use the AWS CodeDeploy APIs to create, get, list, and stop
+        deployments.
+
+    -   Application revisions are archive files that are stored in Amazon S3
+        buckets or GitHub repositories. These revisions contain source
+        content (such as source code, web pages, executable files, any
+        deployment scripts, and similar) along with an Application
+        Specification file (AppSpec file). (The AppSpec file is unique to
+        AWS CodeDeploy; it defines a series of deployment actions that you
+        want AWS CodeDeploy to execute.) An application revision is uniquely
+        identified by its Amazon S3 object key and its ETag, version, or
+        both (for application revisions that are stored in Amazon S3
+        buckets) or by its repository name and commit ID (for applications
+        revisions that are stored in GitHub repositories). Application
+        revisions are deployed through deployment groups.
+
+        You can use the AWS CodeDeploy APIs to get, list, and register
+        application revisions.
     .
-    /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/Welcome.html AWS API Reference>
+    The types from this library are intended to be used with
+    <http://hackage.haskell.org/package/amazonka amazonka>, which provides
+    mechanisms for specifying AuthN/AuthZ information and sending requests.
     .
-    /Warning:/ This is an experimental preview release which is still under
-    heavy development and not intended for public consumption, caveat emptor!
+    Use of lenses is required for constructing and manipulating types.
+    This is due to the amount of nesting of AWS types and transparency regarding
+    de/serialisation into more palatable Haskell values.
+    The provided lenses should be compatible with any of the major lens libraries
+    such as <http://hackage.haskell.org/package/lens lens> or
+    <http://hackage.haskell.org/package/lens-family-core lens-family-core>.
+    .
+    See "Network.AWS.CodeDeploy" and the <http://docs.aws.amazon.com/codedeploy/latest/APIReference/Welcome.html AWS API Reference>
+    to get started.
 
 source-repository head
     type:     git
@@ -72,9 +133,40 @@
         , Network.AWS.CodeDeploy.Types
         , Network.AWS.CodeDeploy.UpdateApplication
         , Network.AWS.CodeDeploy.UpdateDeploymentGroup
+        , Network.AWS.CodeDeploy.Waiters
 
     other-modules:
+          Network.AWS.CodeDeploy.Types.Product
+        , Network.AWS.CodeDeploy.Types.Sum
 
     build-depends:
-          amazonka-core == 0.3.6.*
+          amazonka-core == 1.0.0.*
         , base          >= 4.7     && < 5
+
+test-suite amazonka-codedeploy-test
+    type:              exitcode-stdio-1.0
+    default-language:  Haskell2010
+    hs-source-dirs:    test
+    main-is:           Main.hs
+
+    ghc-options:       -Wall -threaded
+
+    -- This is not comprehensive if modules have manually been added.
+    -- It exists to ensure cabal 'somewhat' detects test module changes.
+    other-modules:
+          Test.AWS.CodeDeploy
+        , Test.AWS.Gen.CodeDeploy
+        , Test.AWS.CodeDeploy.Internal
+
+    build-depends:
+          amazonka-core == 1.0.0
+        , amazonka-test == 1.0.0
+        , amazonka-codedeploy == 1.0.0
+        , base
+        , bytestring
+        , lens
+        , tasty
+        , tasty-hunit
+        , text
+        , time
+        , unordered-containers
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
@@ -1,88 +1,639 @@
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
 -- Module      : Network.AWS.CodeDeploy
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Amazon CodeDeploy is a service that automates code deployments to Amazon EC2
--- instances. Amazon CodeDeploy makes it easier for you to rapidly release new
--- features, helps you avoid downtime during deployment, and handles the
--- complexity of updating your applications. You can use Amazon CodeDeploy to
--- automate deployments, eliminating the need for error-prone manual operations,
--- and the service scales with your infrastructure so you can easily deploy to
--- one EC2 instance or thousands.
+-- AWS CodeDeploy __Overview__
+--
+-- This is the AWS CodeDeploy API Reference. This guide provides
+-- descriptions of the AWS CodeDeploy APIs. For additional information, see
+-- the
+-- <http://docs.aws.amazon.com/codedeploy/latest/userguide AWS CodeDeploy User Guide>.
+--
+-- __Using the APIs__
+--
+-- You can use the AWS CodeDeploy APIs to work with the following items:
+--
+-- -   Applications are unique identifiers that AWS CodeDeploy uses to
+--     ensure that the correct combinations of revisions, deployment
+--     configurations, and deployment groups are being referenced during
+--     deployments.
+--
+--     You can use the AWS CodeDeploy APIs to create, delete, get, list,
+--     and update applications.
+--
+-- -   Deployment configurations are sets of deployment rules and
+--     deployment success and failure conditions that AWS CodeDeploy uses
+--     during deployments.
+--
+--     You can use the AWS CodeDeploy APIs to create, delete, get, and list
+--     deployment configurations.
+--
+-- -   Deployment groups are groups of instances to which application
+--     revisions can be deployed.
+--
+--     You can use the AWS CodeDeploy APIs to create, delete, get, list,
+--     and update deployment groups.
+--
+-- -   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 instances.
+--
+-- -   Deployments represent the process of deploying revisions to
+--     instances.
+--
+--     You can use the AWS CodeDeploy APIs to create, get, list, and stop
+--     deployments.
+--
+-- -   Application revisions are archive files that are stored in Amazon S3
+--     buckets or GitHub repositories. These revisions contain source
+--     content (such as source code, web pages, executable files, any
+--     deployment scripts, and similar) along with an Application
+--     Specification file (AppSpec file). (The AppSpec file is unique to
+--     AWS CodeDeploy; it defines a series of deployment actions that you
+--     want AWS CodeDeploy to execute.) An application revision is uniquely
+--     identified by its Amazon S3 object key and its ETag, version, or
+--     both (for application revisions that are stored in Amazon S3
+--     buckets) or by its repository name and commit ID (for applications
+--     revisions that are stored in GitHub repositories). Application
+--     revisions are deployed through deployment groups.
+--
+--     You can use the AWS CodeDeploy APIs to get, list, and register
+--     application revisions.
+--
+--
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/Welcome.html AWS API Reference>
 module Network.AWS.CodeDeploy
-    ( module Network.AWS.CodeDeploy.AddTagsToOnPremisesInstances
-    , module Network.AWS.CodeDeploy.BatchGetApplications
-    , module Network.AWS.CodeDeploy.BatchGetDeployments
-    , module Network.AWS.CodeDeploy.BatchGetOnPremisesInstances
-    , module Network.AWS.CodeDeploy.CreateApplication
-    , module Network.AWS.CodeDeploy.CreateDeployment
+    (
+    -- * Service
+      CodeDeploy
+
+    -- * Errors
+    -- $errors
+
+    -- ** InvalidTimeRangeException
+    , _InvalidTimeRangeException
+
+    -- ** InvalidTagException
+    , _InvalidTagException
+
+    -- ** InstanceNameAlreadyRegisteredException
+    , _InstanceNameAlreadyRegisteredException
+
+    -- ** InvalidIAMUserARNException
+    , _InvalidIAMUserARNException
+
+    -- ** IAMUserARNRequiredException
+    , _IAMUserARNRequiredException
+
+    -- ** InvalidDeploymentGroupNameException
+    , _InvalidDeploymentGroupNameException
+
+    -- ** DescriptionTooLongException
+    , _DescriptionTooLongException
+
+    -- ** DeploymentConfigAlreadyExistsException
+    , _DeploymentConfigAlreadyExistsException
+
+    -- ** DeploymentConfigLimitExceededException
+    , _DeploymentConfigLimitExceededException
+
+    -- ** InvalidRoleException
+    , _InvalidRoleException
+
+    -- ** DeploymentNotStartedException
+    , _DeploymentNotStartedException
+
+    -- ** RoleRequiredException
+    , _RoleRequiredException
+
+    -- ** IAMUserARNAlreadyRegisteredException
+    , _IAMUserARNAlreadyRegisteredException
+
+    -- ** DeploymentLimitExceededException
+    , _DeploymentLimitExceededException
+
+    -- ** InstanceLimitExceededException
+    , _InstanceLimitExceededException
+
+    -- ** InvalidAutoScalingGroupException
+    , _InvalidAutoScalingGroupException
+
+    -- ** InvalidApplicationNameException
+    , _InvalidApplicationNameException
+
+    -- ** InvalidDeployedStateFilterException
+    , _InvalidDeployedStateFilterException
+
+    -- ** InvalidMinimumHealthyHostValueException
+    , _InvalidMinimumHealthyHostValueException
+
+    -- ** ApplicationDoesNotExistException
+    , _ApplicationDoesNotExistException
+
+    -- ** InvalidTagFilterException
+    , _InvalidTagFilterException
+
+    -- ** TagRequiredException
+    , _TagRequiredException
+
+    -- ** RevisionDoesNotExistException
+    , _RevisionDoesNotExistException
+
+    -- ** DeploymentGroupNameRequiredException
+    , _DeploymentGroupNameRequiredException
+
+    -- ** InvalidBucketNameFilterException
+    , _InvalidBucketNameFilterException
+
+    -- ** DeploymentConfigDoesNotExistException
+    , _DeploymentConfigDoesNotExistException
+
+    -- ** InvalidSortByException
+    , _InvalidSortByException
+
+    -- ** BucketNameFilterRequiredException
+    , _BucketNameFilterRequiredException
+
+    -- ** DeploymentGroupLimitExceededException
+    , _DeploymentGroupLimitExceededException
+
+    -- ** DeploymentGroupAlreadyExistsException
+    , _DeploymentGroupAlreadyExistsException
+
+    -- ** InvalidDeploymentIdException
+    , _InvalidDeploymentIdException
+
+    -- ** DeploymentGroupDoesNotExistException
+    , _DeploymentGroupDoesNotExistException
+
+    -- ** DeploymentIdRequiredException
+    , _DeploymentIdRequiredException
+
+    -- ** InstanceIdRequiredException
+    , _InstanceIdRequiredException
+
+    -- ** DeploymentConfigNameRequiredException
+    , _DeploymentConfigNameRequiredException
+
+    -- ** InvalidDeploymentConfigNameException
+    , _InvalidDeploymentConfigNameException
+
+    -- ** InvalidSortOrderException
+    , _InvalidSortOrderException
+
+    -- ** InvalidNextTokenException
+    , _InvalidNextTokenException
+
+    -- ** InvalidRevisionException
+    , _InvalidRevisionException
+
+    -- ** DeploymentAlreadyCompletedException
+    , _DeploymentAlreadyCompletedException
+
+    -- ** RevisionRequiredException
+    , _RevisionRequiredException
+
+    -- ** InstanceDoesNotExistException
+    , _InstanceDoesNotExistException
+
+    -- ** DeploymentDoesNotExistException
+    , _DeploymentDoesNotExistException
+
+    -- ** InstanceNameRequiredException
+    , _InstanceNameRequiredException
+
+    -- ** DeploymentConfigInUseException
+    , _DeploymentConfigInUseException
+
+    -- ** InvalidEC2TagException
+    , _InvalidEC2TagException
+
+    -- ** InvalidInstanceNameException
+    , _InvalidInstanceNameException
+
+    -- ** InvalidDeploymentStatusException
+    , _InvalidDeploymentStatusException
+
+    -- ** InvalidRegistrationStatusException
+    , _InvalidRegistrationStatusException
+
+    -- ** TagLimitExceededException
+    , _TagLimitExceededException
+
+    -- ** InstanceNotRegisteredException
+    , _InstanceNotRegisteredException
+
+    -- ** ApplicationLimitExceededException
+    , _ApplicationLimitExceededException
+
+    -- ** InvalidOperationException
+    , _InvalidOperationException
+
+    -- ** ApplicationAlreadyExistsException
+    , _ApplicationAlreadyExistsException
+
+    -- ** InvalidInstanceStatusException
+    , _InvalidInstanceStatusException
+
+    -- ** ApplicationNameRequiredException
+    , _ApplicationNameRequiredException
+
+    -- ** InvalidKeyPrefixFilterException
+    , _InvalidKeyPrefixFilterException
+
+    -- * Waiters
+    -- $waiters
+
+    -- * Operations
+    -- $operations
+
+    -- ** RemoveTagsFromOnPremisesInstances
+    , module Network.AWS.CodeDeploy.RemoveTagsFromOnPremisesInstances
+
+    -- ** GetDeployment
+    , module Network.AWS.CodeDeploy.GetDeployment
+
+    -- ** CreateDeploymentConfig
     , module Network.AWS.CodeDeploy.CreateDeploymentConfig
-    , module Network.AWS.CodeDeploy.CreateDeploymentGroup
-    , module Network.AWS.CodeDeploy.DeleteApplication
-    , module Network.AWS.CodeDeploy.DeleteDeploymentConfig
+
+    -- ** UpdateDeploymentGroup
+    , module Network.AWS.CodeDeploy.UpdateDeploymentGroup
+
+    -- ** DeleteDeploymentGroup
     , module Network.AWS.CodeDeploy.DeleteDeploymentGroup
-    , module Network.AWS.CodeDeploy.DeregisterOnPremisesInstance
-    , module Network.AWS.CodeDeploy.GetApplication
+
+    -- ** ListOnPremisesInstances
+    , module Network.AWS.CodeDeploy.ListOnPremisesInstances
+
+    -- ** GetApplicationRevision
     , module Network.AWS.CodeDeploy.GetApplicationRevision
-    , module Network.AWS.CodeDeploy.GetDeployment
+
+    -- ** DeleteDeploymentConfig
+    , module Network.AWS.CodeDeploy.DeleteDeploymentConfig
+
+    -- ** GetDeploymentConfig
     , module Network.AWS.CodeDeploy.GetDeploymentConfig
-    , module Network.AWS.CodeDeploy.GetDeploymentGroup
-    , module Network.AWS.CodeDeploy.GetDeploymentInstance
+
+    -- ** CreateDeployment
+    , module Network.AWS.CodeDeploy.CreateDeployment
+
+    -- ** GetOnPremisesInstance
     , module Network.AWS.CodeDeploy.GetOnPremisesInstance
+
+    -- ** BatchGetDeployments
+    , module Network.AWS.CodeDeploy.BatchGetDeployments
+
+    -- ** RegisterApplicationRevision
+    , module Network.AWS.CodeDeploy.RegisterApplicationRevision
+
+    -- ** DeleteApplication
+    , module Network.AWS.CodeDeploy.DeleteApplication
+
+    -- ** UpdateApplication
+    , module Network.AWS.CodeDeploy.UpdateApplication
+
+    -- ** BatchGetApplications
+    , module Network.AWS.CodeDeploy.BatchGetApplications
+
+    -- ** CreateApplication
+    , module Network.AWS.CodeDeploy.CreateApplication
+
+    -- ** DeregisterOnPremisesInstance
+    , module Network.AWS.CodeDeploy.DeregisterOnPremisesInstance
+
+    -- ** GetDeploymentInstance
+    , module Network.AWS.CodeDeploy.GetDeploymentInstance
+
+    -- ** StopDeployment
+    , module Network.AWS.CodeDeploy.StopDeployment
+
+    -- ** GetApplication
+    , module Network.AWS.CodeDeploy.GetApplication
+
+    -- ** ListDeploymentGroups
+    , module Network.AWS.CodeDeploy.ListDeploymentGroups
+
+    -- ** RegisterOnPremisesInstance
+    , module Network.AWS.CodeDeploy.RegisterOnPremisesInstance
+
+    -- ** BatchGetOnPremisesInstances
+    , module Network.AWS.CodeDeploy.BatchGetOnPremisesInstances
+
+    -- ** ListDeploymentConfigs
+    , module Network.AWS.CodeDeploy.ListDeploymentConfigs
+
+    -- ** CreateDeploymentGroup
+    , module Network.AWS.CodeDeploy.CreateDeploymentGroup
+
+    -- ** GetDeploymentGroup
+    , module Network.AWS.CodeDeploy.GetDeploymentGroup
+
+    -- ** ListDeployments
+    , module Network.AWS.CodeDeploy.ListDeployments
+
+    -- ** ListApplicationRevisions
     , module Network.AWS.CodeDeploy.ListApplicationRevisions
+
+    -- ** ListApplications
     , module Network.AWS.CodeDeploy.ListApplications
-    , module Network.AWS.CodeDeploy.ListDeploymentConfigs
-    , module Network.AWS.CodeDeploy.ListDeploymentGroups
+
+    -- ** AddTagsToOnPremisesInstances
+    , module Network.AWS.CodeDeploy.AddTagsToOnPremisesInstances
+
+    -- ** ListDeploymentInstances
     , module Network.AWS.CodeDeploy.ListDeploymentInstances
-    , module Network.AWS.CodeDeploy.ListDeployments
-    , module Network.AWS.CodeDeploy.ListOnPremisesInstances
-    , module Network.AWS.CodeDeploy.RegisterApplicationRevision
-    , module Network.AWS.CodeDeploy.RegisterOnPremisesInstance
-    , module Network.AWS.CodeDeploy.RemoveTagsFromOnPremisesInstances
-    , module Network.AWS.CodeDeploy.StopDeployment
-    , module Network.AWS.CodeDeploy.Types
-    , module Network.AWS.CodeDeploy.UpdateApplication
-    , module Network.AWS.CodeDeploy.UpdateDeploymentGroup
+
+    -- * Types
+
+    -- ** ApplicationRevisionSortBy
+    , ApplicationRevisionSortBy (..)
+
+    -- ** BundleType
+    , BundleType (..)
+
+    -- ** DeployErrorCode
+    , DeployErrorCode (..)
+
+    -- ** DeploymentCreator
+    , DeploymentCreator (..)
+
+    -- ** DeploymentStatus
+    , DeploymentStatus (..)
+
+    -- ** EC2TagFilterType
+    , EC2TagFilterType (..)
+
+    -- ** InstanceStatus
+    , InstanceStatus (..)
+
+    -- ** LifecycleErrorCode
+    , LifecycleErrorCode (..)
+
+    -- ** LifecycleEventStatus
+    , LifecycleEventStatus (..)
+
+    -- ** ListStateFilterAction
+    , ListStateFilterAction (..)
+
+    -- ** MinimumHealthyHostsType
+    , MinimumHealthyHostsType (..)
+
+    -- ** RegistrationStatus
+    , RegistrationStatus (..)
+
+    -- ** RevisionLocationType
+    , RevisionLocationType (..)
+
+    -- ** SortOrder
+    , SortOrder (..)
+
+    -- ** StopStatus
+    , StopStatus (..)
+
+    -- ** TagFilterType
+    , TagFilterType (..)
+
+    -- ** ApplicationInfo
+    , ApplicationInfo
+    , applicationInfo
+    , aiLinkedToGitHub
+    , aiApplicationId
+    , aiApplicationName
+    , aiCreateTime
+
+    -- ** AutoScalingGroup
+    , AutoScalingGroup
+    , autoScalingGroup
+    , asgHook
+    , asgName
+
+    -- ** DeploymentConfigInfo
+    , DeploymentConfigInfo
+    , deploymentConfigInfo
+    , dciDeploymentConfigName
+    , dciMinimumHealthyHosts
+    , dciDeploymentConfigId
+    , dciCreateTime
+
+    -- ** DeploymentGroupInfo
+    , DeploymentGroupInfo
+    , deploymentGroupInfo
+    , dgiServiceRoleARN
+    , dgiDeploymentConfigName
+    , dgiTargetRevision
+    , dgiEc2TagFilters
+    , dgiOnPremisesInstanceTagFilters
+    , dgiApplicationName
+    , dgiDeploymentGroupId
+    , dgiAutoScalingGroups
+    , dgiDeploymentGroupName
+
+    -- ** DeploymentInfo
+    , DeploymentInfo
+    , deploymentInfo
+    , diDeploymentId
+    , diCreator
+    , diStatus
+    , diDeploymentConfigName
+    , diStartTime
+    , diCompleteTime
+    , diErrorInformation
+    , diDeploymentOverview
+    , diApplicationName
+    , diRevision
+    , diDescription
+    , diIgnoreApplicationStopFailures
+    , diDeploymentGroupName
+    , diCreateTime
+
+    -- ** DeploymentOverview
+    , DeploymentOverview
+    , deploymentOverview
+    , doPending
+    , doSkipped
+    , doInProgress
+    , doSucceeded
+    , doFailed
+
+    -- ** Diagnostics
+    , Diagnostics
+    , diagnostics
+    , dLogTail
+    , dErrorCode
+    , dScriptName
+    , dMessage
+
+    -- ** EC2TagFilter
+    , EC2TagFilter
+    , ec2TagFilter
+    , etfValue
+    , etfKey
+    , etfType
+
+    -- ** ErrorInformation
+    , ErrorInformation
+    , errorInformation
+    , eiCode
+    , eiMessage
+
+    -- ** GenericRevisionInfo
+    , GenericRevisionInfo
+    , genericRevisionInfo
+    , griRegisterTime
+    , griFirstUsedTime
+    , griDeploymentGroups
+    , griLastUsedTime
+    , griDescription
+
+    -- ** GitHubLocation
+    , GitHubLocation
+    , gitHubLocation
+    , ghlCommitId
+    , ghlRepository
+
+    -- ** InstanceInfo
+    , InstanceInfo
+    , instanceInfo
+    , iiInstanceARN
+    , iiRegisterTime
+    , iiDeregisterTime
+    , iiIamUserARN
+    , iiInstanceName
+    , iiTags
+
+    -- ** InstanceSummary
+    , InstanceSummary
+    , instanceSummary
+    , isInstanceId
+    , isDeploymentId
+    , isStatus
+    , isLastUpdatedAt
+    , isLifecycleEvents
+
+    -- ** LifecycleEvent
+    , LifecycleEvent
+    , lifecycleEvent
+    , leStatus
+    , leStartTime
+    , leLifecycleEventName
+    , leDiagnostics
+    , leEndTime
+
+    -- ** MinimumHealthyHosts
+    , MinimumHealthyHosts
+    , minimumHealthyHosts
+    , mhhValue
+    , mhhType
+
+    -- ** RevisionLocation
+    , RevisionLocation
+    , revisionLocation
+    , rlRevisionType
+    , rlS3Location
+    , rlGitHubLocation
+
+    -- ** S3Location
+    , S3Location
+    , s3Location
+    , slBundleType
+    , slETag
+    , slBucket
+    , slKey
+    , slVersion
+
+    -- ** Tag
+    , Tag
+    , tag
+    , tagValue
+    , tagKey
+
+    -- ** TagFilter
+    , TagFilter
+    , tagFilter
+    , tfValue
+    , tfKey
+    , tfType
+
+    -- ** TimeRange
+    , TimeRange
+    , timeRange
+    , trStart
+    , trEnd
     ) where
 
-import Network.AWS.CodeDeploy.AddTagsToOnPremisesInstances
-import Network.AWS.CodeDeploy.BatchGetApplications
-import Network.AWS.CodeDeploy.BatchGetDeployments
-import Network.AWS.CodeDeploy.BatchGetOnPremisesInstances
-import Network.AWS.CodeDeploy.CreateApplication
-import Network.AWS.CodeDeploy.CreateDeployment
-import Network.AWS.CodeDeploy.CreateDeploymentConfig
-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.AddTagsToOnPremisesInstances
+import           Network.AWS.CodeDeploy.BatchGetApplications
+import           Network.AWS.CodeDeploy.BatchGetDeployments
+import           Network.AWS.CodeDeploy.BatchGetOnPremisesInstances
+import           Network.AWS.CodeDeploy.CreateApplication
+import           Network.AWS.CodeDeploy.CreateDeployment
+import           Network.AWS.CodeDeploy.CreateDeploymentConfig
+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
+
+{- $errors
+Error matchers are designed for use with the functions provided by
+<http://hackage.haskell.org/package/lens/docs/Control-Exception-Lens.html Control.Exception.Lens>.
+This allows catching (and rethrowing) service specific errors returned
+by 'CodeDeploy'.
+-}
+
+{- $operations
+Some AWS operations return results that are incomplete and require subsequent
+requests in order to obtain the entire result set. The process of sending
+subsequent requests to continue where a previous request left off is called
+pagination. For example, the 'ListObjects' operation of Amazon S3 returns up to
+1000 objects at a time, and you must send subsequent requests with the
+appropriate Marker in order to retrieve the next page of results.
+
+Operations that have an 'AWSPager' instance can transparently perform subsequent
+requests, correctly setting Markers and other request facets to iterate through
+the entire result set of a truncated API operation. Operations which support
+this have an additional note in the documentation.
+
+Many operations have the ability to filter results on the server side. See the
+individual operation parameters for details.
+-}
+
+{- $waiters
+Waiters poll by repeatedly sending a request until some remote success condition
+configured by the 'Wait' specification is fulfilled. The 'Wait' specification
+determines how many attempts should be made, in addition to delay and retry strategies.
+-}
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
@@ -1,108 +1,118 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.AddTagsToOnPremisesInstances
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Adds tags to on-premises instances.
+-- Adds tags to on-premises instances.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_AddTagsToOnPremisesInstances.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_AddTagsToOnPremisesInstances.html AWS API Reference> for AddTagsToOnPremisesInstances.
 module Network.AWS.CodeDeploy.AddTagsToOnPremisesInstances
     (
-    -- * Request
-      AddTagsToOnPremisesInstances
-    -- ** Request constructor
-    , addTagsToOnPremisesInstances
-    -- ** Request lenses
-    , attopiInstanceNames
+    -- * Creating a Request
+      addTagsToOnPremisesInstances
+    , AddTagsToOnPremisesInstances
+    -- * Request Lenses
     , attopiTags
+    , attopiInstanceNames
 
-    -- * Response
-    , AddTagsToOnPremisesInstancesResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , addTagsToOnPremisesInstancesResponse
+    , AddTagsToOnPremisesInstancesResponse
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
-
-data AddTagsToOnPremisesInstances = AddTagsToOnPremisesInstances
-    { _attopiInstanceNames :: List "instanceNames" Text
-    , _attopiTags          :: List "tags" Tag
-    } deriving (Eq, Read, Show)
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'AddTagsToOnPremisesInstances' constructor.
+-- | Represents the input of an adds tags to on-premises instance operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'addTagsToOnPremisesInstances' smart constructor.
+data AddTagsToOnPremisesInstances = AddTagsToOnPremisesInstances'
+    { _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.
 --
--- * 'attopiInstanceNames' @::@ ['Text']
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'attopiTags' @::@ ['Tag']
+-- * 'attopiTags'
 --
-addTagsToOnPremisesInstances :: AddTagsToOnPremisesInstances
-addTagsToOnPremisesInstances = AddTagsToOnPremisesInstances
-    { _attopiTags          = mempty
+-- * 'attopiInstanceNames'
+addTagsToOnPremisesInstances
+    :: AddTagsToOnPremisesInstances
+addTagsToOnPremisesInstances =
+    AddTagsToOnPremisesInstances'
+    { _attopiTags = mempty
     , _attopiInstanceNames = mempty
     }
 
--- | The names of the on-premises instances to add tags to.
-attopiInstanceNames :: Lens' AddTagsToOnPremisesInstances [Text]
-attopiInstanceNames =
-    lens _attopiInstanceNames (\s a -> s { _attopiInstanceNames = a })
-        . _List
-
 -- | The tag key-value pairs to add to the on-premises instances.
 --
--- Keys and values are both required. Keys cannot be nulls or empty strings.
--- Value-only tags are not allowed.
+-- Keys and values are both required. Keys cannot be nulls or empty
+-- strings. Value-only tags are not allowed.
 attopiTags :: Lens' AddTagsToOnPremisesInstances [Tag]
-attopiTags = lens _attopiTags (\s a -> s { _attopiTags = a }) . _List
+attopiTags = lens _attopiTags (\ s a -> s{_attopiTags = a}) . _Coerce;
 
-data AddTagsToOnPremisesInstancesResponse = AddTagsToOnPremisesInstancesResponse
-    deriving (Eq, Ord, Read, Show, Generic)
+-- | The names of the on-premises instances to add tags to.
+attopiInstanceNames :: Lens' AddTagsToOnPremisesInstances [Text]
+attopiInstanceNames = lens _attopiInstanceNames (\ s a -> s{_attopiInstanceNames = a}) . _Coerce;
 
--- | 'AddTagsToOnPremisesInstancesResponse' constructor.
-addTagsToOnPremisesInstancesResponse :: AddTagsToOnPremisesInstancesResponse
-addTagsToOnPremisesInstancesResponse = AddTagsToOnPremisesInstancesResponse
+instance AWSRequest AddTagsToOnPremisesInstances
+         where
+        type Sv AddTagsToOnPremisesInstances = CodeDeploy
+        type Rs AddTagsToOnPremisesInstances =
+             AddTagsToOnPremisesInstancesResponse
+        request = postJSON
+        response
+          = receiveNull AddTagsToOnPremisesInstancesResponse'
 
-instance ToPath AddTagsToOnPremisesInstances where
-    toPath = const "/"
+instance ToHeaders AddTagsToOnPremisesInstances where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.AddTagsToOnPremisesInstances"
+                       :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
-instance ToQuery AddTagsToOnPremisesInstances where
-    toQuery = const mempty
+instance ToJSON AddTagsToOnPremisesInstances where
+        toJSON AddTagsToOnPremisesInstances'{..}
+          = object
+              ["tags" .= _attopiTags,
+               "instanceNames" .= _attopiInstanceNames]
 
-instance ToHeaders AddTagsToOnPremisesInstances
+instance ToPath AddTagsToOnPremisesInstances where
+        toPath = const "/"
 
-instance ToJSON AddTagsToOnPremisesInstances where
-    toJSON AddTagsToOnPremisesInstances{..} = object
-        [ "tags"          .= _attopiTags
-        , "instanceNames" .= _attopiInstanceNames
-        ]
+instance ToQuery AddTagsToOnPremisesInstances where
+        toQuery = const mempty
 
-instance AWSRequest AddTagsToOnPremisesInstances where
-    type Sv AddTagsToOnPremisesInstances = CodeDeploy
-    type Rs AddTagsToOnPremisesInstances = AddTagsToOnPremisesInstancesResponse
+-- | /See:/ 'addTagsToOnPremisesInstancesResponse' smart constructor.
+data AddTagsToOnPremisesInstancesResponse =
+    AddTagsToOnPremisesInstancesResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-    request  = post "AddTagsToOnPremisesInstances"
-    response = nullResponse AddTagsToOnPremisesInstancesResponse
+-- | Creates a value of 'AddTagsToOnPremisesInstancesResponse' with the minimum fields required to make a request.
+--
+addTagsToOnPremisesInstancesResponse
+    :: AddTagsToOnPremisesInstancesResponse
+addTagsToOnPremisesInstancesResponse = AddTagsToOnPremisesInstancesResponse'
diff --git a/gen/Network/AWS/CodeDeploy/BatchGetApplications.hs b/gen/Network/AWS/CodeDeploy/BatchGetApplications.hs
--- a/gen/Network/AWS/CodeDeploy/BatchGetApplications.hs
+++ b/gen/Network/AWS/CodeDeploy/BatchGetApplications.hs
@@ -1,128 +1,132 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.BatchGetApplications
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Gets information about one or more applications.
+-- Gets information about one or more applications.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_BatchGetApplications.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_BatchGetApplications.html AWS API Reference> for BatchGetApplications.
 module Network.AWS.CodeDeploy.BatchGetApplications
     (
-    -- * Request
-      BatchGetApplications
-    -- ** Request constructor
-    , batchGetApplications
-    -- ** Request lenses
+    -- * Creating a Request
+      batchGetApplications
+    , BatchGetApplications
+    -- * Request Lenses
     , bgaApplicationNames
 
-    -- * Response
-    , BatchGetApplicationsResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , batchGetApplicationsResponse
-    -- ** Response lenses
-    , bgarApplicationsInfo
+    , BatchGetApplicationsResponse
+    -- * Response Lenses
+    , bgarsApplicationsInfo
+    , bgarsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
-
-newtype BatchGetApplications = BatchGetApplications
-    { _bgaApplicationNames :: List "applicationNames" Text
-    } deriving (Eq, Ord, Read, Show, Monoid, Semigroup)
-
-instance GHC.Exts.IsList BatchGetApplications where
-    type Item BatchGetApplications = Text
-
-    fromList = BatchGetApplications . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _bgaApplicationNames
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'BatchGetApplications' constructor.
+-- | Represents the input of a batch get applications operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'batchGetApplications' smart constructor.
+newtype BatchGetApplications = BatchGetApplications'
+    { _bgaApplicationNames :: Maybe [Text]
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BatchGetApplications' with the minimum fields required to make a request.
 --
--- * 'bgaApplicationNames' @::@ ['Text']
+-- Use one of the following lenses to modify other fields as desired:
 --
-batchGetApplications :: BatchGetApplications
-batchGetApplications = BatchGetApplications
-    { _bgaApplicationNames = mempty
+-- * 'bgaApplicationNames'
+batchGetApplications
+    :: BatchGetApplications
+batchGetApplications =
+    BatchGetApplications'
+    { _bgaApplicationNames = Nothing
     }
 
--- | A list of application names, with multiple application names separated by
--- spaces.
+-- | A list of application names, with multiple application names separated
+-- by spaces.
 bgaApplicationNames :: Lens' BatchGetApplications [Text]
-bgaApplicationNames =
-    lens _bgaApplicationNames (\s a -> s { _bgaApplicationNames = a })
-        . _List
-
-newtype BatchGetApplicationsResponse = BatchGetApplicationsResponse
-    { _bgarApplicationsInfo :: List "applicationsInfo" ApplicationInfo
-    } deriving (Eq, Read, Show, Monoid, Semigroup)
-
-instance GHC.Exts.IsList BatchGetApplicationsResponse where
-    type Item BatchGetApplicationsResponse = ApplicationInfo
+bgaApplicationNames = lens _bgaApplicationNames (\ s a -> s{_bgaApplicationNames = a}) . _Default . _Coerce;
 
-    fromList = BatchGetApplicationsResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _bgarApplicationsInfo
+instance AWSRequest BatchGetApplications where
+        type Sv BatchGetApplications = CodeDeploy
+        type Rs BatchGetApplications =
+             BatchGetApplicationsResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 BatchGetApplicationsResponse' <$>
+                   (x .?> "applicationsInfo" .!@ mempty) <*>
+                     (pure (fromEnum s)))
 
--- | 'BatchGetApplicationsResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'bgarApplicationsInfo' @::@ ['ApplicationInfo']
---
-batchGetApplicationsResponse :: BatchGetApplicationsResponse
-batchGetApplicationsResponse = BatchGetApplicationsResponse
-    { _bgarApplicationsInfo = mempty
-    }
+instance ToHeaders BatchGetApplications where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.BatchGetApplications" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | Information about the applications.
-bgarApplicationsInfo :: Lens' BatchGetApplicationsResponse [ApplicationInfo]
-bgarApplicationsInfo =
-    lens _bgarApplicationsInfo (\s a -> s { _bgarApplicationsInfo = a })
-        . _List
+instance ToJSON BatchGetApplications where
+        toJSON BatchGetApplications'{..}
+          = object ["applicationNames" .= _bgaApplicationNames]
 
 instance ToPath BatchGetApplications where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery BatchGetApplications where
-    toQuery = const mempty
-
-instance ToHeaders BatchGetApplications
+        toQuery = const mempty
 
-instance ToJSON BatchGetApplications where
-    toJSON BatchGetApplications{..} = object
-        [ "applicationNames" .= _bgaApplicationNames
-        ]
+-- | Represents the output of a batch get applications operation.
+--
+-- /See:/ 'batchGetApplicationsResponse' smart constructor.
+data BatchGetApplicationsResponse = BatchGetApplicationsResponse'
+    { _bgarsApplicationsInfo :: !(Maybe [ApplicationInfo])
+    , _bgarsStatus           :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest BatchGetApplications where
-    type Sv BatchGetApplications = CodeDeploy
-    type Rs BatchGetApplications = BatchGetApplicationsResponse
+-- | 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:
+--
+-- * 'bgarsApplicationsInfo'
+--
+-- * 'bgarsStatus'
+batchGetApplicationsResponse
+    :: Int -- ^ 'bgarsStatus'
+    -> BatchGetApplicationsResponse
+batchGetApplicationsResponse pStatus_ =
+    BatchGetApplicationsResponse'
+    { _bgarsApplicationsInfo = Nothing
+    , _bgarsStatus = pStatus_
+    }
 
-    request  = post "BatchGetApplications"
-    response = jsonResponse
+-- | Information about the applications.
+bgarsApplicationsInfo :: Lens' BatchGetApplicationsResponse [ApplicationInfo]
+bgarsApplicationsInfo = lens _bgarsApplicationsInfo (\ s a -> s{_bgarsApplicationsInfo = a}) . _Default . _Coerce;
 
-instance FromJSON BatchGetApplicationsResponse where
-    parseJSON = withObject "BatchGetApplicationsResponse" $ \o -> BatchGetApplicationsResponse
-        <$> o .:? "applicationsInfo" .!= mempty
+-- | The response status code.
+bgarsStatus :: Lens' BatchGetApplicationsResponse Int
+bgarsStatus = lens _bgarsStatus (\ s a -> s{_bgarsStatus = a});
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
@@ -1,125 +1,132 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.BatchGetDeployments
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Gets information about one or more deployments.
+-- Gets information about one or more deployments.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_BatchGetDeployments.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_BatchGetDeployments.html AWS API Reference> for BatchGetDeployments.
 module Network.AWS.CodeDeploy.BatchGetDeployments
     (
-    -- * Request
-      BatchGetDeployments
-    -- ** Request constructor
-    , batchGetDeployments
-    -- ** Request lenses
+    -- * Creating a Request
+      batchGetDeployments
+    , BatchGetDeployments
+    -- * Request Lenses
     , bgdDeploymentIds
 
-    -- * Response
-    , BatchGetDeploymentsResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , batchGetDeploymentsResponse
-    -- ** Response lenses
-    , bgdrDeploymentsInfo
+    , BatchGetDeploymentsResponse
+    -- * Response Lenses
+    , bgdrsDeploymentsInfo
+    , bgdrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
-
-newtype BatchGetDeployments = BatchGetDeployments
-    { _bgdDeploymentIds :: List "deploymentIds" Text
-    } deriving (Eq, Ord, Read, Show, Monoid, Semigroup)
-
-instance GHC.Exts.IsList BatchGetDeployments where
-    type Item BatchGetDeployments = Text
-
-    fromList = BatchGetDeployments . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _bgdDeploymentIds
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'BatchGetDeployments' constructor.
+-- | Represents the input of a batch get deployments operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'batchGetDeployments' smart constructor.
+newtype BatchGetDeployments = BatchGetDeployments'
+    { _bgdDeploymentIds :: Maybe [Text]
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BatchGetDeployments' with the minimum fields required to make a request.
 --
--- * 'bgdDeploymentIds' @::@ ['Text']
+-- Use one of the following lenses to modify other fields as desired:
 --
-batchGetDeployments :: BatchGetDeployments
-batchGetDeployments = BatchGetDeployments
-    { _bgdDeploymentIds = mempty
+-- * 'bgdDeploymentIds'
+batchGetDeployments
+    :: BatchGetDeployments
+batchGetDeployments =
+    BatchGetDeployments'
+    { _bgdDeploymentIds = Nothing
     }
 
--- | A list of deployment IDs, with multiple deployment IDs separated by spaces.
+-- | A list of deployment IDs, with multiple deployment IDs separated by
+-- spaces.
 bgdDeploymentIds :: Lens' BatchGetDeployments [Text]
-bgdDeploymentIds = lens _bgdDeploymentIds (\s a -> s { _bgdDeploymentIds = a }) . _List
-
-newtype BatchGetDeploymentsResponse = BatchGetDeploymentsResponse
-    { _bgdrDeploymentsInfo :: List "deploymentsInfo" DeploymentInfo
-    } deriving (Eq, Read, Show, Monoid, Semigroup)
-
-instance GHC.Exts.IsList BatchGetDeploymentsResponse where
-    type Item BatchGetDeploymentsResponse = DeploymentInfo
+bgdDeploymentIds = lens _bgdDeploymentIds (\ s a -> s{_bgdDeploymentIds = a}) . _Default . _Coerce;
 
-    fromList = BatchGetDeploymentsResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _bgdrDeploymentsInfo
+instance AWSRequest BatchGetDeployments where
+        type Sv BatchGetDeployments = CodeDeploy
+        type Rs BatchGetDeployments =
+             BatchGetDeploymentsResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 BatchGetDeploymentsResponse' <$>
+                   (x .?> "deploymentsInfo" .!@ mempty) <*>
+                     (pure (fromEnum s)))
 
--- | 'BatchGetDeploymentsResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'bgdrDeploymentsInfo' @::@ ['DeploymentInfo']
---
-batchGetDeploymentsResponse :: BatchGetDeploymentsResponse
-batchGetDeploymentsResponse = BatchGetDeploymentsResponse
-    { _bgdrDeploymentsInfo = mempty
-    }
+instance ToHeaders BatchGetDeployments where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.BatchGetDeployments" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | Information about the deployments.
-bgdrDeploymentsInfo :: Lens' BatchGetDeploymentsResponse [DeploymentInfo]
-bgdrDeploymentsInfo =
-    lens _bgdrDeploymentsInfo (\s a -> s { _bgdrDeploymentsInfo = a })
-        . _List
+instance ToJSON BatchGetDeployments where
+        toJSON BatchGetDeployments'{..}
+          = object ["deploymentIds" .= _bgdDeploymentIds]
 
 instance ToPath BatchGetDeployments where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery BatchGetDeployments where
-    toQuery = const mempty
-
-instance ToHeaders BatchGetDeployments
+        toQuery = const mempty
 
-instance ToJSON BatchGetDeployments where
-    toJSON BatchGetDeployments{..} = object
-        [ "deploymentIds" .= _bgdDeploymentIds
-        ]
+-- | Represents the output of a batch get deployments operation.
+--
+-- /See:/ 'batchGetDeploymentsResponse' smart constructor.
+data BatchGetDeploymentsResponse = BatchGetDeploymentsResponse'
+    { _bgdrsDeploymentsInfo :: !(Maybe [DeploymentInfo])
+    , _bgdrsStatus          :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest BatchGetDeployments where
-    type Sv BatchGetDeployments = CodeDeploy
-    type Rs BatchGetDeployments = BatchGetDeploymentsResponse
+-- | 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:
+--
+-- * 'bgdrsDeploymentsInfo'
+--
+-- * 'bgdrsStatus'
+batchGetDeploymentsResponse
+    :: Int -- ^ 'bgdrsStatus'
+    -> BatchGetDeploymentsResponse
+batchGetDeploymentsResponse pStatus_ =
+    BatchGetDeploymentsResponse'
+    { _bgdrsDeploymentsInfo = Nothing
+    , _bgdrsStatus = pStatus_
+    }
 
-    request  = post "BatchGetDeployments"
-    response = jsonResponse
+-- | Information about the deployments.
+bgdrsDeploymentsInfo :: Lens' BatchGetDeploymentsResponse [DeploymentInfo]
+bgdrsDeploymentsInfo = lens _bgdrsDeploymentsInfo (\ s a -> s{_bgdrsDeploymentsInfo = a}) . _Default . _Coerce;
 
-instance FromJSON BatchGetDeploymentsResponse where
-    parseJSON = withObject "BatchGetDeploymentsResponse" $ \o -> BatchGetDeploymentsResponse
-        <$> o .:? "deploymentsInfo" .!= mempty
+-- | The response status code.
+bgdrsStatus :: Lens' BatchGetDeploymentsResponse Int
+bgdrsStatus = lens _bgdrsStatus (\ s a -> s{_bgdrsStatus = a});
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
@@ -1,127 +1,131 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.BatchGetOnPremisesInstances
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Gets information about one or more on-premises instances.
+-- Gets information about one or more on-premises instances.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_BatchGetOnPremisesInstances.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_BatchGetOnPremisesInstances.html AWS API Reference> for BatchGetOnPremisesInstances.
 module Network.AWS.CodeDeploy.BatchGetOnPremisesInstances
     (
-    -- * Request
-      BatchGetOnPremisesInstances
-    -- ** Request constructor
-    , batchGetOnPremisesInstances
-    -- ** Request lenses
+    -- * Creating a Request
+      batchGetOnPremisesInstances
+    , BatchGetOnPremisesInstances
+    -- * Request Lenses
     , bgopiInstanceNames
 
-    -- * Response
-    , BatchGetOnPremisesInstancesResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , batchGetOnPremisesInstancesResponse
-    -- ** Response lenses
-    , bgopirInstanceInfos
+    , BatchGetOnPremisesInstancesResponse
+    -- * Response Lenses
+    , bgopirsInstanceInfos
+    , bgopirsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
-
-newtype BatchGetOnPremisesInstances = BatchGetOnPremisesInstances
-    { _bgopiInstanceNames :: List "instanceNames" Text
-    } deriving (Eq, Ord, Read, Show, Monoid, Semigroup)
-
-instance GHC.Exts.IsList BatchGetOnPremisesInstances where
-    type Item BatchGetOnPremisesInstances = Text
-
-    fromList = BatchGetOnPremisesInstances . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _bgopiInstanceNames
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'BatchGetOnPremisesInstances' constructor.
+-- | Represents the input of a batch get on-premises instances operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'batchGetOnPremisesInstances' smart constructor.
+newtype BatchGetOnPremisesInstances = BatchGetOnPremisesInstances'
+    { _bgopiInstanceNames :: Maybe [Text]
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BatchGetOnPremisesInstances' with the minimum fields required to make a request.
 --
--- * 'bgopiInstanceNames' @::@ ['Text']
+-- Use one of the following lenses to modify other fields as desired:
 --
-batchGetOnPremisesInstances :: BatchGetOnPremisesInstances
-batchGetOnPremisesInstances = BatchGetOnPremisesInstances
-    { _bgopiInstanceNames = mempty
+-- * 'bgopiInstanceNames'
+batchGetOnPremisesInstances
+    :: BatchGetOnPremisesInstances
+batchGetOnPremisesInstances =
+    BatchGetOnPremisesInstances'
+    { _bgopiInstanceNames = Nothing
     }
 
 -- | The names of the on-premises instances to get information about.
 bgopiInstanceNames :: Lens' BatchGetOnPremisesInstances [Text]
-bgopiInstanceNames =
-    lens _bgopiInstanceNames (\s a -> s { _bgopiInstanceNames = a })
-        . _List
-
-newtype BatchGetOnPremisesInstancesResponse = BatchGetOnPremisesInstancesResponse
-    { _bgopirInstanceInfos :: List "instanceInfos" InstanceInfo
-    } deriving (Eq, Read, Show, Monoid, Semigroup)
-
-instance GHC.Exts.IsList BatchGetOnPremisesInstancesResponse where
-    type Item BatchGetOnPremisesInstancesResponse = InstanceInfo
+bgopiInstanceNames = lens _bgopiInstanceNames (\ s a -> s{_bgopiInstanceNames = a}) . _Default . _Coerce;
 
-    fromList = BatchGetOnPremisesInstancesResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _bgopirInstanceInfos
+instance AWSRequest BatchGetOnPremisesInstances where
+        type Sv BatchGetOnPremisesInstances = CodeDeploy
+        type Rs BatchGetOnPremisesInstances =
+             BatchGetOnPremisesInstancesResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 BatchGetOnPremisesInstancesResponse' <$>
+                   (x .?> "instanceInfos" .!@ mempty) <*>
+                     (pure (fromEnum s)))
 
--- | 'BatchGetOnPremisesInstancesResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'bgopirInstanceInfos' @::@ ['InstanceInfo']
---
-batchGetOnPremisesInstancesResponse :: BatchGetOnPremisesInstancesResponse
-batchGetOnPremisesInstancesResponse = BatchGetOnPremisesInstancesResponse
-    { _bgopirInstanceInfos = mempty
-    }
+instance ToHeaders BatchGetOnPremisesInstances where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.BatchGetOnPremisesInstances" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | Information about the on-premises instances.
-bgopirInstanceInfos :: Lens' BatchGetOnPremisesInstancesResponse [InstanceInfo]
-bgopirInstanceInfos =
-    lens _bgopirInstanceInfos (\s a -> s { _bgopirInstanceInfos = a })
-        . _List
+instance ToJSON BatchGetOnPremisesInstances where
+        toJSON BatchGetOnPremisesInstances'{..}
+          = object ["instanceNames" .= _bgopiInstanceNames]
 
 instance ToPath BatchGetOnPremisesInstances where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery BatchGetOnPremisesInstances where
-    toQuery = const mempty
-
-instance ToHeaders BatchGetOnPremisesInstances
+        toQuery = const mempty
 
-instance ToJSON BatchGetOnPremisesInstances where
-    toJSON BatchGetOnPremisesInstances{..} = object
-        [ "instanceNames" .= _bgopiInstanceNames
-        ]
+-- | Represents the output of a batch get on-premises instances operation.
+--
+-- /See:/ 'batchGetOnPremisesInstancesResponse' smart constructor.
+data BatchGetOnPremisesInstancesResponse = BatchGetOnPremisesInstancesResponse'
+    { _bgopirsInstanceInfos :: !(Maybe [InstanceInfo])
+    , _bgopirsStatus        :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest BatchGetOnPremisesInstances where
-    type Sv BatchGetOnPremisesInstances = CodeDeploy
-    type Rs BatchGetOnPremisesInstances = BatchGetOnPremisesInstancesResponse
+-- | 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:
+--
+-- * 'bgopirsInstanceInfos'
+--
+-- * 'bgopirsStatus'
+batchGetOnPremisesInstancesResponse
+    :: Int -- ^ 'bgopirsStatus'
+    -> BatchGetOnPremisesInstancesResponse
+batchGetOnPremisesInstancesResponse pStatus_ =
+    BatchGetOnPremisesInstancesResponse'
+    { _bgopirsInstanceInfos = Nothing
+    , _bgopirsStatus = pStatus_
+    }
 
-    request  = post "BatchGetOnPremisesInstances"
-    response = jsonResponse
+-- | Information about the on-premises instances.
+bgopirsInstanceInfos :: Lens' BatchGetOnPremisesInstancesResponse [InstanceInfo]
+bgopirsInstanceInfos = lens _bgopirsInstanceInfos (\ s a -> s{_bgopirsInstanceInfos = a}) . _Default . _Coerce;
 
-instance FromJSON BatchGetOnPremisesInstancesResponse where
-    parseJSON = withObject "BatchGetOnPremisesInstancesResponse" $ \o -> BatchGetOnPremisesInstancesResponse
-        <$> o .:? "instanceInfos" .!= mempty
+-- | The response status code.
+bgopirsStatus :: Lens' BatchGetOnPremisesInstancesResponse Int
+bgopirsStatus = lens _bgopirsStatus (\ s a -> s{_bgopirsStatus = a});
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
@@ -1,114 +1,131 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.CreateApplication
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Creates a new application.
+-- Creates a new application.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateApplication.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateApplication.html AWS API Reference> for CreateApplication.
 module Network.AWS.CodeDeploy.CreateApplication
     (
-    -- * Request
-      CreateApplication
-    -- ** Request constructor
-    , createApplication
-    -- ** Request lenses
+    -- * Creating a Request
+      createApplication
+    , CreateApplication
+    -- * Request Lenses
     , caApplicationName
 
-    -- * Response
-    , CreateApplicationResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , createApplicationResponse
-    -- ** Response lenses
-    , carApplicationId
+    , CreateApplicationResponse
+    -- * Response Lenses
+    , carsApplicationId
+    , carsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-newtype CreateApplication = CreateApplication
+-- | Represents the input of a create application operation.
+--
+-- /See:/ 'createApplication' smart constructor.
+newtype CreateApplication = CreateApplication'
     { _caApplicationName :: Text
-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'CreateApplication' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'CreateApplication' with the minimum fields required to make a request.
 --
--- * 'caApplicationName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
-createApplication :: Text -- ^ 'caApplicationName'
-                  -> CreateApplication
-createApplication p1 = CreateApplication
-    { _caApplicationName = p1
+-- * 'caApplicationName'
+createApplication
+    :: Text -- ^ 'caApplicationName'
+    -> CreateApplication
+createApplication pApplicationName_ =
+    CreateApplication'
+    { _caApplicationName = pApplicationName_
     }
 
--- | The name of the application. This name must be unique with the applicable IAM
--- user or AWS account.
+-- | The name of the application. This name must be unique with the
+-- applicable IAM user or AWS account.
 caApplicationName :: Lens' CreateApplication Text
-caApplicationName =
-    lens _caApplicationName (\s a -> s { _caApplicationName = a })
+caApplicationName = lens _caApplicationName (\ s a -> s{_caApplicationName = a});
 
-newtype CreateApplicationResponse = CreateApplicationResponse
-    { _carApplicationId :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
+instance AWSRequest CreateApplication where
+        type Sv CreateApplication = CodeDeploy
+        type Rs CreateApplication = CreateApplicationResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 CreateApplicationResponse' <$>
+                   (x .?> "applicationId") <*> (pure (fromEnum s)))
 
--- | 'CreateApplicationResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'carApplicationId' @::@ 'Maybe' 'Text'
---
-createApplicationResponse :: CreateApplicationResponse
-createApplicationResponse = CreateApplicationResponse
-    { _carApplicationId = Nothing
-    }
+instance ToHeaders CreateApplication where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.CreateApplication" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | A unique application ID.
-carApplicationId :: Lens' CreateApplicationResponse (Maybe Text)
-carApplicationId = lens _carApplicationId (\s a -> s { _carApplicationId = a })
+instance ToJSON CreateApplication where
+        toJSON CreateApplication'{..}
+          = object ["applicationName" .= _caApplicationName]
 
 instance ToPath CreateApplication where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery CreateApplication where
-    toQuery = const mempty
-
-instance ToHeaders CreateApplication
+        toQuery = const mempty
 
-instance ToJSON CreateApplication where
-    toJSON CreateApplication{..} = object
-        [ "applicationName" .= _caApplicationName
-        ]
+-- | Represents the output of a create application operation.
+--
+-- /See:/ 'createApplicationResponse' smart constructor.
+data CreateApplicationResponse = CreateApplicationResponse'
+    { _carsApplicationId :: !(Maybe Text)
+    , _carsStatus        :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest CreateApplication where
-    type Sv CreateApplication = CodeDeploy
-    type Rs CreateApplication = CreateApplicationResponse
+-- | 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:
+--
+-- * 'carsApplicationId'
+--
+-- * 'carsStatus'
+createApplicationResponse
+    :: Int -- ^ 'carsStatus'
+    -> CreateApplicationResponse
+createApplicationResponse pStatus_ =
+    CreateApplicationResponse'
+    { _carsApplicationId = Nothing
+    , _carsStatus = pStatus_
+    }
 
-    request  = post "CreateApplication"
-    response = jsonResponse
+-- | A unique application ID.
+carsApplicationId :: Lens' CreateApplicationResponse (Maybe Text)
+carsApplicationId = lens _carsApplicationId (\ s a -> s{_carsApplicationId = a});
 
-instance FromJSON CreateApplicationResponse where
-    parseJSON = withObject "CreateApplicationResponse" $ \o -> CreateApplicationResponse
-        <$> o .:? "applicationId"
+-- | The response status code.
+carsStatus :: Lens' CreateApplicationResponse Int
+carsStatus = lens _carsStatus (\ s a -> s{_carsStatus = a});
diff --git a/gen/Network/AWS/CodeDeploy/CreateDeployment.hs b/gen/Network/AWS/CodeDeploy/CreateDeployment.hs
--- a/gen/Network/AWS/CodeDeploy/CreateDeployment.hs
+++ b/gen/Network/AWS/CodeDeploy/CreateDeployment.hs
@@ -1,183 +1,199 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.CreateDeployment
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Deploys an application revision through the specified deployment group.
+-- Deploys an application revision through the specified deployment group.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html AWS API Reference> for CreateDeployment.
 module Network.AWS.CodeDeploy.CreateDeployment
     (
-    -- * Request
-      CreateDeployment
-    -- ** Request constructor
-    , createDeployment
-    -- ** Request lenses
-    , cdApplicationName
+    -- * Creating a Request
+      createDeployment
+    , CreateDeployment
+    -- * Request Lenses
     , cdDeploymentConfigName
-    , cdDeploymentGroupName
+    , cdRevision
     , cdDescription
     , cdIgnoreApplicationStopFailures
-    , cdRevision
+    , cdDeploymentGroupName
+    , cdApplicationName
 
-    -- * Response
-    , CreateDeploymentResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , createDeploymentResponse
-    -- ** Response lenses
-    , cdrDeploymentId
+    , CreateDeploymentResponse
+    -- * Response Lenses
+    , cdrsDeploymentId
+    , cdrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
-
-data CreateDeployment = CreateDeployment
-    { _cdApplicationName               :: Text
-    , _cdDeploymentConfigName          :: Maybe Text
-    , _cdDeploymentGroupName           :: Maybe Text
-    , _cdDescription                   :: Maybe Text
-    , _cdIgnoreApplicationStopFailures :: Maybe Bool
-    , _cdRevision                      :: Maybe RevisionLocation
-    } deriving (Eq, Read, Show)
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'CreateDeployment' constructor.
+-- | Represents the input of a create deployment operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'createDeployment' smart constructor.
+data CreateDeployment = CreateDeployment'
+    { _cdDeploymentConfigName          :: !(Maybe Text)
+    , _cdRevision                      :: !(Maybe RevisionLocation)
+    , _cdDescription                   :: !(Maybe Text)
+    , _cdIgnoreApplicationStopFailures :: !(Maybe Bool)
+    , _cdDeploymentGroupName           :: !(Maybe Text)
+    , _cdApplicationName               :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreateDeployment' with the minimum fields required to make a request.
 --
--- * 'cdApplicationName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'cdDeploymentConfigName' @::@ 'Maybe' 'Text'
+-- * 'cdDeploymentConfigName'
 --
--- * 'cdDeploymentGroupName' @::@ 'Maybe' 'Text'
+-- * 'cdRevision'
 --
--- * 'cdDescription' @::@ 'Maybe' 'Text'
+-- * 'cdDescription'
 --
--- * 'cdIgnoreApplicationStopFailures' @::@ 'Maybe' 'Bool'
+-- * 'cdIgnoreApplicationStopFailures'
 --
--- * 'cdRevision' @::@ 'Maybe' 'RevisionLocation'
+-- * 'cdDeploymentGroupName'
 --
-createDeployment :: Text -- ^ 'cdApplicationName'
-                 -> CreateDeployment
-createDeployment p1 = CreateDeployment
-    { _cdApplicationName               = p1
-    , _cdDeploymentGroupName           = Nothing
-    , _cdRevision                      = Nothing
-    , _cdDeploymentConfigName          = Nothing
-    , _cdDescription                   = Nothing
+-- * 'cdApplicationName'
+createDeployment
+    :: Text -- ^ 'cdApplicationName'
+    -> CreateDeployment
+createDeployment pApplicationName_ =
+    CreateDeployment'
+    { _cdDeploymentConfigName = Nothing
+    , _cdRevision = Nothing
+    , _cdDescription = Nothing
     , _cdIgnoreApplicationStopFailures = Nothing
+    , _cdDeploymentGroupName = Nothing
+    , _cdApplicationName = pApplicationName_
     }
 
--- | The name of an existing AWS CodeDeploy application associated with the
--- applicable IAM user or AWS account.
-cdApplicationName :: Lens' CreateDeployment Text
-cdApplicationName =
-    lens _cdApplicationName (\s a -> s { _cdApplicationName = a })
-
 -- | The name of an existing deployment configuration 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.
+-- 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 })
+cdDeploymentConfigName = lens _cdDeploymentConfigName (\ s a -> s{_cdDeploymentConfigName = a});
 
--- | The deployment group's name.
-cdDeploymentGroupName :: Lens' CreateDeployment (Maybe Text)
-cdDeploymentGroupName =
-    lens _cdDeploymentGroupName (\s a -> s { _cdDeploymentGroupName = a })
+-- | The type of revision to deploy, along with information about the
+-- revision\'s location.
+cdRevision :: Lens' CreateDeployment (Maybe RevisionLocation)
+cdRevision = lens _cdRevision (\ s a -> s{_cdRevision = a});
 
 -- | A comment about the deployment.
 cdDescription :: Lens' CreateDeployment (Maybe Text)
-cdDescription = lens _cdDescription (\s a -> s { _cdDescription = a })
+cdDescription = lens _cdDescription (\ s a -> s{_cdDescription = a});
 
--- | If set to true, then if the deployment causes the ApplicationStop deployment
--- lifecycle event to fail to a specific instance, the deployment will not be
--- considered to have failed to that instance at that point and will continue on
--- to the BeforeInstall deployment lifecycle event.
+-- | If set to true, then if the deployment causes the ApplicationStop
+-- deployment lifecycle event to fail to a specific instance, the
+-- deployment will not be considered to have failed to that instance at
+-- that point and will continue on to the BeforeInstall deployment
+-- lifecycle event.
 --
 -- If set to false or not specified, then if the deployment causes the
--- ApplicationStop deployment lifecycle event to fail to a specific instance,
--- the deployment will stop to that instance, and the deployment to that
--- instance will be considered to have failed.
+-- ApplicationStop deployment lifecycle event to fail to a specific
+-- instance, the deployment will stop to that instance, and the deployment
+-- to that instance will be considered to have failed.
 cdIgnoreApplicationStopFailures :: Lens' CreateDeployment (Maybe Bool)
-cdIgnoreApplicationStopFailures =
-    lens _cdIgnoreApplicationStopFailures
-        (\s a -> s { _cdIgnoreApplicationStopFailures = a })
+cdIgnoreApplicationStopFailures = lens _cdIgnoreApplicationStopFailures (\ s a -> s{_cdIgnoreApplicationStopFailures = a});
 
--- | The type of revision to deploy, along with information about the revision's
--- location.
-cdRevision :: Lens' CreateDeployment (Maybe RevisionLocation)
-cdRevision = lens _cdRevision (\s a -> s { _cdRevision = a })
+-- | The deployment group\'s name.
+cdDeploymentGroupName :: Lens' CreateDeployment (Maybe Text)
+cdDeploymentGroupName = lens _cdDeploymentGroupName (\ s a -> s{_cdDeploymentGroupName = a});
 
-newtype CreateDeploymentResponse = CreateDeploymentResponse
-    { _cdrDeploymentId :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
+-- | The name of an existing AWS CodeDeploy application associated with the
+-- applicable IAM user or AWS account.
+cdApplicationName :: Lens' CreateDeployment Text
+cdApplicationName = lens _cdApplicationName (\ s a -> s{_cdApplicationName = a});
 
--- | 'CreateDeploymentResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'cdrDeploymentId' @::@ 'Maybe' 'Text'
---
-createDeploymentResponse :: CreateDeploymentResponse
-createDeploymentResponse = CreateDeploymentResponse
-    { _cdrDeploymentId = Nothing
-    }
+instance AWSRequest CreateDeployment where
+        type Sv CreateDeployment = CodeDeploy
+        type Rs CreateDeployment = CreateDeploymentResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 CreateDeploymentResponse' <$>
+                   (x .?> "deploymentId") <*> (pure (fromEnum s)))
 
--- | A unique deployment ID.
-cdrDeploymentId :: Lens' CreateDeploymentResponse (Maybe Text)
-cdrDeploymentId = lens _cdrDeploymentId (\s a -> s { _cdrDeploymentId = a })
+instance ToHeaders CreateDeployment where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.CreateDeployment" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
+instance ToJSON CreateDeployment where
+        toJSON CreateDeployment'{..}
+          = object
+              ["deploymentConfigName" .= _cdDeploymentConfigName,
+               "revision" .= _cdRevision,
+               "description" .= _cdDescription,
+               "ignoreApplicationStopFailures" .=
+                 _cdIgnoreApplicationStopFailures,
+               "deploymentGroupName" .= _cdDeploymentGroupName,
+               "applicationName" .= _cdApplicationName]
+
 instance ToPath CreateDeployment where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery CreateDeployment where
-    toQuery = const mempty
-
-instance ToHeaders CreateDeployment
+        toQuery = const mempty
 
-instance ToJSON CreateDeployment where
-    toJSON CreateDeployment{..} = object
-        [ "applicationName"               .= _cdApplicationName
-        , "deploymentGroupName"           .= _cdDeploymentGroupName
-        , "revision"                      .= _cdRevision
-        , "deploymentConfigName"          .= _cdDeploymentConfigName
-        , "description"                   .= _cdDescription
-        , "ignoreApplicationStopFailures" .= _cdIgnoreApplicationStopFailures
-        ]
+-- | Represents the output of a create deployment operation.
+--
+-- /See:/ 'createDeploymentResponse' smart constructor.
+data CreateDeploymentResponse = CreateDeploymentResponse'
+    { _cdrsDeploymentId :: !(Maybe Text)
+    , _cdrsStatus       :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest CreateDeployment where
-    type Sv CreateDeployment = CodeDeploy
-    type Rs CreateDeployment = CreateDeploymentResponse
+-- | 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:
+--
+-- * 'cdrsDeploymentId'
+--
+-- * 'cdrsStatus'
+createDeploymentResponse
+    :: Int -- ^ 'cdrsStatus'
+    -> CreateDeploymentResponse
+createDeploymentResponse pStatus_ =
+    CreateDeploymentResponse'
+    { _cdrsDeploymentId = Nothing
+    , _cdrsStatus = pStatus_
+    }
 
-    request  = post "CreateDeployment"
-    response = jsonResponse
+-- | A unique deployment ID.
+cdrsDeploymentId :: Lens' CreateDeploymentResponse (Maybe Text)
+cdrsDeploymentId = lens _cdrsDeploymentId (\ s a -> s{_cdrsDeploymentId = a});
 
-instance FromJSON CreateDeploymentResponse where
-    parseJSON = withObject "CreateDeploymentResponse" $ \o -> CreateDeploymentResponse
-        <$> o .:? "deploymentId"
+-- | The response status code.
+cdrsStatus :: Lens' CreateDeploymentResponse Int
+cdrsStatus = lens _cdrsStatus (\ s a -> s{_cdrsStatus = a});
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
@@ -1,140 +1,159 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.CreateDeploymentConfig
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Creates a new deployment configuration.
+-- Creates a new deployment configuration.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeploymentConfig.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeploymentConfig.html AWS API Reference> for CreateDeploymentConfig.
 module Network.AWS.CodeDeploy.CreateDeploymentConfig
     (
-    -- * Request
-      CreateDeploymentConfig
-    -- ** Request constructor
-    , createDeploymentConfig
-    -- ** Request lenses
-    , cdcDeploymentConfigName
+    -- * Creating a Request
+      createDeploymentConfig
+    , CreateDeploymentConfig
+    -- * Request Lenses
     , cdcMinimumHealthyHosts
+    , cdcDeploymentConfigName
 
-    -- * Response
-    , CreateDeploymentConfigResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , createDeploymentConfigResponse
-    -- ** Response lenses
-    , cdcrDeploymentConfigId
+    , CreateDeploymentConfigResponse
+    -- * Response Lenses
+    , cdcrsDeploymentConfigId
+    , cdcrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
-
-data CreateDeploymentConfig = CreateDeploymentConfig
-    { _cdcDeploymentConfigName :: Text
-    , _cdcMinimumHealthyHosts  :: Maybe MinimumHealthyHosts
-    } deriving (Eq, Read, Show)
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'CreateDeploymentConfig' constructor.
+-- | Represents the input of a create deployment configuration operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'createDeploymentConfig' smart constructor.
+data CreateDeploymentConfig = CreateDeploymentConfig'
+    { _cdcMinimumHealthyHosts  :: !(Maybe MinimumHealthyHosts)
+    , _cdcDeploymentConfigName :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreateDeploymentConfig' with the minimum fields required to make a request.
 --
--- * 'cdcDeploymentConfigName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'cdcMinimumHealthyHosts' @::@ 'Maybe' 'MinimumHealthyHosts'
+-- * 'cdcMinimumHealthyHosts'
 --
-createDeploymentConfig :: Text -- ^ 'cdcDeploymentConfigName'
-                       -> CreateDeploymentConfig
-createDeploymentConfig p1 = CreateDeploymentConfig
-    { _cdcDeploymentConfigName = p1
-    , _cdcMinimumHealthyHosts  = Nothing
+-- * 'cdcDeploymentConfigName'
+createDeploymentConfig
+    :: Text -- ^ 'cdcDeploymentConfigName'
+    -> CreateDeploymentConfig
+createDeploymentConfig pDeploymentConfigName_ =
+    CreateDeploymentConfig'
+    { _cdcMinimumHealthyHosts = Nothing
+    , _cdcDeploymentConfigName = pDeploymentConfigName_
     }
 
--- | 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 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,
--- then at the start of the deployment AWS CodeDeploy converts the percentage to
--- the equivalent number of instances and rounds fractional instances up.  The
--- value parameter takes an integer.
+-- -   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, then at the start
+--     of the deployment AWS CodeDeploy converts the percentage to the
+--     equivalent number of instances and rounds fractional instances up.
 --
--- For example, to set a minimum of 95% healthy instances, specify a type of
--- FLEET_PERCENT and a value of 95.
+-- The value parameter takes an integer.
+--
+-- For example, to set a minimum of 95% healthy instances, specify a type
+-- of FLEET_PERCENT and a value of 95.
 cdcMinimumHealthyHosts :: Lens' CreateDeploymentConfig (Maybe MinimumHealthyHosts)
-cdcMinimumHealthyHosts =
-    lens _cdcMinimumHealthyHosts (\s a -> s { _cdcMinimumHealthyHosts = a })
+cdcMinimumHealthyHosts = lens _cdcMinimumHealthyHosts (\ s a -> s{_cdcMinimumHealthyHosts = a});
 
-newtype CreateDeploymentConfigResponse = CreateDeploymentConfigResponse
-    { _cdcrDeploymentConfigId :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
+-- | The name of the deployment configuration to create.
+cdcDeploymentConfigName :: Lens' CreateDeploymentConfig Text
+cdcDeploymentConfigName = lens _cdcDeploymentConfigName (\ s a -> s{_cdcDeploymentConfigName = a});
 
--- | 'CreateDeploymentConfigResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'cdcrDeploymentConfigId' @::@ 'Maybe' 'Text'
---
-createDeploymentConfigResponse :: CreateDeploymentConfigResponse
-createDeploymentConfigResponse = CreateDeploymentConfigResponse
-    { _cdcrDeploymentConfigId = Nothing
-    }
+instance AWSRequest CreateDeploymentConfig where
+        type Sv CreateDeploymentConfig = CodeDeploy
+        type Rs CreateDeploymentConfig =
+             CreateDeploymentConfigResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 CreateDeploymentConfigResponse' <$>
+                   (x .?> "deploymentConfigId") <*> (pure (fromEnum s)))
 
--- | A unique deployment configuration ID.
-cdcrDeploymentConfigId :: Lens' CreateDeploymentConfigResponse (Maybe Text)
-cdcrDeploymentConfigId =
-    lens _cdcrDeploymentConfigId (\s a -> s { _cdcrDeploymentConfigId = a })
+instance ToHeaders CreateDeploymentConfig where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.CreateDeploymentConfig" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
+instance ToJSON CreateDeploymentConfig where
+        toJSON CreateDeploymentConfig'{..}
+          = object
+              ["minimumHealthyHosts" .= _cdcMinimumHealthyHosts,
+               "deploymentConfigName" .= _cdcDeploymentConfigName]
+
 instance ToPath CreateDeploymentConfig where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery CreateDeploymentConfig where
-    toQuery = const mempty
-
-instance ToHeaders CreateDeploymentConfig
+        toQuery = const mempty
 
-instance ToJSON CreateDeploymentConfig where
-    toJSON CreateDeploymentConfig{..} = object
-        [ "deploymentConfigName" .= _cdcDeploymentConfigName
-        , "minimumHealthyHosts"  .= _cdcMinimumHealthyHosts
-        ]
+-- | Represents the output of a create deployment configuration operation.
+--
+-- /See:/ 'createDeploymentConfigResponse' smart constructor.
+data CreateDeploymentConfigResponse = CreateDeploymentConfigResponse'
+    { _cdcrsDeploymentConfigId :: !(Maybe Text)
+    , _cdcrsStatus             :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest CreateDeploymentConfig where
-    type Sv CreateDeploymentConfig = CodeDeploy
-    type Rs CreateDeploymentConfig = CreateDeploymentConfigResponse
+-- | 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:
+--
+-- * 'cdcrsDeploymentConfigId'
+--
+-- * 'cdcrsStatus'
+createDeploymentConfigResponse
+    :: Int -- ^ 'cdcrsStatus'
+    -> CreateDeploymentConfigResponse
+createDeploymentConfigResponse pStatus_ =
+    CreateDeploymentConfigResponse'
+    { _cdcrsDeploymentConfigId = Nothing
+    , _cdcrsStatus = pStatus_
+    }
 
-    request  = post "CreateDeploymentConfig"
-    response = jsonResponse
+-- | A unique deployment configuration ID.
+cdcrsDeploymentConfigId :: Lens' CreateDeploymentConfigResponse (Maybe Text)
+cdcrsDeploymentConfigId = lens _cdcrsDeploymentConfigId (\ s a -> s{_cdcrsDeploymentConfigId = a});
 
-instance FromJSON CreateDeploymentConfigResponse where
-    parseJSON = withObject "CreateDeploymentConfigResponse" $ \o -> CreateDeploymentConfigResponse
-        <$> o .:? "deploymentConfigId"
+-- | The response status code.
+cdcrsStatus :: Lens' CreateDeploymentConfigResponse Int
+cdcrsStatus = lens _cdcrsStatus (\ s a -> s{_cdcrsStatus = a});
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
@@ -1,207 +1,232 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.CreateDeploymentGroup
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Creates a new deployment group for application revisions to be deployed to.
+-- Creates a new deployment group for application revisions to be deployed
+-- to.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeploymentGroup.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeploymentGroup.html AWS API Reference> for CreateDeploymentGroup.
 module Network.AWS.CodeDeploy.CreateDeploymentGroup
     (
-    -- * Request
-      CreateDeploymentGroup
-    -- ** Request constructor
-    , createDeploymentGroup
-    -- ** Request lenses
-    , cdgApplicationName
-    , cdgAutoScalingGroups
+    -- * Creating a Request
+      createDeploymentGroup
+    , CreateDeploymentGroup
+    -- * Request Lenses
     , cdgDeploymentConfigName
-    , cdgDeploymentGroupName
     , cdgEc2TagFilters
     , cdgOnPremisesInstanceTagFilters
-    , cdgServiceRoleArn
+    , cdgAutoScalingGroups
+    , cdgApplicationName
+    , cdgDeploymentGroupName
+    , cdgServiceRoleARN
 
-    -- * Response
-    , CreateDeploymentGroupResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , createDeploymentGroupResponse
-    -- ** Response lenses
-    , cdgrDeploymentGroupId
+    , CreateDeploymentGroupResponse
+    -- * Response Lenses
+    , cdgrsDeploymentGroupId
+    , cdgrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
-
-data CreateDeploymentGroup = CreateDeploymentGroup
-    { _cdgApplicationName              :: Text
-    , _cdgAutoScalingGroups            :: List "autoScalingGroups" Text
-    , _cdgDeploymentConfigName         :: Maybe Text
-    , _cdgDeploymentGroupName          :: Text
-    , _cdgEc2TagFilters                :: List "ec2TagFilters" EC2TagFilter
-    , _cdgOnPremisesInstanceTagFilters :: List "onPremisesInstanceTagFilters" TagFilter
-    , _cdgServiceRoleArn               :: Text
-    } deriving (Eq, Read, Show)
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'CreateDeploymentGroup' constructor.
+-- | Represents the input of a create deployment group operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'createDeploymentGroup' smart constructor.
+data CreateDeploymentGroup = CreateDeploymentGroup'
+    { _cdgDeploymentConfigName         :: !(Maybe Text)
+    , _cdgEc2TagFilters                :: !(Maybe [EC2TagFilter])
+    , _cdgOnPremisesInstanceTagFilters :: !(Maybe [TagFilter])
+    , _cdgAutoScalingGroups            :: !(Maybe [Text])
+    , _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.
 --
--- * 'cdgApplicationName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'cdgAutoScalingGroups' @::@ ['Text']
+-- * 'cdgDeploymentConfigName'
 --
--- * 'cdgDeploymentConfigName' @::@ 'Maybe' 'Text'
+-- * 'cdgEc2TagFilters'
 --
--- * 'cdgDeploymentGroupName' @::@ 'Text'
+-- * 'cdgOnPremisesInstanceTagFilters'
 --
--- * 'cdgEc2TagFilters' @::@ ['EC2TagFilter']
+-- * 'cdgAutoScalingGroups'
 --
--- * 'cdgOnPremisesInstanceTagFilters' @::@ ['TagFilter']
+-- * 'cdgApplicationName'
 --
--- * 'cdgServiceRoleArn' @::@ 'Text'
+-- * 'cdgDeploymentGroupName'
 --
-createDeploymentGroup :: Text -- ^ 'cdgApplicationName'
-                      -> Text -- ^ 'cdgDeploymentGroupName'
-                      -> Text -- ^ 'cdgServiceRoleArn'
-                      -> CreateDeploymentGroup
-createDeploymentGroup p1 p2 p3 = CreateDeploymentGroup
-    { _cdgApplicationName              = p1
-    , _cdgDeploymentGroupName          = p2
-    , _cdgServiceRoleArn               = p3
-    , _cdgDeploymentConfigName         = Nothing
-    , _cdgEc2TagFilters                = mempty
-    , _cdgOnPremisesInstanceTagFilters = mempty
-    , _cdgAutoScalingGroups            = mempty
+-- * 'cdgServiceRoleARN'
+createDeploymentGroup
+    :: Text -- ^ 'cdgApplicationName'
+    -> Text -- ^ 'cdgDeploymentGroupName'
+    -> Text -- ^ 'cdgServiceRoleARN'
+    -> CreateDeploymentGroup
+createDeploymentGroup pApplicationName_ pDeploymentGroupName_ pServiceRoleARN_ =
+    CreateDeploymentGroup'
+    { _cdgDeploymentConfigName = Nothing
+    , _cdgEc2TagFilters = Nothing
+    , _cdgOnPremisesInstanceTagFilters = Nothing
+    , _cdgAutoScalingGroups = Nothing
+    , _cdgApplicationName = pApplicationName_
+    , _cdgDeploymentGroupName = pDeploymentGroupName_
+    , _cdgServiceRoleARN = pServiceRoleARN_
     }
 
--- | The name of an existing AWS CodeDeploy application associated with the
--- applicable IAM user or AWS account.
-cdgApplicationName :: Lens' CreateDeploymentGroup Text
-cdgApplicationName =
-    lens _cdgApplicationName (\s a -> s { _cdgApplicationName = a })
-
--- | A list of associated Auto Scaling groups.
-cdgAutoScalingGroups :: Lens' CreateDeploymentGroup [Text]
-cdgAutoScalingGroups =
-    lens _cdgAutoScalingGroups (\s a -> s { _cdgAutoScalingGroups = a })
-        . _List
-
--- | If specified, the deployment configuration name must be one of the predefined
--- values, or it can be a custom deployment configuration:
+-- | If specified, the deployment configuration name must be one of the
+-- predefined values, or it can be a custom deployment configuration:
 --
--- CodeDeployDefault.AllAtOnce deploys an application revision to up to all of
--- the instances at once. The overall deployment succeeds if the application
--- revision deploys to at least one of the instances. The overall deployment
--- fails after the application revision fails to deploy to all of the instances.
--- For example, for 9 instances, deploy to up to all 9 instances at once. The
--- overall deployment succeeds if any of the 9 instances is successfully
--- deployed to, and it fails if all 9 instances fail to be deployed to. CodeDeployDefault.HalfAtATime deploys to up to half of the instances at a time (with fractions rounded down). The overall deployment succeeds if the application revision deploys to at least half of the instances (with fractions rounded up); otherwise, the deployment fails. For example, for 9 instances, deploy to up to 4 instances at a time. The overall deployment succeeds if 5 or more instances are successfully deployed to; otherwise, the deployment fails. Note that the deployment may successfully deploy to some instances, even if the overall deployment fails.
--- CodeDeployDefault.OneAtATime deploys the application revision to only one of
--- the instances at a time. The overall deployment succeeds if the application
--- revision deploys to all of the instances. The overall deployment fails after
--- the application revision first fails to deploy to any one instances. For
--- example, for 9 instances, deploy to one instance at a time. The overall
--- deployment succeeds if all 9 instances are successfully deployed to, and it
--- fails if any of one of the 9 instances fail to be deployed to. Note that the
--- deployment may successfully deploy to some instances, even if the overall
--- deployment fails. This is the default deployment configuration if a
--- configuration isn't specified for either the deployment or the deployment
--- group.  To create a custom deployment configuration, call the create
--- deployment configuration operation.
+-- -   CodeDeployDefault.AllAtOnce deploys an application revision to up to
+--     all of the instances at once. The overall deployment succeeds if the
+--     application revision deploys to at least one of the instances. The
+--     overall deployment fails after the application revision fails to
+--     deploy to all of the instances. For example, for 9 instances, deploy
+--     to up to all 9 instances at once. The overall deployment succeeds if
+--     any of the 9 instances is successfully deployed to, and it fails if
+--     all 9 instances fail to be deployed to.
+-- -   CodeDeployDefault.HalfAtATime deploys to up to half of the instances
+--     at a time (with fractions rounded down). The overall deployment
+--     succeeds if the application revision deploys to at least half of the
+--     instances (with fractions rounded up); otherwise, the deployment
+--     fails. For example, for 9 instances, deploy to up to 4 instances at
+--     a time. The overall deployment succeeds if 5 or more instances are
+--     successfully deployed to; otherwise, the deployment fails. Note that
+--     the deployment may successfully deploy to some instances, even if
+--     the overall deployment fails.
+-- -   CodeDeployDefault.OneAtATime deploys the application revision to
+--     only one of the instances at a time. The overall deployment succeeds
+--     if the application revision deploys to all of the instances. The
+--     overall deployment fails after the application revision first fails
+--     to deploy to any one instances. For example, for 9 instances, deploy
+--     to one instance at a time. The overall deployment succeeds if all 9
+--     instances are successfully deployed to, and it fails if any of one
+--     of the 9 instances fail to be deployed to. Note that the deployment
+--     may successfully deploy to some instances, even if the overall
+--     deployment fails. This is the default deployment configuration if a
+--     configuration isn\'t specified for either the deployment or the
+--     deployment group.
+--
+-- To create a custom deployment configuration, call the create deployment
+-- configuration operation.
 cdgDeploymentConfigName :: Lens' CreateDeploymentGroup (Maybe Text)
-cdgDeploymentConfigName =
-    lens _cdgDeploymentConfigName (\s a -> s { _cdgDeploymentConfigName = a })
-
--- | The name of an existing deployment group for the specified application.
-cdgDeploymentGroupName :: Lens' CreateDeploymentGroup Text
-cdgDeploymentGroupName =
-    lens _cdgDeploymentGroupName (\s a -> s { _cdgDeploymentGroupName = a })
+cdgDeploymentConfigName = lens _cdgDeploymentConfigName (\ s a -> s{_cdgDeploymentConfigName = a});
 
 -- | The Amazon EC2 tags to filter on.
 cdgEc2TagFilters :: Lens' CreateDeploymentGroup [EC2TagFilter]
-cdgEc2TagFilters = lens _cdgEc2TagFilters (\s a -> s { _cdgEc2TagFilters = a }) . _List
+cdgEc2TagFilters = lens _cdgEc2TagFilters (\ s a -> s{_cdgEc2TagFilters = a}) . _Default . _Coerce;
 
 -- | The on-premises instance tags to filter on.
 cdgOnPremisesInstanceTagFilters :: Lens' CreateDeploymentGroup [TagFilter]
-cdgOnPremisesInstanceTagFilters =
-    lens _cdgOnPremisesInstanceTagFilters
-        (\s a -> s { _cdgOnPremisesInstanceTagFilters = a })
-            . _List
+cdgOnPremisesInstanceTagFilters = lens _cdgOnPremisesInstanceTagFilters (\ s a -> s{_cdgOnPremisesInstanceTagFilters = a}) . _Default . _Coerce;
 
--- | A service role ARN that allows AWS CodeDeploy to act on the user's behalf
--- when interacting with AWS services.
-cdgServiceRoleArn :: Lens' CreateDeploymentGroup Text
-cdgServiceRoleArn =
-    lens _cdgServiceRoleArn (\s a -> s { _cdgServiceRoleArn = a })
+-- | A list of associated Auto Scaling groups.
+cdgAutoScalingGroups :: Lens' CreateDeploymentGroup [Text]
+cdgAutoScalingGroups = lens _cdgAutoScalingGroups (\ s a -> s{_cdgAutoScalingGroups = a}) . _Default . _Coerce;
 
-newtype CreateDeploymentGroupResponse = CreateDeploymentGroupResponse
-    { _cdgrDeploymentGroupId :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
+-- | The name of an existing AWS CodeDeploy application associated with the
+-- applicable IAM user or AWS account.
+cdgApplicationName :: Lens' CreateDeploymentGroup Text
+cdgApplicationName = lens _cdgApplicationName (\ s a -> s{_cdgApplicationName = a});
 
--- | 'CreateDeploymentGroupResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'cdgrDeploymentGroupId' @::@ 'Maybe' 'Text'
---
-createDeploymentGroupResponse :: CreateDeploymentGroupResponse
-createDeploymentGroupResponse = CreateDeploymentGroupResponse
-    { _cdgrDeploymentGroupId = Nothing
-    }
+-- | The name of an existing deployment group for the specified application.
+cdgDeploymentGroupName :: Lens' CreateDeploymentGroup Text
+cdgDeploymentGroupName = lens _cdgDeploymentGroupName (\ s a -> s{_cdgDeploymentGroupName = a});
 
--- | A unique deployment group ID.
-cdgrDeploymentGroupId :: Lens' CreateDeploymentGroupResponse (Maybe Text)
-cdgrDeploymentGroupId =
-    lens _cdgrDeploymentGroupId (\s a -> s { _cdgrDeploymentGroupId = a })
+-- | A service role ARN that allows AWS CodeDeploy to act on the user\'s
+-- behalf when interacting with AWS services.
+cdgServiceRoleARN :: Lens' CreateDeploymentGroup Text
+cdgServiceRoleARN = lens _cdgServiceRoleARN (\ s a -> s{_cdgServiceRoleARN = a});
 
+instance AWSRequest CreateDeploymentGroup where
+        type Sv CreateDeploymentGroup = CodeDeploy
+        type Rs CreateDeploymentGroup =
+             CreateDeploymentGroupResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 CreateDeploymentGroupResponse' <$>
+                   (x .?> "deploymentGroupId") <*> (pure (fromEnum s)))
+
+instance ToHeaders CreateDeploymentGroup where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.CreateDeploymentGroup" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON CreateDeploymentGroup where
+        toJSON CreateDeploymentGroup'{..}
+          = object
+              ["deploymentConfigName" .= _cdgDeploymentConfigName,
+               "ec2TagFilters" .= _cdgEc2TagFilters,
+               "onPremisesInstanceTagFilters" .=
+                 _cdgOnPremisesInstanceTagFilters,
+               "autoScalingGroups" .= _cdgAutoScalingGroups,
+               "applicationName" .= _cdgApplicationName,
+               "deploymentGroupName" .= _cdgDeploymentGroupName,
+               "serviceRoleArn" .= _cdgServiceRoleARN]
+
 instance ToPath CreateDeploymentGroup where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery CreateDeploymentGroup where
-    toQuery = const mempty
-
-instance ToHeaders CreateDeploymentGroup
+        toQuery = const mempty
 
-instance ToJSON CreateDeploymentGroup where
-    toJSON CreateDeploymentGroup{..} = object
-        [ "applicationName"              .= _cdgApplicationName
-        , "deploymentGroupName"          .= _cdgDeploymentGroupName
-        , "deploymentConfigName"         .= _cdgDeploymentConfigName
-        , "ec2TagFilters"                .= _cdgEc2TagFilters
-        , "onPremisesInstanceTagFilters" .= _cdgOnPremisesInstanceTagFilters
-        , "autoScalingGroups"            .= _cdgAutoScalingGroups
-        , "serviceRoleArn"               .= _cdgServiceRoleArn
-        ]
+-- | Represents the output of a create deployment group operation.
+--
+-- /See:/ 'createDeploymentGroupResponse' smart constructor.
+data CreateDeploymentGroupResponse = CreateDeploymentGroupResponse'
+    { _cdgrsDeploymentGroupId :: !(Maybe Text)
+    , _cdgrsStatus            :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest CreateDeploymentGroup where
-    type Sv CreateDeploymentGroup = CodeDeploy
-    type Rs CreateDeploymentGroup = CreateDeploymentGroupResponse
+-- | 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:
+--
+-- * 'cdgrsDeploymentGroupId'
+--
+-- * 'cdgrsStatus'
+createDeploymentGroupResponse
+    :: Int -- ^ 'cdgrsStatus'
+    -> CreateDeploymentGroupResponse
+createDeploymentGroupResponse pStatus_ =
+    CreateDeploymentGroupResponse'
+    { _cdgrsDeploymentGroupId = Nothing
+    , _cdgrsStatus = pStatus_
+    }
 
-    request  = post "CreateDeploymentGroup"
-    response = jsonResponse
+-- | A unique deployment group ID.
+cdgrsDeploymentGroupId :: Lens' CreateDeploymentGroupResponse (Maybe Text)
+cdgrsDeploymentGroupId = lens _cdgrsDeploymentGroupId (\ s a -> s{_cdgrsDeploymentGroupId = a});
 
-instance FromJSON CreateDeploymentGroupResponse where
-    parseJSON = withObject "CreateDeploymentGroupResponse" $ \o -> CreateDeploymentGroupResponse
-        <$> o .:? "deploymentGroupId"
+-- | The response status code.
+cdgrsStatus :: Lens' CreateDeploymentGroupResponse Int
+cdgrsStatus = lens _cdgrsStatus (\ s a -> s{_cdgrsStatus = a});
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
@@ -1,96 +1,103 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.DeleteApplication
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Deletes an application.
+-- Deletes an application.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_DeleteApplication.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_DeleteApplication.html AWS API Reference> for DeleteApplication.
 module Network.AWS.CodeDeploy.DeleteApplication
     (
-    -- * Request
-      DeleteApplication
-    -- ** Request constructor
-    , deleteApplication
-    -- ** Request lenses
+    -- * Creating a Request
+      deleteApplication
+    , DeleteApplication
+    -- * Request Lenses
     , daApplicationName
 
-    -- * Response
-    , DeleteApplicationResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , deleteApplicationResponse
+    , DeleteApplicationResponse
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-newtype DeleteApplication = DeleteApplication
+-- | Represents the input of a delete application operation.
+--
+-- /See:/ 'deleteApplication' smart constructor.
+newtype DeleteApplication = DeleteApplication'
     { _daApplicationName :: Text
-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'DeleteApplication' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'DeleteApplication' with the minimum fields required to make a request.
 --
--- * 'daApplicationName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
-deleteApplication :: Text -- ^ 'daApplicationName'
-                  -> DeleteApplication
-deleteApplication p1 = DeleteApplication
-    { _daApplicationName = p1
+-- * 'daApplicationName'
+deleteApplication
+    :: Text -- ^ 'daApplicationName'
+    -> DeleteApplication
+deleteApplication pApplicationName_ =
+    DeleteApplication'
+    { _daApplicationName = pApplicationName_
     }
 
 -- | The name of an existing AWS CodeDeploy application associated with the
 -- applicable IAM user or AWS account.
 daApplicationName :: Lens' DeleteApplication Text
-daApplicationName =
-    lens _daApplicationName (\s a -> s { _daApplicationName = a })
+daApplicationName = lens _daApplicationName (\ s a -> s{_daApplicationName = a});
 
-data DeleteApplicationResponse = DeleteApplicationResponse
-    deriving (Eq, Ord, Read, Show, Generic)
+instance AWSRequest DeleteApplication where
+        type Sv DeleteApplication = CodeDeploy
+        type Rs DeleteApplication = DeleteApplicationResponse
+        request = postJSON
+        response = receiveNull DeleteApplicationResponse'
 
--- | 'DeleteApplicationResponse' constructor.
-deleteApplicationResponse :: DeleteApplicationResponse
-deleteApplicationResponse = DeleteApplicationResponse
+instance ToHeaders DeleteApplication where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.DeleteApplication" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
+instance ToJSON DeleteApplication where
+        toJSON DeleteApplication'{..}
+          = object ["applicationName" .= _daApplicationName]
+
 instance ToPath DeleteApplication where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery DeleteApplication where
-    toQuery = const mempty
-
-instance ToHeaders DeleteApplication
-
-instance ToJSON DeleteApplication where
-    toJSON DeleteApplication{..} = object
-        [ "applicationName" .= _daApplicationName
-        ]
+        toQuery = const mempty
 
-instance AWSRequest DeleteApplication where
-    type Sv DeleteApplication = CodeDeploy
-    type Rs DeleteApplication = DeleteApplicationResponse
+-- | /See:/ 'deleteApplicationResponse' smart constructor.
+data DeleteApplicationResponse =
+    DeleteApplicationResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-    request  = post "DeleteApplication"
-    response = nullResponse DeleteApplicationResponse
+-- | Creates a value of 'DeleteApplicationResponse' with the minimum fields required to make a request.
+--
+deleteApplicationResponse
+    :: DeleteApplicationResponse
+deleteApplicationResponse = DeleteApplicationResponse'
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
@@ -1,99 +1,109 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.DeleteDeploymentConfig
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Deletes a deployment configuration.
+-- Deletes a deployment configuration.
 --
 -- A deployment configuration cannot be deleted if it is currently in use.
 -- Also, predefined configurations cannot be deleted.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_DeleteDeploymentConfig.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_DeleteDeploymentConfig.html AWS API Reference> for DeleteDeploymentConfig.
 module Network.AWS.CodeDeploy.DeleteDeploymentConfig
     (
-    -- * Request
-      DeleteDeploymentConfig
-    -- ** Request constructor
-    , deleteDeploymentConfig
-    -- ** Request lenses
+    -- * Creating a Request
+      deleteDeploymentConfig
+    , DeleteDeploymentConfig
+    -- * Request Lenses
     , ddcDeploymentConfigName
 
-    -- * Response
-    , DeleteDeploymentConfigResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , deleteDeploymentConfigResponse
+    , DeleteDeploymentConfigResponse
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-newtype DeleteDeploymentConfig = DeleteDeploymentConfig
+-- | Represents the input of a delete deployment configuration operation.
+--
+-- /See:/ 'deleteDeploymentConfig' smart constructor.
+newtype DeleteDeploymentConfig = DeleteDeploymentConfig'
     { _ddcDeploymentConfigName :: Text
-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'DeleteDeploymentConfig' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'DeleteDeploymentConfig' with the minimum fields required to make a request.
 --
--- * 'ddcDeploymentConfigName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
-deleteDeploymentConfig :: Text -- ^ 'ddcDeploymentConfigName'
-                       -> DeleteDeploymentConfig
-deleteDeploymentConfig p1 = DeleteDeploymentConfig
-    { _ddcDeploymentConfigName = p1
+-- * 'ddcDeploymentConfigName'
+deleteDeploymentConfig
+    :: Text -- ^ 'ddcDeploymentConfigName'
+    -> DeleteDeploymentConfig
+deleteDeploymentConfig pDeploymentConfigName_ =
+    DeleteDeploymentConfig'
+    { _ddcDeploymentConfigName = pDeploymentConfigName_
     }
 
 -- | The name of an existing deployment configuration associated with the
 -- applicable IAM user or AWS account.
 ddcDeploymentConfigName :: Lens' DeleteDeploymentConfig Text
-ddcDeploymentConfigName =
-    lens _ddcDeploymentConfigName (\s a -> s { _ddcDeploymentConfigName = a })
+ddcDeploymentConfigName = lens _ddcDeploymentConfigName (\ s a -> s{_ddcDeploymentConfigName = a});
 
-data DeleteDeploymentConfigResponse = DeleteDeploymentConfigResponse
-    deriving (Eq, Ord, Read, Show, Generic)
+instance AWSRequest DeleteDeploymentConfig where
+        type Sv DeleteDeploymentConfig = CodeDeploy
+        type Rs DeleteDeploymentConfig =
+             DeleteDeploymentConfigResponse
+        request = postJSON
+        response
+          = receiveNull DeleteDeploymentConfigResponse'
 
--- | 'DeleteDeploymentConfigResponse' constructor.
-deleteDeploymentConfigResponse :: DeleteDeploymentConfigResponse
-deleteDeploymentConfigResponse = DeleteDeploymentConfigResponse
+instance ToHeaders DeleteDeploymentConfig where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.DeleteDeploymentConfig" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
+instance ToJSON DeleteDeploymentConfig where
+        toJSON DeleteDeploymentConfig'{..}
+          = object
+              ["deploymentConfigName" .= _ddcDeploymentConfigName]
+
 instance ToPath DeleteDeploymentConfig where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery DeleteDeploymentConfig where
-    toQuery = const mempty
-
-instance ToHeaders DeleteDeploymentConfig
-
-instance ToJSON DeleteDeploymentConfig where
-    toJSON DeleteDeploymentConfig{..} = object
-        [ "deploymentConfigName" .= _ddcDeploymentConfigName
-        ]
+        toQuery = const mempty
 
-instance AWSRequest DeleteDeploymentConfig where
-    type Sv DeleteDeploymentConfig = CodeDeploy
-    type Rs DeleteDeploymentConfig = DeleteDeploymentConfigResponse
+-- | /See:/ 'deleteDeploymentConfigResponse' smart constructor.
+data DeleteDeploymentConfigResponse =
+    DeleteDeploymentConfigResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-    request  = post "DeleteDeploymentConfig"
-    response = nullResponse DeleteDeploymentConfigResponse
+-- | Creates a value of 'DeleteDeploymentConfigResponse' with the minimum fields required to make a request.
+--
+deleteDeploymentConfigResponse
+    :: DeleteDeploymentConfigResponse
+deleteDeploymentConfigResponse = DeleteDeploymentConfigResponse'
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
@@ -1,139 +1,150 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.DeleteDeploymentGroup
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Deletes a deployment group.
+-- Deletes a deployment group.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_DeleteDeploymentGroup.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_DeleteDeploymentGroup.html AWS API Reference> for DeleteDeploymentGroup.
 module Network.AWS.CodeDeploy.DeleteDeploymentGroup
     (
-    -- * Request
-      DeleteDeploymentGroup
-    -- ** Request constructor
-    , deleteDeploymentGroup
-    -- ** Request lenses
+    -- * Creating a Request
+      deleteDeploymentGroup
+    , DeleteDeploymentGroup
+    -- * Request Lenses
     , ddgApplicationName
     , ddgDeploymentGroupName
 
-    -- * Response
-    , DeleteDeploymentGroupResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , deleteDeploymentGroupResponse
-    -- ** Response lenses
-    , ddgrHooksNotCleanedUp
+    , DeleteDeploymentGroupResponse
+    -- * Response Lenses
+    , ddgrsHooksNotCleanedUp
+    , ddgrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
-
-data DeleteDeploymentGroup = DeleteDeploymentGroup
-    { _ddgApplicationName     :: Text
-    , _ddgDeploymentGroupName :: Text
-    } deriving (Eq, Ord, Read, Show)
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'DeleteDeploymentGroup' constructor.
+-- | Represents the input of a delete deployment group operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'deleteDeploymentGroup' smart constructor.
+data DeleteDeploymentGroup = DeleteDeploymentGroup'
+    { _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.
 --
--- * 'ddgApplicationName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ddgDeploymentGroupName' @::@ 'Text'
+-- * 'ddgApplicationName'
 --
-deleteDeploymentGroup :: Text -- ^ 'ddgApplicationName'
-                      -> Text -- ^ 'ddgDeploymentGroupName'
-                      -> DeleteDeploymentGroup
-deleteDeploymentGroup p1 p2 = DeleteDeploymentGroup
-    { _ddgApplicationName     = p1
-    , _ddgDeploymentGroupName = p2
+-- * 'ddgDeploymentGroupName'
+deleteDeploymentGroup
+    :: Text -- ^ 'ddgApplicationName'
+    -> Text -- ^ 'ddgDeploymentGroupName'
+    -> DeleteDeploymentGroup
+deleteDeploymentGroup pApplicationName_ pDeploymentGroupName_ =
+    DeleteDeploymentGroup'
+    { _ddgApplicationName = pApplicationName_
+    , _ddgDeploymentGroupName = pDeploymentGroupName_
     }
 
 -- | The name of an existing AWS CodeDeploy application associated with the
 -- applicable IAM user or AWS account.
 ddgApplicationName :: Lens' DeleteDeploymentGroup Text
-ddgApplicationName =
-    lens _ddgApplicationName (\s a -> s { _ddgApplicationName = a })
+ddgApplicationName = lens _ddgApplicationName (\ s a -> s{_ddgApplicationName = a});
 
 -- | The name of an existing deployment group for the specified application.
 ddgDeploymentGroupName :: Lens' DeleteDeploymentGroup Text
-ddgDeploymentGroupName =
-    lens _ddgDeploymentGroupName (\s a -> s { _ddgDeploymentGroupName = a })
+ddgDeploymentGroupName = lens _ddgDeploymentGroupName (\ s a -> s{_ddgDeploymentGroupName = a});
 
-newtype DeleteDeploymentGroupResponse = DeleteDeploymentGroupResponse
-    { _ddgrHooksNotCleanedUp :: List "hooksNotCleanedUp" AutoScalingGroup
-    } deriving (Eq, Read, Show, Monoid, Semigroup)
+instance AWSRequest DeleteDeploymentGroup where
+        type Sv DeleteDeploymentGroup = CodeDeploy
+        type Rs DeleteDeploymentGroup =
+             DeleteDeploymentGroupResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 DeleteDeploymentGroupResponse' <$>
+                   (x .?> "hooksNotCleanedUp" .!@ mempty) <*>
+                     (pure (fromEnum s)))
 
-instance GHC.Exts.IsList DeleteDeploymentGroupResponse where
-    type Item DeleteDeploymentGroupResponse = AutoScalingGroup
+instance ToHeaders DeleteDeploymentGroup where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.DeleteDeploymentGroup" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
-    fromList = DeleteDeploymentGroupResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _ddgrHooksNotCleanedUp
+instance ToJSON DeleteDeploymentGroup where
+        toJSON DeleteDeploymentGroup'{..}
+          = object
+              ["applicationName" .= _ddgApplicationName,
+               "deploymentGroupName" .= _ddgDeploymentGroupName]
 
--- | 'DeleteDeploymentGroupResponse' constructor.
+instance ToPath DeleteDeploymentGroup where
+        toPath = const "/"
+
+instance ToQuery DeleteDeploymentGroup where
+        toQuery = const mempty
+
+-- | Represents the output of a delete deployment group operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'deleteDeploymentGroupResponse' smart constructor.
+data DeleteDeploymentGroupResponse = DeleteDeploymentGroupResponse'
+    { _ddgrsHooksNotCleanedUp :: !(Maybe [AutoScalingGroup])
+    , _ddgrsStatus            :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeleteDeploymentGroupResponse' with the minimum fields required to make a request.
 --
--- * 'ddgrHooksNotCleanedUp' @::@ ['AutoScalingGroup']
+-- Use one of the following lenses to modify other fields as desired:
 --
-deleteDeploymentGroupResponse :: DeleteDeploymentGroupResponse
-deleteDeploymentGroupResponse = DeleteDeploymentGroupResponse
-    { _ddgrHooksNotCleanedUp = mempty
+-- * 'ddgrsHooksNotCleanedUp'
+--
+-- * 'ddgrsStatus'
+deleteDeploymentGroupResponse
+    :: Int -- ^ 'ddgrsStatus'
+    -> DeleteDeploymentGroupResponse
+deleteDeploymentGroupResponse pStatus_ =
+    DeleteDeploymentGroupResponse'
+    { _ddgrsHooksNotCleanedUp = Nothing
+    , _ddgrsStatus = pStatus_
     }
 
 -- | 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. If the output does contain data, AWS
--- CodeDeploy could not remove some Auto Scaling lifecycle event hooks from the
--- Amazon EC2 instances in the Auto Scaling group.
-ddgrHooksNotCleanedUp :: Lens' DeleteDeploymentGroupResponse [AutoScalingGroup]
-ddgrHooksNotCleanedUp =
-    lens _ddgrHooksNotCleanedUp (\s a -> s { _ddgrHooksNotCleanedUp = a })
-        . _List
-
-instance ToPath DeleteDeploymentGroup where
-    toPath = const "/"
-
-instance ToQuery DeleteDeploymentGroup where
-    toQuery = const mempty
-
-instance ToHeaders DeleteDeploymentGroup
-
-instance ToJSON DeleteDeploymentGroup where
-    toJSON DeleteDeploymentGroup{..} = object
-        [ "applicationName"     .= _ddgApplicationName
-        , "deploymentGroupName" .= _ddgDeploymentGroupName
-        ]
-
-instance AWSRequest DeleteDeploymentGroup where
-    type Sv DeleteDeploymentGroup = CodeDeploy
-    type Rs DeleteDeploymentGroup = DeleteDeploymentGroupResponse
-
-    request  = post "DeleteDeploymentGroup"
-    response = jsonResponse
+-- removed all corresponding Auto Scaling lifecycle event hooks from the
+-- Amazon EC2 instances in the Auto Scaling. If the output does contain
+-- data, AWS CodeDeploy could not remove some Auto Scaling lifecycle event
+-- hooks from the Amazon EC2 instances in the Auto Scaling group.
+ddgrsHooksNotCleanedUp :: Lens' DeleteDeploymentGroupResponse [AutoScalingGroup]
+ddgrsHooksNotCleanedUp = lens _ddgrsHooksNotCleanedUp (\ s a -> s{_ddgrsHooksNotCleanedUp = a}) . _Default . _Coerce;
 
-instance FromJSON DeleteDeploymentGroupResponse where
-    parseJSON = withObject "DeleteDeploymentGroupResponse" $ \o -> DeleteDeploymentGroupResponse
-        <$> o .:? "hooksNotCleanedUp" .!= mempty
+-- | The response status code.
+ddgrsStatus :: Lens' DeleteDeploymentGroupResponse Int
+ddgrsStatus = lens _ddgrsStatus (\ s a -> s{_ddgrsStatus = a});
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
@@ -1,94 +1,105 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.DeregisterOnPremisesInstance
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Deregisters an on-premises instance.
+-- Deregisters an on-premises instance.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_DeregisterOnPremisesInstance.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_DeregisterOnPremisesInstance.html AWS API Reference> for DeregisterOnPremisesInstance.
 module Network.AWS.CodeDeploy.DeregisterOnPremisesInstance
     (
-    -- * Request
-      DeregisterOnPremisesInstance
-    -- ** Request constructor
-    , deregisterOnPremisesInstance
-    -- ** Request lenses
+    -- * Creating a Request
+      deregisterOnPremisesInstance
+    , DeregisterOnPremisesInstance
+    -- * Request Lenses
     , dopiInstanceName
 
-    -- * Response
-    , DeregisterOnPremisesInstanceResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , deregisterOnPremisesInstanceResponse
+    , DeregisterOnPremisesInstanceResponse
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-newtype DeregisterOnPremisesInstance = DeregisterOnPremisesInstance
+-- | Represents the input of a deregister on-premises instance operation.
+--
+-- /See:/ 'deregisterOnPremisesInstance' smart constructor.
+newtype DeregisterOnPremisesInstance = DeregisterOnPremisesInstance'
     { _dopiInstanceName :: Text
-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'DeregisterOnPremisesInstance' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'DeregisterOnPremisesInstance' with the minimum fields required to make a request.
 --
--- * 'dopiInstanceName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
-deregisterOnPremisesInstance :: Text -- ^ 'dopiInstanceName'
-                             -> DeregisterOnPremisesInstance
-deregisterOnPremisesInstance p1 = DeregisterOnPremisesInstance
-    { _dopiInstanceName = p1
+-- * 'dopiInstanceName'
+deregisterOnPremisesInstance
+    :: Text -- ^ 'dopiInstanceName'
+    -> DeregisterOnPremisesInstance
+deregisterOnPremisesInstance 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 })
+dopiInstanceName = lens _dopiInstanceName (\ s a -> s{_dopiInstanceName = a});
 
-data DeregisterOnPremisesInstanceResponse = DeregisterOnPremisesInstanceResponse
-    deriving (Eq, Ord, Read, Show, Generic)
+instance AWSRequest DeregisterOnPremisesInstance
+         where
+        type Sv DeregisterOnPremisesInstance = CodeDeploy
+        type Rs DeregisterOnPremisesInstance =
+             DeregisterOnPremisesInstanceResponse
+        request = postJSON
+        response
+          = receiveNull DeregisterOnPremisesInstanceResponse'
 
--- | 'DeregisterOnPremisesInstanceResponse' constructor.
-deregisterOnPremisesInstanceResponse :: DeregisterOnPremisesInstanceResponse
-deregisterOnPremisesInstanceResponse = DeregisterOnPremisesInstanceResponse
+instance ToHeaders DeregisterOnPremisesInstance where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.DeregisterOnPremisesInstance"
+                       :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
+instance ToJSON DeregisterOnPremisesInstance where
+        toJSON DeregisterOnPremisesInstance'{..}
+          = object ["instanceName" .= _dopiInstanceName]
+
 instance ToPath DeregisterOnPremisesInstance where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery DeregisterOnPremisesInstance where
-    toQuery = const mempty
-
-instance ToHeaders DeregisterOnPremisesInstance
-
-instance ToJSON DeregisterOnPremisesInstance where
-    toJSON DeregisterOnPremisesInstance{..} = object
-        [ "instanceName" .= _dopiInstanceName
-        ]
+        toQuery = const mempty
 
-instance AWSRequest DeregisterOnPremisesInstance where
-    type Sv DeregisterOnPremisesInstance = CodeDeploy
-    type Rs DeregisterOnPremisesInstance = DeregisterOnPremisesInstanceResponse
+-- | /See:/ 'deregisterOnPremisesInstanceResponse' smart constructor.
+data DeregisterOnPremisesInstanceResponse =
+    DeregisterOnPremisesInstanceResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-    request  = post "DeregisterOnPremisesInstance"
-    response = nullResponse DeregisterOnPremisesInstanceResponse
+-- | Creates a value of 'DeregisterOnPremisesInstanceResponse' with the minimum fields required to make a request.
+--
+deregisterOnPremisesInstanceResponse
+    :: DeregisterOnPremisesInstanceResponse
+deregisterOnPremisesInstanceResponse = DeregisterOnPremisesInstanceResponse'
diff --git a/gen/Network/AWS/CodeDeploy/GetApplication.hs b/gen/Network/AWS/CodeDeploy/GetApplication.hs
--- a/gen/Network/AWS/CodeDeploy/GetApplication.hs
+++ b/gen/Network/AWS/CodeDeploy/GetApplication.hs
@@ -1,114 +1,130 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.GetApplication
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Gets information about an application.
+-- Gets information about an application.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetApplication.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetApplication.html AWS API Reference> for GetApplication.
 module Network.AWS.CodeDeploy.GetApplication
     (
-    -- * Request
-      GetApplication
-    -- ** Request constructor
-    , getApplication
-    -- ** Request lenses
+    -- * Creating a Request
+      getApplication
+    , GetApplication
+    -- * Request Lenses
     , gaApplicationName
 
-    -- * Response
-    , GetApplicationResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , getApplicationResponse
-    -- ** Response lenses
-    , garApplication
+    , GetApplicationResponse
+    -- * Response Lenses
+    , garsApplication
+    , garsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-newtype GetApplication = GetApplication
+-- | Represents the input of a get application operation.
+--
+-- /See:/ 'getApplication' smart constructor.
+newtype GetApplication = GetApplication'
     { _gaApplicationName :: Text
-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'GetApplication' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'GetApplication' with the minimum fields required to make a request.
 --
--- * 'gaApplicationName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
-getApplication :: Text -- ^ 'gaApplicationName'
-               -> GetApplication
-getApplication p1 = GetApplication
-    { _gaApplicationName = p1
+-- * 'gaApplicationName'
+getApplication
+    :: Text -- ^ 'gaApplicationName'
+    -> GetApplication
+getApplication pApplicationName_ =
+    GetApplication'
+    { _gaApplicationName = pApplicationName_
     }
 
 -- | The name of an existing AWS CodeDeploy application associated with the
 -- applicable IAM user or AWS account.
 gaApplicationName :: Lens' GetApplication Text
-gaApplicationName =
-    lens _gaApplicationName (\s a -> s { _gaApplicationName = a })
+gaApplicationName = lens _gaApplicationName (\ s a -> s{_gaApplicationName = a});
 
-newtype GetApplicationResponse = GetApplicationResponse
-    { _garApplication :: Maybe ApplicationInfo
-    } deriving (Eq, Read, Show)
+instance AWSRequest GetApplication where
+        type Sv GetApplication = CodeDeploy
+        type Rs GetApplication = GetApplicationResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 GetApplicationResponse' <$>
+                   (x .?> "application") <*> (pure (fromEnum s)))
 
--- | 'GetApplicationResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'garApplication' @::@ 'Maybe' 'ApplicationInfo'
---
-getApplicationResponse :: GetApplicationResponse
-getApplicationResponse = GetApplicationResponse
-    { _garApplication = Nothing
-    }
+instance ToHeaders GetApplication where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.GetApplication" :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | Information about the application.
-garApplication :: Lens' GetApplicationResponse (Maybe ApplicationInfo)
-garApplication = lens _garApplication (\s a -> s { _garApplication = a })
+instance ToJSON GetApplication where
+        toJSON GetApplication'{..}
+          = object ["applicationName" .= _gaApplicationName]
 
 instance ToPath GetApplication where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery GetApplication where
-    toQuery = const mempty
-
-instance ToHeaders GetApplication
+        toQuery = const mempty
 
-instance ToJSON GetApplication where
-    toJSON GetApplication{..} = object
-        [ "applicationName" .= _gaApplicationName
-        ]
+-- | Represents the output of a get application operation.
+--
+-- /See:/ 'getApplicationResponse' smart constructor.
+data GetApplicationResponse = GetApplicationResponse'
+    { _garsApplication :: !(Maybe ApplicationInfo)
+    , _garsStatus      :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest GetApplication where
-    type Sv GetApplication = CodeDeploy
-    type Rs GetApplication = GetApplicationResponse
+-- | 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:
+--
+-- * 'garsApplication'
+--
+-- * 'garsStatus'
+getApplicationResponse
+    :: Int -- ^ 'garsStatus'
+    -> GetApplicationResponse
+getApplicationResponse pStatus_ =
+    GetApplicationResponse'
+    { _garsApplication = Nothing
+    , _garsStatus = pStatus_
+    }
 
-    request  = post "GetApplication"
-    response = jsonResponse
+-- | Information about the application.
+garsApplication :: Lens' GetApplicationResponse (Maybe ApplicationInfo)
+garsApplication = lens _garsApplication (\ s a -> s{_garsApplication = a});
 
-instance FromJSON GetApplicationResponse where
-    parseJSON = withObject "GetApplicationResponse" $ \o -> GetApplicationResponse
-        <$> o .:? "application"
+-- | The response status code.
+garsStatus :: Lens' GetApplicationResponse Int
+garsStatus = lens _garsStatus (\ s a -> s{_garsStatus = a});
diff --git a/gen/Network/AWS/CodeDeploy/GetApplicationRevision.hs b/gen/Network/AWS/CodeDeploy/GetApplicationRevision.hs
--- a/gen/Network/AWS/CodeDeploy/GetApplicationRevision.hs
+++ b/gen/Network/AWS/CodeDeploy/GetApplicationRevision.hs
@@ -1,147 +1,165 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.GetApplicationRevision
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Gets information about an application revision.
+-- Gets information about an application revision.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetApplicationRevision.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetApplicationRevision.html AWS API Reference> for GetApplicationRevision.
 module Network.AWS.CodeDeploy.GetApplicationRevision
     (
-    -- * Request
-      GetApplicationRevision
-    -- ** Request constructor
-    , getApplicationRevision
-    -- ** Request lenses
+    -- * Creating a Request
+      getApplicationRevision
+    , GetApplicationRevision
+    -- * Request Lenses
     , garApplicationName
     , garRevision
 
-    -- * Response
-    , GetApplicationRevisionResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , getApplicationRevisionResponse
-    -- ** Response lenses
-    , garrApplicationName
-    , garrRevision
-    , garrRevisionInfo
+    , GetApplicationRevisionResponse
+    -- * Response Lenses
+    , garrsRevisionInfo
+    , garrsApplicationName
+    , garrsRevision
+    , garrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
-
-data GetApplicationRevision = GetApplicationRevision
-    { _garApplicationName :: Text
-    , _garRevision        :: RevisionLocation
-    } deriving (Eq, Read, Show)
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'GetApplicationRevision' constructor.
+-- | Represents the input of a get application revision operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'getApplicationRevision' smart constructor.
+data GetApplicationRevision = GetApplicationRevision'
+    { _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.
 --
--- * 'garApplicationName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'garRevision' @::@ 'RevisionLocation'
+-- * 'garApplicationName'
 --
-getApplicationRevision :: Text -- ^ 'garApplicationName'
-                       -> RevisionLocation -- ^ 'garRevision'
-                       -> GetApplicationRevision
-getApplicationRevision p1 p2 = GetApplicationRevision
-    { _garApplicationName = p1
-    , _garRevision        = p2
+-- * 'garRevision'
+getApplicationRevision
+    :: Text -- ^ 'garApplicationName'
+    -> RevisionLocation -- ^ 'garRevision'
+    -> GetApplicationRevision
+getApplicationRevision pApplicationName_ 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 })
+garApplicationName = lens _garApplicationName (\ s a -> s{_garApplicationName = a});
 
--- | Information about the application revision to get, including the revision's
--- type and its location.
+-- | Information about the application revision to get, including the
+-- revision\'s type and its location.
 garRevision :: Lens' GetApplicationRevision RevisionLocation
-garRevision = lens _garRevision (\s a -> s { _garRevision = a })
+garRevision = lens _garRevision (\ s a -> s{_garRevision = a});
 
-data GetApplicationRevisionResponse = GetApplicationRevisionResponse
-    { _garrApplicationName :: Maybe Text
-    , _garrRevision        :: Maybe RevisionLocation
-    , _garrRevisionInfo    :: Maybe GenericRevisionInfo
-    } deriving (Eq, Read, Show)
+instance AWSRequest GetApplicationRevision where
+        type Sv GetApplicationRevision = CodeDeploy
+        type Rs GetApplicationRevision =
+             GetApplicationRevisionResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 GetApplicationRevisionResponse' <$>
+                   (x .?> "revisionInfo") <*> (x .?> "applicationName")
+                     <*> (x .?> "revision")
+                     <*> (pure (fromEnum s)))
 
--- | 'GetApplicationRevisionResponse' constructor.
+instance ToHeaders GetApplicationRevision where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.GetApplicationRevision" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON GetApplicationRevision where
+        toJSON GetApplicationRevision'{..}
+          = object
+              ["applicationName" .= _garApplicationName,
+               "revision" .= _garRevision]
+
+instance ToPath GetApplicationRevision where
+        toPath = const "/"
+
+instance ToQuery GetApplicationRevision where
+        toQuery = const mempty
+
+-- | Represents the output of a get application revision operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'getApplicationRevisionResponse' smart constructor.
+data GetApplicationRevisionResponse = GetApplicationRevisionResponse'
+    { _garrsRevisionInfo    :: !(Maybe GenericRevisionInfo)
+    , _garrsApplicationName :: !(Maybe Text)
+    , _garrsRevision        :: !(Maybe RevisionLocation)
+    , _garrsStatus          :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'GetApplicationRevisionResponse' with the minimum fields required to make a request.
 --
--- * 'garrApplicationName' @::@ 'Maybe' 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'garrRevision' @::@ 'Maybe' 'RevisionLocation'
+-- * 'garrsRevisionInfo'
 --
--- * 'garrRevisionInfo' @::@ 'Maybe' 'GenericRevisionInfo'
+-- * 'garrsApplicationName'
 --
-getApplicationRevisionResponse :: GetApplicationRevisionResponse
-getApplicationRevisionResponse = GetApplicationRevisionResponse
-    { _garrApplicationName = Nothing
-    , _garrRevision        = Nothing
-    , _garrRevisionInfo    = Nothing
+-- * 'garrsRevision'
+--
+-- * 'garrsStatus'
+getApplicationRevisionResponse
+    :: Int -- ^ 'garrsStatus'
+    -> GetApplicationRevisionResponse
+getApplicationRevisionResponse pStatus_ =
+    GetApplicationRevisionResponse'
+    { _garrsRevisionInfo = Nothing
+    , _garrsApplicationName = Nothing
+    , _garrsRevision = Nothing
+    , _garrsStatus = pStatus_
     }
 
--- | The name of the application that corresponds to the revision.
-garrApplicationName :: Lens' GetApplicationRevisionResponse (Maybe Text)
-garrApplicationName =
-    lens _garrApplicationName (\s a -> s { _garrApplicationName = a })
-
--- | Additional information about the revision, including the revision's type and
--- its location.
-garrRevision :: Lens' GetApplicationRevisionResponse (Maybe RevisionLocation)
-garrRevision = lens _garrRevision (\s a -> s { _garrRevision = a })
-
 -- | General information about the revision.
-garrRevisionInfo :: Lens' GetApplicationRevisionResponse (Maybe GenericRevisionInfo)
-garrRevisionInfo = lens _garrRevisionInfo (\s a -> s { _garrRevisionInfo = a })
-
-instance ToPath GetApplicationRevision where
-    toPath = const "/"
-
-instance ToQuery GetApplicationRevision where
-    toQuery = const mempty
-
-instance ToHeaders GetApplicationRevision
-
-instance ToJSON GetApplicationRevision where
-    toJSON GetApplicationRevision{..} = object
-        [ "applicationName" .= _garApplicationName
-        , "revision"        .= _garRevision
-        ]
+garrsRevisionInfo :: Lens' GetApplicationRevisionResponse (Maybe GenericRevisionInfo)
+garrsRevisionInfo = lens _garrsRevisionInfo (\ s a -> s{_garrsRevisionInfo = a});
 
-instance AWSRequest GetApplicationRevision where
-    type Sv GetApplicationRevision = CodeDeploy
-    type Rs GetApplicationRevision = GetApplicationRevisionResponse
+-- | The name of the application that corresponds to the revision.
+garrsApplicationName :: Lens' GetApplicationRevisionResponse (Maybe Text)
+garrsApplicationName = lens _garrsApplicationName (\ s a -> s{_garrsApplicationName = a});
 
-    request  = post "GetApplicationRevision"
-    response = jsonResponse
+-- | Additional information about the revision, including the revision\'s
+-- type and its location.
+garrsRevision :: Lens' GetApplicationRevisionResponse (Maybe RevisionLocation)
+garrsRevision = lens _garrsRevision (\ s a -> s{_garrsRevision = a});
 
-instance FromJSON GetApplicationRevisionResponse where
-    parseJSON = withObject "GetApplicationRevisionResponse" $ \o -> GetApplicationRevisionResponse
-        <$> o .:? "applicationName"
-        <*> o .:? "revision"
-        <*> o .:? "revisionInfo"
+-- | The response status code.
+garrsStatus :: Lens' GetApplicationRevisionResponse Int
+garrsStatus = lens _garrsStatus (\ s a -> s{_garrsStatus = a});
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
@@ -1,114 +1,130 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.GetDeployment
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Gets information about a deployment.
+-- Gets information about a deployment.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetDeployment.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetDeployment.html AWS API Reference> for GetDeployment.
 module Network.AWS.CodeDeploy.GetDeployment
     (
-    -- * Request
-      GetDeployment
-    -- ** Request constructor
-    , getDeployment
-    -- ** Request lenses
+    -- * Creating a Request
+      getDeployment
+    , GetDeployment
+    -- * Request Lenses
     , gdDeploymentId
 
-    -- * Response
-    , GetDeploymentResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , getDeploymentResponse
-    -- ** Response lenses
-    , gdrDeploymentInfo
+    , GetDeploymentResponse
+    -- * Response Lenses
+    , gdrsDeploymentInfo
+    , gdrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-newtype GetDeployment = GetDeployment
+-- | Represents the input of a get deployment operation.
+--
+-- /See:/ 'getDeployment' smart constructor.
+newtype GetDeployment = GetDeployment'
     { _gdDeploymentId :: Text
-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'GetDeployment' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'GetDeployment' with the minimum fields required to make a request.
 --
--- * 'gdDeploymentId' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
-getDeployment :: Text -- ^ 'gdDeploymentId'
-              -> GetDeployment
-getDeployment p1 = GetDeployment
-    { _gdDeploymentId = p1
+-- * 'gdDeploymentId'
+getDeployment
+    :: Text -- ^ 'gdDeploymentId'
+    -> GetDeployment
+getDeployment pDeploymentId_ =
+    GetDeployment'
+    { _gdDeploymentId = pDeploymentId_
     }
 
 -- | An existing deployment ID associated with the applicable IAM user or AWS
 -- account.
 gdDeploymentId :: Lens' GetDeployment Text
-gdDeploymentId = lens _gdDeploymentId (\s a -> s { _gdDeploymentId = a })
+gdDeploymentId = lens _gdDeploymentId (\ s a -> s{_gdDeploymentId = a});
 
-newtype GetDeploymentResponse = GetDeploymentResponse
-    { _gdrDeploymentInfo :: Maybe DeploymentInfo
-    } deriving (Eq, Read, Show)
+instance AWSRequest GetDeployment where
+        type Sv GetDeployment = CodeDeploy
+        type Rs GetDeployment = GetDeploymentResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 GetDeploymentResponse' <$>
+                   (x .?> "deploymentInfo") <*> (pure (fromEnum s)))
 
--- | 'GetDeploymentResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'gdrDeploymentInfo' @::@ 'Maybe' 'DeploymentInfo'
---
-getDeploymentResponse :: GetDeploymentResponse
-getDeploymentResponse = GetDeploymentResponse
-    { _gdrDeploymentInfo = Nothing
-    }
+instance ToHeaders GetDeployment where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.GetDeployment" :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | Information about the deployment.
-gdrDeploymentInfo :: Lens' GetDeploymentResponse (Maybe DeploymentInfo)
-gdrDeploymentInfo =
-    lens _gdrDeploymentInfo (\s a -> s { _gdrDeploymentInfo = a })
+instance ToJSON GetDeployment where
+        toJSON GetDeployment'{..}
+          = object ["deploymentId" .= _gdDeploymentId]
 
 instance ToPath GetDeployment where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery GetDeployment where
-    toQuery = const mempty
-
-instance ToHeaders GetDeployment
+        toQuery = const mempty
 
-instance ToJSON GetDeployment where
-    toJSON GetDeployment{..} = object
-        [ "deploymentId" .= _gdDeploymentId
-        ]
+-- | Represents the output of a get deployment operation.
+--
+-- /See:/ 'getDeploymentResponse' smart constructor.
+data GetDeploymentResponse = GetDeploymentResponse'
+    { _gdrsDeploymentInfo :: !(Maybe DeploymentInfo)
+    , _gdrsStatus         :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest GetDeployment where
-    type Sv GetDeployment = CodeDeploy
-    type Rs GetDeployment = GetDeploymentResponse
+-- | 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:
+--
+-- * 'gdrsDeploymentInfo'
+--
+-- * 'gdrsStatus'
+getDeploymentResponse
+    :: Int -- ^ 'gdrsStatus'
+    -> GetDeploymentResponse
+getDeploymentResponse pStatus_ =
+    GetDeploymentResponse'
+    { _gdrsDeploymentInfo = Nothing
+    , _gdrsStatus = pStatus_
+    }
 
-    request  = post "GetDeployment"
-    response = jsonResponse
+-- | Information about the deployment.
+gdrsDeploymentInfo :: Lens' GetDeploymentResponse (Maybe DeploymentInfo)
+gdrsDeploymentInfo = lens _gdrsDeploymentInfo (\ s a -> s{_gdrsDeploymentInfo = a});
 
-instance FromJSON GetDeploymentResponse where
-    parseJSON = withObject "GetDeploymentResponse" $ \o -> GetDeploymentResponse
-        <$> o .:? "deploymentInfo"
+-- | The response status code.
+gdrsStatus :: Lens' GetDeploymentResponse Int
+gdrsStatus = lens _gdrsStatus (\ s a -> s{_gdrsStatus = a});
diff --git a/gen/Network/AWS/CodeDeploy/GetDeploymentConfig.hs b/gen/Network/AWS/CodeDeploy/GetDeploymentConfig.hs
--- a/gen/Network/AWS/CodeDeploy/GetDeploymentConfig.hs
+++ b/gen/Network/AWS/CodeDeploy/GetDeploymentConfig.hs
@@ -1,116 +1,134 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.GetDeploymentConfig
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Gets information about a deployment configuration.
+-- Gets information about a deployment configuration.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetDeploymentConfig.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetDeploymentConfig.html AWS API Reference> for GetDeploymentConfig.
 module Network.AWS.CodeDeploy.GetDeploymentConfig
     (
-    -- * Request
-      GetDeploymentConfig
-    -- ** Request constructor
-    , getDeploymentConfig
-    -- ** Request lenses
+    -- * Creating a Request
+      getDeploymentConfig
+    , GetDeploymentConfig
+    -- * Request Lenses
     , gdcDeploymentConfigName
 
-    -- * Response
-    , GetDeploymentConfigResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , getDeploymentConfigResponse
-    -- ** Response lenses
-    , gdcrDeploymentConfigInfo
+    , GetDeploymentConfigResponse
+    -- * Response Lenses
+    , gdcrsDeploymentConfigInfo
+    , gdcrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-newtype GetDeploymentConfig = GetDeploymentConfig
+-- | Represents the input of a get deployment configuration operation.
+--
+-- /See:/ 'getDeploymentConfig' smart constructor.
+newtype GetDeploymentConfig = GetDeploymentConfig'
     { _gdcDeploymentConfigName :: Text
-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'GetDeploymentConfig' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'GetDeploymentConfig' with the minimum fields required to make a request.
 --
--- * 'gdcDeploymentConfigName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
-getDeploymentConfig :: Text -- ^ 'gdcDeploymentConfigName'
-                    -> GetDeploymentConfig
-getDeploymentConfig p1 = GetDeploymentConfig
-    { _gdcDeploymentConfigName = p1
+-- * 'gdcDeploymentConfigName'
+getDeploymentConfig
+    :: Text -- ^ 'gdcDeploymentConfigName'
+    -> GetDeploymentConfig
+getDeploymentConfig pDeploymentConfigName_ =
+    GetDeploymentConfig'
+    { _gdcDeploymentConfigName = pDeploymentConfigName_
     }
 
 -- | The name of an existing deployment configuration associated with the
 -- applicable IAM user or AWS account.
 gdcDeploymentConfigName :: Lens' GetDeploymentConfig Text
-gdcDeploymentConfigName =
-    lens _gdcDeploymentConfigName (\s a -> s { _gdcDeploymentConfigName = a })
+gdcDeploymentConfigName = lens _gdcDeploymentConfigName (\ s a -> s{_gdcDeploymentConfigName = a});
 
-newtype GetDeploymentConfigResponse = GetDeploymentConfigResponse
-    { _gdcrDeploymentConfigInfo :: Maybe DeploymentConfigInfo
-    } deriving (Eq, Read, Show)
+instance AWSRequest GetDeploymentConfig where
+        type Sv GetDeploymentConfig = CodeDeploy
+        type Rs GetDeploymentConfig =
+             GetDeploymentConfigResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 GetDeploymentConfigResponse' <$>
+                   (x .?> "deploymentConfigInfo") <*>
+                     (pure (fromEnum s)))
 
--- | 'GetDeploymentConfigResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'gdcrDeploymentConfigInfo' @::@ 'Maybe' 'DeploymentConfigInfo'
---
-getDeploymentConfigResponse :: GetDeploymentConfigResponse
-getDeploymentConfigResponse = GetDeploymentConfigResponse
-    { _gdcrDeploymentConfigInfo = Nothing
-    }
+instance ToHeaders GetDeploymentConfig where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.GetDeploymentConfig" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | Information about the deployment configuration.
-gdcrDeploymentConfigInfo :: Lens' GetDeploymentConfigResponse (Maybe DeploymentConfigInfo)
-gdcrDeploymentConfigInfo =
-    lens _gdcrDeploymentConfigInfo
-        (\s a -> s { _gdcrDeploymentConfigInfo = a })
+instance ToJSON GetDeploymentConfig where
+        toJSON GetDeploymentConfig'{..}
+          = object
+              ["deploymentConfigName" .= _gdcDeploymentConfigName]
 
 instance ToPath GetDeploymentConfig where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery GetDeploymentConfig where
-    toQuery = const mempty
-
-instance ToHeaders GetDeploymentConfig
+        toQuery = const mempty
 
-instance ToJSON GetDeploymentConfig where
-    toJSON GetDeploymentConfig{..} = object
-        [ "deploymentConfigName" .= _gdcDeploymentConfigName
-        ]
+-- | Represents the output of a get deployment configuration operation.
+--
+-- /See:/ 'getDeploymentConfigResponse' smart constructor.
+data GetDeploymentConfigResponse = GetDeploymentConfigResponse'
+    { _gdcrsDeploymentConfigInfo :: !(Maybe DeploymentConfigInfo)
+    , _gdcrsStatus               :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest GetDeploymentConfig where
-    type Sv GetDeploymentConfig = CodeDeploy
-    type Rs GetDeploymentConfig = GetDeploymentConfigResponse
+-- | 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:
+--
+-- * 'gdcrsDeploymentConfigInfo'
+--
+-- * 'gdcrsStatus'
+getDeploymentConfigResponse
+    :: Int -- ^ 'gdcrsStatus'
+    -> GetDeploymentConfigResponse
+getDeploymentConfigResponse pStatus_ =
+    GetDeploymentConfigResponse'
+    { _gdcrsDeploymentConfigInfo = Nothing
+    , _gdcrsStatus = pStatus_
+    }
 
-    request  = post "GetDeploymentConfig"
-    response = jsonResponse
+-- | Information about the deployment configuration.
+gdcrsDeploymentConfigInfo :: Lens' GetDeploymentConfigResponse (Maybe DeploymentConfigInfo)
+gdcrsDeploymentConfigInfo = lens _gdcrsDeploymentConfigInfo (\ s a -> s{_gdcrsDeploymentConfigInfo = a});
 
-instance FromJSON GetDeploymentConfigResponse where
-    parseJSON = withObject "GetDeploymentConfigResponse" $ \o -> GetDeploymentConfigResponse
-        <$> o .:? "deploymentConfigInfo"
+-- | The response status code.
+gdcrsStatus :: Lens' GetDeploymentConfigResponse Int
+gdcrsStatus = lens _gdcrsStatus (\ s a -> s{_gdcrsStatus = a});
diff --git a/gen/Network/AWS/CodeDeploy/GetDeploymentGroup.hs b/gen/Network/AWS/CodeDeploy/GetDeploymentGroup.hs
--- a/gen/Network/AWS/CodeDeploy/GetDeploymentGroup.hs
+++ b/gen/Network/AWS/CodeDeploy/GetDeploymentGroup.hs
@@ -1,127 +1,145 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.GetDeploymentGroup
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Gets information about a deployment group.
+-- Gets information about a deployment group.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetDeploymentGroup.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetDeploymentGroup.html AWS API Reference> for GetDeploymentGroup.
 module Network.AWS.CodeDeploy.GetDeploymentGroup
     (
-    -- * Request
-      GetDeploymentGroup
-    -- ** Request constructor
-    , getDeploymentGroup
-    -- ** Request lenses
+    -- * Creating a Request
+      getDeploymentGroup
+    , GetDeploymentGroup
+    -- * Request Lenses
     , gdgApplicationName
     , gdgDeploymentGroupName
 
-    -- * Response
-    , GetDeploymentGroupResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , getDeploymentGroupResponse
-    -- ** Response lenses
-    , gdgrDeploymentGroupInfo
+    , GetDeploymentGroupResponse
+    -- * Response Lenses
+    , gdgrsDeploymentGroupInfo
+    , gdgrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
-
-data GetDeploymentGroup = GetDeploymentGroup
-    { _gdgApplicationName     :: Text
-    , _gdgDeploymentGroupName :: Text
-    } deriving (Eq, Ord, Read, Show)
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'GetDeploymentGroup' constructor.
+-- | Represents the input of a get deployment group operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'getDeploymentGroup' smart constructor.
+data GetDeploymentGroup = GetDeploymentGroup'
+    { _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.
 --
--- * 'gdgApplicationName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'gdgDeploymentGroupName' @::@ 'Text'
+-- * 'gdgApplicationName'
 --
-getDeploymentGroup :: Text -- ^ 'gdgApplicationName'
-                   -> Text -- ^ 'gdgDeploymentGroupName'
-                   -> GetDeploymentGroup
-getDeploymentGroup p1 p2 = GetDeploymentGroup
-    { _gdgApplicationName     = p1
-    , _gdgDeploymentGroupName = p2
+-- * 'gdgDeploymentGroupName'
+getDeploymentGroup
+    :: Text -- ^ 'gdgApplicationName'
+    -> Text -- ^ 'gdgDeploymentGroupName'
+    -> GetDeploymentGroup
+getDeploymentGroup pApplicationName_ pDeploymentGroupName_ =
+    GetDeploymentGroup'
+    { _gdgApplicationName = pApplicationName_
+    , _gdgDeploymentGroupName = pDeploymentGroupName_
     }
 
 -- | The name of an existing AWS CodeDeploy application associated with the
 -- applicable IAM user or AWS account.
 gdgApplicationName :: Lens' GetDeploymentGroup Text
-gdgApplicationName =
-    lens _gdgApplicationName (\s a -> s { _gdgApplicationName = a })
+gdgApplicationName = lens _gdgApplicationName (\ s a -> s{_gdgApplicationName = a});
 
 -- | The name of an existing deployment group for the specified application.
 gdgDeploymentGroupName :: Lens' GetDeploymentGroup Text
-gdgDeploymentGroupName =
-    lens _gdgDeploymentGroupName (\s a -> s { _gdgDeploymentGroupName = a })
+gdgDeploymentGroupName = lens _gdgDeploymentGroupName (\ s a -> s{_gdgDeploymentGroupName = a});
 
-newtype GetDeploymentGroupResponse = GetDeploymentGroupResponse
-    { _gdgrDeploymentGroupInfo :: Maybe DeploymentGroupInfo
-    } deriving (Eq, Read, Show)
+instance AWSRequest GetDeploymentGroup where
+        type Sv GetDeploymentGroup = CodeDeploy
+        type Rs GetDeploymentGroup =
+             GetDeploymentGroupResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 GetDeploymentGroupResponse' <$>
+                   (x .?> "deploymentGroupInfo") <*>
+                     (pure (fromEnum s)))
 
--- | 'GetDeploymentGroupResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'gdgrDeploymentGroupInfo' @::@ 'Maybe' 'DeploymentGroupInfo'
---
-getDeploymentGroupResponse :: GetDeploymentGroupResponse
-getDeploymentGroupResponse = GetDeploymentGroupResponse
-    { _gdgrDeploymentGroupInfo = Nothing
-    }
+instance ToHeaders GetDeploymentGroup where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.GetDeploymentGroup" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | Information about the deployment group.
-gdgrDeploymentGroupInfo :: Lens' GetDeploymentGroupResponse (Maybe DeploymentGroupInfo)
-gdgrDeploymentGroupInfo =
-    lens _gdgrDeploymentGroupInfo (\s a -> s { _gdgrDeploymentGroupInfo = a })
+instance ToJSON GetDeploymentGroup where
+        toJSON GetDeploymentGroup'{..}
+          = object
+              ["applicationName" .= _gdgApplicationName,
+               "deploymentGroupName" .= _gdgDeploymentGroupName]
 
 instance ToPath GetDeploymentGroup where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery GetDeploymentGroup where
-    toQuery = const mempty
-
-instance ToHeaders GetDeploymentGroup
+        toQuery = const mempty
 
-instance ToJSON GetDeploymentGroup where
-    toJSON GetDeploymentGroup{..} = object
-        [ "applicationName"     .= _gdgApplicationName
-        , "deploymentGroupName" .= _gdgDeploymentGroupName
-        ]
+-- | Represents the output of a get deployment group operation.
+--
+-- /See:/ 'getDeploymentGroupResponse' smart constructor.
+data GetDeploymentGroupResponse = GetDeploymentGroupResponse'
+    { _gdgrsDeploymentGroupInfo :: !(Maybe DeploymentGroupInfo)
+    , _gdgrsStatus              :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest GetDeploymentGroup where
-    type Sv GetDeploymentGroup = CodeDeploy
-    type Rs GetDeploymentGroup = GetDeploymentGroupResponse
+-- | 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:
+--
+-- * 'gdgrsDeploymentGroupInfo'
+--
+-- * 'gdgrsStatus'
+getDeploymentGroupResponse
+    :: Int -- ^ 'gdgrsStatus'
+    -> GetDeploymentGroupResponse
+getDeploymentGroupResponse pStatus_ =
+    GetDeploymentGroupResponse'
+    { _gdgrsDeploymentGroupInfo = Nothing
+    , _gdgrsStatus = pStatus_
+    }
 
-    request  = post "GetDeploymentGroup"
-    response = jsonResponse
+-- | Information about the deployment group.
+gdgrsDeploymentGroupInfo :: Lens' GetDeploymentGroupResponse (Maybe DeploymentGroupInfo)
+gdgrsDeploymentGroupInfo = lens _gdgrsDeploymentGroupInfo (\ s a -> s{_gdgrsDeploymentGroupInfo = a});
 
-instance FromJSON GetDeploymentGroupResponse where
-    parseJSON = withObject "GetDeploymentGroupResponse" $ \o -> GetDeploymentGroupResponse
-        <$> o .:? "deploymentGroupInfo"
+-- | The response status code.
+gdgrsStatus :: Lens' GetDeploymentGroupResponse Int
+gdgrsStatus = lens _gdgrsStatus (\ s a -> s{_gdgrsStatus = a});
diff --git a/gen/Network/AWS/CodeDeploy/GetDeploymentInstance.hs b/gen/Network/AWS/CodeDeploy/GetDeploymentInstance.hs
--- a/gen/Network/AWS/CodeDeploy/GetDeploymentInstance.hs
+++ b/gen/Network/AWS/CodeDeploy/GetDeploymentInstance.hs
@@ -1,124 +1,143 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.GetDeploymentInstance
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Gets information about an instance as part of a deployment.
+-- Gets information about an instance as part of a deployment.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetDeploymentInstance.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetDeploymentInstance.html AWS API Reference> for GetDeploymentInstance.
 module Network.AWS.CodeDeploy.GetDeploymentInstance
     (
-    -- * Request
-      GetDeploymentInstance
-    -- ** Request constructor
-    , getDeploymentInstance
-    -- ** Request lenses
+    -- * Creating a Request
+      getDeploymentInstance
+    , GetDeploymentInstance
+    -- * Request Lenses
     , gdiDeploymentId
     , gdiInstanceId
 
-    -- * Response
-    , GetDeploymentInstanceResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , getDeploymentInstanceResponse
-    -- ** Response lenses
-    , gdirInstanceSummary
+    , GetDeploymentInstanceResponse
+    -- * Response Lenses
+    , gdirsInstanceSummary
+    , gdirsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
-
-data GetDeploymentInstance = GetDeploymentInstance
-    { _gdiDeploymentId :: Text
-    , _gdiInstanceId   :: Text
-    } deriving (Eq, Ord, Read, Show)
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'GetDeploymentInstance' constructor.
+-- | Represents the input of a get deployment instance operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'getDeploymentInstance' smart constructor.
+data GetDeploymentInstance = GetDeploymentInstance'
+    { _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.
 --
--- * 'gdiDeploymentId' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'gdiInstanceId' @::@ 'Text'
+-- * 'gdiDeploymentId'
 --
-getDeploymentInstance :: Text -- ^ 'gdiDeploymentId'
-                      -> Text -- ^ 'gdiInstanceId'
-                      -> GetDeploymentInstance
-getDeploymentInstance p1 p2 = GetDeploymentInstance
-    { _gdiDeploymentId = p1
-    , _gdiInstanceId   = p2
+-- * 'gdiInstanceId'
+getDeploymentInstance
+    :: Text -- ^ 'gdiDeploymentId'
+    -> Text -- ^ 'gdiInstanceId'
+    -> GetDeploymentInstance
+getDeploymentInstance pDeploymentId_ pInstanceId_ =
+    GetDeploymentInstance'
+    { _gdiDeploymentId = pDeploymentId_
+    , _gdiInstanceId = pInstanceId_
     }
 
 -- | The unique ID of a deployment.
 gdiDeploymentId :: Lens' GetDeploymentInstance Text
-gdiDeploymentId = lens _gdiDeploymentId (\s a -> s { _gdiDeploymentId = a })
+gdiDeploymentId = lens _gdiDeploymentId (\ s a -> s{_gdiDeploymentId = a});
 
--- | The unique ID of an instance in the deployment's deployment group.
+-- | The unique ID of an instance in the deployment\'s deployment group.
 gdiInstanceId :: Lens' GetDeploymentInstance Text
-gdiInstanceId = lens _gdiInstanceId (\s a -> s { _gdiInstanceId = a })
+gdiInstanceId = lens _gdiInstanceId (\ s a -> s{_gdiInstanceId = a});
 
-newtype GetDeploymentInstanceResponse = GetDeploymentInstanceResponse
-    { _gdirInstanceSummary :: Maybe InstanceSummary
-    } deriving (Eq, Read, Show)
+instance AWSRequest GetDeploymentInstance where
+        type Sv GetDeploymentInstance = CodeDeploy
+        type Rs GetDeploymentInstance =
+             GetDeploymentInstanceResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 GetDeploymentInstanceResponse' <$>
+                   (x .?> "instanceSummary") <*> (pure (fromEnum s)))
 
--- | 'GetDeploymentInstanceResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'gdirInstanceSummary' @::@ 'Maybe' 'InstanceSummary'
---
-getDeploymentInstanceResponse :: GetDeploymentInstanceResponse
-getDeploymentInstanceResponse = GetDeploymentInstanceResponse
-    { _gdirInstanceSummary = Nothing
-    }
+instance ToHeaders GetDeploymentInstance where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.GetDeploymentInstance" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | Information about the instance.
-gdirInstanceSummary :: Lens' GetDeploymentInstanceResponse (Maybe InstanceSummary)
-gdirInstanceSummary =
-    lens _gdirInstanceSummary (\s a -> s { _gdirInstanceSummary = a })
+instance ToJSON GetDeploymentInstance where
+        toJSON GetDeploymentInstance'{..}
+          = object
+              ["deploymentId" .= _gdiDeploymentId,
+               "instanceId" .= _gdiInstanceId]
 
 instance ToPath GetDeploymentInstance where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery GetDeploymentInstance where
-    toQuery = const mempty
-
-instance ToHeaders GetDeploymentInstance
+        toQuery = const mempty
 
-instance ToJSON GetDeploymentInstance where
-    toJSON GetDeploymentInstance{..} = object
-        [ "deploymentId" .= _gdiDeploymentId
-        , "instanceId"   .= _gdiInstanceId
-        ]
+-- | Represents the output of a get deployment instance operation.
+--
+-- /See:/ 'getDeploymentInstanceResponse' smart constructor.
+data GetDeploymentInstanceResponse = GetDeploymentInstanceResponse'
+    { _gdirsInstanceSummary :: !(Maybe InstanceSummary)
+    , _gdirsStatus          :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest GetDeploymentInstance where
-    type Sv GetDeploymentInstance = CodeDeploy
-    type Rs GetDeploymentInstance = GetDeploymentInstanceResponse
+-- | 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:
+--
+-- * 'gdirsInstanceSummary'
+--
+-- * 'gdirsStatus'
+getDeploymentInstanceResponse
+    :: Int -- ^ 'gdirsStatus'
+    -> GetDeploymentInstanceResponse
+getDeploymentInstanceResponse pStatus_ =
+    GetDeploymentInstanceResponse'
+    { _gdirsInstanceSummary = Nothing
+    , _gdirsStatus = pStatus_
+    }
 
-    request  = post "GetDeploymentInstance"
-    response = jsonResponse
+-- | Information about the instance.
+gdirsInstanceSummary :: Lens' GetDeploymentInstanceResponse (Maybe InstanceSummary)
+gdirsInstanceSummary = lens _gdirsInstanceSummary (\ s a -> s{_gdirsInstanceSummary = a});
 
-instance FromJSON GetDeploymentInstanceResponse where
-    parseJSON = withObject "GetDeploymentInstanceResponse" $ \o -> GetDeploymentInstanceResponse
-        <$> o .:? "instanceSummary"
+-- | The response status code.
+gdirsStatus :: Lens' GetDeploymentInstanceResponse Int
+gdirsStatus = lens _gdirsStatus (\ s a -> s{_gdirsStatus = a});
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
@@ -1,113 +1,131 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.GetOnPremisesInstance
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Gets information about an on-premises instance.
+-- Gets information about an on-premises instance.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetOnPremisesInstance.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetOnPremisesInstance.html AWS API Reference> for GetOnPremisesInstance.
 module Network.AWS.CodeDeploy.GetOnPremisesInstance
     (
-    -- * Request
-      GetOnPremisesInstance
-    -- ** Request constructor
-    , getOnPremisesInstance
-    -- ** Request lenses
+    -- * Creating a Request
+      getOnPremisesInstance
+    , GetOnPremisesInstance
+    -- * Request Lenses
     , gopiInstanceName
 
-    -- * Response
-    , GetOnPremisesInstanceResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , getOnPremisesInstanceResponse
-    -- ** Response lenses
-    , gopirInstanceInfo
+    , GetOnPremisesInstanceResponse
+    -- * Response Lenses
+    , gopirsInstanceInfo
+    , gopirsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-newtype GetOnPremisesInstance = GetOnPremisesInstance
+-- | Represents the input of a get on-premises instance operation.
+--
+-- /See:/ 'getOnPremisesInstance' smart constructor.
+newtype GetOnPremisesInstance = GetOnPremisesInstance'
     { _gopiInstanceName :: Text
-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'GetOnPremisesInstance' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'GetOnPremisesInstance' with the minimum fields required to make a request.
 --
--- * 'gopiInstanceName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
-getOnPremisesInstance :: Text -- ^ 'gopiInstanceName'
-                      -> GetOnPremisesInstance
-getOnPremisesInstance p1 = GetOnPremisesInstance
-    { _gopiInstanceName = p1
+-- * 'gopiInstanceName'
+getOnPremisesInstance
+    :: Text -- ^ 'gopiInstanceName'
+    -> GetOnPremisesInstance
+getOnPremisesInstance pInstanceName_ =
+    GetOnPremisesInstance'
+    { _gopiInstanceName = pInstanceName_
     }
 
 -- | The name of the on-premises instance to get information about
 gopiInstanceName :: Lens' GetOnPremisesInstance Text
-gopiInstanceName = lens _gopiInstanceName (\s a -> s { _gopiInstanceName = a })
+gopiInstanceName = lens _gopiInstanceName (\ s a -> s{_gopiInstanceName = a});
 
-newtype GetOnPremisesInstanceResponse = GetOnPremisesInstanceResponse
-    { _gopirInstanceInfo :: Maybe InstanceInfo
-    } deriving (Eq, Read, Show)
+instance AWSRequest GetOnPremisesInstance where
+        type Sv GetOnPremisesInstance = CodeDeploy
+        type Rs GetOnPremisesInstance =
+             GetOnPremisesInstanceResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 GetOnPremisesInstanceResponse' <$>
+                   (x .?> "instanceInfo") <*> (pure (fromEnum s)))
 
--- | 'GetOnPremisesInstanceResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'gopirInstanceInfo' @::@ 'Maybe' 'InstanceInfo'
---
-getOnPremisesInstanceResponse :: GetOnPremisesInstanceResponse
-getOnPremisesInstanceResponse = GetOnPremisesInstanceResponse
-    { _gopirInstanceInfo = Nothing
-    }
+instance ToHeaders GetOnPremisesInstance where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.GetOnPremisesInstance" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | Information about the on-premises instance.
-gopirInstanceInfo :: Lens' GetOnPremisesInstanceResponse (Maybe InstanceInfo)
-gopirInstanceInfo =
-    lens _gopirInstanceInfo (\s a -> s { _gopirInstanceInfo = a })
+instance ToJSON GetOnPremisesInstance where
+        toJSON GetOnPremisesInstance'{..}
+          = object ["instanceName" .= _gopiInstanceName]
 
 instance ToPath GetOnPremisesInstance where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery GetOnPremisesInstance where
-    toQuery = const mempty
-
-instance ToHeaders GetOnPremisesInstance
+        toQuery = const mempty
 
-instance ToJSON GetOnPremisesInstance where
-    toJSON GetOnPremisesInstance{..} = object
-        [ "instanceName" .= _gopiInstanceName
-        ]
+-- | Represents the output of a get on-premises instance operation.
+--
+-- /See:/ 'getOnPremisesInstanceResponse' smart constructor.
+data GetOnPremisesInstanceResponse = GetOnPremisesInstanceResponse'
+    { _gopirsInstanceInfo :: !(Maybe InstanceInfo)
+    , _gopirsStatus       :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest GetOnPremisesInstance where
-    type Sv GetOnPremisesInstance = CodeDeploy
-    type Rs GetOnPremisesInstance = GetOnPremisesInstanceResponse
+-- | 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:
+--
+-- * 'gopirsInstanceInfo'
+--
+-- * 'gopirsStatus'
+getOnPremisesInstanceResponse
+    :: Int -- ^ 'gopirsStatus'
+    -> GetOnPremisesInstanceResponse
+getOnPremisesInstanceResponse pStatus_ =
+    GetOnPremisesInstanceResponse'
+    { _gopirsInstanceInfo = Nothing
+    , _gopirsStatus = pStatus_
+    }
 
-    request  = post "GetOnPremisesInstance"
-    response = jsonResponse
+-- | Information about the on-premises instance.
+gopirsInstanceInfo :: Lens' GetOnPremisesInstanceResponse (Maybe InstanceInfo)
+gopirsInstanceInfo = lens _gopirsInstanceInfo (\ s a -> s{_gopirsInstanceInfo = a});
 
-instance FromJSON GetOnPremisesInstanceResponse where
-    parseJSON = withObject "GetOnPremisesInstanceResponse" $ \o -> GetOnPremisesInstanceResponse
-        <$> o .:? "instanceInfo"
+-- | The response status code.
+gopirsStatus :: Lens' GetOnPremisesInstanceResponse Int
+gopirsStatus = lens _gopirsStatus (\ s a -> s{_gopirsStatus = a});
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
@@ -1,208 +1,236 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.ListApplicationRevisions
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Lists information about revisions for an application.
+-- Lists information about revisions for an application.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListApplicationRevisions.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListApplicationRevisions.html AWS API Reference> for ListApplicationRevisions.
 module Network.AWS.CodeDeploy.ListApplicationRevisions
     (
-    -- * Request
-      ListApplicationRevisions
-    -- ** Request constructor
-    , listApplicationRevisions
-    -- ** Request lenses
-    , larApplicationName
+    -- * Creating a Request
+      listApplicationRevisions
+    , ListApplicationRevisions
+    -- * Request Lenses
+    , larS3KeyPrefix
     , larDeployed
     , larNextToken
+    , larSortOrder
     , larS3Bucket
-    , larS3KeyPrefix
     , larSortBy
-    , larSortOrder
+    , larApplicationName
 
-    -- * Response
-    , ListApplicationRevisionsResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , listApplicationRevisionsResponse
-    -- ** Response lenses
-    , larrNextToken
-    , larrRevisions
+    , ListApplicationRevisionsResponse
+    -- * Response Lenses
+    , larrsNextToken
+    , larrsRevisions
+    , larrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
-
-data ListApplicationRevisions = ListApplicationRevisions
-    { _larApplicationName :: Text
-    , _larDeployed        :: Maybe ListStateFilterAction
-    , _larNextToken       :: Maybe Text
-    , _larS3Bucket        :: Maybe Text
-    , _larS3KeyPrefix     :: Maybe Text
-    , _larSortBy          :: Maybe ApplicationRevisionSortBy
-    , _larSortOrder       :: Maybe SortOrder
-    } deriving (Eq, Read, Show)
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'ListApplicationRevisions' constructor.
+-- | Represents the input of a list application revisions operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'listApplicationRevisions' smart constructor.
+data ListApplicationRevisions = ListApplicationRevisions'
+    { _larS3KeyPrefix     :: !(Maybe Text)
+    , _larDeployed        :: !(Maybe ListStateFilterAction)
+    , _larNextToken       :: !(Maybe Text)
+    , _larSortOrder       :: !(Maybe SortOrder)
+    , _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.
 --
--- * 'larApplicationName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'larDeployed' @::@ 'Maybe' 'ListStateFilterAction'
+-- * 'larS3KeyPrefix'
 --
--- * 'larNextToken' @::@ 'Maybe' 'Text'
+-- * 'larDeployed'
 --
--- * 'larS3Bucket' @::@ 'Maybe' 'Text'
+-- * 'larNextToken'
 --
--- * 'larS3KeyPrefix' @::@ 'Maybe' 'Text'
+-- * 'larSortOrder'
 --
--- * 'larSortBy' @::@ 'Maybe' 'ApplicationRevisionSortBy'
+-- * 'larS3Bucket'
 --
--- * 'larSortOrder' @::@ 'Maybe' 'SortOrder'
+-- * 'larSortBy'
 --
-listApplicationRevisions :: Text -- ^ 'larApplicationName'
-                         -> ListApplicationRevisions
-listApplicationRevisions p1 = ListApplicationRevisions
-    { _larApplicationName = p1
-    , _larSortBy          = Nothing
-    , _larSortOrder       = Nothing
-    , _larS3Bucket        = Nothing
-    , _larS3KeyPrefix     = Nothing
-    , _larDeployed        = Nothing
-    , _larNextToken       = Nothing
+-- * 'larApplicationName'
+listApplicationRevisions
+    :: Text -- ^ 'larApplicationName'
+    -> ListApplicationRevisions
+listApplicationRevisions pApplicationName_ =
+    ListApplicationRevisions'
+    { _larS3KeyPrefix = Nothing
+    , _larDeployed = Nothing
+    , _larNextToken = Nothing
+    , _larSortOrder = Nothing
+    , _larS3Bucket = Nothing
+    , _larSortBy = Nothing
+    , _larApplicationName = pApplicationName_
     }
 
--- | The name of an existing AWS CodeDeploy application associated with the
--- applicable IAM user or AWS account.
-larApplicationName :: Lens' ListApplicationRevisions Text
-larApplicationName =
-    lens _larApplicationName (\s a -> s { _larApplicationName = a })
+-- | A specific 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});
 
 -- | Whether to list revisions based on whether the revision is the target
 -- revision of an deployment group:
 --
--- include: List revisions that are target revisions of a deployment group. exclude: Do not list revisions that are target revisions of a deployment group.
--- ignore: List all revisions, regardless of whether they are target revisions
--- of a deployment group.
+-- -   include: List revisions that are target revisions of a deployment
+--     group.
+-- -   exclude: Do not list revisions that are target revisions of a
+--     deployment group.
+-- -   ignore: List all revisions, regardless of whether they are target
+--     revisions of a deployment group.
 larDeployed :: Lens' ListApplicationRevisions (Maybe ListStateFilterAction)
-larDeployed = lens _larDeployed (\s a -> s { _larDeployed = a })
+larDeployed = lens _larDeployed (\ s a -> s{_larDeployed = a});
 
--- | An identifier that was returned from the previous list application revisions
--- call, which can be used to return the next set of applications in the list.
+-- | An identifier that was returned from the previous list application
+-- revisions call, which can be used to return the next set of applications
+-- in the list.
 larNextToken :: Lens' ListApplicationRevisions (Maybe Text)
-larNextToken = lens _larNextToken (\s a -> s { _larNextToken = a })
+larNextToken = lens _larNextToken (\ s a -> s{_larNextToken = a});
 
+-- | The order to sort the list results by:
+--
+-- -   ascending: Sort the list of results in ascending order.
+-- -   descending: Sort the list of results in descending order.
+--
+-- If not specified, the results will be sorted in ascending order.
+--
+-- If set to null, the results will be sorted in an arbitrary order.
+larSortOrder :: Lens' ListApplicationRevisions (Maybe SortOrder)
+larSortOrder = lens _larSortOrder (\ s a -> s{_larSortOrder = a});
+
 -- | A specific Amazon S3 bucket name to limit the search for revisions.
 --
--- If set to null, then all of the user's buckets will be searched.
+-- If set to null, then all of the user\'s buckets will be searched.
 larS3Bucket :: Lens' ListApplicationRevisions (Maybe Text)
-larS3Bucket = lens _larS3Bucket (\s a -> s { _larS3Bucket = a })
-
--- | A specific 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 })
+larS3Bucket = lens _larS3Bucket (\ s a -> s{_larS3Bucket = a});
 
 -- | The column name to sort the list results by:
 --
--- registerTime: Sort the list results by when the revisions were registered
--- with AWS CodeDeploy. firstUsedTime: Sort the list results by when the
--- revisions were first used by in a deployment. lastUsedTime: Sort the list
--- results by when the revisions were last used in a deployment.  If not
--- specified or set to null, the results will be returned in an arbitrary order.
+-- -   registerTime: Sort the list results by when the revisions were
+--     registered with AWS CodeDeploy.
+-- -   firstUsedTime: Sort the list results by when the revisions were
+--     first used by in a deployment.
+-- -   lastUsedTime: Sort the list results by when the revisions were last
+--     used in a deployment.
+--
+-- If not specified or set to null, the results will be returned in an
+-- arbitrary order.
 larSortBy :: Lens' ListApplicationRevisions (Maybe ApplicationRevisionSortBy)
-larSortBy = lens _larSortBy (\s a -> s { _larSortBy = a })
+larSortBy = lens _larSortBy (\ s a -> s{_larSortBy = a});
 
--- | The order to sort the list results by:
---
--- ascending: Sort the list of results in ascending order. descending: Sort
--- the list of results in descending order.  If not specified, the results will
--- be sorted in ascending order.
---
--- If set to null, the results will be sorted in an arbitrary order.
-larSortOrder :: Lens' ListApplicationRevisions (Maybe SortOrder)
-larSortOrder = lens _larSortOrder (\s a -> s { _larSortOrder = a })
+-- | The name of an existing AWS CodeDeploy application associated with the
+-- applicable IAM user or AWS account.
+larApplicationName :: Lens' ListApplicationRevisions Text
+larApplicationName = lens _larApplicationName (\ s a -> s{_larApplicationName = a});
 
-data ListApplicationRevisionsResponse = ListApplicationRevisionsResponse
-    { _larrNextToken :: Maybe Text
-    , _larrRevisions :: List "revisions" RevisionLocation
-    } deriving (Eq, Read, Show)
+instance AWSRequest ListApplicationRevisions where
+        type Sv ListApplicationRevisions = CodeDeploy
+        type Rs ListApplicationRevisions =
+             ListApplicationRevisionsResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 ListApplicationRevisionsResponse' <$>
+                   (x .?> "nextToken") <*>
+                     (x .?> "revisions" .!@ mempty)
+                     <*> (pure (fromEnum s)))
 
--- | 'ListApplicationRevisionsResponse' constructor.
+instance ToHeaders ListApplicationRevisions where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.ListApplicationRevisions" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON ListApplicationRevisions where
+        toJSON ListApplicationRevisions'{..}
+          = object
+              ["s3KeyPrefix" .= _larS3KeyPrefix,
+               "deployed" .= _larDeployed,
+               "nextToken" .= _larNextToken,
+               "sortOrder" .= _larSortOrder,
+               "s3Bucket" .= _larS3Bucket, "sortBy" .= _larSortBy,
+               "applicationName" .= _larApplicationName]
+
+instance ToPath ListApplicationRevisions where
+        toPath = const "/"
+
+instance ToQuery ListApplicationRevisions where
+        toQuery = const mempty
+
+-- | Represents the output of a list application revisions operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'listApplicationRevisionsResponse' smart constructor.
+data ListApplicationRevisionsResponse = ListApplicationRevisionsResponse'
+    { _larrsNextToken :: !(Maybe Text)
+    , _larrsRevisions :: !(Maybe [RevisionLocation])
+    , _larrsStatus    :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListApplicationRevisionsResponse' with the minimum fields required to make a request.
 --
--- * 'larrNextToken' @::@ 'Maybe' 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'larrRevisions' @::@ ['RevisionLocation']
+-- * 'larrsNextToken'
 --
-listApplicationRevisionsResponse :: ListApplicationRevisionsResponse
-listApplicationRevisionsResponse = ListApplicationRevisionsResponse
-    { _larrRevisions = mempty
-    , _larrNextToken = Nothing
+-- * 'larrsRevisions'
+--
+-- * 'larrsStatus'
+listApplicationRevisionsResponse
+    :: Int -- ^ 'larrsStatus'
+    -> ListApplicationRevisionsResponse
+listApplicationRevisionsResponse pStatus_ =
+    ListApplicationRevisionsResponse'
+    { _larrsNextToken = Nothing
+    , _larrsRevisions = Nothing
+    , _larrsStatus = pStatus_
     }
 
 -- | If the amount of information that is returned is significantly large, an
 -- identifier will also be returned, which can be used in a subsequent list
--- application revisions call to return the next set of application revisions in
--- the list.
-larrNextToken :: Lens' ListApplicationRevisionsResponse (Maybe Text)
-larrNextToken = lens _larrNextToken (\s a -> s { _larrNextToken = a })
+-- 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});
 
 -- | A list of revision locations that contain the matching revisions.
-larrRevisions :: Lens' ListApplicationRevisionsResponse [RevisionLocation]
-larrRevisions = lens _larrRevisions (\s a -> s { _larrRevisions = a }) . _List
-
-instance ToPath ListApplicationRevisions where
-    toPath = const "/"
-
-instance ToQuery ListApplicationRevisions where
-    toQuery = const mempty
-
-instance ToHeaders ListApplicationRevisions
-
-instance ToJSON ListApplicationRevisions where
-    toJSON ListApplicationRevisions{..} = object
-        [ "applicationName" .= _larApplicationName
-        , "sortBy"          .= _larSortBy
-        , "sortOrder"       .= _larSortOrder
-        , "s3Bucket"        .= _larS3Bucket
-        , "s3KeyPrefix"     .= _larS3KeyPrefix
-        , "deployed"        .= _larDeployed
-        , "nextToken"       .= _larNextToken
-        ]
-
-instance AWSRequest ListApplicationRevisions where
-    type Sv ListApplicationRevisions = CodeDeploy
-    type Rs ListApplicationRevisions = ListApplicationRevisionsResponse
-
-    request  = post "ListApplicationRevisions"
-    response = jsonResponse
+larrsRevisions :: Lens' ListApplicationRevisionsResponse [RevisionLocation]
+larrsRevisions = lens _larrsRevisions (\ s a -> s{_larrsRevisions = a}) . _Default . _Coerce;
 
-instance FromJSON ListApplicationRevisionsResponse where
-    parseJSON = withObject "ListApplicationRevisionsResponse" $ \o -> ListApplicationRevisionsResponse
-        <$> o .:? "nextToken"
-        <*> o .:? "revisions" .!= mempty
+-- | The response status code.
+larrsStatus :: Lens' ListApplicationRevisionsResponse Int
+larrsStatus = lens _larrsStatus (\ s a -> s{_larrsStatus = a});
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
@@ -1,124 +1,145 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.ListApplications
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Lists the applications registered with the applicable IAM user or AWS account.
+-- Lists the applications registered with the applicable IAM user or AWS
+-- account.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListApplications.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListApplications.html AWS API Reference> for ListApplications.
 module Network.AWS.CodeDeploy.ListApplications
     (
-    -- * Request
-      ListApplications
-    -- ** Request constructor
-    , listApplications
-    -- ** Request lenses
+    -- * Creating a Request
+      listApplications
+    , ListApplications
+    -- * Request Lenses
     , laNextToken
 
-    -- * Response
-    , ListApplicationsResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , listApplicationsResponse
-    -- ** Response lenses
-    , lar1Applications
-    , lar1NextToken
+    , ListApplicationsResponse
+    -- * Response Lenses
+    , larsNextToken
+    , larsApplications
+    , larsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-newtype ListApplications = ListApplications
+-- | Represents the input of a list applications operation.
+--
+-- /See:/ 'listApplications' smart constructor.
+newtype ListApplications = ListApplications'
     { _laNextToken :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'ListApplications' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'ListApplications' with the minimum fields required to make a request.
 --
--- * 'laNextToken' @::@ 'Maybe' 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
-listApplications :: ListApplications
-listApplications = ListApplications
+-- * 'laNextToken'
+listApplications
+    :: ListApplications
+listApplications =
+    ListApplications'
     { _laNextToken = Nothing
     }
 
--- | An identifier that was returned from the previous list applications call,
--- which can be used to return the next set of applications in the list.
+-- | An identifier that was returned from the previous list applications
+-- call, which 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 })
+laNextToken = lens _laNextToken (\ s a -> s{_laNextToken = a});
 
-data ListApplicationsResponse = ListApplicationsResponse
-    { _lar1Applications :: List "applications" Text
-    , _lar1NextToken    :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
+instance AWSRequest ListApplications where
+        type Sv ListApplications = CodeDeploy
+        type Rs ListApplications = ListApplicationsResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 ListApplicationsResponse' <$>
+                   (x .?> "nextToken") <*>
+                     (x .?> "applications" .!@ mempty)
+                     <*> (pure (fromEnum s)))
 
--- | 'ListApplicationsResponse' constructor.
+instance ToHeaders ListApplications where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.ListApplications" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON ListApplications where
+        toJSON ListApplications'{..}
+          = object ["nextToken" .= _laNextToken]
+
+instance ToPath ListApplications where
+        toPath = const "/"
+
+instance ToQuery ListApplications where
+        toQuery = const mempty
+
+-- | Represents the output of a list applications operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'listApplicationsResponse' smart constructor.
+data ListApplicationsResponse = ListApplicationsResponse'
+    { _larsNextToken    :: !(Maybe Text)
+    , _larsApplications :: !(Maybe [Text])
+    , _larsStatus       :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListApplicationsResponse' with the minimum fields required to make a request.
 --
--- * 'lar1Applications' @::@ ['Text']
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'lar1NextToken' @::@ 'Maybe' 'Text'
+-- * 'larsNextToken'
 --
-listApplicationsResponse :: ListApplicationsResponse
-listApplicationsResponse = ListApplicationsResponse
-    { _lar1Applications = mempty
-    , _lar1NextToken    = Nothing
+-- * 'larsApplications'
+--
+-- * 'larsStatus'
+listApplicationsResponse
+    :: Int -- ^ 'larsStatus'
+    -> ListApplicationsResponse
+listApplicationsResponse pStatus_ =
+    ListApplicationsResponse'
+    { _larsNextToken = Nothing
+    , _larsApplications = Nothing
+    , _larsStatus = pStatus_
     }
 
--- | A list of application names.
-lar1Applications :: Lens' ListApplicationsResponse [Text]
-lar1Applications = lens _lar1Applications (\s a -> s { _lar1Applications = a }) . _List
-
 -- | If the amount of information that is returned is significantly large, an
 -- identifier will also be returned, which can be used in a subsequent list
 -- applications call to return the next set of applications in the list.
-lar1NextToken :: Lens' ListApplicationsResponse (Maybe Text)
-lar1NextToken = lens _lar1NextToken (\s a -> s { _lar1NextToken = a })
-
-instance ToPath ListApplications where
-    toPath = const "/"
-
-instance ToQuery ListApplications where
-    toQuery = const mempty
-
-instance ToHeaders ListApplications
-
-instance ToJSON ListApplications where
-    toJSON ListApplications{..} = object
-        [ "nextToken" .= _laNextToken
-        ]
-
-instance AWSRequest ListApplications where
-    type Sv ListApplications = CodeDeploy
-    type Rs ListApplications = ListApplicationsResponse
+larsNextToken :: Lens' ListApplicationsResponse (Maybe Text)
+larsNextToken = lens _larsNextToken (\ s a -> s{_larsNextToken = a});
 
-    request  = post "ListApplications"
-    response = jsonResponse
+-- | A list of application names.
+larsApplications :: Lens' ListApplicationsResponse [Text]
+larsApplications = lens _larsApplications (\ s a -> s{_larsApplications = a}) . _Default . _Coerce;
 
-instance FromJSON ListApplicationsResponse where
-    parseJSON = withObject "ListApplicationsResponse" $ \o -> ListApplicationsResponse
-        <$> o .:? "applications" .!= mempty
-        <*> o .:? "nextToken"
+-- | The response status code.
+larsStatus :: Lens' ListApplicationsResponse Int
+larsStatus = lens _larsStatus (\ s a -> s{_larsStatus = a});
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
@@ -1,131 +1,148 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.ListDeploymentConfigs
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Lists the deployment configurations with the applicable IAM user or AWS
+-- Lists the deployment configurations with the applicable IAM user or AWS
 -- account.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListDeploymentConfigs.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListDeploymentConfigs.html AWS API Reference> for ListDeploymentConfigs.
 module Network.AWS.CodeDeploy.ListDeploymentConfigs
     (
-    -- * Request
-      ListDeploymentConfigs
-    -- ** Request constructor
-    , listDeploymentConfigs
-    -- ** Request lenses
+    -- * Creating a Request
+      listDeploymentConfigs
+    , ListDeploymentConfigs
+    -- * Request Lenses
     , ldcNextToken
 
-    -- * Response
-    , ListDeploymentConfigsResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , listDeploymentConfigsResponse
-    -- ** Response lenses
-    , ldcrDeploymentConfigsList
-    , ldcrNextToken
+    , ListDeploymentConfigsResponse
+    -- * Response Lenses
+    , ldcrsNextToken
+    , ldcrsDeploymentConfigsList
+    , ldcrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-newtype ListDeploymentConfigs = ListDeploymentConfigs
+-- | Represents the input of a list deployment configurations operation.
+--
+-- /See:/ 'listDeploymentConfigs' smart constructor.
+newtype ListDeploymentConfigs = ListDeploymentConfigs'
     { _ldcNextToken :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'ListDeploymentConfigs' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'ListDeploymentConfigs' with the minimum fields required to make a request.
 --
--- * 'ldcNextToken' @::@ 'Maybe' 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
-listDeploymentConfigs :: ListDeploymentConfigs
-listDeploymentConfigs = ListDeploymentConfigs
+-- * 'ldcNextToken'
+listDeploymentConfigs
+    :: ListDeploymentConfigs
+listDeploymentConfigs =
+    ListDeploymentConfigs'
     { _ldcNextToken = Nothing
     }
 
 -- | An identifier that was returned from the previous list deployment
--- configurations call, which can be used to return the next set of deployment
--- configurations in the list.
+-- configurations call, which 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 })
+ldcNextToken = lens _ldcNextToken (\ s a -> s{_ldcNextToken = a});
 
-data ListDeploymentConfigsResponse = ListDeploymentConfigsResponse
-    { _ldcrDeploymentConfigsList :: List "deploymentConfigsList" Text
-    , _ldcrNextToken             :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
+instance AWSRequest ListDeploymentConfigs where
+        type Sv ListDeploymentConfigs = CodeDeploy
+        type Rs ListDeploymentConfigs =
+             ListDeploymentConfigsResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 ListDeploymentConfigsResponse' <$>
+                   (x .?> "nextToken") <*>
+                     (x .?> "deploymentConfigsList" .!@ mempty)
+                     <*> (pure (fromEnum s)))
 
--- | 'ListDeploymentConfigsResponse' constructor.
+instance ToHeaders ListDeploymentConfigs where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.ListDeploymentConfigs" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON ListDeploymentConfigs where
+        toJSON ListDeploymentConfigs'{..}
+          = object ["nextToken" .= _ldcNextToken]
+
+instance ToPath ListDeploymentConfigs where
+        toPath = const "/"
+
+instance ToQuery ListDeploymentConfigs where
+        toQuery = const mempty
+
+-- | Represents the output of a list deployment configurations operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'listDeploymentConfigsResponse' smart constructor.
+data ListDeploymentConfigsResponse = ListDeploymentConfigsResponse'
+    { _ldcrsNextToken             :: !(Maybe Text)
+    , _ldcrsDeploymentConfigsList :: !(Maybe [Text])
+    , _ldcrsStatus                :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListDeploymentConfigsResponse' with the minimum fields required to make a request.
 --
--- * 'ldcrDeploymentConfigsList' @::@ ['Text']
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ldcrNextToken' @::@ 'Maybe' 'Text'
+-- * 'ldcrsNextToken'
 --
-listDeploymentConfigsResponse :: ListDeploymentConfigsResponse
-listDeploymentConfigsResponse = ListDeploymentConfigsResponse
-    { _ldcrDeploymentConfigsList = mempty
-    , _ldcrNextToken             = Nothing
+-- * 'ldcrsDeploymentConfigsList'
+--
+-- * 'ldcrsStatus'
+listDeploymentConfigsResponse
+    :: Int -- ^ 'ldcrsStatus'
+    -> ListDeploymentConfigsResponse
+listDeploymentConfigsResponse pStatus_ =
+    ListDeploymentConfigsResponse'
+    { _ldcrsNextToken = Nothing
+    , _ldcrsDeploymentConfigsList = Nothing
+    , _ldcrsStatus = pStatus_
     }
 
--- | A list of deployment configurations, including the built-in configurations
--- such as CodeDeployDefault.OneAtATime.
-ldcrDeploymentConfigsList :: Lens' ListDeploymentConfigsResponse [Text]
-ldcrDeploymentConfigsList =
-    lens _ldcrDeploymentConfigsList
-        (\s a -> s { _ldcrDeploymentConfigsList = a })
-            . _List
-
 -- | If the amount of information that is returned is significantly large, an
 -- identifier will also be returned, which can be used in a subsequent list
 -- deployment configurations call to return the next set of deployment
 -- configurations in the list.
-ldcrNextToken :: Lens' ListDeploymentConfigsResponse (Maybe Text)
-ldcrNextToken = lens _ldcrNextToken (\s a -> s { _ldcrNextToken = a })
-
-instance ToPath ListDeploymentConfigs where
-    toPath = const "/"
-
-instance ToQuery ListDeploymentConfigs where
-    toQuery = const mempty
-
-instance ToHeaders ListDeploymentConfigs
-
-instance ToJSON ListDeploymentConfigs where
-    toJSON ListDeploymentConfigs{..} = object
-        [ "nextToken" .= _ldcNextToken
-        ]
-
-instance AWSRequest ListDeploymentConfigs where
-    type Sv ListDeploymentConfigs = CodeDeploy
-    type Rs ListDeploymentConfigs = ListDeploymentConfigsResponse
+ldcrsNextToken :: Lens' ListDeploymentConfigsResponse (Maybe Text)
+ldcrsNextToken = lens _ldcrsNextToken (\ s a -> s{_ldcrsNextToken = a});
 
-    request  = post "ListDeploymentConfigs"
-    response = jsonResponse
+-- | A list of deployment configurations, including the built-in
+-- configurations such as CodeDeployDefault.OneAtATime.
+ldcrsDeploymentConfigsList :: Lens' ListDeploymentConfigsResponse [Text]
+ldcrsDeploymentConfigsList = lens _ldcrsDeploymentConfigsList (\ s a -> s{_ldcrsDeploymentConfigsList = a}) . _Default . _Coerce;
 
-instance FromJSON ListDeploymentConfigsResponse where
-    parseJSON = withObject "ListDeploymentConfigsResponse" $ \o -> ListDeploymentConfigsResponse
-        <$> o .:? "deploymentConfigsList" .!= mempty
-        <*> o .:? "nextToken"
+-- | The response status code.
+ldcrsStatus :: Lens' ListDeploymentConfigsResponse Int
+ldcrsStatus = lens _ldcrsStatus (\ s a -> s{_ldcrsStatus = a});
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
@@ -1,153 +1,169 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.ListDeploymentGroups
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Lists the deployment groups for an application registered with the applicable
--- IAM user or AWS account.
+-- Lists the deployment groups for an application registered with the
+-- applicable IAM user or AWS account.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListDeploymentGroups.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListDeploymentGroups.html AWS API Reference> for ListDeploymentGroups.
 module Network.AWS.CodeDeploy.ListDeploymentGroups
     (
-    -- * Request
-      ListDeploymentGroups
-    -- ** Request constructor
-    , listDeploymentGroups
-    -- ** Request lenses
-    , ldgApplicationName
+    -- * Creating a Request
+      listDeploymentGroups
+    , ListDeploymentGroups
+    -- * Request Lenses
     , ldgNextToken
+    , ldgApplicationName
 
-    -- * Response
-    , ListDeploymentGroupsResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , listDeploymentGroupsResponse
-    -- ** Response lenses
-    , ldgrApplicationName
-    , ldgrDeploymentGroups
-    , ldgrNextToken
+    , ListDeploymentGroupsResponse
+    -- * Response Lenses
+    , ldgrsNextToken
+    , ldgrsApplicationName
+    , ldgrsDeploymentGroups
+    , ldgrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
-
-data ListDeploymentGroups = ListDeploymentGroups
-    { _ldgApplicationName :: Text
-    , _ldgNextToken       :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'ListDeploymentGroups' constructor.
+-- | Represents the input of a list deployment groups operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'listDeploymentGroups' smart constructor.
+data ListDeploymentGroups = ListDeploymentGroups'
+    { _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.
 --
--- * 'ldgApplicationName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ldgNextToken' @::@ 'Maybe' 'Text'
+-- * 'ldgNextToken'
 --
-listDeploymentGroups :: Text -- ^ 'ldgApplicationName'
-                     -> ListDeploymentGroups
-listDeploymentGroups p1 = ListDeploymentGroups
-    { _ldgApplicationName = p1
-    , _ldgNextToken       = Nothing
+-- * 'ldgApplicationName'
+listDeploymentGroups
+    :: Text -- ^ 'ldgApplicationName'
+    -> ListDeploymentGroups
+listDeploymentGroups pApplicationName_ =
+    ListDeploymentGroups'
+    { _ldgNextToken = Nothing
+    , _ldgApplicationName = pApplicationName_
     }
 
+-- | An identifier that was returned from the previous list deployment groups
+-- call, which 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});
+
 -- | The name of an existing AWS CodeDeploy application associated with the
 -- applicable IAM user or AWS account.
 ldgApplicationName :: Lens' ListDeploymentGroups Text
-ldgApplicationName =
-    lens _ldgApplicationName (\s a -> s { _ldgApplicationName = a })
+ldgApplicationName = lens _ldgApplicationName (\ s a -> s{_ldgApplicationName = a});
 
--- | An identifier that was returned from the previous list deployment groups
--- call, which 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 })
+instance AWSRequest ListDeploymentGroups where
+        type Sv ListDeploymentGroups = CodeDeploy
+        type Rs ListDeploymentGroups =
+             ListDeploymentGroupsResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 ListDeploymentGroupsResponse' <$>
+                   (x .?> "nextToken") <*> (x .?> "applicationName") <*>
+                     (x .?> "deploymentGroups" .!@ mempty)
+                     <*> (pure (fromEnum s)))
 
-data ListDeploymentGroupsResponse = ListDeploymentGroupsResponse
-    { _ldgrApplicationName  :: Maybe Text
-    , _ldgrDeploymentGroups :: List "deploymentGroups" Text
-    , _ldgrNextToken        :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
+instance ToHeaders ListDeploymentGroups where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.ListDeploymentGroups" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | 'ListDeploymentGroupsResponse' constructor.
+instance ToJSON ListDeploymentGroups where
+        toJSON ListDeploymentGroups'{..}
+          = object
+              ["nextToken" .= _ldgNextToken,
+               "applicationName" .= _ldgApplicationName]
+
+instance ToPath ListDeploymentGroups where
+        toPath = const "/"
+
+instance ToQuery ListDeploymentGroups where
+        toQuery = const mempty
+
+-- | Represents the output of a list deployment groups operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'listDeploymentGroupsResponse' smart constructor.
+data ListDeploymentGroupsResponse = ListDeploymentGroupsResponse'
+    { _ldgrsNextToken        :: !(Maybe Text)
+    , _ldgrsApplicationName  :: !(Maybe Text)
+    , _ldgrsDeploymentGroups :: !(Maybe [Text])
+    , _ldgrsStatus           :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListDeploymentGroupsResponse' with the minimum fields required to make a request.
 --
--- * 'ldgrApplicationName' @::@ 'Maybe' 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ldgrDeploymentGroups' @::@ ['Text']
+-- * 'ldgrsNextToken'
 --
--- * 'ldgrNextToken' @::@ 'Maybe' 'Text'
+-- * 'ldgrsApplicationName'
 --
-listDeploymentGroupsResponse :: ListDeploymentGroupsResponse
-listDeploymentGroupsResponse = ListDeploymentGroupsResponse
-    { _ldgrApplicationName  = Nothing
-    , _ldgrDeploymentGroups = mempty
-    , _ldgrNextToken        = Nothing
+-- * 'ldgrsDeploymentGroups'
+--
+-- * 'ldgrsStatus'
+listDeploymentGroupsResponse
+    :: Int -- ^ 'ldgrsStatus'
+    -> ListDeploymentGroupsResponse
+listDeploymentGroupsResponse pStatus_ =
+    ListDeploymentGroupsResponse'
+    { _ldgrsNextToken = Nothing
+    , _ldgrsApplicationName = Nothing
+    , _ldgrsDeploymentGroups = Nothing
+    , _ldgrsStatus = pStatus_
     }
 
--- | The application name.
-ldgrApplicationName :: Lens' ListDeploymentGroupsResponse (Maybe Text)
-ldgrApplicationName =
-    lens _ldgrApplicationName (\s a -> s { _ldgrApplicationName = a })
-
--- | A list of corresponding deployment group names.
-ldgrDeploymentGroups :: Lens' ListDeploymentGroupsResponse [Text]
-ldgrDeploymentGroups =
-    lens _ldgrDeploymentGroups (\s a -> s { _ldgrDeploymentGroups = a })
-        . _List
-
 -- | If the amount of information that is returned is significantly large, an
 -- identifier will also be returned, which can be used in a subsequent list
--- deployment groups call to return the next set of deployment groups in the
--- list.
-ldgrNextToken :: Lens' ListDeploymentGroupsResponse (Maybe Text)
-ldgrNextToken = lens _ldgrNextToken (\s a -> s { _ldgrNextToken = a })
-
-instance ToPath ListDeploymentGroups where
-    toPath = const "/"
-
-instance ToQuery ListDeploymentGroups where
-    toQuery = const mempty
-
-instance ToHeaders ListDeploymentGroups
-
-instance ToJSON ListDeploymentGroups where
-    toJSON ListDeploymentGroups{..} = object
-        [ "applicationName" .= _ldgApplicationName
-        , "nextToken"       .= _ldgNextToken
-        ]
+-- 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});
 
-instance AWSRequest ListDeploymentGroups where
-    type Sv ListDeploymentGroups = CodeDeploy
-    type Rs ListDeploymentGroups = ListDeploymentGroupsResponse
+-- | The application name.
+ldgrsApplicationName :: Lens' ListDeploymentGroupsResponse (Maybe Text)
+ldgrsApplicationName = lens _ldgrsApplicationName (\ s a -> s{_ldgrsApplicationName = a});
 
-    request  = post "ListDeploymentGroups"
-    response = jsonResponse
+-- | A list of corresponding deployment group names.
+ldgrsDeploymentGroups :: Lens' ListDeploymentGroupsResponse [Text]
+ldgrsDeploymentGroups = lens _ldgrsDeploymentGroups (\ s a -> s{_ldgrsDeploymentGroups = a}) . _Default . _Coerce;
 
-instance FromJSON ListDeploymentGroupsResponse where
-    parseJSON = withObject "ListDeploymentGroupsResponse" $ \o -> ListDeploymentGroupsResponse
-        <$> o .:? "applicationName"
-        <*> o .:? "deploymentGroups" .!= mempty
-        <*> o .:? "nextToken"
+-- | The response status code.
+ldgrsStatus :: Lens' ListDeploymentGroupsResponse Int
+ldgrsStatus = lens _ldgrsStatus (\ s a -> s{_ldgrsStatus = a});
diff --git a/gen/Network/AWS/CodeDeploy/ListDeploymentInstances.hs b/gen/Network/AWS/CodeDeploy/ListDeploymentInstances.hs
--- a/gen/Network/AWS/CodeDeploy/ListDeploymentInstances.hs
+++ b/gen/Network/AWS/CodeDeploy/ListDeploymentInstances.hs
@@ -1,160 +1,182 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.ListDeploymentInstances
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Lists the instances for a deployment associated with the applicable IAM user
--- or AWS account.
+-- Lists the instances for a deployment associated with the applicable IAM
+-- user or AWS account.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListDeploymentInstances.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListDeploymentInstances.html AWS API Reference> for ListDeploymentInstances.
 module Network.AWS.CodeDeploy.ListDeploymentInstances
     (
-    -- * Request
-      ListDeploymentInstances
-    -- ** Request constructor
-    , listDeploymentInstances
-    -- ** Request lenses
-    , ldiDeploymentId
+    -- * Creating a Request
+      listDeploymentInstances
+    , ListDeploymentInstances
+    -- * Request Lenses
     , ldiInstanceStatusFilter
     , ldiNextToken
+    , ldiDeploymentId
 
-    -- * Response
-    , ListDeploymentInstancesResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , listDeploymentInstancesResponse
-    -- ** Response lenses
-    , ldirInstancesList
-    , ldirNextToken
+    , ListDeploymentInstancesResponse
+    -- * Response Lenses
+    , ldirsNextToken
+    , ldirsInstancesList
+    , ldirsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
-
-data ListDeploymentInstances = ListDeploymentInstances
-    { _ldiDeploymentId         :: Text
-    , _ldiInstanceStatusFilter :: List "instanceStatusFilter" InstanceStatus
-    , _ldiNextToken            :: Maybe Text
-    } deriving (Eq, Read, Show)
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'ListDeploymentInstances' constructor.
+-- | Represents the input of a list deployment instances operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'listDeploymentInstances' smart constructor.
+data ListDeploymentInstances = ListDeploymentInstances'
+    { _ldiInstanceStatusFilter :: !(Maybe [InstanceStatus])
+    , _ldiNextToken            :: !(Maybe Text)
+    , _ldiDeploymentId         :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListDeploymentInstances' with the minimum fields required to make a request.
 --
--- * 'ldiDeploymentId' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ldiInstanceStatusFilter' @::@ ['InstanceStatus']
+-- * 'ldiInstanceStatusFilter'
 --
--- * 'ldiNextToken' @::@ 'Maybe' 'Text'
+-- * 'ldiNextToken'
 --
-listDeploymentInstances :: Text -- ^ 'ldiDeploymentId'
-                        -> ListDeploymentInstances
-listDeploymentInstances p1 = ListDeploymentInstances
-    { _ldiDeploymentId         = p1
-    , _ldiNextToken            = Nothing
-    , _ldiInstanceStatusFilter = mempty
+-- * 'ldiDeploymentId'
+listDeploymentInstances
+    :: Text -- ^ 'ldiDeploymentId'
+    -> ListDeploymentInstances
+listDeploymentInstances pDeploymentId_ =
+    ListDeploymentInstances'
+    { _ldiInstanceStatusFilter = Nothing
+    , _ldiNextToken = Nothing
+    , _ldiDeploymentId = pDeploymentId_
     }
 
--- | The unique ID of a deployment.
-ldiDeploymentId :: Lens' ListDeploymentInstances Text
-ldiDeploymentId = lens _ldiDeploymentId (\s a -> s { _ldiDeploymentId = a })
-
 -- | A subset of instances to list, by status:
 --
--- Pending: Include in the resulting list those instances with pending
--- deployments. InProgress: Include in the resulting list those instances with
--- in-progress deployments. Succeeded: Include in the resulting list those
--- instances with succeeded deployments. Failed: Include in the resulting list
--- those instances with failed deployments. Skipped: Include in the resulting
--- list those instances with skipped deployments. Unknown: Include in the
--- resulting list those instances with deployments in an unknown state.
+-- -   Pending: Include in the resulting list those instances with pending
+--     deployments.
+-- -   InProgress: Include in the resulting list those instances with
+--     in-progress deployments.
+-- -   Succeeded: Include in the resulting list those instances with
+--     succeeded deployments.
+-- -   Failed: Include in the resulting list those instances with failed
+--     deployments.
+-- -   Skipped: Include in the resulting list those instances with skipped
+--     deployments.
+-- -   Unknown: Include in the resulting list those instances with
+--     deployments in an unknown state.
 ldiInstanceStatusFilter :: Lens' ListDeploymentInstances [InstanceStatus]
-ldiInstanceStatusFilter =
-    lens _ldiInstanceStatusFilter (\s a -> s { _ldiInstanceStatusFilter = a })
-        . _List
+ldiInstanceStatusFilter = lens _ldiInstanceStatusFilter (\ s a -> s{_ldiInstanceStatusFilter = a}) . _Default . _Coerce;
 
--- | An identifier that was returned from the previous list deployment instances
--- call, which can be used to return the next set of deployment instances in the
--- list.
+-- | An identifier that was returned from the previous list deployment
+-- instances call, which 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 })
+ldiNextToken = lens _ldiNextToken (\ s a -> s{_ldiNextToken = a});
 
-data ListDeploymentInstancesResponse = ListDeploymentInstancesResponse
-    { _ldirInstancesList :: List "instancesList" Text
-    , _ldirNextToken     :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
+-- | The unique ID of a deployment.
+ldiDeploymentId :: Lens' ListDeploymentInstances Text
+ldiDeploymentId = lens _ldiDeploymentId (\ s a -> s{_ldiDeploymentId = a});
 
--- | 'ListDeploymentInstancesResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'ldirInstancesList' @::@ ['Text']
---
--- * 'ldirNextToken' @::@ 'Maybe' 'Text'
---
-listDeploymentInstancesResponse :: ListDeploymentInstancesResponse
-listDeploymentInstancesResponse = ListDeploymentInstancesResponse
-    { _ldirInstancesList = mempty
-    , _ldirNextToken     = Nothing
-    }
+instance AWSRequest ListDeploymentInstances where
+        type Sv ListDeploymentInstances = CodeDeploy
+        type Rs ListDeploymentInstances =
+             ListDeploymentInstancesResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 ListDeploymentInstancesResponse' <$>
+                   (x .?> "nextToken") <*>
+                     (x .?> "instancesList" .!@ mempty)
+                     <*> (pure (fromEnum s)))
 
--- | A list of instances IDs.
-ldirInstancesList :: Lens' ListDeploymentInstancesResponse [Text]
-ldirInstancesList =
-    lens _ldirInstancesList (\s a -> s { _ldirInstancesList = a })
-        . _List
+instance ToHeaders ListDeploymentInstances where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.ListDeploymentInstances" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | If the amount of information that is returned is significantly large, an
--- identifier will also be returned, which can be used in a subsequent list
--- deployment instances call to return the next set of deployment instances in
--- the list.
-ldirNextToken :: Lens' ListDeploymentInstancesResponse (Maybe Text)
-ldirNextToken = lens _ldirNextToken (\s a -> s { _ldirNextToken = a })
+instance ToJSON ListDeploymentInstances where
+        toJSON ListDeploymentInstances'{..}
+          = object
+              ["instanceStatusFilter" .= _ldiInstanceStatusFilter,
+               "nextToken" .= _ldiNextToken,
+               "deploymentId" .= _ldiDeploymentId]
 
 instance ToPath ListDeploymentInstances where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery ListDeploymentInstances where
-    toQuery = const mempty
+        toQuery = const mempty
 
-instance ToHeaders ListDeploymentInstances
+-- | Represents the output of a list deployment instances operation.
+--
+-- /See:/ 'listDeploymentInstancesResponse' smart constructor.
+data ListDeploymentInstancesResponse = ListDeploymentInstancesResponse'
+    { _ldirsNextToken     :: !(Maybe Text)
+    , _ldirsInstancesList :: !(Maybe [Text])
+    , _ldirsStatus        :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance ToJSON ListDeploymentInstances where
-    toJSON ListDeploymentInstances{..} = object
-        [ "deploymentId"         .= _ldiDeploymentId
-        , "nextToken"            .= _ldiNextToken
-        , "instanceStatusFilter" .= _ldiInstanceStatusFilter
-        ]
+-- | 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:
+--
+-- * 'ldirsNextToken'
+--
+-- * 'ldirsInstancesList'
+--
+-- * 'ldirsStatus'
+listDeploymentInstancesResponse
+    :: Int -- ^ 'ldirsStatus'
+    -> ListDeploymentInstancesResponse
+listDeploymentInstancesResponse pStatus_ =
+    ListDeploymentInstancesResponse'
+    { _ldirsNextToken = Nothing
+    , _ldirsInstancesList = Nothing
+    , _ldirsStatus = pStatus_
+    }
 
-instance AWSRequest ListDeploymentInstances where
-    type Sv ListDeploymentInstances = CodeDeploy
-    type Rs ListDeploymentInstances = ListDeploymentInstancesResponse
+-- | If the amount of information that is returned is significantly large, an
+-- identifier will also be returned, which can be used in a subsequent list
+-- 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});
 
-    request  = post "ListDeploymentInstances"
-    response = jsonResponse
+-- | A list of instances IDs.
+ldirsInstancesList :: Lens' ListDeploymentInstancesResponse [Text]
+ldirsInstancesList = lens _ldirsInstancesList (\ s a -> s{_ldirsInstancesList = a}) . _Default . _Coerce;
 
-instance FromJSON ListDeploymentInstancesResponse where
-    parseJSON = withObject "ListDeploymentInstancesResponse" $ \o -> ListDeploymentInstancesResponse
-        <$> o .:? "instancesList" .!= mempty
-        <*> o .:? "nextToken"
+-- | The response status code.
+ldirsStatus :: Lens' ListDeploymentInstancesResponse Int
+ldirsStatus = lens _ldirsStatus (\ s a -> s{_ldirsStatus = a});
diff --git a/gen/Network/AWS/CodeDeploy/ListDeployments.hs b/gen/Network/AWS/CodeDeploy/ListDeployments.hs
--- a/gen/Network/AWS/CodeDeploy/ListDeployments.hs
+++ b/gen/Network/AWS/CodeDeploy/ListDeployments.hs
@@ -1,178 +1,194 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.ListDeployments
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Lists the deployments within a deployment group for an application registered
--- with the applicable IAM user or AWS account.
+-- Lists the deployments within a deployment group for an application
+-- registered with the applicable IAM user or AWS account.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListDeployments.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListDeployments.html AWS API Reference> for ListDeployments.
 module Network.AWS.CodeDeploy.ListDeployments
     (
-    -- * Request
-      ListDeployments
-    -- ** Request constructor
-    , listDeployments
-    -- ** Request lenses
-    , ldApplicationName
+    -- * Creating a Request
+      listDeployments
+    , ListDeployments
+    -- * Request Lenses
     , ldCreateTimeRange
-    , ldDeploymentGroupName
-    , ldIncludeOnlyStatuses
     , ldNextToken
+    , ldIncludeOnlyStatuses
+    , ldApplicationName
+    , ldDeploymentGroupName
 
-    -- * Response
-    , ListDeploymentsResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , listDeploymentsResponse
-    -- ** Response lenses
-    , ldrDeployments
-    , ldrNextToken
+    , ListDeploymentsResponse
+    -- * Response Lenses
+    , ldrsNextToken
+    , ldrsDeployments
+    , ldrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
-
-data ListDeployments = ListDeployments
-    { _ldApplicationName     :: Maybe Text
-    , _ldCreateTimeRange     :: Maybe TimeRange
-    , _ldDeploymentGroupName :: Maybe Text
-    , _ldIncludeOnlyStatuses :: List "includeOnlyStatuses" DeploymentStatus
-    , _ldNextToken           :: Maybe Text
-    } deriving (Eq, Read, Show)
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'ListDeployments' constructor.
+-- | Represents the input of a list deployments operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /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)
+
+-- | Creates a value of 'ListDeployments' with the minimum fields required to make a request.
 --
--- * 'ldApplicationName' @::@ 'Maybe' 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ldCreateTimeRange' @::@ 'Maybe' 'TimeRange'
+-- * 'ldCreateTimeRange'
 --
--- * 'ldDeploymentGroupName' @::@ 'Maybe' 'Text'
+-- * 'ldNextToken'
 --
--- * 'ldIncludeOnlyStatuses' @::@ ['DeploymentStatus']
+-- * 'ldIncludeOnlyStatuses'
 --
--- * 'ldNextToken' @::@ 'Maybe' 'Text'
+-- * 'ldApplicationName'
 --
-listDeployments :: ListDeployments
-listDeployments = ListDeployments
-    { _ldApplicationName     = Nothing
+-- * 'ldDeploymentGroupName'
+listDeployments
+    :: ListDeployments
+listDeployments =
+    ListDeployments'
+    { _ldCreateTimeRange = Nothing
+    , _ldNextToken = Nothing
+    , _ldIncludeOnlyStatuses = Nothing
+    , _ldApplicationName = Nothing
     , _ldDeploymentGroupName = Nothing
-    , _ldIncludeOnlyStatuses = mempty
-    , _ldCreateTimeRange     = Nothing
-    , _ldNextToken           = Nothing
     }
 
+-- | A deployment creation start- and end-time range for returning a subset
+-- of the list of deployments.
+ldCreateTimeRange :: Lens' ListDeployments (Maybe TimeRange)
+ldCreateTimeRange = lens _ldCreateTimeRange (\ s a -> s{_ldCreateTimeRange = a});
+
+-- | An identifier that was returned from the previous list deployments call,
+-- which can be used to return the next set of deployments in the list.
+ldNextToken :: Lens' ListDeployments (Maybe Text)
+ldNextToken = lens _ldNextToken (\ s a -> s{_ldNextToken = a});
+
+-- | A subset of deployments to list, by status:
+--
+-- -   Created: Include in the resulting list created deployments.
+-- -   Queued: Include in the resulting list queued deployments.
+-- -   In Progress: Include in the resulting list in-progress deployments.
+-- -   Succeeded: Include in the resulting list succeeded deployments.
+-- -   Failed: Include in the resulting list failed deployments.
+-- -   Aborted: Include in the resulting list aborted deployments.
+ldIncludeOnlyStatuses :: Lens' ListDeployments [DeploymentStatus]
+ldIncludeOnlyStatuses = lens _ldIncludeOnlyStatuses (\ s a -> s{_ldIncludeOnlyStatuses = a}) . _Default . _Coerce;
+
 -- | The name of an existing AWS CodeDeploy application associated with the
 -- applicable IAM user or AWS account.
 ldApplicationName :: Lens' ListDeployments (Maybe Text)
-ldApplicationName =
-    lens _ldApplicationName (\s a -> s { _ldApplicationName = a })
-
--- | A deployment creation start- and end-time range for returning a subset of the
--- list of deployments.
-ldCreateTimeRange :: Lens' ListDeployments (Maybe TimeRange)
-ldCreateTimeRange =
-    lens _ldCreateTimeRange (\s a -> s { _ldCreateTimeRange = a })
+ldApplicationName = lens _ldApplicationName (\ s a -> s{_ldApplicationName = a});
 
 -- | The name of an existing deployment group for the specified application.
 ldDeploymentGroupName :: Lens' ListDeployments (Maybe Text)
-ldDeploymentGroupName =
-    lens _ldDeploymentGroupName (\s a -> s { _ldDeploymentGroupName = a })
+ldDeploymentGroupName = lens _ldDeploymentGroupName (\ s a -> s{_ldDeploymentGroupName = a});
 
--- | A subset of deployments to list, by status:
---
--- Created: Include in the resulting list created deployments. Queued: Include
--- in the resulting list queued deployments. In Progress: Include in the
--- resulting list in-progress deployments. Succeeded: Include in the resulting
--- list succeeded deployments. Failed: Include in the resulting list failed
--- deployments. Aborted: Include in the resulting list aborted deployments.
-ldIncludeOnlyStatuses :: Lens' ListDeployments [DeploymentStatus]
-ldIncludeOnlyStatuses =
-    lens _ldIncludeOnlyStatuses (\s a -> s { _ldIncludeOnlyStatuses = a })
-        . _List
+instance AWSRequest ListDeployments where
+        type Sv ListDeployments = CodeDeploy
+        type Rs ListDeployments = ListDeploymentsResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 ListDeploymentsResponse' <$>
+                   (x .?> "nextToken") <*>
+                     (x .?> "deployments" .!@ mempty)
+                     <*> (pure (fromEnum s)))
 
--- | An identifier that was returned from the previous list deployments call,
--- which can be used to return the next set of deployments in the list.
-ldNextToken :: Lens' ListDeployments (Maybe Text)
-ldNextToken = lens _ldNextToken (\s a -> s { _ldNextToken = a })
+instance ToHeaders ListDeployments where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.ListDeployments" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
-data ListDeploymentsResponse = ListDeploymentsResponse
-    { _ldrDeployments :: List "deployments" Text
-    , _ldrNextToken   :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
+instance ToJSON ListDeployments where
+        toJSON ListDeployments'{..}
+          = object
+              ["createTimeRange" .= _ldCreateTimeRange,
+               "nextToken" .= _ldNextToken,
+               "includeOnlyStatuses" .= _ldIncludeOnlyStatuses,
+               "applicationName" .= _ldApplicationName,
+               "deploymentGroupName" .= _ldDeploymentGroupName]
 
--- | 'ListDeploymentsResponse' constructor.
+instance ToPath ListDeployments where
+        toPath = const "/"
+
+instance ToQuery ListDeployments where
+        toQuery = const mempty
+
+-- | Represents the output of a list deployments operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'listDeploymentsResponse' smart constructor.
+data ListDeploymentsResponse = ListDeploymentsResponse'
+    { _ldrsNextToken   :: !(Maybe Text)
+    , _ldrsDeployments :: !(Maybe [Text])
+    , _ldrsStatus      :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListDeploymentsResponse' with the minimum fields required to make a request.
 --
--- * 'ldrDeployments' @::@ ['Text']
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ldrNextToken' @::@ 'Maybe' 'Text'
+-- * 'ldrsNextToken'
 --
-listDeploymentsResponse :: ListDeploymentsResponse
-listDeploymentsResponse = ListDeploymentsResponse
-    { _ldrDeployments = mempty
-    , _ldrNextToken   = Nothing
+-- * 'ldrsDeployments'
+--
+-- * 'ldrsStatus'
+listDeploymentsResponse
+    :: Int -- ^ 'ldrsStatus'
+    -> ListDeploymentsResponse
+listDeploymentsResponse pStatus_ =
+    ListDeploymentsResponse'
+    { _ldrsNextToken = Nothing
+    , _ldrsDeployments = Nothing
+    , _ldrsStatus = pStatus_
     }
 
--- | A list of deployment IDs.
-ldrDeployments :: Lens' ListDeploymentsResponse [Text]
-ldrDeployments = lens _ldrDeployments (\s a -> s { _ldrDeployments = a }) . _List
-
 -- | If the amount of information that is returned is significantly large, an
 -- identifier will also be returned, which can be used in a subsequent list
 -- deployments call to return the next set of deployments in the list.
-ldrNextToken :: Lens' ListDeploymentsResponse (Maybe Text)
-ldrNextToken = lens _ldrNextToken (\s a -> s { _ldrNextToken = a })
-
-instance ToPath ListDeployments where
-    toPath = const "/"
-
-instance ToQuery ListDeployments where
-    toQuery = const mempty
-
-instance ToHeaders ListDeployments
-
-instance ToJSON ListDeployments where
-    toJSON ListDeployments{..} = object
-        [ "applicationName"     .= _ldApplicationName
-        , "deploymentGroupName" .= _ldDeploymentGroupName
-        , "includeOnlyStatuses" .= _ldIncludeOnlyStatuses
-        , "createTimeRange"     .= _ldCreateTimeRange
-        , "nextToken"           .= _ldNextToken
-        ]
-
-instance AWSRequest ListDeployments where
-    type Sv ListDeployments = CodeDeploy
-    type Rs ListDeployments = ListDeploymentsResponse
+ldrsNextToken :: Lens' ListDeploymentsResponse (Maybe Text)
+ldrsNextToken = lens _ldrsNextToken (\ s a -> s{_ldrsNextToken = a});
 
-    request  = post "ListDeployments"
-    response = jsonResponse
+-- | A list of deployment IDs.
+ldrsDeployments :: Lens' ListDeploymentsResponse [Text]
+ldrsDeployments = lens _ldrsDeployments (\ s a -> s{_ldrsDeployments = a}) . _Default . _Coerce;
 
-instance FromJSON ListDeploymentsResponse where
-    parseJSON = withObject "ListDeploymentsResponse" $ \o -> ListDeploymentsResponse
-        <$> o .:? "deployments" .!= mempty
-        <*> o .:? "nextToken"
+-- | The response status code.
+ldrsStatus :: Lens' ListDeploymentsResponse Int
+ldrsStatus = lens _ldrsStatus (\ s a -> s{_ldrsStatus = a});
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
@@ -1,158 +1,179 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.ListOnPremisesInstances
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Gets a list of one or more on-premises instance names.
+-- Gets a list of one or more on-premises instance names.
 --
 -- Unless otherwise specified, both registered and deregistered on-premises
 -- instance names will be listed. To list only registered or deregistered
 -- on-premises instance names, use the registration status parameter.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListOnPremisesInstances.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListOnPremisesInstances.html AWS API Reference> for ListOnPremisesInstances.
 module Network.AWS.CodeDeploy.ListOnPremisesInstances
     (
-    -- * Request
-      ListOnPremisesInstances
-    -- ** Request constructor
-    , listOnPremisesInstances
-    -- ** Request lenses
+    -- * Creating a Request
+      listOnPremisesInstances
+    , ListOnPremisesInstances
+    -- * Request Lenses
+    , lopiTagFilters
     , lopiNextToken
     , lopiRegistrationStatus
-    , lopiTagFilters
 
-    -- * Response
-    , ListOnPremisesInstancesResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , listOnPremisesInstancesResponse
-    -- ** Response lenses
-    , lopirInstanceNames
-    , lopirNextToken
+    , ListOnPremisesInstancesResponse
+    -- * Response Lenses
+    , lopirsNextToken
+    , lopirsInstanceNames
+    , lopirsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
-
-data ListOnPremisesInstances = ListOnPremisesInstances
-    { _lopiNextToken          :: Maybe Text
-    , _lopiRegistrationStatus :: Maybe RegistrationStatus
-    , _lopiTagFilters         :: List "tagFilters" TagFilter
-    } deriving (Eq, Read, Show)
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'ListOnPremisesInstances' constructor.
+-- | Represents the input of a list on-premises instances operation.
 --
--- The fields accessible through corresponding lenses are:
+-- .
 --
--- * 'lopiNextToken' @::@ 'Maybe' 'Text'
+-- /See:/ 'listOnPremisesInstances' smart constructor.
+data ListOnPremisesInstances = ListOnPremisesInstances'
+    { _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.
 --
--- * 'lopiRegistrationStatus' @::@ 'Maybe' 'RegistrationStatus'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'lopiTagFilters' @::@ ['TagFilter']
+-- * 'lopiTagFilters'
 --
-listOnPremisesInstances :: ListOnPremisesInstances
-listOnPremisesInstances = ListOnPremisesInstances
-    { _lopiRegistrationStatus = Nothing
-    , _lopiTagFilters         = mempty
-    , _lopiNextToken          = Nothing
+-- * 'lopiNextToken'
+--
+-- * 'lopiRegistrationStatus'
+listOnPremisesInstances
+    :: ListOnPremisesInstances
+listOnPremisesInstances =
+    ListOnPremisesInstances'
+    { _lopiTagFilters = Nothing
+    , _lopiNextToken = Nothing
+    , _lopiRegistrationStatus = Nothing
     }
 
--- | An identifier that was returned from the previous list on-premises instances
--- call, which can be used to return the next set of on-premises instances in
--- the list.
+-- | The on-premises instance tags that will be used to restrict the
+-- corresponding on-premises instance names that are returned.
+lopiTagFilters :: Lens' ListOnPremisesInstances [TagFilter]
+lopiTagFilters = lens _lopiTagFilters (\ s a -> s{_lopiTagFilters = a}) . _Default . _Coerce;
+
+-- | An identifier that was returned from the previous list on-premises
+-- instances call, which can be used to return the next set of on-premises
+-- instances in the list.
 lopiNextToken :: Lens' ListOnPremisesInstances (Maybe Text)
-lopiNextToken = lens _lopiNextToken (\s a -> s { _lopiNextToken = a })
+lopiNextToken = lens _lopiNextToken (\ s a -> s{_lopiNextToken = a});
 
 -- | The on-premises instances registration status:
 --
--- Deregistered: Include in the resulting list deregistered on-premises
--- instances. Registered: Include in the resulting list registered on-premises
--- instances.
+-- -   Deregistered: Include in the resulting list deregistered on-premises
+--     instances.
+-- -   Registered: Include in the resulting list registered on-premises
+--     instances.
 lopiRegistrationStatus :: Lens' ListOnPremisesInstances (Maybe RegistrationStatus)
-lopiRegistrationStatus =
-    lens _lopiRegistrationStatus (\s a -> s { _lopiRegistrationStatus = a })
+lopiRegistrationStatus = lens _lopiRegistrationStatus (\ s a -> s{_lopiRegistrationStatus = a});
 
--- | The on-premises instance tags that will be used to restrict the corresponding
--- on-premises instance names that are returned.
-lopiTagFilters :: Lens' ListOnPremisesInstances [TagFilter]
-lopiTagFilters = lens _lopiTagFilters (\s a -> s { _lopiTagFilters = a }) . _List
+instance AWSRequest ListOnPremisesInstances where
+        type Sv ListOnPremisesInstances = CodeDeploy
+        type Rs ListOnPremisesInstances =
+             ListOnPremisesInstancesResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 ListOnPremisesInstancesResponse' <$>
+                   (x .?> "nextToken") <*>
+                     (x .?> "instanceNames" .!@ mempty)
+                     <*> (pure (fromEnum s)))
 
-data ListOnPremisesInstancesResponse = ListOnPremisesInstancesResponse
-    { _lopirInstanceNames :: List "instanceNames" Text
-    , _lopirNextToken     :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
+instance ToHeaders ListOnPremisesInstances where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.ListOnPremisesInstances" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | 'ListOnPremisesInstancesResponse' constructor.
+instance ToJSON ListOnPremisesInstances where
+        toJSON ListOnPremisesInstances'{..}
+          = object
+              ["tagFilters" .= _lopiTagFilters,
+               "nextToken" .= _lopiNextToken,
+               "registrationStatus" .= _lopiRegistrationStatus]
+
+instance ToPath ListOnPremisesInstances where
+        toPath = const "/"
+
+instance ToQuery ListOnPremisesInstances where
+        toQuery = const mempty
+
+-- | Represents the output of list on-premises instances operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'listOnPremisesInstancesResponse' smart constructor.
+data ListOnPremisesInstancesResponse = ListOnPremisesInstancesResponse'
+    { _lopirsNextToken     :: !(Maybe Text)
+    , _lopirsInstanceNames :: !(Maybe [Text])
+    , _lopirsStatus        :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListOnPremisesInstancesResponse' with the minimum fields required to make a request.
 --
--- * 'lopirInstanceNames' @::@ ['Text']
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'lopirNextToken' @::@ 'Maybe' 'Text'
+-- * 'lopirsNextToken'
 --
-listOnPremisesInstancesResponse :: ListOnPremisesInstancesResponse
-listOnPremisesInstancesResponse = ListOnPremisesInstancesResponse
-    { _lopirInstanceNames = mempty
-    , _lopirNextToken     = Nothing
+-- * 'lopirsInstanceNames'
+--
+-- * 'lopirsStatus'
+listOnPremisesInstancesResponse
+    :: Int -- ^ 'lopirsStatus'
+    -> ListOnPremisesInstancesResponse
+listOnPremisesInstancesResponse pStatus_ =
+    ListOnPremisesInstancesResponse'
+    { _lopirsNextToken = Nothing
+    , _lopirsInstanceNames = Nothing
+    , _lopirsStatus = pStatus_
     }
 
--- | The list of matching on-premises instance names.
-lopirInstanceNames :: Lens' ListOnPremisesInstancesResponse [Text]
-lopirInstanceNames =
-    lens _lopirInstanceNames (\s a -> s { _lopirInstanceNames = a })
-        . _List
-
 -- | If the amount of information that is returned is significantly large, an
 -- identifier will also be returned, which can be used in a subsequent list
--- on-premises instances call to return the next set of on-premises instances in
--- the list.
-lopirNextToken :: Lens' ListOnPremisesInstancesResponse (Maybe Text)
-lopirNextToken = lens _lopirNextToken (\s a -> s { _lopirNextToken = a })
-
-instance ToPath ListOnPremisesInstances where
-    toPath = const "/"
-
-instance ToQuery ListOnPremisesInstances where
-    toQuery = const mempty
-
-instance ToHeaders ListOnPremisesInstances
-
-instance ToJSON ListOnPremisesInstances where
-    toJSON ListOnPremisesInstances{..} = object
-        [ "registrationStatus" .= _lopiRegistrationStatus
-        , "tagFilters"         .= _lopiTagFilters
-        , "nextToken"          .= _lopiNextToken
-        ]
-
-instance AWSRequest ListOnPremisesInstances where
-    type Sv ListOnPremisesInstances = CodeDeploy
-    type Rs ListOnPremisesInstances = ListOnPremisesInstancesResponse
+-- 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});
 
-    request  = post "ListOnPremisesInstances"
-    response = jsonResponse
+-- | The list of matching on-premises instance names.
+lopirsInstanceNames :: Lens' ListOnPremisesInstancesResponse [Text]
+lopirsInstanceNames = lens _lopirsInstanceNames (\ s a -> s{_lopirsInstanceNames = a}) . _Default . _Coerce;
 
-instance FromJSON ListOnPremisesInstancesResponse where
-    parseJSON = withObject "ListOnPremisesInstancesResponse" $ \o -> ListOnPremisesInstancesResponse
-        <$> o .:? "instanceNames" .!= mempty
-        <*> o .:? "nextToken"
+-- | The response status code.
+lopirsStatus :: Lens' ListOnPremisesInstancesResponse Int
+lopirsStatus = lens _lopirsStatus (\ s a -> s{_lopirsStatus = a});
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
@@ -1,118 +1,128 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.RegisterApplicationRevision
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Registers with AWS CodeDeploy a revision for the specified application.
+-- Registers with AWS CodeDeploy a revision for the specified application.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_RegisterApplicationRevision.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_RegisterApplicationRevision.html AWS API Reference> for RegisterApplicationRevision.
 module Network.AWS.CodeDeploy.RegisterApplicationRevision
     (
-    -- * Request
-      RegisterApplicationRevision
-    -- ** Request constructor
-    , registerApplicationRevision
-    -- ** Request lenses
-    , rarApplicationName
+    -- * Creating a Request
+      registerApplicationRevision
+    , RegisterApplicationRevision
+    -- * Request Lenses
     , rarDescription
+    , rarApplicationName
     , rarRevision
 
-    -- * Response
-    , RegisterApplicationRevisionResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , registerApplicationRevisionResponse
+    , RegisterApplicationRevisionResponse
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
-
-data RegisterApplicationRevision = RegisterApplicationRevision
-    { _rarApplicationName :: Text
-    , _rarDescription     :: Maybe Text
-    , _rarRevision        :: RevisionLocation
-    } deriving (Eq, Read, Show)
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'RegisterApplicationRevision' constructor.
+-- | Represents the input of a register application revision operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'registerApplicationRevision' smart constructor.
+data RegisterApplicationRevision = RegisterApplicationRevision'
+    { _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.
 --
--- * 'rarApplicationName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'rarDescription' @::@ 'Maybe' 'Text'
+-- * 'rarDescription'
 --
--- * 'rarRevision' @::@ 'RevisionLocation'
+-- * 'rarApplicationName'
 --
-registerApplicationRevision :: Text -- ^ 'rarApplicationName'
-                            -> RevisionLocation -- ^ 'rarRevision'
-                            -> RegisterApplicationRevision
-registerApplicationRevision p1 p2 = RegisterApplicationRevision
-    { _rarApplicationName = p1
-    , _rarRevision        = p2
-    , _rarDescription     = Nothing
+-- * 'rarRevision'
+registerApplicationRevision
+    :: Text -- ^ 'rarApplicationName'
+    -> RevisionLocation -- ^ 'rarRevision'
+    -> RegisterApplicationRevision
+registerApplicationRevision pApplicationName_ 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});
+
 -- | The name of an existing AWS CodeDeploy application associated with the
 -- applicable IAM user or AWS account.
 rarApplicationName :: Lens' RegisterApplicationRevision Text
-rarApplicationName =
-    lens _rarApplicationName (\s a -> s { _rarApplicationName = a })
-
--- | A comment about the revision.
-rarDescription :: Lens' RegisterApplicationRevision (Maybe Text)
-rarDescription = lens _rarDescription (\s a -> s { _rarDescription = a })
+rarApplicationName = lens _rarApplicationName (\ s a -> s{_rarApplicationName = a});
 
 -- | Information about the application revision to register, including the
--- revision's type and its location.
+-- revision\'s type and its location.
 rarRevision :: Lens' RegisterApplicationRevision RevisionLocation
-rarRevision = lens _rarRevision (\s a -> s { _rarRevision = a })
+rarRevision = lens _rarRevision (\ s a -> s{_rarRevision = a});
 
-data RegisterApplicationRevisionResponse = RegisterApplicationRevisionResponse
-    deriving (Eq, Ord, Read, Show, Generic)
+instance AWSRequest RegisterApplicationRevision where
+        type Sv RegisterApplicationRevision = CodeDeploy
+        type Rs RegisterApplicationRevision =
+             RegisterApplicationRevisionResponse
+        request = postJSON
+        response
+          = receiveNull RegisterApplicationRevisionResponse'
 
--- | 'RegisterApplicationRevisionResponse' constructor.
-registerApplicationRevisionResponse :: RegisterApplicationRevisionResponse
-registerApplicationRevisionResponse = RegisterApplicationRevisionResponse
+instance ToHeaders RegisterApplicationRevision where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.RegisterApplicationRevision" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
+instance ToJSON RegisterApplicationRevision where
+        toJSON RegisterApplicationRevision'{..}
+          = object
+              ["description" .= _rarDescription,
+               "applicationName" .= _rarApplicationName,
+               "revision" .= _rarRevision]
+
 instance ToPath RegisterApplicationRevision where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery RegisterApplicationRevision where
-    toQuery = const mempty
-
-instance ToHeaders RegisterApplicationRevision
-
-instance ToJSON RegisterApplicationRevision where
-    toJSON RegisterApplicationRevision{..} = object
-        [ "applicationName" .= _rarApplicationName
-        , "description"     .= _rarDescription
-        , "revision"        .= _rarRevision
-        ]
+        toQuery = const mempty
 
-instance AWSRequest RegisterApplicationRevision where
-    type Sv RegisterApplicationRevision = CodeDeploy
-    type Rs RegisterApplicationRevision = RegisterApplicationRevisionResponse
+-- | /See:/ 'registerApplicationRevisionResponse' smart constructor.
+data RegisterApplicationRevisionResponse =
+    RegisterApplicationRevisionResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-    request  = post "RegisterApplicationRevision"
-    response = nullResponse RegisterApplicationRevisionResponse
+-- | Creates a value of 'RegisterApplicationRevisionResponse' with the minimum fields required to make a request.
+--
+registerApplicationRevisionResponse
+    :: RegisterApplicationRevisionResponse
+registerApplicationRevisionResponse = RegisterApplicationRevisionResponse'
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
@@ -1,105 +1,116 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.RegisterOnPremisesInstance
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Registers an on-premises instance.
+-- Registers an on-premises instance.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_RegisterOnPremisesInstance.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_RegisterOnPremisesInstance.html AWS API Reference> for RegisterOnPremisesInstance.
 module Network.AWS.CodeDeploy.RegisterOnPremisesInstance
     (
-    -- * Request
-      RegisterOnPremisesInstance
-    -- ** Request constructor
-    , registerOnPremisesInstance
-    -- ** Request lenses
-    , ropiIamUserArn
+    -- * Creating a Request
+      registerOnPremisesInstance
+    , RegisterOnPremisesInstance
+    -- * Request Lenses
     , ropiInstanceName
+    , ropiIamUserARN
 
-    -- * Response
-    , RegisterOnPremisesInstanceResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , registerOnPremisesInstanceResponse
+    , RegisterOnPremisesInstanceResponse
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
-
-data RegisterOnPremisesInstance = RegisterOnPremisesInstance
-    { _ropiIamUserArn   :: Text
-    , _ropiInstanceName :: Text
-    } deriving (Eq, Ord, Read, Show)
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'RegisterOnPremisesInstance' constructor.
+-- | Represents the input of register on-premises instance operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'registerOnPremisesInstance' smart constructor.
+data RegisterOnPremisesInstance = RegisterOnPremisesInstance'
+    { _ropiInstanceName :: !Text
+    , _ropiIamUserARN   :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RegisterOnPremisesInstance' with the minimum fields required to make a request.
 --
--- * 'ropiIamUserArn' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ropiInstanceName' @::@ 'Text'
+-- * 'ropiInstanceName'
 --
-registerOnPremisesInstance :: Text -- ^ 'ropiInstanceName'
-                           -> Text -- ^ 'ropiIamUserArn'
-                           -> RegisterOnPremisesInstance
-registerOnPremisesInstance p1 p2 = RegisterOnPremisesInstance
-    { _ropiInstanceName = p1
-    , _ropiIamUserArn   = p2
+-- * 'ropiIamUserARN'
+registerOnPremisesInstance
+    :: Text -- ^ 'ropiInstanceName'
+    -> Text -- ^ 'ropiIamUserARN'
+    -> RegisterOnPremisesInstance
+registerOnPremisesInstance pInstanceName_ pIamUserARN_ =
+    RegisterOnPremisesInstance'
+    { _ropiInstanceName = pInstanceName_
+    , _ropiIamUserARN = pIamUserARN_
     }
 
--- | The ARN of the IAM user to associate with the on-premises instance.
-ropiIamUserArn :: Lens' RegisterOnPremisesInstance Text
-ropiIamUserArn = lens _ropiIamUserArn (\s a -> s { _ropiIamUserArn = a })
-
 -- | The name of the on-premises instance to register.
 ropiInstanceName :: Lens' RegisterOnPremisesInstance Text
-ropiInstanceName = lens _ropiInstanceName (\s a -> s { _ropiInstanceName = a })
+ropiInstanceName = lens _ropiInstanceName (\ s a -> s{_ropiInstanceName = a});
 
-data RegisterOnPremisesInstanceResponse = RegisterOnPremisesInstanceResponse
-    deriving (Eq, Ord, Read, Show, Generic)
+-- | The ARN of the IAM user to associate with the on-premises instance.
+ropiIamUserARN :: Lens' RegisterOnPremisesInstance Text
+ropiIamUserARN = lens _ropiIamUserARN (\ s a -> s{_ropiIamUserARN = a});
 
--- | 'RegisterOnPremisesInstanceResponse' constructor.
-registerOnPremisesInstanceResponse :: RegisterOnPremisesInstanceResponse
-registerOnPremisesInstanceResponse = RegisterOnPremisesInstanceResponse
+instance AWSRequest RegisterOnPremisesInstance where
+        type Sv RegisterOnPremisesInstance = CodeDeploy
+        type Rs RegisterOnPremisesInstance =
+             RegisterOnPremisesInstanceResponse
+        request = postJSON
+        response
+          = receiveNull RegisterOnPremisesInstanceResponse'
 
-instance ToPath RegisterOnPremisesInstance where
-    toPath = const "/"
+instance ToHeaders RegisterOnPremisesInstance where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.RegisterOnPremisesInstance" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
-instance ToQuery RegisterOnPremisesInstance where
-    toQuery = const mempty
+instance ToJSON RegisterOnPremisesInstance where
+        toJSON RegisterOnPremisesInstance'{..}
+          = object
+              ["instanceName" .= _ropiInstanceName,
+               "iamUserArn" .= _ropiIamUserARN]
 
-instance ToHeaders RegisterOnPremisesInstance
+instance ToPath RegisterOnPremisesInstance where
+        toPath = const "/"
 
-instance ToJSON RegisterOnPremisesInstance where
-    toJSON RegisterOnPremisesInstance{..} = object
-        [ "instanceName" .= _ropiInstanceName
-        , "iamUserArn"   .= _ropiIamUserArn
-        ]
+instance ToQuery RegisterOnPremisesInstance where
+        toQuery = const mempty
 
-instance AWSRequest RegisterOnPremisesInstance where
-    type Sv RegisterOnPremisesInstance = CodeDeploy
-    type Rs RegisterOnPremisesInstance = RegisterOnPremisesInstanceResponse
+-- | /See:/ 'registerOnPremisesInstanceResponse' smart constructor.
+data RegisterOnPremisesInstanceResponse =
+    RegisterOnPremisesInstanceResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-    request  = post "RegisterOnPremisesInstance"
-    response = nullResponse RegisterOnPremisesInstanceResponse
+-- | Creates a value of 'RegisterOnPremisesInstanceResponse' with the minimum fields required to make a request.
+--
+registerOnPremisesInstanceResponse
+    :: RegisterOnPremisesInstanceResponse
+registerOnPremisesInstanceResponse = RegisterOnPremisesInstanceResponse'
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
@@ -1,105 +1,123 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.RemoveTagsFromOnPremisesInstances
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Removes one or more tags from one or more on-premises instances.
+-- Removes one or more tags from one or more on-premises instances.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_RemoveTagsFromOnPremisesInstances.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_RemoveTagsFromOnPremisesInstances.html AWS API Reference> for RemoveTagsFromOnPremisesInstances.
 module Network.AWS.CodeDeploy.RemoveTagsFromOnPremisesInstances
     (
-    -- * Request
-      RemoveTagsFromOnPremisesInstances
-    -- ** Request constructor
-    , removeTagsFromOnPremisesInstances
-    -- ** Request lenses
-    , rtfopiInstanceNames
+    -- * Creating a Request
+      removeTagsFromOnPremisesInstances
+    , RemoveTagsFromOnPremisesInstances
+    -- * Request Lenses
     , rtfopiTags
+    , rtfopiInstanceNames
 
-    -- * Response
-    , RemoveTagsFromOnPremisesInstancesResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , removeTagsFromOnPremisesInstancesResponse
+    , RemoveTagsFromOnPremisesInstancesResponse
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
-
-data RemoveTagsFromOnPremisesInstances = RemoveTagsFromOnPremisesInstances
-    { _rtfopiInstanceNames :: List "instanceNames" Text
-    , _rtfopiTags          :: List "tags" Tag
-    } deriving (Eq, Read, Show)
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'RemoveTagsFromOnPremisesInstances' constructor.
+-- | Represents the input of a remove tags from on-premises instances
+-- operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'removeTagsFromOnPremisesInstances' smart constructor.
+data RemoveTagsFromOnPremisesInstances = RemoveTagsFromOnPremisesInstances'
+    { _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.
 --
--- * 'rtfopiInstanceNames' @::@ ['Text']
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'rtfopiTags' @::@ ['Tag']
+-- * 'rtfopiTags'
 --
-removeTagsFromOnPremisesInstances :: RemoveTagsFromOnPremisesInstances
-removeTagsFromOnPremisesInstances = RemoveTagsFromOnPremisesInstances
-    { _rtfopiTags          = mempty
+-- * 'rtfopiInstanceNames'
+removeTagsFromOnPremisesInstances
+    :: RemoveTagsFromOnPremisesInstances
+removeTagsFromOnPremisesInstances =
+    RemoveTagsFromOnPremisesInstances'
+    { _rtfopiTags = mempty
     , _rtfopiInstanceNames = mempty
     }
 
--- | The names of the on-premises instances to remove tags from.
-rtfopiInstanceNames :: Lens' RemoveTagsFromOnPremisesInstances [Text]
-rtfopiInstanceNames =
-    lens _rtfopiInstanceNames (\s a -> s { _rtfopiInstanceNames = a })
-        . _List
-
 -- | The tag key-value pairs to remove from the on-premises instances.
 rtfopiTags :: Lens' RemoveTagsFromOnPremisesInstances [Tag]
-rtfopiTags = lens _rtfopiTags (\s a -> s { _rtfopiTags = a }) . _List
+rtfopiTags = lens _rtfopiTags (\ s a -> s{_rtfopiTags = a}) . _Coerce;
 
-data RemoveTagsFromOnPremisesInstancesResponse = RemoveTagsFromOnPremisesInstancesResponse
-    deriving (Eq, Ord, Read, Show, Generic)
+-- | The names of the on-premises instances to remove tags from.
+rtfopiInstanceNames :: Lens' RemoveTagsFromOnPremisesInstances [Text]
+rtfopiInstanceNames = lens _rtfopiInstanceNames (\ s a -> s{_rtfopiInstanceNames = a}) . _Coerce;
 
--- | 'RemoveTagsFromOnPremisesInstancesResponse' constructor.
-removeTagsFromOnPremisesInstancesResponse :: RemoveTagsFromOnPremisesInstancesResponse
-removeTagsFromOnPremisesInstancesResponse = RemoveTagsFromOnPremisesInstancesResponse
+instance AWSRequest RemoveTagsFromOnPremisesInstances
+         where
+        type Sv RemoveTagsFromOnPremisesInstances =
+             CodeDeploy
+        type Rs RemoveTagsFromOnPremisesInstances =
+             RemoveTagsFromOnPremisesInstancesResponse
+        request = postJSON
+        response
+          = receiveNull
+              RemoveTagsFromOnPremisesInstancesResponse'
 
-instance ToPath RemoveTagsFromOnPremisesInstances where
-    toPath = const "/"
+instance ToHeaders RemoveTagsFromOnPremisesInstances
+         where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.RemoveTagsFromOnPremisesInstances"
+                       :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
-instance ToQuery RemoveTagsFromOnPremisesInstances where
-    toQuery = const mempty
+instance ToJSON RemoveTagsFromOnPremisesInstances
+         where
+        toJSON RemoveTagsFromOnPremisesInstances'{..}
+          = object
+              ["tags" .= _rtfopiTags,
+               "instanceNames" .= _rtfopiInstanceNames]
 
-instance ToHeaders RemoveTagsFromOnPremisesInstances
+instance ToPath RemoveTagsFromOnPremisesInstances
+         where
+        toPath = const "/"
 
-instance ToJSON RemoveTagsFromOnPremisesInstances where
-    toJSON RemoveTagsFromOnPremisesInstances{..} = object
-        [ "tags"          .= _rtfopiTags
-        , "instanceNames" .= _rtfopiInstanceNames
-        ]
+instance ToQuery RemoveTagsFromOnPremisesInstances
+         where
+        toQuery = const mempty
 
-instance AWSRequest RemoveTagsFromOnPremisesInstances where
-    type Sv RemoveTagsFromOnPremisesInstances = CodeDeploy
-    type Rs RemoveTagsFromOnPremisesInstances = RemoveTagsFromOnPremisesInstancesResponse
+-- | /See:/ 'removeTagsFromOnPremisesInstancesResponse' smart constructor.
+data RemoveTagsFromOnPremisesInstancesResponse =
+    RemoveTagsFromOnPremisesInstancesResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-    request  = post "RemoveTagsFromOnPremisesInstances"
-    response = nullResponse RemoveTagsFromOnPremisesInstancesResponse
+-- | Creates a value of 'RemoveTagsFromOnPremisesInstancesResponse' with the minimum fields required to make a request.
+--
+removeTagsFromOnPremisesInstancesResponse
+    :: RemoveTagsFromOnPremisesInstancesResponse
+removeTagsFromOnPremisesInstancesResponse =
+    RemoveTagsFromOnPremisesInstancesResponse'
diff --git a/gen/Network/AWS/CodeDeploy/StopDeployment.hs b/gen/Network/AWS/CodeDeploy/StopDeployment.hs
--- a/gen/Network/AWS/CodeDeploy/StopDeployment.hs
+++ b/gen/Network/AWS/CodeDeploy/StopDeployment.hs
@@ -1,125 +1,129 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.StopDeployment
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Attempts to stop an ongoing deployment.
+-- Attempts to stop an ongoing deployment.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_StopDeployment.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_StopDeployment.html AWS API Reference> for StopDeployment.
 module Network.AWS.CodeDeploy.StopDeployment
     (
-    -- * Request
-      StopDeployment
-    -- ** Request constructor
-    , stopDeployment
-    -- ** Request lenses
+    -- * Creating a Request
+      stopDeployment
+    , StopDeployment
+    -- * Request Lenses
     , sdDeploymentId
 
-    -- * Response
-    , StopDeploymentResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , stopDeploymentResponse
-    -- ** Response lenses
-    , sdrStatus
-    , sdrStatusMessage
+    , StopDeploymentResponse
+    -- * Response Lenses
+    , sdrsStatusMessage
+    , sdrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-newtype StopDeployment = StopDeployment
+-- | Represents the input of a stop deployment operation.
+--
+-- /See:/ 'stopDeployment' smart constructor.
+newtype StopDeployment = StopDeployment'
     { _sdDeploymentId :: Text
-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'StopDeployment' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'StopDeployment' with the minimum fields required to make a request.
 --
--- * 'sdDeploymentId' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
-stopDeployment :: Text -- ^ 'sdDeploymentId'
-               -> StopDeployment
-stopDeployment p1 = StopDeployment
-    { _sdDeploymentId = p1
+-- * 'sdDeploymentId'
+stopDeployment
+    :: Text -- ^ 'sdDeploymentId'
+    -> StopDeployment
+stopDeployment pDeploymentId_ =
+    StopDeployment'
+    { _sdDeploymentId = pDeploymentId_
     }
 
 -- | The unique ID of a deployment.
 sdDeploymentId :: Lens' StopDeployment Text
-sdDeploymentId = lens _sdDeploymentId (\s a -> s { _sdDeploymentId = a })
-
-data StopDeploymentResponse = StopDeploymentResponse
-    { _sdrStatus        :: Maybe StopStatus
-    , _sdrStatusMessage :: Maybe Text
-    } deriving (Eq, Read, Show)
+sdDeploymentId = lens _sdDeploymentId (\ s a -> s{_sdDeploymentId = a});
 
--- | 'StopDeploymentResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'sdrStatus' @::@ 'Maybe' 'StopStatus'
---
--- * 'sdrStatusMessage' @::@ 'Maybe' 'Text'
---
-stopDeploymentResponse :: StopDeploymentResponse
-stopDeploymentResponse = StopDeploymentResponse
-    { _sdrStatus        = Nothing
-    , _sdrStatusMessage = Nothing
-    }
+instance AWSRequest StopDeployment where
+        type Sv StopDeployment = CodeDeploy
+        type Rs StopDeployment = StopDeploymentResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 StopDeploymentResponse' <$>
+                   (x .?> "statusMessage") <*> (pure (fromEnum s)))
 
--- | The status of the stop deployment operation:
---
--- Pending: The stop operation is pending. Succeeded: The stop operation
--- succeeded.
-sdrStatus :: Lens' StopDeploymentResponse (Maybe StopStatus)
-sdrStatus = lens _sdrStatus (\s a -> s { _sdrStatus = a })
+instance ToHeaders StopDeployment where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.StopDeployment" :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | An accompanying status message.
-sdrStatusMessage :: Lens' StopDeploymentResponse (Maybe Text)
-sdrStatusMessage = lens _sdrStatusMessage (\s a -> s { _sdrStatusMessage = a })
+instance ToJSON StopDeployment where
+        toJSON StopDeployment'{..}
+          = object ["deploymentId" .= _sdDeploymentId]
 
 instance ToPath StopDeployment where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery StopDeployment where
-    toQuery = const mempty
-
-instance ToHeaders StopDeployment
+        toQuery = const mempty
 
-instance ToJSON StopDeployment where
-    toJSON StopDeployment{..} = object
-        [ "deploymentId" .= _sdDeploymentId
-        ]
+-- | Represents the output of a stop deployment operation.
+--
+-- /See:/ 'stopDeploymentResponse' smart constructor.
+data StopDeploymentResponse = StopDeploymentResponse'
+    { _sdrsStatusMessage :: !(Maybe Text)
+    , _sdrsStatus        :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest StopDeployment where
-    type Sv StopDeployment = CodeDeploy
-    type Rs StopDeployment = StopDeploymentResponse
+-- | 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:
+--
+-- * 'sdrsStatusMessage'
+--
+-- * 'sdrsStatus'
+stopDeploymentResponse
+    :: Int -- ^ 'sdrsStatus'
+    -> StopDeploymentResponse
+stopDeploymentResponse pStatus_ =
+    StopDeploymentResponse'
+    { _sdrsStatusMessage = Nothing
+    , _sdrsStatus = pStatus_
+    }
 
-    request  = post "StopDeployment"
-    response = jsonResponse
+-- | An accompanying status message.
+sdrsStatusMessage :: Lens' StopDeploymentResponse (Maybe Text)
+sdrsStatusMessage = lens _sdrsStatusMessage (\ s a -> s{_sdrsStatusMessage = a});
 
-instance FromJSON StopDeploymentResponse where
-    parseJSON = withObject "StopDeploymentResponse" $ \o -> StopDeploymentResponse
-        <$> o .:? "status"
-        <*> o .:? "statusMessage"
+-- | The response status code.
+sdrsStatus :: Lens' StopDeploymentResponse Int
+sdrsStatus = lens _sdrsStatus (\ s a -> s{_sdrsStatus = a});
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
@@ -1,2205 +1,625 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
-{-# LANGUAGE ViewPatterns                #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-
--- Module      : Network.AWS.CodeDeploy.Types
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
--- Portability : non-portable (GHC extensions)
---
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
-module Network.AWS.CodeDeploy.Types
-    (
-    -- * Service
-      CodeDeploy
-    -- ** Error
-    , JSONError
-
-    -- * GenericRevisionInfo
-    , GenericRevisionInfo
-    , genericRevisionInfo
-    , griDeploymentGroups
-    , griDescription
-    , griFirstUsedTime
-    , griLastUsedTime
-    , griRegisterTime
-
-    -- * ApplicationInfo
-    , ApplicationInfo
-    , applicationInfo
-    , aiApplicationId
-    , aiApplicationName
-    , aiCreateTime
-    , aiLinkedToGitHub
-
-    -- * BundleType
-    , BundleType (..)
-
-    -- * Tag
-    , Tag
-    , tag
-    , tagKey
-    , tagValue
-
-    -- * TagFilterType
-    , TagFilterType (..)
-
-    -- * TimeRange
-    , TimeRange
-    , timeRange
-    , trEnd
-    , trStart
-
-    -- * DeploymentCreator
-    , DeploymentCreator (..)
-
-    -- * InstanceSummary
-    , InstanceSummary
-    , instanceSummary
-    , isDeploymentId
-    , isInstanceId
-    , isLastUpdatedAt
-    , isLifecycleEvents
-    , isStatus
-
-    -- * AutoScalingGroup
-    , AutoScalingGroup
-    , autoScalingGroup
-    , asgHook
-    , asgName
-
-    -- * DeploymentGroupInfo
-    , DeploymentGroupInfo
-    , deploymentGroupInfo
-    , dgiApplicationName
-    , dgiAutoScalingGroups
-    , dgiDeploymentConfigName
-    , dgiDeploymentGroupId
-    , dgiDeploymentGroupName
-    , dgiEc2TagFilters
-    , dgiOnPremisesInstanceTagFilters
-    , dgiServiceRoleArn
-    , dgiTargetRevision
-
-    -- * ApplicationRevisionSortBy
-    , ApplicationRevisionSortBy (..)
-
-    -- * MinimumHealthyHosts
-    , MinimumHealthyHosts
-    , minimumHealthyHosts
-    , mhhType
-    , mhhValue
-
-    -- * ListStateFilterAction
-    , ListStateFilterAction (..)
-
-    -- * LifecycleErrorCode
-    , LifecycleErrorCode (..)
-
-    -- * RevisionLocation
-    , RevisionLocation
-    , revisionLocation
-    , rlGitHubLocation
-    , rlRevisionType
-    , rlS3Location
-
-    -- * LifecycleEventStatus
-    , LifecycleEventStatus (..)
-
-    -- * EC2TagFilter
-    , EC2TagFilter
-    , ec2TagFilter
-    , ectfKey
-    , ectfType
-    , ectfValue
-
-    -- * Diagnostics
-    , Diagnostics
-    , diagnostics
-    , dErrorCode
-    , dLogTail
-    , dMessage
-    , dScriptName
-
-    -- * StopStatus
-    , StopStatus (..)
-
-    -- * ErrorInformation
-    , ErrorInformation
-    , errorInformation
-    , eiCode
-    , eiMessage
-
-    -- * SortOrder
-    , SortOrder (..)
-
-    -- * InstanceInfo
-    , InstanceInfo
-    , instanceInfo
-    , iiDeregisterTime
-    , iiIamUserArn
-    , iiInstanceArn
-    , iiInstanceName
-    , iiRegisterTime
-    , iiTags
-
-    -- * DeploymentInfo
-    , DeploymentInfo
-    , deploymentInfo
-    , diApplicationName
-    , diCompleteTime
-    , diCreateTime
-    , diCreator
-    , diDeploymentConfigName
-    , diDeploymentGroupName
-    , diDeploymentId
-    , diDeploymentOverview
-    , diDescription
-    , diErrorInformation
-    , diIgnoreApplicationStopFailures
-    , diRevision
-    , diStartTime
-    , diStatus
-
-    -- * TagFilter
-    , TagFilter
-    , tagFilter
-    , tfKey
-    , tfType
-    , tfValue
-
-    -- * LifecycleEvent
-    , LifecycleEvent
-    , lifecycleEvent
-    , leDiagnostics
-    , leEndTime
-    , leLifecycleEventName
-    , leStartTime
-    , leStatus
-
-    -- * DeploymentOverview
-    , DeploymentOverview
-    , deploymentOverview
-    , doFailed
-    , doInProgress
-    , doPending
-    , doSkipped
-    , doSucceeded
-
-    -- * ErrorCode
-    , ErrorCode (..)
-
-    -- * DeploymentConfigInfo
-    , DeploymentConfigInfo
-    , deploymentConfigInfo
-    , dciCreateTime
-    , dciDeploymentConfigId
-    , dciDeploymentConfigName
-    , dciMinimumHealthyHosts
-
-    -- * InstanceStatus
-    , InstanceStatus (..)
-
-    -- * DeploymentStatus
-    , DeploymentStatus (..)
-
-    -- * RegistrationStatus
-    , RegistrationStatus (..)
-
-    -- * S3Location
-    , S3Location
-    , s3Location
-    , slBucket
-    , slBundleType
-    , slETag
-    , slKey
-    , slVersion
-
-    -- * MinimumHealthyHostsType
-    , MinimumHealthyHostsType (..)
-
-    -- * GitHubLocation
-    , GitHubLocation
-    , gitHubLocation
-    , ghlCommitId
-    , ghlRepository
-
-    -- * RevisionLocationType
-    , RevisionLocationType (..)
-
-    -- * EC2TagFilterType
-    , EC2TagFilterType (..)
-    ) where
-
-import Network.AWS.Prelude
-import Network.AWS.Signing
-import qualified GHC.Exts
-
--- | Version @2014-10-06@ of the Amazon CodeDeploy service.
-data CodeDeploy
-
-instance AWSService CodeDeploy where
-    type Sg CodeDeploy = V4
-    type Er CodeDeploy = JSONError
-
-    service = service'
-      where
-        service' :: Service CodeDeploy
-        service' = Service
-            { _svcAbbrev       = "CodeDeploy"
-            , _svcPrefix       = "codedeploy"
-            , _svcVersion      = "2014-10-06"
-            , _svcTargetPrefix = Just "CodeDeploy_20141006"
-            , _svcJSONVersion  = Just "1.1"
-            , _svcHandle       = handle
-            , _svcRetry        = retry
-            }
-
-        handle :: Status
-               -> Maybe (LazyByteString -> ServiceError JSONError)
-        handle = jsonError statusSuccess service'
-
-        retry :: Retry CodeDeploy
-        retry = Exponential
-            { _retryBase     = 0.05
-            , _retryGrowth   = 2
-            , _retryAttempts = 5
-            , _retryCheck    = check
-            }
-
-        check :: Status
-              -> JSONError
-              -> Bool
-        check (statusCode -> s) (awsErrorCode -> e)
-            | s == 500  = True -- General Server Error
-            | s == 509  = True -- Limit Exceeded
-            | s == 503  = True -- Service Unavailable
-            | otherwise = False
-
-data GenericRevisionInfo = GenericRevisionInfo
-    { _griDeploymentGroups :: List "deploymentGroups" Text
-    , _griDescription      :: Maybe Text
-    , _griFirstUsedTime    :: Maybe POSIX
-    , _griLastUsedTime     :: Maybe POSIX
-    , _griRegisterTime     :: Maybe POSIX
-    } deriving (Eq, Ord, Read, Show)
-
--- | 'GenericRevisionInfo' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'griDeploymentGroups' @::@ ['Text']
---
--- * 'griDescription' @::@ 'Maybe' 'Text'
---
--- * 'griFirstUsedTime' @::@ 'Maybe' 'UTCTime'
---
--- * 'griLastUsedTime' @::@ 'Maybe' 'UTCTime'
---
--- * 'griRegisterTime' @::@ 'Maybe' 'UTCTime'
---
-genericRevisionInfo :: GenericRevisionInfo
-genericRevisionInfo = GenericRevisionInfo
-    { _griDescription      = Nothing
-    , _griDeploymentGroups = mempty
-    , _griFirstUsedTime    = Nothing
-    , _griLastUsedTime     = Nothing
-    , _griRegisterTime     = Nothing
-    }
-
--- | A list of deployment groups that use this revision.
-griDeploymentGroups :: Lens' GenericRevisionInfo [Text]
-griDeploymentGroups =
-    lens _griDeploymentGroups (\s a -> s { _griDeploymentGroups = a })
-        . _List
-
--- | A comment about the revision.
-griDescription :: Lens' GenericRevisionInfo (Maybe Text)
-griDescription = lens _griDescription (\s a -> s { _griDescription = a })
-
--- | When the revision was first used by AWS CodeDeploy.
-griFirstUsedTime :: Lens' GenericRevisionInfo (Maybe UTCTime)
-griFirstUsedTime = lens _griFirstUsedTime (\s a -> s { _griFirstUsedTime = a }) . mapping _Time
-
--- | When the revision was last used by AWS CodeDeploy.
-griLastUsedTime :: Lens' GenericRevisionInfo (Maybe UTCTime)
-griLastUsedTime = lens _griLastUsedTime (\s a -> s { _griLastUsedTime = a }) . mapping _Time
-
--- | When the revision was registered with AWS CodeDeploy.
-griRegisterTime :: Lens' GenericRevisionInfo (Maybe UTCTime)
-griRegisterTime = lens _griRegisterTime (\s a -> s { _griRegisterTime = a }) . mapping _Time
-
-instance FromJSON GenericRevisionInfo where
-    parseJSON = withObject "GenericRevisionInfo" $ \o -> GenericRevisionInfo
-        <$> o .:? "deploymentGroups" .!= mempty
-        <*> o .:? "description"
-        <*> o .:? "firstUsedTime"
-        <*> o .:? "lastUsedTime"
-        <*> o .:? "registerTime"
-
-instance ToJSON GenericRevisionInfo where
-    toJSON GenericRevisionInfo{..} = object
-        [ "description"      .= _griDescription
-        , "deploymentGroups" .= _griDeploymentGroups
-        , "firstUsedTime"    .= _griFirstUsedTime
-        , "lastUsedTime"     .= _griLastUsedTime
-        , "registerTime"     .= _griRegisterTime
-        ]
-
-data ApplicationInfo = ApplicationInfo
-    { _aiApplicationId   :: Maybe Text
-    , _aiApplicationName :: Maybe Text
-    , _aiCreateTime      :: Maybe POSIX
-    , _aiLinkedToGitHub  :: Maybe Bool
-    } deriving (Eq, Ord, Read, Show)
-
--- | 'ApplicationInfo' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'aiApplicationId' @::@ 'Maybe' 'Text'
---
--- * 'aiApplicationName' @::@ 'Maybe' 'Text'
---
--- * 'aiCreateTime' @::@ 'Maybe' 'UTCTime'
---
--- * 'aiLinkedToGitHub' @::@ 'Maybe' 'Bool'
---
-applicationInfo :: ApplicationInfo
-applicationInfo = ApplicationInfo
-    { _aiApplicationId   = Nothing
-    , _aiApplicationName = Nothing
-    , _aiCreateTime      = Nothing
-    , _aiLinkedToGitHub  = Nothing
-    }
-
--- | 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 that the application was created.
-aiCreateTime :: Lens' ApplicationInfo (Maybe UTCTime)
-aiCreateTime = lens _aiCreateTime (\s a -> s { _aiCreateTime = a }) . mapping _Time
-
--- | 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 })
-
-instance FromJSON ApplicationInfo where
-    parseJSON = withObject "ApplicationInfo" $ \o -> ApplicationInfo
-        <$> o .:? "applicationId"
-        <*> o .:? "applicationName"
-        <*> o .:? "createTime"
-        <*> o .:? "linkedToGitHub"
-
-instance ToJSON ApplicationInfo where
-    toJSON ApplicationInfo{..} = object
-        [ "applicationId"   .= _aiApplicationId
-        , "applicationName" .= _aiApplicationName
-        , "createTime"      .= _aiCreateTime
-        , "linkedToGitHub"  .= _aiLinkedToGitHub
-        ]
-
-data BundleType
-    = Tar -- ^ tar
-    | Tgz -- ^ tgz
-    | Zip -- ^ zip
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable BundleType
-
-instance FromText BundleType where
-    parser = takeLowerText >>= \case
-        "tar" -> pure Tar
-        "tgz" -> pure Tgz
-        "zip" -> pure Zip
-        e     -> fail $
-            "Failure parsing BundleType from " ++ show e
-
-instance ToText BundleType where
-    toText = \case
-        Tar -> "tar"
-        Tgz -> "tgz"
-        Zip -> "zip"
-
-instance ToByteString BundleType
-instance ToHeader     BundleType
-instance ToQuery      BundleType
-
-instance FromJSON BundleType where
-    parseJSON = parseJSONText "BundleType"
-
-instance ToJSON BundleType where
-    toJSON = toJSONText
-
-data Tag = Tag
-    { _tagKey   :: Maybe Text
-    , _tagValue :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
-
--- | 'Tag' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'tagKey' @::@ 'Maybe' 'Text'
---
--- * 'tagValue' @::@ 'Maybe' 'Text'
---
-tag :: Tag
-tag = Tag
-    { _tagKey   = Nothing
-    , _tagValue = Nothing
-    }
-
--- | The tag's key.
-tagKey :: Lens' Tag (Maybe Text)
-tagKey = lens _tagKey (\s a -> s { _tagKey = a })
-
--- | The tag's value.
-tagValue :: Lens' Tag (Maybe Text)
-tagValue = lens _tagValue (\s a -> s { _tagValue = a })
-
-instance FromJSON Tag where
-    parseJSON = withObject "Tag" $ \o -> Tag
-        <$> o .:? "Key"
-        <*> o .:? "Value"
-
-instance ToJSON Tag where
-    toJSON Tag{..} = object
-        [ "Key"   .= _tagKey
-        , "Value" .= _tagValue
-        ]
-
-data TagFilterType
-    = KeyAndValue -- ^ KEY_AND_VALUE
-    | KeyOnly     -- ^ KEY_ONLY
-    | ValueOnly   -- ^ VALUE_ONLY
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable TagFilterType
-
-instance FromText TagFilterType where
-    parser = takeLowerText >>= \case
-        "key_and_value" -> pure KeyAndValue
-        "key_only"      -> pure KeyOnly
-        "value_only"    -> pure ValueOnly
-        e               -> fail $
-            "Failure parsing TagFilterType from " ++ show e
-
-instance ToText TagFilterType where
-    toText = \case
-        KeyAndValue -> "KEY_AND_VALUE"
-        KeyOnly     -> "KEY_ONLY"
-        ValueOnly   -> "VALUE_ONLY"
-
-instance ToByteString TagFilterType
-instance ToHeader     TagFilterType
-instance ToQuery      TagFilterType
-
-instance FromJSON TagFilterType where
-    parseJSON = parseJSONText "TagFilterType"
-
-instance ToJSON TagFilterType where
-    toJSON = toJSONText
-
-data TimeRange = TimeRange
-    { _trEnd   :: Maybe POSIX
-    , _trStart :: Maybe POSIX
-    } deriving (Eq, Ord, Read, Show)
-
--- | 'TimeRange' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'trEnd' @::@ 'Maybe' 'UTCTime'
---
--- * 'trStart' @::@ 'Maybe' 'UTCTime'
---
-timeRange :: TimeRange
-timeRange = TimeRange
-    { _trStart = Nothing
-    , _trEnd   = Nothing
-    }
-
--- | The time range's end time.
---
--- Specify null to leave the time range's end time open-ended.
-trEnd :: Lens' TimeRange (Maybe UTCTime)
-trEnd = lens _trEnd (\s a -> s { _trEnd = a }) . mapping _Time
-
--- | The time range's start time.
---
--- Specify null to leave the time range's start time open-ended.
-trStart :: Lens' TimeRange (Maybe UTCTime)
-trStart = lens _trStart (\s a -> s { _trStart = a }) . mapping _Time
-
-instance FromJSON TimeRange where
-    parseJSON = withObject "TimeRange" $ \o -> TimeRange
-        <$> o .:? "end"
-        <*> o .:? "start"
-
-instance ToJSON TimeRange where
-    toJSON TimeRange{..} = object
-        [ "start" .= _trStart
-        , "end"   .= _trEnd
-        ]
-
-data DeploymentCreator
-    = Autoscaling -- ^ autoscaling
-    | User        -- ^ user
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable DeploymentCreator
-
-instance FromText DeploymentCreator where
-    parser = takeLowerText >>= \case
-        "autoscaling" -> pure Autoscaling
-        "user"        -> pure User
-        e             -> fail $
-            "Failure parsing DeploymentCreator from " ++ show e
-
-instance ToText DeploymentCreator where
-    toText = \case
-        Autoscaling -> "autoscaling"
-        User        -> "user"
-
-instance ToByteString DeploymentCreator
-instance ToHeader     DeploymentCreator
-instance ToQuery      DeploymentCreator
-
-instance FromJSON DeploymentCreator where
-    parseJSON = parseJSONText "DeploymentCreator"
-
-instance ToJSON DeploymentCreator where
-    toJSON = toJSONText
-
-data InstanceSummary = InstanceSummary
-    { _isDeploymentId    :: Maybe Text
-    , _isInstanceId      :: Maybe Text
-    , _isLastUpdatedAt   :: Maybe POSIX
-    , _isLifecycleEvents :: List "lifecycleEvents" LifecycleEvent
-    , _isStatus          :: Maybe InstanceStatus
-    } deriving (Eq, Read, Show)
-
--- | 'InstanceSummary' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'isDeploymentId' @::@ 'Maybe' 'Text'
---
--- * 'isInstanceId' @::@ 'Maybe' 'Text'
---
--- * 'isLastUpdatedAt' @::@ 'Maybe' 'UTCTime'
---
--- * 'isLifecycleEvents' @::@ ['LifecycleEvent']
---
--- * 'isStatus' @::@ 'Maybe' 'InstanceStatus'
---
-instanceSummary :: InstanceSummary
-instanceSummary = InstanceSummary
-    { _isDeploymentId    = Nothing
-    , _isInstanceId      = Nothing
-    , _isStatus          = Nothing
-    , _isLastUpdatedAt   = Nothing
-    , _isLifecycleEvents = mempty
-    }
-
--- | The deployment ID.
-isDeploymentId :: Lens' InstanceSummary (Maybe Text)
-isDeploymentId = lens _isDeploymentId (\s a -> s { _isDeploymentId = a })
-
--- | The instance ID.
-isInstanceId :: Lens' InstanceSummary (Maybe Text)
-isInstanceId = lens _isInstanceId (\s a -> s { _isInstanceId = 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 })
-        . _List
-
--- | 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 })
-
-instance FromJSON InstanceSummary where
-    parseJSON = withObject "InstanceSummary" $ \o -> InstanceSummary
-        <$> o .:? "deploymentId"
-        <*> o .:? "instanceId"
-        <*> o .:? "lastUpdatedAt"
-        <*> o .:? "lifecycleEvents" .!= mempty
-        <*> o .:? "status"
-
-instance ToJSON InstanceSummary where
-    toJSON InstanceSummary{..} = object
-        [ "deploymentId"    .= _isDeploymentId
-        , "instanceId"      .= _isInstanceId
-        , "status"          .= _isStatus
-        , "lastUpdatedAt"   .= _isLastUpdatedAt
-        , "lifecycleEvents" .= _isLifecycleEvents
-        ]
-
-data AutoScalingGroup = AutoScalingGroup
-    { _asgHook :: Maybe Text
-    , _asgName :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
-
--- | 'AutoScalingGroup' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'asgHook' @::@ 'Maybe' 'Text'
---
--- * 'asgName' @::@ 'Maybe' 'Text'
---
-autoScalingGroup :: AutoScalingGroup
-autoScalingGroup = AutoScalingGroup
-    { _asgName = Nothing
-    , _asgHook = 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" $ \o -> AutoScalingGroup
-        <$> o .:? "hook"
-        <*> o .:? "name"
-
-instance ToJSON AutoScalingGroup where
-    toJSON AutoScalingGroup{..} = object
-        [ "name" .= _asgName
-        , "hook" .= _asgHook
-        ]
-
-data DeploymentGroupInfo = DeploymentGroupInfo
-    { _dgiApplicationName              :: Maybe Text
-    , _dgiAutoScalingGroups            :: List "autoScalingGroups" AutoScalingGroup
-    , _dgiDeploymentConfigName         :: Maybe Text
-    , _dgiDeploymentGroupId            :: Maybe Text
-    , _dgiDeploymentGroupName          :: Maybe Text
-    , _dgiEc2TagFilters                :: List "ec2TagFilters" EC2TagFilter
-    , _dgiOnPremisesInstanceTagFilters :: List "onPremisesInstanceTagFilters" TagFilter
-    , _dgiServiceRoleArn               :: Maybe Text
-    , _dgiTargetRevision               :: Maybe RevisionLocation
-    } deriving (Eq, Read, Show)
-
--- | 'DeploymentGroupInfo' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'dgiApplicationName' @::@ 'Maybe' 'Text'
---
--- * 'dgiAutoScalingGroups' @::@ ['AutoScalingGroup']
---
--- * 'dgiDeploymentConfigName' @::@ 'Maybe' 'Text'
---
--- * 'dgiDeploymentGroupId' @::@ 'Maybe' 'Text'
---
--- * 'dgiDeploymentGroupName' @::@ 'Maybe' 'Text'
---
--- * 'dgiEc2TagFilters' @::@ ['EC2TagFilter']
---
--- * 'dgiOnPremisesInstanceTagFilters' @::@ ['TagFilter']
---
--- * 'dgiServiceRoleArn' @::@ 'Maybe' 'Text'
---
--- * 'dgiTargetRevision' @::@ 'Maybe' 'RevisionLocation'
---
-deploymentGroupInfo :: DeploymentGroupInfo
-deploymentGroupInfo = DeploymentGroupInfo
-    { _dgiApplicationName              = Nothing
-    , _dgiDeploymentGroupId            = Nothing
-    , _dgiDeploymentGroupName          = Nothing
-    , _dgiDeploymentConfigName         = Nothing
-    , _dgiEc2TagFilters                = mempty
-    , _dgiOnPremisesInstanceTagFilters = mempty
-    , _dgiAutoScalingGroups            = mempty
-    , _dgiServiceRoleArn               = Nothing
-    , _dgiTargetRevision               = Nothing
-    }
-
--- | The application name.
-dgiApplicationName :: Lens' DeploymentGroupInfo (Maybe Text)
-dgiApplicationName =
-    lens _dgiApplicationName (\s a -> s { _dgiApplicationName = a })
-
--- | A list of associated Auto Scaling groups.
-dgiAutoScalingGroups :: Lens' DeploymentGroupInfo [AutoScalingGroup]
-dgiAutoScalingGroups =
-    lens _dgiAutoScalingGroups (\s a -> s { _dgiAutoScalingGroups = a })
-        . _List
-
--- | The deployment configuration name.
-dgiDeploymentConfigName :: Lens' DeploymentGroupInfo (Maybe Text)
-dgiDeploymentConfigName =
-    lens _dgiDeploymentConfigName (\s a -> s { _dgiDeploymentConfigName = a })
-
--- | The deployment group ID.
-dgiDeploymentGroupId :: Lens' DeploymentGroupInfo (Maybe Text)
-dgiDeploymentGroupId =
-    lens _dgiDeploymentGroupId (\s a -> s { _dgiDeploymentGroupId = a })
-
--- | The deployment group name.
-dgiDeploymentGroupName :: Lens' DeploymentGroupInfo (Maybe Text)
-dgiDeploymentGroupName =
-    lens _dgiDeploymentGroupName (\s a -> s { _dgiDeploymentGroupName = a })
-
--- | The Amazon EC2 tags to filter on.
-dgiEc2TagFilters :: Lens' DeploymentGroupInfo [EC2TagFilter]
-dgiEc2TagFilters = lens _dgiEc2TagFilters (\s a -> s { _dgiEc2TagFilters = a }) . _List
-
--- | The on-premises instance tags to filter on.
-dgiOnPremisesInstanceTagFilters :: Lens' DeploymentGroupInfo [TagFilter]
-dgiOnPremisesInstanceTagFilters =
-    lens _dgiOnPremisesInstanceTagFilters
-        (\s a -> s { _dgiOnPremisesInstanceTagFilters = a })
-            . _List
-
--- | A service role ARN.
-dgiServiceRoleArn :: Lens' DeploymentGroupInfo (Maybe Text)
-dgiServiceRoleArn =
-    lens _dgiServiceRoleArn (\s a -> s { _dgiServiceRoleArn = a })
-
--- | Information about the deployment group's target revision, including the
--- revision's type and its location.
-dgiTargetRevision :: Lens' DeploymentGroupInfo (Maybe RevisionLocation)
-dgiTargetRevision =
-    lens _dgiTargetRevision (\s a -> s { _dgiTargetRevision = a })
-
-instance FromJSON DeploymentGroupInfo where
-    parseJSON = withObject "DeploymentGroupInfo" $ \o -> DeploymentGroupInfo
-        <$> o .:? "applicationName"
-        <*> o .:? "autoScalingGroups" .!= mempty
-        <*> o .:? "deploymentConfigName"
-        <*> o .:? "deploymentGroupId"
-        <*> o .:? "deploymentGroupName"
-        <*> o .:? "ec2TagFilters" .!= mempty
-        <*> o .:? "onPremisesInstanceTagFilters" .!= mempty
-        <*> o .:? "serviceRoleArn"
-        <*> o .:? "targetRevision"
-
-instance ToJSON DeploymentGroupInfo where
-    toJSON DeploymentGroupInfo{..} = object
-        [ "applicationName"              .= _dgiApplicationName
-        , "deploymentGroupId"            .= _dgiDeploymentGroupId
-        , "deploymentGroupName"          .= _dgiDeploymentGroupName
-        , "deploymentConfigName"         .= _dgiDeploymentConfigName
-        , "ec2TagFilters"                .= _dgiEc2TagFilters
-        , "onPremisesInstanceTagFilters" .= _dgiOnPremisesInstanceTagFilters
-        , "autoScalingGroups"            .= _dgiAutoScalingGroups
-        , "serviceRoleArn"               .= _dgiServiceRoleArn
-        , "targetRevision"               .= _dgiTargetRevision
-        ]
-
-data ApplicationRevisionSortBy
-    = FirstUsedTime -- ^ firstUsedTime
-    | LastUsedTime  -- ^ lastUsedTime
-    | RegisterTime  -- ^ registerTime
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable ApplicationRevisionSortBy
-
-instance FromText ApplicationRevisionSortBy where
-    parser = takeLowerText >>= \case
-        "firstusedtime" -> pure FirstUsedTime
-        "lastusedtime"  -> pure LastUsedTime
-        "registertime"  -> pure RegisterTime
-        e               -> fail $
-            "Failure parsing ApplicationRevisionSortBy from " ++ show e
-
-instance ToText ApplicationRevisionSortBy where
-    toText = \case
-        FirstUsedTime -> "firstUsedTime"
-        LastUsedTime  -> "lastUsedTime"
-        RegisterTime  -> "registerTime"
-
-instance ToByteString ApplicationRevisionSortBy
-instance ToHeader     ApplicationRevisionSortBy
-instance ToQuery      ApplicationRevisionSortBy
-
-instance FromJSON ApplicationRevisionSortBy where
-    parseJSON = parseJSONText "ApplicationRevisionSortBy"
-
-instance ToJSON ApplicationRevisionSortBy where
-    toJSON = toJSONText
-
-data MinimumHealthyHosts = MinimumHealthyHosts
-    { _mhhType  :: Maybe MinimumHealthyHostsType
-    , _mhhValue :: Maybe Int
-    } deriving (Eq, Read, Show)
-
--- | 'MinimumHealthyHosts' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'mhhType' @::@ 'Maybe' 'MinimumHealthyHostsType'
---
--- * 'mhhValue' @::@ 'Maybe' 'Int'
---
-minimumHealthyHosts :: MinimumHealthyHosts
-minimumHealthyHosts = MinimumHealthyHosts
-    { _mhhValue = Nothing
-    , _mhhType  = Nothing
-    }
-
--- | The minimum healthy instances type:
---
--- HOST_COUNT: The minimum number of healthy instances, as an absolute value. FLEET_PERCENT: The minimum number of healthy instances, as a percentage of the total number of instances in the deployment.
--- For example, for 9 instances, if a HOST_COUNT of 6 is specified, deploy to
--- up to 3 instances at a time. The deployment succeeds if 6 or more instances
--- are successfully deployed to; otherwise, the deployment fails. If a
--- FLEET_PERCENT of 40 is specified, deploy to up to 5 instances at a time. The
--- deployment succeeds if 4 or more instances are successfully deployed to;
--- otherwise, the deployment fails.
---
--- In a call to the get deployment configuration operation,
--- CodeDeployDefault.OneAtATime will return a minimum healthy instances type of
--- MOST_CONCURRENCY and a value of 1. This means a deployment to only one
--- instances at a time. (You cannot set the type to MOST_CONCURRENCY, only to
--- HOST_COUNT or FLEET_PERCENT.)
-mhhType :: Lens' MinimumHealthyHosts (Maybe MinimumHealthyHostsType)
-mhhType = lens _mhhType (\s a -> s { _mhhType = a })
-
--- | The minimum healthy instances value.
-mhhValue :: Lens' MinimumHealthyHosts (Maybe Int)
-mhhValue = lens _mhhValue (\s a -> s { _mhhValue = a })
-
-instance FromJSON MinimumHealthyHosts where
-    parseJSON = withObject "MinimumHealthyHosts" $ \o -> MinimumHealthyHosts
-        <$> o .:? "type"
-        <*> o .:? "value"
-
-instance ToJSON MinimumHealthyHosts where
-    toJSON MinimumHealthyHosts{..} = object
-        [ "value" .= _mhhValue
-        , "type"  .= _mhhType
-        ]
-
-data ListStateFilterAction
-    = Exclude -- ^ exclude
-    | Ignore  -- ^ ignore
-    | Include -- ^ include
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable ListStateFilterAction
-
-instance FromText ListStateFilterAction where
-    parser = takeLowerText >>= \case
-        "exclude" -> pure Exclude
-        "ignore"  -> pure Ignore
-        "include" -> pure Include
-        e         -> fail $
-            "Failure parsing ListStateFilterAction from " ++ show e
-
-instance ToText ListStateFilterAction where
-    toText = \case
-        Exclude -> "exclude"
-        Ignore  -> "ignore"
-        Include -> "include"
-
-instance ToByteString ListStateFilterAction
-instance ToHeader     ListStateFilterAction
-instance ToQuery      ListStateFilterAction
-
-instance FromJSON ListStateFilterAction where
-    parseJSON = parseJSONText "ListStateFilterAction"
-
-instance ToJSON ListStateFilterAction where
-    toJSON = toJSONText
-
-data LifecycleErrorCode
-    = ScriptFailed        -- ^ ScriptFailed
-    | ScriptMissing       -- ^ ScriptMissing
-    | ScriptNotExecutable -- ^ ScriptNotExecutable
-    | ScriptTimedOut      -- ^ ScriptTimedOut
-    | Success             -- ^ Success
-    | UnknownError        -- ^ UnknownError
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable LifecycleErrorCode
-
-instance FromText LifecycleErrorCode where
-    parser = takeLowerText >>= \case
-        "scriptfailed"        -> pure ScriptFailed
-        "scriptmissing"       -> pure ScriptMissing
-        "scriptnotexecutable" -> pure ScriptNotExecutable
-        "scripttimedout"      -> pure ScriptTimedOut
-        "success"             -> pure Success
-        "unknownerror"        -> pure UnknownError
-        e                     -> fail $
-            "Failure parsing LifecycleErrorCode from " ++ show e
-
-instance ToText LifecycleErrorCode where
-    toText = \case
-        ScriptFailed        -> "ScriptFailed"
-        ScriptMissing       -> "ScriptMissing"
-        ScriptNotExecutable -> "ScriptNotExecutable"
-        ScriptTimedOut      -> "ScriptTimedOut"
-        Success             -> "Success"
-        UnknownError        -> "UnknownError"
-
-instance ToByteString LifecycleErrorCode
-instance ToHeader     LifecycleErrorCode
-instance ToQuery      LifecycleErrorCode
-
-instance FromJSON LifecycleErrorCode where
-    parseJSON = parseJSONText "LifecycleErrorCode"
-
-instance ToJSON LifecycleErrorCode where
-    toJSON = toJSONText
-
-data RevisionLocation = RevisionLocation
-    { _rlGitHubLocation :: Maybe GitHubLocation
-    , _rlRevisionType   :: Maybe RevisionLocationType
-    , _rlS3Location     :: Maybe S3Location
-    } deriving (Eq, Read, Show)
-
--- | 'RevisionLocation' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'rlGitHubLocation' @::@ 'Maybe' 'GitHubLocation'
---
--- * 'rlRevisionType' @::@ 'Maybe' 'RevisionLocationType'
---
--- * 'rlS3Location' @::@ 'Maybe' 'S3Location'
---
-revisionLocation :: RevisionLocation
-revisionLocation = RevisionLocation
-    { _rlRevisionType   = Nothing
-    , _rlS3Location     = Nothing
-    , _rlGitHubLocation = Nothing
-    }
-
-rlGitHubLocation :: Lens' RevisionLocation (Maybe GitHubLocation)
-rlGitHubLocation = lens _rlGitHubLocation (\s a -> s { _rlGitHubLocation = a })
-
--- | The application revision's type:
---
--- 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 })
-
-rlS3Location :: Lens' RevisionLocation (Maybe S3Location)
-rlS3Location = lens _rlS3Location (\s a -> s { _rlS3Location = a })
-
-instance FromJSON RevisionLocation where
-    parseJSON = withObject "RevisionLocation" $ \o -> RevisionLocation
-        <$> o .:? "gitHubLocation"
-        <*> o .:? "revisionType"
-        <*> o .:? "s3Location"
-
-instance ToJSON RevisionLocation where
-    toJSON RevisionLocation{..} = object
-        [ "revisionType"   .= _rlRevisionType
-        , "s3Location"     .= _rlS3Location
-        , "gitHubLocation" .= _rlGitHubLocation
-        ]
-
-data LifecycleEventStatus
-    = Failed     -- ^ Failed
-    | InProgress -- ^ InProgress
-    | Pending    -- ^ Pending
-    | Skipped    -- ^ Skipped
-    | Succeeded  -- ^ Succeeded
-    | Unknown    -- ^ Unknown
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable LifecycleEventStatus
-
-instance FromText LifecycleEventStatus where
-    parser = takeLowerText >>= \case
-        "failed"     -> pure Failed
-        "inprogress" -> pure InProgress
-        "pending"    -> pure Pending
-        "skipped"    -> pure Skipped
-        "succeeded"  -> pure Succeeded
-        "unknown"    -> pure Unknown
-        e            -> fail $
-            "Failure parsing LifecycleEventStatus from " ++ show e
-
-instance ToText LifecycleEventStatus where
-    toText = \case
-        Failed     -> "Failed"
-        InProgress -> "InProgress"
-        Pending    -> "Pending"
-        Skipped    -> "Skipped"
-        Succeeded  -> "Succeeded"
-        Unknown    -> "Unknown"
-
-instance ToByteString LifecycleEventStatus
-instance ToHeader     LifecycleEventStatus
-instance ToQuery      LifecycleEventStatus
-
-instance FromJSON LifecycleEventStatus where
-    parseJSON = parseJSONText "LifecycleEventStatus"
-
-instance ToJSON LifecycleEventStatus where
-    toJSON = toJSONText
-
-data EC2TagFilter = EC2TagFilter
-    { _ectfKey   :: Maybe Text
-    , _ectfType  :: Maybe EC2TagFilterType
-    , _ectfValue :: Maybe Text
-    } deriving (Eq, Read, Show)
-
--- | 'EC2TagFilter' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'ectfKey' @::@ 'Maybe' 'Text'
---
--- * 'ectfType' @::@ 'Maybe' 'EC2TagFilterType'
---
--- * 'ectfValue' @::@ 'Maybe' 'Text'
---
-ec2TagFilter :: EC2TagFilter
-ec2TagFilter = EC2TagFilter
-    { _ectfKey   = Nothing
-    , _ectfValue = Nothing
-    , _ectfType  = Nothing
-    }
-
--- | The tag filter key.
-ectfKey :: Lens' EC2TagFilter (Maybe Text)
-ectfKey = lens _ectfKey (\s a -> s { _ectfKey = a })
-
--- | The tag filter type:
---
--- KEY_ONLY: Key only. VALUE_ONLY: Value only. KEY_AND_VALUE: Key and value.
-ectfType :: Lens' EC2TagFilter (Maybe EC2TagFilterType)
-ectfType = lens _ectfType (\s a -> s { _ectfType = a })
-
--- | The tag filter value.
-ectfValue :: Lens' EC2TagFilter (Maybe Text)
-ectfValue = lens _ectfValue (\s a -> s { _ectfValue = a })
-
-instance FromJSON EC2TagFilter where
-    parseJSON = withObject "EC2TagFilter" $ \o -> EC2TagFilter
-        <$> o .:? "Key"
-        <*> o .:? "Type"
-        <*> o .:? "Value"
-
-instance ToJSON EC2TagFilter where
-    toJSON EC2TagFilter{..} = object
-        [ "Key"   .= _ectfKey
-        , "Value" .= _ectfValue
-        , "Type"  .= _ectfType
-        ]
-
-data Diagnostics = Diagnostics
-    { _dErrorCode  :: Maybe LifecycleErrorCode
-    , _dLogTail    :: Maybe Text
-    , _dMessage    :: Maybe Text
-    , _dScriptName :: Maybe Text
-    } deriving (Eq, Read, Show)
-
--- | 'Diagnostics' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'dErrorCode' @::@ 'Maybe' 'LifecycleErrorCode'
---
--- * 'dLogTail' @::@ 'Maybe' 'Text'
---
--- * 'dMessage' @::@ 'Maybe' 'Text'
---
--- * 'dScriptName' @::@ 'Maybe' 'Text'
---
-diagnostics :: Diagnostics
-diagnostics = Diagnostics
-    { _dErrorCode  = Nothing
-    , _dScriptName = Nothing
-    , _dMessage    = Nothing
-    , _dLogTail    = Nothing
-    }
-
--- | 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 last portion of the associated diagnostic log.
-dLogTail :: Lens' Diagnostics (Maybe Text)
-dLogTail = lens _dLogTail (\s a -> s { _dLogTail = a })
-
--- | The message associated with the error.
-dMessage :: Lens' Diagnostics (Maybe Text)
-dMessage = lens _dMessage (\s a -> s { _dMessage = a })
-
--- | The name of the script.
-dScriptName :: Lens' Diagnostics (Maybe Text)
-dScriptName = lens _dScriptName (\s a -> s { _dScriptName = a })
-
-instance FromJSON Diagnostics where
-    parseJSON = withObject "Diagnostics" $ \o -> Diagnostics
-        <$> o .:? "errorCode"
-        <*> o .:? "logTail"
-        <*> o .:? "message"
-        <*> o .:? "scriptName"
-
-instance ToJSON Diagnostics where
-    toJSON Diagnostics{..} = object
-        [ "errorCode"  .= _dErrorCode
-        , "scriptName" .= _dScriptName
-        , "message"    .= _dMessage
-        , "logTail"    .= _dLogTail
-        ]
-
-data StopStatus
-    = SSPending   -- ^ Pending
-    | SSSucceeded -- ^ Succeeded
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable StopStatus
-
-instance FromText StopStatus where
-    parser = takeLowerText >>= \case
-        "pending"   -> pure SSPending
-        "succeeded" -> pure SSSucceeded
-        e           -> fail $
-            "Failure parsing StopStatus from " ++ show e
-
-instance ToText StopStatus where
-    toText = \case
-        SSPending   -> "Pending"
-        SSSucceeded -> "Succeeded"
-
-instance ToByteString StopStatus
-instance ToHeader     StopStatus
-instance ToQuery      StopStatus
-
-instance FromJSON StopStatus where
-    parseJSON = parseJSONText "StopStatus"
-
-instance ToJSON StopStatus where
-    toJSON = toJSONText
-
-data ErrorInformation = ErrorInformation
-    { _eiCode    :: Maybe ErrorCode
-    , _eiMessage :: Maybe Text
-    } deriving (Eq, Read, Show)
-
--- | 'ErrorInformation' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'eiCode' @::@ 'Maybe' 'ErrorCode'
---
--- * 'eiMessage' @::@ 'Maybe' 'Text'
---
-errorInformation :: ErrorInformation
-errorInformation = ErrorInformation
-    { _eiCode    = Nothing
-    , _eiMessage = Nothing
-    }
-
--- | The error code:
---
--- APPLICATION_MISSING: The application was missing. Note that this error code
--- will most likely be raised if the application is deleted after the deployment
--- is created but before it starts. DEPLOYMENT_GROUP_MISSING: The deployment
--- group was missing. Note that this error code will most likely be raised if
--- the deployment group is deleted after the deployment is created but before it
--- starts. HEALTH_CONSTRAINTS: The deployment failed on too many instances to be
--- able to successfully deploy within the specified instance health constraints.
--- HEALTH_CONSTRAINTS_INVALID: The revision can never successfully deploy within
--- the instance health constraints as specified. IAM_ROLE_MISSING: The service
--- role cannot be accessed. IAM_ROLE_PERMISSIONS: The service role does not have
--- the correct permissions. INTERNAL_ERROR: There was an internal error. NO_EC2_SUBSCRIPTION: The calling account is not subscribed to the Amazon EC2 service.
--- NO_INSTANCES: No instances were specified, or no instances can be found. OVER_MAX_INSTANCES: The maximum number of instances was exceeded.
--- THROTTLED: The operation was throttled because the calling account exceeded
--- the throttling limits of one or more AWS services. TIMEOUT: The deployment
--- has timed out. REVISION_MISSING: The revision ID was missing. Note that this
--- error code will most likely be raised if the revision is deleted after the
--- deployment is created but before it starts.
-eiCode :: Lens' ErrorInformation (Maybe ErrorCode)
-eiCode = lens _eiCode (\s a -> s { _eiCode = a })
-
--- | An accompanying error message.
-eiMessage :: Lens' ErrorInformation (Maybe Text)
-eiMessage = lens _eiMessage (\s a -> s { _eiMessage = a })
-
-instance FromJSON ErrorInformation where
-    parseJSON = withObject "ErrorInformation" $ \o -> ErrorInformation
-        <$> o .:? "code"
-        <*> o .:? "message"
-
-instance ToJSON ErrorInformation where
-    toJSON ErrorInformation{..} = object
-        [ "code"    .= _eiCode
-        , "message" .= _eiMessage
-        ]
-
-data SortOrder
-    = Ascending  -- ^ ascending
-    | Descending -- ^ descending
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable SortOrder
-
-instance FromText SortOrder where
-    parser = takeLowerText >>= \case
-        "ascending"  -> pure Ascending
-        "descending" -> pure Descending
-        e            -> fail $
-            "Failure parsing SortOrder from " ++ show e
-
-instance ToText SortOrder where
-    toText = \case
-        Ascending  -> "ascending"
-        Descending -> "descending"
-
-instance ToByteString SortOrder
-instance ToHeader     SortOrder
-instance ToQuery      SortOrder
-
-instance FromJSON SortOrder where
-    parseJSON = parseJSONText "SortOrder"
-
-instance ToJSON SortOrder where
-    toJSON = toJSONText
-
-data InstanceInfo = InstanceInfo
-    { _iiDeregisterTime :: Maybe POSIX
-    , _iiIamUserArn     :: Maybe Text
-    , _iiInstanceArn    :: Maybe Text
-    , _iiInstanceName   :: Maybe Text
-    , _iiRegisterTime   :: Maybe POSIX
-    , _iiTags           :: List "tags" Tag
-    } deriving (Eq, Read, Show)
-
--- | 'InstanceInfo' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'iiDeregisterTime' @::@ 'Maybe' 'UTCTime'
---
--- * 'iiIamUserArn' @::@ 'Maybe' 'Text'
---
--- * 'iiInstanceArn' @::@ 'Maybe' 'Text'
---
--- * 'iiInstanceName' @::@ 'Maybe' 'Text'
---
--- * 'iiRegisterTime' @::@ 'Maybe' 'UTCTime'
---
--- * 'iiTags' @::@ ['Tag']
---
-instanceInfo :: InstanceInfo
-instanceInfo = InstanceInfo
-    { _iiInstanceName   = Nothing
-    , _iiIamUserArn     = Nothing
-    , _iiInstanceArn    = Nothing
-    , _iiRegisterTime   = Nothing
-    , _iiDeregisterTime = Nothing
-    , _iiTags           = mempty
-    }
-
--- | If the on-premises instance was deregistered, the time that the on-premises
--- instance was deregistered.
-iiDeregisterTime :: Lens' InstanceInfo (Maybe UTCTime)
-iiDeregisterTime = lens _iiDeregisterTime (\s a -> s { _iiDeregisterTime = a }) . mapping _Time
-
--- | The IAM user ARN associated with the on-premises instance.
-iiIamUserArn :: Lens' InstanceInfo (Maybe Text)
-iiIamUserArn = lens _iiIamUserArn (\s a -> s { _iiIamUserArn = a })
-
--- | The ARN of the on-premises instance.
-iiInstanceArn :: Lens' InstanceInfo (Maybe Text)
-iiInstanceArn = lens _iiInstanceArn (\s a -> s { _iiInstanceArn = a })
-
--- | The name of the on-premises instance.
-iiInstanceName :: Lens' InstanceInfo (Maybe Text)
-iiInstanceName = lens _iiInstanceName (\s a -> s { _iiInstanceName = a })
-
--- | The time that the on-premises instance was registered.
-iiRegisterTime :: Lens' InstanceInfo (Maybe UTCTime)
-iiRegisterTime = lens _iiRegisterTime (\s a -> s { _iiRegisterTime = a }) . mapping _Time
-
--- | The tags that are currently associated with the on-premises instance.
-iiTags :: Lens' InstanceInfo [Tag]
-iiTags = lens _iiTags (\s a -> s { _iiTags = a }) . _List
-
-instance FromJSON InstanceInfo where
-    parseJSON = withObject "InstanceInfo" $ \o -> InstanceInfo
-        <$> o .:? "deregisterTime"
-        <*> o .:? "iamUserArn"
-        <*> o .:? "instanceArn"
-        <*> o .:? "instanceName"
-        <*> o .:? "registerTime"
-        <*> o .:? "tags" .!= mempty
-
-instance ToJSON InstanceInfo where
-    toJSON InstanceInfo{..} = object
-        [ "instanceName"   .= _iiInstanceName
-        , "iamUserArn"     .= _iiIamUserArn
-        , "instanceArn"    .= _iiInstanceArn
-        , "registerTime"   .= _iiRegisterTime
-        , "deregisterTime" .= _iiDeregisterTime
-        , "tags"           .= _iiTags
-        ]
-
-data DeploymentInfo = DeploymentInfo
-    { _diApplicationName               :: Maybe Text
-    , _diCompleteTime                  :: Maybe POSIX
-    , _diCreateTime                    :: Maybe POSIX
-    , _diCreator                       :: Maybe DeploymentCreator
-    , _diDeploymentConfigName          :: Maybe Text
-    , _diDeploymentGroupName           :: Maybe Text
-    , _diDeploymentId                  :: Maybe Text
-    , _diDeploymentOverview            :: Maybe DeploymentOverview
-    , _diDescription                   :: Maybe Text
-    , _diErrorInformation              :: Maybe ErrorInformation
-    , _diIgnoreApplicationStopFailures :: Maybe Bool
-    , _diRevision                      :: Maybe RevisionLocation
-    , _diStartTime                     :: Maybe POSIX
-    , _diStatus                        :: Maybe DeploymentStatus
-    } deriving (Eq, Read, Show)
-
--- | 'DeploymentInfo' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'diApplicationName' @::@ 'Maybe' 'Text'
---
--- * 'diCompleteTime' @::@ 'Maybe' 'UTCTime'
---
--- * 'diCreateTime' @::@ 'Maybe' 'UTCTime'
---
--- * 'diCreator' @::@ 'Maybe' 'DeploymentCreator'
---
--- * 'diDeploymentConfigName' @::@ 'Maybe' 'Text'
---
--- * 'diDeploymentGroupName' @::@ 'Maybe' 'Text'
---
--- * 'diDeploymentId' @::@ 'Maybe' 'Text'
---
--- * 'diDeploymentOverview' @::@ 'Maybe' 'DeploymentOverview'
---
--- * 'diDescription' @::@ 'Maybe' 'Text'
---
--- * 'diErrorInformation' @::@ 'Maybe' 'ErrorInformation'
---
--- * 'diIgnoreApplicationStopFailures' @::@ 'Maybe' 'Bool'
---
--- * 'diRevision' @::@ 'Maybe' 'RevisionLocation'
---
--- * 'diStartTime' @::@ 'Maybe' 'UTCTime'
---
--- * 'diStatus' @::@ 'Maybe' 'DeploymentStatus'
---
-deploymentInfo :: DeploymentInfo
-deploymentInfo = DeploymentInfo
-    { _diApplicationName               = Nothing
-    , _diDeploymentGroupName           = Nothing
-    , _diDeploymentConfigName          = Nothing
-    , _diDeploymentId                  = Nothing
-    , _diRevision                      = Nothing
-    , _diStatus                        = Nothing
-    , _diErrorInformation              = Nothing
-    , _diCreateTime                    = Nothing
-    , _diStartTime                     = Nothing
-    , _diCompleteTime                  = Nothing
-    , _diDeploymentOverview            = Nothing
-    , _diDescription                   = Nothing
-    , _diCreator                       = Nothing
-    , _diIgnoreApplicationStopFailures = Nothing
-    }
-
--- | The application name.
-diApplicationName :: Lens' DeploymentInfo (Maybe Text)
-diApplicationName =
-    lens _diApplicationName (\s a -> s { _diApplicationName = a })
-
--- | A timestamp indicating when the deployment was completed.
-diCompleteTime :: Lens' DeploymentInfo (Maybe UTCTime)
-diCompleteTime = lens _diCompleteTime (\s a -> s { _diCompleteTime = a }) . mapping _Time
-
--- | A timestamp indicating when the deployment was created.
-diCreateTime :: Lens' DeploymentInfo (Maybe UTCTime)
-diCreateTime = lens _diCreateTime (\s a -> s { _diCreateTime = a }) . mapping _Time
-
--- | How the deployment was created:
---
--- user: A user created the deployment. autoscaling: Auto Scaling created the
--- deployment.
-diCreator :: Lens' DeploymentInfo (Maybe DeploymentCreator)
-diCreator = lens _diCreator (\s a -> s { _diCreator = a })
-
--- | The deployment configuration name.
-diDeploymentConfigName :: Lens' DeploymentInfo (Maybe Text)
-diDeploymentConfigName =
-    lens _diDeploymentConfigName (\s a -> s { _diDeploymentConfigName = a })
-
--- | The deployment group name.
-diDeploymentGroupName :: Lens' DeploymentInfo (Maybe Text)
-diDeploymentGroupName =
-    lens _diDeploymentGroupName (\s a -> s { _diDeploymentGroupName = a })
-
--- | The deployment ID.
-diDeploymentId :: Lens' DeploymentInfo (Maybe Text)
-diDeploymentId = lens _diDeploymentId (\s a -> s { _diDeploymentId = 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 })
-
--- | A comment about the deployment.
-diDescription :: Lens' DeploymentInfo (Maybe Text)
-diDescription = lens _diDescription (\s a -> s { _diDescription = a })
-
--- | Information about any error associated with this deployment.
-diErrorInformation :: Lens' DeploymentInfo (Maybe ErrorInformation)
-diErrorInformation =
-    lens _diErrorInformation (\s a -> s { _diErrorInformation = a })
-
--- | If true, then if the deployment causes the ApplicationStop deployment
--- lifecycle event to fail to a specific instance, the deployment will not be
--- considered to have failed to that instance 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 fail to a specific instance, the deployment
--- will stop to that instance, 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 })
-
--- | Information about the location of application artifacts that are stored and
--- the service to retrieve them from.
-diRevision :: Lens' DeploymentInfo (Maybe RevisionLocation)
-diRevision = lens _diRevision (\s a -> s { _diRevision = a })
-
--- | A timestamp indicating when the deployment began deploying to the deployment
--- group.
---
--- Note that 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
--- various back-end servers that participate in the overall deployment process.
-diStartTime :: Lens' DeploymentInfo (Maybe UTCTime)
-diStartTime = lens _diStartTime (\s a -> s { _diStartTime = a }) . mapping _Time
-
--- | The current state of the deployment as a whole.
-diStatus :: Lens' DeploymentInfo (Maybe DeploymentStatus)
-diStatus = lens _diStatus (\s a -> s { _diStatus = a })
-
-instance FromJSON DeploymentInfo where
-    parseJSON = withObject "DeploymentInfo" $ \o -> DeploymentInfo
-        <$> o .:? "applicationName"
-        <*> o .:? "completeTime"
-        <*> o .:? "createTime"
-        <*> o .:? "creator"
-        <*> o .:? "deploymentConfigName"
-        <*> o .:? "deploymentGroupName"
-        <*> o .:? "deploymentId"
-        <*> o .:? "deploymentOverview"
-        <*> o .:? "description"
-        <*> o .:? "errorInformation"
-        <*> o .:? "ignoreApplicationStopFailures"
-        <*> o .:? "revision"
-        <*> o .:? "startTime"
-        <*> o .:? "status"
-
-instance ToJSON DeploymentInfo where
-    toJSON DeploymentInfo{..} = object
-        [ "applicationName"               .= _diApplicationName
-        , "deploymentGroupName"           .= _diDeploymentGroupName
-        , "deploymentConfigName"          .= _diDeploymentConfigName
-        , "deploymentId"                  .= _diDeploymentId
-        , "revision"                      .= _diRevision
-        , "status"                        .= _diStatus
-        , "errorInformation"              .= _diErrorInformation
-        , "createTime"                    .= _diCreateTime
-        , "startTime"                     .= _diStartTime
-        , "completeTime"                  .= _diCompleteTime
-        , "deploymentOverview"            .= _diDeploymentOverview
-        , "description"                   .= _diDescription
-        , "creator"                       .= _diCreator
-        , "ignoreApplicationStopFailures" .= _diIgnoreApplicationStopFailures
-        ]
-
-data TagFilter = TagFilter
-    { _tfKey   :: Maybe Text
-    , _tfType  :: Maybe TagFilterType
-    , _tfValue :: Maybe Text
-    } deriving (Eq, Read, Show)
-
--- | 'TagFilter' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'tfKey' @::@ 'Maybe' 'Text'
---
--- * 'tfType' @::@ 'Maybe' 'TagFilterType'
---
--- * 'tfValue' @::@ 'Maybe' 'Text'
---
-tagFilter :: TagFilter
-tagFilter = TagFilter
-    { _tfKey   = Nothing
-    , _tfValue = Nothing
-    , _tfType  = Nothing
-    }
-
--- | The on-premises instance tag filter key.
-tfKey :: Lens' TagFilter (Maybe Text)
-tfKey = lens _tfKey (\s a -> s { _tfKey = a })
-
--- | The on-premises instance tag filter type:
---
--- KEY_ONLY: Key only. VALUE_ONLY: Value only. KEY_AND_VALUE: Key and value.
-tfType :: Lens' TagFilter (Maybe TagFilterType)
-tfType = lens _tfType (\s a -> s { _tfType = a })
-
--- | The on-premises instance tag filter value.
-tfValue :: Lens' TagFilter (Maybe Text)
-tfValue = lens _tfValue (\s a -> s { _tfValue = a })
-
-instance FromJSON TagFilter where
-    parseJSON = withObject "TagFilter" $ \o -> TagFilter
-        <$> o .:? "Key"
-        <*> o .:? "Type"
-        <*> o .:? "Value"
-
-instance ToJSON TagFilter where
-    toJSON TagFilter{..} = object
-        [ "Key"   .= _tfKey
-        , "Value" .= _tfValue
-        , "Type"  .= _tfType
-        ]
-
-data LifecycleEvent = LifecycleEvent
-    { _leDiagnostics        :: Maybe Diagnostics
-    , _leEndTime            :: Maybe POSIX
-    , _leLifecycleEventName :: Maybe Text
-    , _leStartTime          :: Maybe POSIX
-    , _leStatus             :: Maybe LifecycleEventStatus
-    } deriving (Eq, Read, Show)
-
--- | 'LifecycleEvent' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'leDiagnostics' @::@ 'Maybe' 'Diagnostics'
---
--- * 'leEndTime' @::@ 'Maybe' 'UTCTime'
---
--- * 'leLifecycleEventName' @::@ 'Maybe' 'Text'
---
--- * 'leStartTime' @::@ 'Maybe' 'UTCTime'
---
--- * 'leStatus' @::@ 'Maybe' 'LifecycleEventStatus'
---
-lifecycleEvent :: LifecycleEvent
-lifecycleEvent = LifecycleEvent
-    { _leLifecycleEventName = Nothing
-    , _leDiagnostics        = Nothing
-    , _leStartTime          = Nothing
-    , _leEndTime            = Nothing
-    , _leStatus             = Nothing
-    }
-
--- | 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
-
--- | 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
-
--- | 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 has succeeded. 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 })
-
-instance FromJSON LifecycleEvent where
-    parseJSON = withObject "LifecycleEvent" $ \o -> LifecycleEvent
-        <$> o .:? "diagnostics"
-        <*> o .:? "endTime"
-        <*> o .:? "lifecycleEventName"
-        <*> o .:? "startTime"
-        <*> o .:? "status"
-
-instance ToJSON LifecycleEvent where
-    toJSON LifecycleEvent{..} = object
-        [ "lifecycleEventName" .= _leLifecycleEventName
-        , "diagnostics"        .= _leDiagnostics
-        , "startTime"          .= _leStartTime
-        , "endTime"            .= _leEndTime
-        , "status"             .= _leStatus
-        ]
-
-data DeploymentOverview = DeploymentOverview
-    { _doFailed     :: Maybe Integer
-    , _doInProgress :: Maybe Integer
-    , _doPending    :: Maybe Integer
-    , _doSkipped    :: Maybe Integer
-    , _doSucceeded  :: Maybe Integer
-    } deriving (Eq, Ord, Read, Show)
-
--- | 'DeploymentOverview' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'doFailed' @::@ 'Maybe' 'Integer'
---
--- * 'doInProgress' @::@ 'Maybe' 'Integer'
---
--- * 'doPending' @::@ 'Maybe' 'Integer'
---
--- * 'doSkipped' @::@ 'Maybe' 'Integer'
---
--- * 'doSucceeded' @::@ 'Maybe' 'Integer'
---
-deploymentOverview :: DeploymentOverview
-deploymentOverview = DeploymentOverview
-    { _doPending    = Nothing
-    , _doInProgress = Nothing
-    , _doSucceeded  = Nothing
-    , _doFailed     = Nothing
-    , _doSkipped    = Nothing
-    }
-
--- | The number of instances that have failed in the deployment.
-doFailed :: Lens' DeploymentOverview (Maybe Integer)
-doFailed = lens _doFailed (\s a -> s { _doFailed = a })
-
--- | The number of instances that are in progress in the deployment.
-doInProgress :: Lens' DeploymentOverview (Maybe Integer)
-doInProgress = lens _doInProgress (\s a -> s { _doInProgress = a })
-
--- | The number of instances that are pending in the deployment.
-doPending :: Lens' DeploymentOverview (Maybe Integer)
-doPending = lens _doPending (\s a -> s { _doPending = a })
-
--- | The number of instances that have been skipped in the deployment.
-doSkipped :: Lens' DeploymentOverview (Maybe Integer)
-doSkipped = lens _doSkipped (\s a -> s { _doSkipped = a })
-
--- | The number of instances that have succeeded in the deployment.
-doSucceeded :: Lens' DeploymentOverview (Maybe Integer)
-doSucceeded = lens _doSucceeded (\s a -> s { _doSucceeded = a })
-
-instance FromJSON DeploymentOverview where
-    parseJSON = withObject "DeploymentOverview" $ \o -> DeploymentOverview
-        <$> o .:? "Failed"
-        <*> o .:? "InProgress"
-        <*> o .:? "Pending"
-        <*> o .:? "Skipped"
-        <*> o .:? "Succeeded"
-
-instance ToJSON DeploymentOverview where
-    toJSON DeploymentOverview{..} = object
-        [ "Pending"    .= _doPending
-        , "InProgress" .= _doInProgress
-        , "Succeeded"  .= _doSucceeded
-        , "Failed"     .= _doFailed
-        , "Skipped"    .= _doSkipped
-        ]
-
-data ErrorCode
-    = ApplicationMissing       -- ^ APPLICATION_MISSING
-    | DeploymentGroupMissing   -- ^ DEPLOYMENT_GROUP_MISSING
-    | HealthConstraints        -- ^ HEALTH_CONSTRAINTS
-    | HealthConstraintsInvalid -- ^ HEALTH_CONSTRAINTS_INVALID
-    | IamRoleMissing           -- ^ IAM_ROLE_MISSING
-    | IamRolePermissions       -- ^ IAM_ROLE_PERMISSIONS
-    | InternalError            -- ^ INTERNAL_ERROR
-    | NOEC2SUBSCRIPTION        -- ^ NO_EC2_SUBSCRIPTION
-    | NoInstances              -- ^ NO_INSTANCES
-    | OverMaxInstances         -- ^ OVER_MAX_INSTANCES
-    | RevisionMissing          -- ^ REVISION_MISSING
-    | Throttled                -- ^ THROTTLED
-    | Timeout                  -- ^ TIMEOUT
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable ErrorCode
-
-instance FromText ErrorCode where
-    parser = takeLowerText >>= \case
-        "application_missing"        -> pure ApplicationMissing
-        "deployment_group_missing"   -> pure DeploymentGroupMissing
-        "health_constraints"         -> pure HealthConstraints
-        "health_constraints_invalid" -> pure HealthConstraintsInvalid
-        "iam_role_missing"           -> pure IamRoleMissing
-        "iam_role_permissions"       -> pure IamRolePermissions
-        "internal_error"             -> pure InternalError
-        "no_ec2_subscription"        -> pure NOEC2SUBSCRIPTION
-        "no_instances"               -> pure NoInstances
-        "over_max_instances"         -> pure OverMaxInstances
-        "revision_missing"           -> pure RevisionMissing
-        "throttled"                  -> pure Throttled
-        "timeout"                    -> pure Timeout
-        e                            -> fail $
-            "Failure parsing ErrorCode from " ++ show e
-
-instance ToText ErrorCode where
-    toText = \case
-        ApplicationMissing       -> "APPLICATION_MISSING"
-        DeploymentGroupMissing   -> "DEPLOYMENT_GROUP_MISSING"
-        HealthConstraints        -> "HEALTH_CONSTRAINTS"
-        HealthConstraintsInvalid -> "HEALTH_CONSTRAINTS_INVALID"
-        IamRoleMissing           -> "IAM_ROLE_MISSING"
-        IamRolePermissions       -> "IAM_ROLE_PERMISSIONS"
-        InternalError            -> "INTERNAL_ERROR"
-        NOEC2SUBSCRIPTION        -> "NO_EC2_SUBSCRIPTION"
-        NoInstances              -> "NO_INSTANCES"
-        OverMaxInstances         -> "OVER_MAX_INSTANCES"
-        RevisionMissing          -> "REVISION_MISSING"
-        Throttled                -> "THROTTLED"
-        Timeout                  -> "TIMEOUT"
-
-instance ToByteString ErrorCode
-instance ToHeader     ErrorCode
-instance ToQuery      ErrorCode
-
-instance FromJSON ErrorCode where
-    parseJSON = parseJSONText "ErrorCode"
-
-instance ToJSON ErrorCode where
-    toJSON = toJSONText
-
-data DeploymentConfigInfo = DeploymentConfigInfo
-    { _dciCreateTime           :: Maybe POSIX
-    , _dciDeploymentConfigId   :: Maybe Text
-    , _dciDeploymentConfigName :: Maybe Text
-    , _dciMinimumHealthyHosts  :: Maybe MinimumHealthyHosts
-    } deriving (Eq, Read, Show)
-
--- | 'DeploymentConfigInfo' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'dciCreateTime' @::@ 'Maybe' 'UTCTime'
---
--- * 'dciDeploymentConfigId' @::@ 'Maybe' 'Text'
---
--- * 'dciDeploymentConfigName' @::@ 'Maybe' 'Text'
---
--- * 'dciMinimumHealthyHosts' @::@ 'Maybe' 'MinimumHealthyHosts'
---
-deploymentConfigInfo :: DeploymentConfigInfo
-deploymentConfigInfo = DeploymentConfigInfo
-    { _dciDeploymentConfigId   = Nothing
-    , _dciDeploymentConfigName = Nothing
-    , _dciMinimumHealthyHosts  = Nothing
-    , _dciCreateTime           = Nothing
-    }
-
--- | The time that the deployment configuration was created.
-dciCreateTime :: Lens' DeploymentConfigInfo (Maybe UTCTime)
-dciCreateTime = lens _dciCreateTime (\s a -> s { _dciCreateTime = a }) . mapping _Time
-
--- | The deployment configuration ID.
-dciDeploymentConfigId :: Lens' DeploymentConfigInfo (Maybe Text)
-dciDeploymentConfigId =
-    lens _dciDeploymentConfigId (\s a -> s { _dciDeploymentConfigId = a })
-
--- | 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 instances.
-dciMinimumHealthyHosts :: Lens' DeploymentConfigInfo (Maybe MinimumHealthyHosts)
-dciMinimumHealthyHosts =
-    lens _dciMinimumHealthyHosts (\s a -> s { _dciMinimumHealthyHosts = a })
-
-instance FromJSON DeploymentConfigInfo where
-    parseJSON = withObject "DeploymentConfigInfo" $ \o -> DeploymentConfigInfo
-        <$> o .:? "createTime"
-        <*> o .:? "deploymentConfigId"
-        <*> o .:? "deploymentConfigName"
-        <*> o .:? "minimumHealthyHosts"
-
-instance ToJSON DeploymentConfigInfo where
-    toJSON DeploymentConfigInfo{..} = object
-        [ "deploymentConfigId"   .= _dciDeploymentConfigId
-        , "deploymentConfigName" .= _dciDeploymentConfigName
-        , "minimumHealthyHosts"  .= _dciMinimumHealthyHosts
-        , "createTime"           .= _dciCreateTime
-        ]
-
-data InstanceStatus
-    = ISFailed     -- ^ Failed
-    | ISInProgress -- ^ InProgress
-    | ISPending    -- ^ Pending
-    | ISSkipped    -- ^ Skipped
-    | ISSucceeded  -- ^ Succeeded
-    | ISUnknown    -- ^ Unknown
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable InstanceStatus
-
-instance FromText InstanceStatus where
-    parser = takeLowerText >>= \case
-        "failed"     -> pure ISFailed
-        "inprogress" -> pure ISInProgress
-        "pending"    -> pure ISPending
-        "skipped"    -> pure ISSkipped
-        "succeeded"  -> pure ISSucceeded
-        "unknown"    -> pure ISUnknown
-        e            -> fail $
-            "Failure parsing InstanceStatus from " ++ show e
-
-instance ToText InstanceStatus where
-    toText = \case
-        ISFailed     -> "Failed"
-        ISInProgress -> "InProgress"
-        ISPending    -> "Pending"
-        ISSkipped    -> "Skipped"
-        ISSucceeded  -> "Succeeded"
-        ISUnknown    -> "Unknown"
-
-instance ToByteString InstanceStatus
-instance ToHeader     InstanceStatus
-instance ToQuery      InstanceStatus
-
-instance FromJSON InstanceStatus where
-    parseJSON = parseJSONText "InstanceStatus"
-
-instance ToJSON InstanceStatus where
-    toJSON = toJSONText
-
-data DeploymentStatus
-    = DSCreated    -- ^ Created
-    | DSFailed     -- ^ Failed
-    | DSInProgress -- ^ InProgress
-    | DSQueued     -- ^ Queued
-    | DSStopped    -- ^ Stopped
-    | DSSucceeded  -- ^ Succeeded
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable DeploymentStatus
-
-instance FromText DeploymentStatus where
-    parser = takeLowerText >>= \case
-        "created"    -> pure DSCreated
-        "failed"     -> pure DSFailed
-        "inprogress" -> pure DSInProgress
-        "queued"     -> pure DSQueued
-        "stopped"    -> pure DSStopped
-        "succeeded"  -> pure DSSucceeded
-        e            -> fail $
-            "Failure parsing DeploymentStatus from " ++ show e
-
-instance ToText DeploymentStatus where
-    toText = \case
-        DSCreated    -> "Created"
-        DSFailed     -> "Failed"
-        DSInProgress -> "InProgress"
-        DSQueued     -> "Queued"
-        DSStopped    -> "Stopped"
-        DSSucceeded  -> "Succeeded"
-
-instance ToByteString DeploymentStatus
-instance ToHeader     DeploymentStatus
-instance ToQuery      DeploymentStatus
-
-instance FromJSON DeploymentStatus where
-    parseJSON = parseJSONText "DeploymentStatus"
-
-instance ToJSON DeploymentStatus where
-    toJSON = toJSONText
-
-data RegistrationStatus
-    = Deregistered -- ^ Deregistered
-    | Registered   -- ^ Registered
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable RegistrationStatus
-
-instance FromText RegistrationStatus where
-    parser = takeLowerText >>= \case
-        "deregistered" -> pure Deregistered
-        "registered"   -> pure Registered
-        e              -> fail $
-            "Failure parsing RegistrationStatus from " ++ show e
-
-instance ToText RegistrationStatus where
-    toText = \case
-        Deregistered -> "Deregistered"
-        Registered   -> "Registered"
-
-instance ToByteString RegistrationStatus
-instance ToHeader     RegistrationStatus
-instance ToQuery      RegistrationStatus
-
-instance FromJSON RegistrationStatus where
-    parseJSON = parseJSONText "RegistrationStatus"
-
-instance ToJSON RegistrationStatus where
-    toJSON = toJSONText
-
-data S3Location = S3Location
-    { _slBucket     :: Maybe Text
-    , _slBundleType :: Maybe BundleType
-    , _slETag       :: Maybe Text
-    , _slKey        :: Maybe Text
-    , _slVersion    :: Maybe Text
-    } deriving (Eq, Read, Show)
-
--- | 'S3Location' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'slBucket' @::@ 'Maybe' 'Text'
---
--- * 'slBundleType' @::@ 'Maybe' 'BundleType'
---
--- * 'slETag' @::@ 'Maybe' 'Text'
---
--- * 'slKey' @::@ 'Maybe' 'Text'
---
--- * 'slVersion' @::@ 'Maybe' 'Text'
---
-s3Location :: S3Location
-s3Location = S3Location
-    { _slBucket     = Nothing
-    , _slKey        = Nothing
-    , _slBundleType = Nothing
-    , _slVersion    = Nothing
-    , _slETag       = Nothing
-    }
-
--- | 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 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 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" $ \o -> S3Location
-        <$> o .:? "bucket"
-        <*> o .:? "bundleType"
-        <*> o .:? "eTag"
-        <*> o .:? "key"
-        <*> o .:? "version"
-
-instance ToJSON S3Location where
-    toJSON S3Location{..} = object
-        [ "bucket"     .= _slBucket
-        , "key"        .= _slKey
-        , "bundleType" .= _slBundleType
-        , "version"    .= _slVersion
-        , "eTag"       .= _slETag
-        ]
-
-data MinimumHealthyHostsType
-    = FleetPercent -- ^ FLEET_PERCENT
-    | HostCount    -- ^ HOST_COUNT
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable MinimumHealthyHostsType
-
-instance FromText MinimumHealthyHostsType where
-    parser = takeLowerText >>= \case
-        "fleet_percent" -> pure FleetPercent
-        "host_count"    -> pure HostCount
-        e               -> fail $
-            "Failure parsing MinimumHealthyHostsType from " ++ show e
-
-instance ToText MinimumHealthyHostsType where
-    toText = \case
-        FleetPercent -> "FLEET_PERCENT"
-        HostCount    -> "HOST_COUNT"
-
-instance ToByteString MinimumHealthyHostsType
-instance ToHeader     MinimumHealthyHostsType
-instance ToQuery      MinimumHealthyHostsType
-
-instance FromJSON MinimumHealthyHostsType where
-    parseJSON = parseJSONText "MinimumHealthyHostsType"
-
-instance ToJSON MinimumHealthyHostsType where
-    toJSON = toJSONText
-
-data GitHubLocation = GitHubLocation
-    { _ghlCommitId   :: Maybe Text
-    , _ghlRepository :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
-
--- | 'GitHubLocation' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'ghlCommitId' @::@ 'Maybe' 'Text'
---
--- * 'ghlRepository' @::@ 'Maybe' 'Text'
---
-gitHubLocation :: GitHubLocation
-gitHubLocation = GitHubLocation
-    { _ghlRepository = Nothing
-    , _ghlCommitId   = Nothing
-    }
-
--- | The SHA1 commit ID of the GitHub commit that references the 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" $ \o -> GitHubLocation
-        <$> o .:? "commitId"
-        <*> o .:? "repository"
-
-instance ToJSON GitHubLocation where
-    toJSON GitHubLocation{..} = object
-        [ "repository" .= _ghlRepository
-        , "commitId"   .= _ghlCommitId
-        ]
-
-data RevisionLocationType
-    = GitHub -- ^ GitHub
-    | S3     -- ^ S3
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable RevisionLocationType
-
-instance FromText RevisionLocationType where
-    parser = takeLowerText >>= \case
-        "github" -> pure GitHub
-        "s3"     -> pure S3
-        e        -> fail $
-            "Failure parsing RevisionLocationType from " ++ show e
-
-instance ToText RevisionLocationType where
-    toText = \case
-        GitHub -> "GitHub"
-        S3     -> "S3"
-
-instance ToByteString RevisionLocationType
-instance ToHeader     RevisionLocationType
-instance ToQuery      RevisionLocationType
-
-instance FromJSON RevisionLocationType where
-    parseJSON = parseJSONText "RevisionLocationType"
-
-instance ToJSON RevisionLocationType where
-    toJSON = toJSONText
-
-data EC2TagFilterType
-    = ECTFTKeyAndValue -- ^ KEY_AND_VALUE
-    | ECTFTKeyOnly     -- ^ KEY_ONLY
-    | ECTFTValueOnly   -- ^ VALUE_ONLY
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable EC2TagFilterType
-
-instance FromText EC2TagFilterType where
-    parser = takeLowerText >>= \case
-        "key_and_value" -> pure ECTFTKeyAndValue
-        "key_only"      -> pure ECTFTKeyOnly
-        "value_only"    -> pure ECTFTValueOnly
-        e               -> fail $
-            "Failure parsing EC2TagFilterType from " ++ show e
-
-instance ToText EC2TagFilterType where
-    toText = \case
-        ECTFTKeyAndValue -> "KEY_AND_VALUE"
-        ECTFTKeyOnly     -> "KEY_ONLY"
-        ECTFTValueOnly   -> "VALUE_ONLY"
-
-instance ToByteString EC2TagFilterType
-instance ToHeader     EC2TagFilterType
-instance ToQuery      EC2TagFilterType
-
-instance FromJSON EC2TagFilterType where
-    parseJSON = parseJSONText "EC2TagFilterType"
-
-instance ToJSON EC2TagFilterType where
-    toJSON = toJSONText
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE TypeFamilies      #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Network.AWS.CodeDeploy.Types
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.AWS.CodeDeploy.Types
+    (
+    -- * Service
+      CodeDeploy
+
+    -- * Errors
+    , _InvalidTimeRangeException
+    , _InvalidTagException
+    , _InstanceNameAlreadyRegisteredException
+    , _InvalidIAMUserARNException
+    , _IAMUserARNRequiredException
+    , _InvalidDeploymentGroupNameException
+    , _DescriptionTooLongException
+    , _DeploymentConfigAlreadyExistsException
+    , _DeploymentConfigLimitExceededException
+    , _InvalidRoleException
+    , _DeploymentNotStartedException
+    , _RoleRequiredException
+    , _IAMUserARNAlreadyRegisteredException
+    , _DeploymentLimitExceededException
+    , _InstanceLimitExceededException
+    , _InvalidAutoScalingGroupException
+    , _InvalidApplicationNameException
+    , _InvalidDeployedStateFilterException
+    , _InvalidMinimumHealthyHostValueException
+    , _ApplicationDoesNotExistException
+    , _InvalidTagFilterException
+    , _TagRequiredException
+    , _RevisionDoesNotExistException
+    , _DeploymentGroupNameRequiredException
+    , _InvalidBucketNameFilterException
+    , _DeploymentConfigDoesNotExistException
+    , _InvalidSortByException
+    , _BucketNameFilterRequiredException
+    , _DeploymentGroupLimitExceededException
+    , _DeploymentGroupAlreadyExistsException
+    , _InvalidDeploymentIdException
+    , _DeploymentGroupDoesNotExistException
+    , _DeploymentIdRequiredException
+    , _InstanceIdRequiredException
+    , _DeploymentConfigNameRequiredException
+    , _InvalidDeploymentConfigNameException
+    , _InvalidSortOrderException
+    , _InvalidNextTokenException
+    , _InvalidRevisionException
+    , _DeploymentAlreadyCompletedException
+    , _RevisionRequiredException
+    , _InstanceDoesNotExistException
+    , _DeploymentDoesNotExistException
+    , _InstanceNameRequiredException
+    , _DeploymentConfigInUseException
+    , _InvalidEC2TagException
+    , _InvalidInstanceNameException
+    , _InvalidDeploymentStatusException
+    , _InvalidRegistrationStatusException
+    , _TagLimitExceededException
+    , _InstanceNotRegisteredException
+    , _ApplicationLimitExceededException
+    , _InvalidOperationException
+    , _ApplicationAlreadyExistsException
+    , _InvalidInstanceStatusException
+    , _ApplicationNameRequiredException
+    , _InvalidKeyPrefixFilterException
+
+    -- * ApplicationRevisionSortBy
+    , ApplicationRevisionSortBy (..)
+
+    -- * BundleType
+    , BundleType (..)
+
+    -- * DeployErrorCode
+    , DeployErrorCode (..)
+
+    -- * DeploymentCreator
+    , DeploymentCreator (..)
+
+    -- * DeploymentStatus
+    , DeploymentStatus (..)
+
+    -- * EC2TagFilterType
+    , EC2TagFilterType (..)
+
+    -- * InstanceStatus
+    , InstanceStatus (..)
+
+    -- * LifecycleErrorCode
+    , LifecycleErrorCode (..)
+
+    -- * LifecycleEventStatus
+    , LifecycleEventStatus (..)
+
+    -- * ListStateFilterAction
+    , ListStateFilterAction (..)
+
+    -- * MinimumHealthyHostsType
+    , MinimumHealthyHostsType (..)
+
+    -- * RegistrationStatus
+    , RegistrationStatus (..)
+
+    -- * RevisionLocationType
+    , RevisionLocationType (..)
+
+    -- * SortOrder
+    , SortOrder (..)
+
+    -- * StopStatus
+    , StopStatus (..)
+
+    -- * TagFilterType
+    , TagFilterType (..)
+
+    -- * ApplicationInfo
+    , ApplicationInfo
+    , applicationInfo
+    , aiLinkedToGitHub
+    , aiApplicationId
+    , aiApplicationName
+    , aiCreateTime
+
+    -- * AutoScalingGroup
+    , AutoScalingGroup
+    , autoScalingGroup
+    , asgHook
+    , asgName
+
+    -- * DeploymentConfigInfo
+    , DeploymentConfigInfo
+    , deploymentConfigInfo
+    , dciDeploymentConfigName
+    , dciMinimumHealthyHosts
+    , dciDeploymentConfigId
+    , dciCreateTime
+
+    -- * DeploymentGroupInfo
+    , DeploymentGroupInfo
+    , deploymentGroupInfo
+    , dgiServiceRoleARN
+    , dgiDeploymentConfigName
+    , dgiTargetRevision
+    , dgiEc2TagFilters
+    , dgiOnPremisesInstanceTagFilters
+    , dgiApplicationName
+    , dgiDeploymentGroupId
+    , dgiAutoScalingGroups
+    , dgiDeploymentGroupName
+
+    -- * DeploymentInfo
+    , DeploymentInfo
+    , deploymentInfo
+    , diDeploymentId
+    , diCreator
+    , diStatus
+    , diDeploymentConfigName
+    , diStartTime
+    , diCompleteTime
+    , diErrorInformation
+    , diDeploymentOverview
+    , diApplicationName
+    , diRevision
+    , diDescription
+    , diIgnoreApplicationStopFailures
+    , diDeploymentGroupName
+    , diCreateTime
+
+    -- * DeploymentOverview
+    , DeploymentOverview
+    , deploymentOverview
+    , doPending
+    , doSkipped
+    , doInProgress
+    , doSucceeded
+    , doFailed
+
+    -- * Diagnostics
+    , Diagnostics
+    , diagnostics
+    , dLogTail
+    , dErrorCode
+    , dScriptName
+    , dMessage
+
+    -- * EC2TagFilter
+    , EC2TagFilter
+    , ec2TagFilter
+    , etfValue
+    , etfKey
+    , etfType
+
+    -- * ErrorInformation
+    , ErrorInformation
+    , errorInformation
+    , eiCode
+    , eiMessage
+
+    -- * GenericRevisionInfo
+    , GenericRevisionInfo
+    , genericRevisionInfo
+    , griRegisterTime
+    , griFirstUsedTime
+    , griDeploymentGroups
+    , griLastUsedTime
+    , griDescription
+
+    -- * GitHubLocation
+    , GitHubLocation
+    , gitHubLocation
+    , ghlCommitId
+    , ghlRepository
+
+    -- * InstanceInfo
+    , InstanceInfo
+    , instanceInfo
+    , iiInstanceARN
+    , iiRegisterTime
+    , iiDeregisterTime
+    , iiIamUserARN
+    , iiInstanceName
+    , iiTags
+
+    -- * InstanceSummary
+    , InstanceSummary
+    , instanceSummary
+    , isInstanceId
+    , isDeploymentId
+    , isStatus
+    , isLastUpdatedAt
+    , isLifecycleEvents
+
+    -- * LifecycleEvent
+    , LifecycleEvent
+    , lifecycleEvent
+    , leStatus
+    , leStartTime
+    , leLifecycleEventName
+    , leDiagnostics
+    , leEndTime
+
+    -- * MinimumHealthyHosts
+    , MinimumHealthyHosts
+    , minimumHealthyHosts
+    , mhhValue
+    , mhhType
+
+    -- * RevisionLocation
+    , RevisionLocation
+    , revisionLocation
+    , rlRevisionType
+    , rlS3Location
+    , rlGitHubLocation
+
+    -- * S3Location
+    , S3Location
+    , s3Location
+    , slBundleType
+    , slETag
+    , slBucket
+    , slKey
+    , slVersion
+
+    -- * Tag
+    , Tag
+    , tag
+    , tagValue
+    , tagKey
+
+    -- * TagFilter
+    , TagFilter
+    , tagFilter
+    , tfValue
+    , tfKey
+    , tfType
+
+    -- * TimeRange
+    , TimeRange
+    , timeRange
+    , trStart
+    , trEnd
+    ) where
+
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.CodeDeploy.Types.Sum
+import           Network.AWS.Prelude
+import           Network.AWS.Sign.V4
+
+-- | Version @2014-10-06@ of the Amazon CodeDeploy SDK.
+data CodeDeploy
+
+instance AWSService CodeDeploy where
+    type Sg CodeDeploy = V4
+    service = const svc
+      where
+        svc =
+            Service
+            { _svcAbbrev = "CodeDeploy"
+            , _svcPrefix = "codedeploy"
+            , _svcVersion = "2014-10-06"
+            , _svcEndpoint = defaultEndpoint svc
+            , _svcTimeout = Just 70
+            , _svcStatus = statusSuccess
+            , _svcError = parseJSONError
+            , _svcRetry = retry
+            }
+        retry =
+            Exponential
+            { _retryBase = 5.0e-2
+            , _retryGrowth = 2
+            , _retryAttempts = 5
+            , _retryCheck = check
+            }
+        check e
+          | has (hasCode "ThrottlingException" . hasStatus 400) e =
+              Just "throttling_exception"
+          | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"
+          | has (hasStatus 503) e = Just "service_unavailable"
+          | has (hasStatus 500) e = Just "general_server_error"
+          | has (hasStatus 509) e = Just "limit_exceeded"
+          | otherwise = Nothing
+
+-- | The specified time range was specified in an invalid format.
+_InvalidTimeRangeException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidTimeRangeException =
+    _ServiceError . hasCode "InvalidTimeRangeException"
+
+-- | The specified tag was specified in an invalid format.
+_InvalidTagException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidTagException = _ServiceError . hasCode "InvalidTagException"
+
+-- | The specified on-premises instance name is already registered.
+_InstanceNameAlreadyRegisteredException :: AsError a => Getting (First ServiceError) a ServiceError
+_InstanceNameAlreadyRegisteredException =
+    _ServiceError . hasCode "InstanceNameAlreadyRegisteredException"
+
+-- | The IAM user ARN was specified in an invalid format.
+_InvalidIAMUserARNException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidIAMUserARNException =
+    _ServiceError . hasCode "InvalidIamUserArnException"
+
+-- | An IAM user ARN was not specified.
+_IAMUserARNRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
+_IAMUserARNRequiredException =
+    _ServiceError . hasCode "IamUserArnRequiredException"
+
+-- | The deployment group name was specified in an invalid format.
+_InvalidDeploymentGroupNameException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidDeploymentGroupNameException =
+    _ServiceError . hasCode "InvalidDeploymentGroupNameException"
+
+-- | The description that was provided is too long.
+_DescriptionTooLongException :: AsError a => Getting (First ServiceError) a ServiceError
+_DescriptionTooLongException =
+    _ServiceError . hasCode "DescriptionTooLongException"
+
+-- | 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"
+
+-- | The deployment configurations limit was exceeded.
+_DeploymentConfigLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
+_DeploymentConfigLimitExceededException =
+    _ServiceError . hasCode "DeploymentConfigLimitExceededException"
+
+-- | 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"
+
+-- | The specified deployment has not started.
+_DeploymentNotStartedException :: AsError a => Getting (First ServiceError) a ServiceError
+_DeploymentNotStartedException =
+    _ServiceError . hasCode "DeploymentNotStartedException"
+
+-- | The role ID was not specified.
+_RoleRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
+_RoleRequiredException = _ServiceError . hasCode "RoleRequiredException"
+
+-- | 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"
+
+-- | The number of allowed deployments was exceeded.
+_DeploymentLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
+_DeploymentLimitExceededException =
+    _ServiceError . hasCode "DeploymentLimitExceededException"
+
+-- | 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"
+
+-- | 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"
+
+-- | The application name was specified in an invalid format.
+_InvalidApplicationNameException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidApplicationNameException =
+    _ServiceError . hasCode "InvalidApplicationNameException"
+
+-- | The deployed state filter was specified in an invalid format.
+_InvalidDeployedStateFilterException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidDeployedStateFilterException =
+    _ServiceError . hasCode "InvalidDeployedStateFilterException"
+
+-- | The minimum healthy instances value was specified in an invalid format.
+_InvalidMinimumHealthyHostValueException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidMinimumHealthyHostValueException =
+    _ServiceError . hasCode "InvalidMinimumHealthyHostValueException"
+
+-- | 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"
+
+-- | The specified tag filter was specified in an invalid format.
+_InvalidTagFilterException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidTagFilterException =
+    _ServiceError . hasCode "InvalidTagFilterException"
+
+-- | A tag was not specified.
+_TagRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
+_TagRequiredException = _ServiceError . hasCode "TagRequiredException"
+
+-- | 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"
+
+-- | The deployment group name was not specified.
+_DeploymentGroupNameRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
+_DeploymentGroupNameRequiredException =
+    _ServiceError . hasCode "DeploymentGroupNameRequiredException"
+
+-- | 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"
+
+-- | 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"
+
+-- | 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"
+
+-- | A bucket name is required but was not provided.
+_BucketNameFilterRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
+_BucketNameFilterRequiredException =
+    _ServiceError . hasCode "BucketNameFilterRequiredException"
+
+-- | The deployment groups limit was exceeded.
+_DeploymentGroupLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
+_DeploymentGroupLimitExceededException =
+    _ServiceError . hasCode "DeploymentGroupLimitExceededException"
+
+-- | 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"
+
+-- | 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"
+
+-- | 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"
+
+-- | At least one deployment ID must be specified.
+_DeploymentIdRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
+_DeploymentIdRequiredException =
+    _ServiceError . hasCode "DeploymentIdRequiredException"
+
+-- | The instance ID was not specified.
+_InstanceIdRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
+_InstanceIdRequiredException =
+    _ServiceError . hasCode "InstanceIdRequiredException"
+
+-- | The deployment configuration name was not specified.
+_DeploymentConfigNameRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
+_DeploymentConfigNameRequiredException =
+    _ServiceError . hasCode "DeploymentConfigNameRequiredException"
+
+-- | The deployment configuration name was specified in an invalid format.
+_InvalidDeploymentConfigNameException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidDeploymentConfigNameException =
+    _ServiceError . hasCode "InvalidDeploymentConfigNameException"
+
+-- | The sort order was specified in an invalid format.
+_InvalidSortOrderException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidSortOrderException =
+    _ServiceError . hasCode "InvalidSortOrderException"
+
+-- | The next token was specified in an invalid format.
+_InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidNextTokenException =
+    _ServiceError . hasCode "InvalidNextTokenException"
+
+-- | The revision was specified in an invalid format.
+_InvalidRevisionException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidRevisionException = _ServiceError . hasCode "InvalidRevisionException"
+
+-- | The deployment is already completed.
+_DeploymentAlreadyCompletedException :: AsError a => Getting (First ServiceError) a ServiceError
+_DeploymentAlreadyCompletedException =
+    _ServiceError . hasCode "DeploymentAlreadyCompletedException"
+
+-- | The revision ID was not specified.
+_RevisionRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
+_RevisionRequiredException =
+    _ServiceError . hasCode "RevisionRequiredException"
+
+-- | The specified instance does not exist in the deployment group.
+_InstanceDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
+_InstanceDoesNotExistException =
+    _ServiceError . hasCode "InstanceDoesNotExistException"
+
+-- | 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"
+
+-- | An on-premises instance name was not specified.
+_InstanceNameRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
+_InstanceNameRequiredException =
+    _ServiceError . hasCode "InstanceNameRequiredException"
+
+-- | The deployment configuration is still in use.
+_DeploymentConfigInUseException :: AsError a => Getting (First ServiceError) a ServiceError
+_DeploymentConfigInUseException =
+    _ServiceError . hasCode "DeploymentConfigInUseException"
+
+-- | The tag was specified in an invalid format.
+_InvalidEC2TagException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidEC2TagException = _ServiceError . hasCode "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"
+
+-- | The specified deployment status doesn\'t exist or cannot be determined.
+_InvalidDeploymentStatusException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidDeploymentStatusException =
+    _ServiceError . hasCode "InvalidDeploymentStatusException"
+
+-- | The registration status was specified in an invalid format.
+_InvalidRegistrationStatusException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidRegistrationStatusException =
+    _ServiceError . hasCode "InvalidRegistrationStatusException"
+
+-- | The maximum allowed number of tags was exceeded.
+_TagLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
+_TagLimitExceededException =
+    _ServiceError . hasCode "TagLimitExceededException"
+
+-- | The specified on-premises instance is not registered.
+_InstanceNotRegisteredException :: AsError a => Getting (First ServiceError) a ServiceError
+_InstanceNotRegisteredException =
+    _ServiceError . hasCode "InstanceNotRegisteredException"
+
+-- | More applications were attempted to be created than were allowed.
+_ApplicationLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
+_ApplicationLimitExceededException =
+    _ServiceError . hasCode "ApplicationLimitExceededException"
+
+-- | An invalid operation was detected.
+_InvalidOperationException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidOperationException =
+    _ServiceError . hasCode "InvalidOperationException"
+
+-- | 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"
+
+-- | The specified instance status does not exist.
+_InvalidInstanceStatusException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidInstanceStatusException =
+    _ServiceError . hasCode "InvalidInstanceStatusException"
+
+-- | The minimum number of required application names was not specified.
+_ApplicationNameRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
+_ApplicationNameRequiredException =
+    _ServiceError . hasCode "ApplicationNameRequiredException"
+
+-- | The specified key prefix filter was specified in an invalid format.
+_InvalidKeyPrefixFilterException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidKeyPrefixFilterException =
+    _ServiceError . hasCode "InvalidKeyPrefixFilterException"
diff --git a/gen/Network/AWS/CodeDeploy/Types/Product.hs b/gen/Network/AWS/CodeDeploy/Types/Product.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/CodeDeploy/Types/Product.hs
@@ -0,0 +1,1371 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Network.AWS.CodeDeploy.Types.Product
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.AWS.CodeDeploy.Types.Product where
+
+import           Network.AWS.CodeDeploy.Types.Sum
+import           Network.AWS.Prelude
+
+-- | 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'
+--
+-- * 'aiApplicationId'
+--
+-- * 'aiApplicationName'
+--
+-- * 'aiCreateTime'
+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 that 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"))
+
+-- | 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'
+--
+-- * 'asgName'
+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"))
+
+-- | 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'
+--
+-- * 'dciMinimumHealthyHosts'
+--
+-- * 'dciDeploymentConfigId'
+--
+-- * 'dciCreateTime'
+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 instances.
+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 that 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"))
+
+-- | 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)
+    , _dgiDeploymentGroupId            :: !(Maybe Text)
+    , _dgiAutoScalingGroups            :: !(Maybe [AutoScalingGroup])
+    , _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'
+--
+-- * 'dgiDeploymentConfigName'
+--
+-- * 'dgiTargetRevision'
+--
+-- * 'dgiEc2TagFilters'
+--
+-- * 'dgiOnPremisesInstanceTagFilters'
+--
+-- * 'dgiApplicationName'
+--
+-- * 'dgiDeploymentGroupId'
+--
+-- * 'dgiAutoScalingGroups'
+--
+-- * 'dgiDeploymentGroupName'
+deploymentGroupInfo
+    :: DeploymentGroupInfo
+deploymentGroupInfo =
+    DeploymentGroupInfo'
+    { _dgiServiceRoleARN = Nothing
+    , _dgiDeploymentConfigName = Nothing
+    , _dgiTargetRevision = Nothing
+    , _dgiEc2TagFilters = Nothing
+    , _dgiOnPremisesInstanceTagFilters = Nothing
+    , _dgiApplicationName = Nothing
+    , _dgiDeploymentGroupId = Nothing
+    , _dgiAutoScalingGroups = 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 the
+-- revision\'s type and its location.
+dgiTargetRevision :: Lens' DeploymentGroupInfo (Maybe RevisionLocation)
+dgiTargetRevision = lens _dgiTargetRevision (\ s a -> s{_dgiTargetRevision = a});
+
+-- | The Amazon EC2 tags to filter on.
+dgiEc2TagFilters :: Lens' DeploymentGroupInfo [EC2TagFilter]
+dgiEc2TagFilters = lens _dgiEc2TagFilters (\ s a -> s{_dgiEc2TagFilters = a}) . _Default . _Coerce;
+
+-- | The on-premises instance tags to filter on.
+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});
+
+-- | 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;
+
+-- | 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 .:? "deploymentGroupId")
+                     <*> (x .:? "autoScalingGroups" .!= mempty)
+                     <*> (x .:? "deploymentGroupName"))
+
+-- | Information about a deployment.
+--
+-- /See:/ 'deploymentInfo' smart constructor.
+data DeploymentInfo = DeploymentInfo'
+    { _diDeploymentId                  :: !(Maybe Text)
+    , _diCreator                       :: !(Maybe DeploymentCreator)
+    , _diStatus                        :: !(Maybe DeploymentStatus)
+    , _diDeploymentConfigName          :: !(Maybe Text)
+    , _diStartTime                     :: !(Maybe POSIX)
+    , _diCompleteTime                  :: !(Maybe POSIX)
+    , _diErrorInformation              :: !(Maybe ErrorInformation)
+    , _diDeploymentOverview            :: !(Maybe DeploymentOverview)
+    , _diApplicationName               :: !(Maybe Text)
+    , _diRevision                      :: !(Maybe RevisionLocation)
+    , _diDescription                   :: !(Maybe Text)
+    , _diIgnoreApplicationStopFailures :: !(Maybe Bool)
+    , _diDeploymentGroupName           :: !(Maybe Text)
+    , _diCreateTime                    :: !(Maybe POSIX)
+    } 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:
+--
+-- * 'diDeploymentId'
+--
+-- * 'diCreator'
+--
+-- * 'diStatus'
+--
+-- * 'diDeploymentConfigName'
+--
+-- * 'diStartTime'
+--
+-- * 'diCompleteTime'
+--
+-- * 'diErrorInformation'
+--
+-- * 'diDeploymentOverview'
+--
+-- * 'diApplicationName'
+--
+-- * 'diRevision'
+--
+-- * 'diDescription'
+--
+-- * 'diIgnoreApplicationStopFailures'
+--
+-- * 'diDeploymentGroupName'
+--
+-- * 'diCreateTime'
+deploymentInfo
+    :: DeploymentInfo
+deploymentInfo =
+    DeploymentInfo'
+    { _diDeploymentId = Nothing
+    , _diCreator = Nothing
+    , _diStatus = Nothing
+    , _diDeploymentConfigName = Nothing
+    , _diStartTime = Nothing
+    , _diCompleteTime = Nothing
+    , _diErrorInformation = Nothing
+    , _diDeploymentOverview = Nothing
+    , _diApplicationName = Nothing
+    , _diRevision = Nothing
+    , _diDescription = Nothing
+    , _diIgnoreApplicationStopFailures = Nothing
+    , _diDeploymentGroupName = Nothing
+    , _diCreateTime = Nothing
+    }
+
+-- | The deployment ID.
+diDeploymentId :: Lens' DeploymentInfo (Maybe Text)
+diDeploymentId = lens _diDeploymentId (\ s a -> s{_diDeploymentId = a});
+
+-- | How the deployment was created:
+--
+-- -   user: A user created the deployment.
+-- -   autoscaling: Auto Scaling 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 configuration name.
+diDeploymentConfigName :: Lens' DeploymentInfo (Maybe Text)
+diDeploymentConfigName = lens _diDeploymentConfigName (\ s a -> s{_diDeploymentConfigName = a});
+
+-- | A timestamp indicating when the deployment began deploying to the
+-- deployment group.
+--
+-- Note that 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 various back-end servers that participate in the overall
+-- deployment process.
+diStartTime :: Lens' DeploymentInfo (Maybe UTCTime)
+diStartTime = lens _diStartTime (\ s a -> s{_diStartTime = a}) . mapping _Time;
+
+-- | A timestamp indicating when the deployment was completed.
+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 the location of application artifacts that are stored
+-- and the service to retrieve them from.
+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});
+
+-- | If true, then if the deployment causes the ApplicationStop deployment
+-- lifecycle event to fail to a specific instance, the deployment will not
+-- be considered to have failed to that instance 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 fail to a specific
+-- instance, the deployment will stop to that instance, 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});
+
+-- | The deployment group name.
+diDeploymentGroupName :: Lens' DeploymentInfo (Maybe Text)
+diDeploymentGroupName = lens _diDeploymentGroupName (\ s a -> s{_diDeploymentGroupName = a});
+
+-- | A timestamp indicating when the deployment was created.
+diCreateTime :: Lens' DeploymentInfo (Maybe UTCTime)
+diCreateTime = lens _diCreateTime (\ s a -> s{_diCreateTime = a}) . mapping _Time;
+
+instance FromJSON DeploymentInfo where
+        parseJSON
+          = withObject "DeploymentInfo"
+              (\ x ->
+                 DeploymentInfo' <$>
+                   (x .:? "deploymentId") <*> (x .:? "creator") <*>
+                     (x .:? "status")
+                     <*> (x .:? "deploymentConfigName")
+                     <*> (x .:? "startTime")
+                     <*> (x .:? "completeTime")
+                     <*> (x .:? "errorInformation")
+                     <*> (x .:? "deploymentOverview")
+                     <*> (x .:? "applicationName")
+                     <*> (x .:? "revision")
+                     <*> (x .:? "description")
+                     <*> (x .:? "ignoreApplicationStopFailures")
+                     <*> (x .:? "deploymentGroupName")
+                     <*> (x .:? "createTime"))
+
+-- | 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'
+--
+-- * 'doSkipped'
+--
+-- * 'doInProgress'
+--
+-- * 'doSucceeded'
+--
+-- * 'doFailed'
+deploymentOverview
+    :: DeploymentOverview
+deploymentOverview =
+    DeploymentOverview'
+    { _doPending = Nothing
+    , _doSkipped = Nothing
+    , _doInProgress = Nothing
+    , _doSucceeded = Nothing
+    , _doFailed = Nothing
+    }
+
+-- | The number of instances that are pending in the deployment.
+doPending :: Lens' DeploymentOverview (Maybe Integer)
+doPending = lens _doPending (\ s a -> s{_doPending = a});
+
+-- | The number of instances that have been skipped in the deployment.
+doSkipped :: Lens' DeploymentOverview (Maybe Integer)
+doSkipped = lens _doSkipped (\ s a -> s{_doSkipped = a});
+
+-- | The number of instances that are in progress in the deployment.
+doInProgress :: Lens' DeploymentOverview (Maybe Integer)
+doInProgress = lens _doInProgress (\ s a -> s{_doInProgress = a});
+
+-- | The number of instances that have succeeded in the deployment.
+doSucceeded :: Lens' DeploymentOverview (Maybe Integer)
+doSucceeded = lens _doSucceeded (\ s a -> s{_doSucceeded = a});
+
+-- | The number of instances that have failed in the deployment.
+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"))
+
+-- | 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'
+--
+-- * 'dErrorCode'
+--
+-- * 'dScriptName'
+--
+-- * 'dMessage'
+diagnostics
+    :: Diagnostics
+diagnostics =
+    Diagnostics'
+    { _dLogTail = Nothing
+    , _dErrorCode = Nothing
+    , _dScriptName = Nothing
+    , _dMessage = Nothing
+    }
+
+-- | The last portion of the associated 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"))
+
+-- | 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'
+--
+-- * 'etfKey'
+--
+-- * 'etfType'
+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 ToJSON EC2TagFilter where
+        toJSON EC2TagFilter'{..}
+          = object
+              ["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'
+--
+-- * 'eiMessage'
+errorInformation
+    :: ErrorInformation
+errorInformation =
+    ErrorInformation'
+    { _eiCode = Nothing
+    , _eiMessage = Nothing
+    }
+
+-- | The error code:
+--
+-- -   APPLICATION_MISSING: The application was missing. Note that this
+--     error code will most likely be raised if the application is deleted
+--     after the deployment is created but before it starts.
+-- -   DEPLOYMENT_GROUP_MISSING: The deployment group was missing. Note
+--     that this error code will most likely be raised if the deployment
+--     group is deleted after the deployment is created but before it
+--     starts.
+-- -   HEALTH_CONSTRAINTS: The deployment failed on too many instances to
+--     be able to successfully deploy within the specified instance health
+--     constraints.
+-- -   HEALTH_CONSTRAINTS_INVALID: The revision can never successfully
+--     deploy within the instance health constraints as specified.
+-- -   IAM_ROLE_MISSING: The service role cannot be accessed.
+-- -   IAM_ROLE_PERMISSIONS: The service role does not have the correct
+--     permissions.
+-- -   INTERNAL_ERROR: There was an internal error.
+-- -   NO_EC2_SUBSCRIPTION: The calling account is not subscribed to the
+--     Amazon EC2 service.
+-- -   NO_INSTANCES: No instances were specified, or no instances can be
+--     found.
+-- -   OVER_MAX_INSTANCES: The maximum number of instances was exceeded.
+-- -   THROTTLED: The operation was throttled because the calling account
+--     exceeded the throttling limits of one or more AWS services.
+-- -   TIMEOUT: The deployment has timed out.
+-- -   REVISION_MISSING: The revision ID was missing. Note that this error
+--     code will most likely be raised if the revision is deleted after the
+--     deployment is created but before it starts.
+eiCode :: Lens' ErrorInformation (Maybe 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"))
+
+-- | 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'
+--
+-- * 'griFirstUsedTime'
+--
+-- * 'griDeploymentGroups'
+--
+-- * 'griLastUsedTime'
+--
+-- * 'griDescription'
+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;
+
+-- | A list of deployment groups that use this 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"))
+
+-- | Information about the location of application artifacts that are 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'
+--
+-- * 'ghlRepository'
+gitHubLocation
+    :: GitHubLocation
+gitHubLocation =
+    GitHubLocation'
+    { _ghlCommitId = Nothing
+    , _ghlRepository = Nothing
+    }
+
+-- | The SHA1 commit ID of the GitHub commit that references the 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 ToJSON GitHubLocation where
+        toJSON GitHubLocation'{..}
+          = object
+              ["commitId" .= _ghlCommitId,
+               "repository" .= _ghlRepository]
+
+-- | Information about an on-premises instance.
+--
+-- /See:/ 'instanceInfo' smart constructor.
+data InstanceInfo = InstanceInfo'
+    { _iiInstanceARN    :: !(Maybe Text)
+    , _iiRegisterTime   :: !(Maybe POSIX)
+    , _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:
+--
+-- * 'iiInstanceARN'
+--
+-- * 'iiRegisterTime'
+--
+-- * 'iiDeregisterTime'
+--
+-- * 'iiIamUserARN'
+--
+-- * 'iiInstanceName'
+--
+-- * 'iiTags'
+instanceInfo
+    :: InstanceInfo
+instanceInfo =
+    InstanceInfo'
+    { _iiInstanceARN = Nothing
+    , _iiRegisterTime = Nothing
+    , _iiDeregisterTime = Nothing
+    , _iiIamUserARN = Nothing
+    , _iiInstanceName = Nothing
+    , _iiTags = Nothing
+    }
+
+-- | The ARN of the on-premises instance.
+iiInstanceARN :: Lens' InstanceInfo (Maybe Text)
+iiInstanceARN = lens _iiInstanceARN (\ s a -> s{_iiInstanceARN = a});
+
+-- | The time that the on-premises instance was registered.
+iiRegisterTime :: Lens' InstanceInfo (Maybe UTCTime)
+iiRegisterTime = lens _iiRegisterTime (\ s a -> s{_iiRegisterTime = a}) . mapping _Time;
+
+-- | If the on-premises instance was deregistered, the time that the
+-- on-premises instance was deregistered.
+iiDeregisterTime :: Lens' InstanceInfo (Maybe UTCTime)
+iiDeregisterTime = lens _iiDeregisterTime (\ s a -> s{_iiDeregisterTime = a}) . mapping _Time;
+
+-- | The IAM user ARN associated with the on-premises instance.
+iiIamUserARN :: Lens' InstanceInfo (Maybe Text)
+iiIamUserARN = lens _iiIamUserARN (\ s a -> s{_iiIamUserARN = a});
+
+-- | The name of the on-premises instance.
+iiInstanceName :: Lens' InstanceInfo (Maybe Text)
+iiInstanceName = lens _iiInstanceName (\ s a -> s{_iiInstanceName = a});
+
+-- | The tags that are 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 .:? "instanceArn") <*> (x .:? "registerTime") <*>
+                     (x .:? "deregisterTime")
+                     <*> (x .:? "iamUserArn")
+                     <*> (x .:? "instanceName")
+                     <*> (x .:? "tags" .!= mempty))
+
+-- | Information about an instance in a deployment.
+--
+-- /See:/ 'instanceSummary' smart constructor.
+data InstanceSummary = InstanceSummary'
+    { _isInstanceId      :: !(Maybe Text)
+    , _isDeploymentId    :: !(Maybe Text)
+    , _isStatus          :: !(Maybe InstanceStatus)
+    , _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'
+--
+-- * 'isDeploymentId'
+--
+-- * 'isStatus'
+--
+-- * 'isLastUpdatedAt'
+--
+-- * 'isLifecycleEvents'
+instanceSummary
+    :: InstanceSummary
+instanceSummary =
+    InstanceSummary'
+    { _isInstanceId = Nothing
+    , _isDeploymentId = Nothing
+    , _isStatus = Nothing
+    , _isLastUpdatedAt = Nothing
+    , _isLifecycleEvents = Nothing
+    }
+
+-- | The instance ID.
+isInstanceId :: Lens' InstanceSummary (Maybe Text)
+isInstanceId = lens _isInstanceId (\ s a -> s{_isInstanceId = a});
+
+-- | The deployment ID.
+isDeploymentId :: Lens' InstanceSummary (Maybe Text)
+isDeploymentId = lens _isDeploymentId (\ s a -> s{_isDeploymentId = 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});
+
+-- | 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 .:? "deploymentId") <*>
+                     (x .:? "status")
+                     <*> (x .:? "lastUpdatedAt")
+                     <*> (x .:? "lifecycleEvents" .!= mempty))
+
+-- | Information about a deployment lifecycle event.
+--
+-- /See:/ 'lifecycleEvent' smart constructor.
+data LifecycleEvent = LifecycleEvent'
+    { _leStatus             :: !(Maybe LifecycleEventStatus)
+    , _leStartTime          :: !(Maybe POSIX)
+    , _leLifecycleEventName :: !(Maybe Text)
+    , _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'
+--
+-- * 'leStartTime'
+--
+-- * 'leLifecycleEventName'
+--
+-- * 'leDiagnostics'
+--
+-- * 'leEndTime'
+lifecycleEvent
+    :: LifecycleEvent
+lifecycleEvent =
+    LifecycleEvent'
+    { _leStatus = Nothing
+    , _leStartTime = Nothing
+    , _leLifecycleEventName = 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 has succeeded.
+-- -   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});
+
+-- | A timestamp indicating when the deployment lifecycle event started.
+leStartTime :: Lens' LifecycleEvent (Maybe UTCTime)
+leStartTime = lens _leStartTime (\ s a -> s{_leStartTime = a}) . mapping _Time;
+
+-- | 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});
+
+-- | 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 .:? "startTime") <*>
+                     (x .:? "lifecycleEventName")
+                     <*> (x .:? "diagnostics")
+                     <*> (x .:? "endTime"))
+
+-- | Information about minimum healthy instances.
+--
+-- /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'
+--
+-- * 'mhhType'
+minimumHealthyHosts
+    :: MinimumHealthyHosts
+minimumHealthyHosts =
+    MinimumHealthyHosts'
+    { _mhhValue = Nothing
+    , _mhhType = Nothing
+    }
+
+-- | The minimum healthy instances value.
+mhhValue :: Lens' MinimumHealthyHosts (Maybe Int)
+mhhValue = lens _mhhValue (\ s a -> s{_mhhValue = a});
+
+-- | The minimum healthy instances type:
+--
+-- -   HOST_COUNT: The minimum number of healthy instances, as an absolute
+--     value.
+-- -   FLEET_PERCENT: The minimum number of healthy instances, as a
+--     percentage of the total number of instances in the deployment.
+--
+-- For example, for 9 instances, if a HOST_COUNT of 6 is specified, deploy
+-- to up to 3 instances at a time. The deployment succeeds if 6 or more
+-- instances are successfully deployed to; otherwise, the deployment fails.
+-- If a FLEET_PERCENT of 40 is specified, deploy to up to 5 instances at a
+-- time. The deployment succeeds if 4 or more instances are successfully
+-- deployed to; otherwise, the deployment fails.
+--
+-- In a call to the get deployment configuration operation,
+-- CodeDeployDefault.OneAtATime will return a minimum healthy instances
+-- type of MOST_CONCURRENCY and a value of 1. This means a deployment to
+-- only one instances at a time. (You cannot set the type to
+-- MOST_CONCURRENCY, only to HOST_COUNT or FLEET_PERCENT.)
+mhhType :: Lens' MinimumHealthyHosts (Maybe MinimumHealthyHostsType)
+mhhType = lens _mhhType (\ s a -> s{_mhhType = a});
+
+instance FromJSON MinimumHealthyHosts where
+        parseJSON
+          = withObject "MinimumHealthyHosts"
+              (\ x ->
+                 MinimumHealthyHosts' <$>
+                   (x .:? "value") <*> (x .:? "type"))
+
+instance ToJSON MinimumHealthyHosts where
+        toJSON MinimumHealthyHosts'{..}
+          = object ["value" .= _mhhValue, "type" .= _mhhType]
+
+-- | Information about an application revision\'s location.
+--
+-- /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'
+--
+-- * 'rlS3Location'
+--
+-- * 'rlGitHubLocation'
+revisionLocation
+    :: RevisionLocation
+revisionLocation =
+    RevisionLocation'
+    { _rlRevisionType = Nothing
+    , _rlS3Location = Nothing
+    , _rlGitHubLocation = Nothing
+    }
+
+-- | The application revision\'s type:
+--
+-- -   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 ToJSON RevisionLocation where
+        toJSON RevisionLocation'{..}
+          = object
+              ["revisionType" .= _rlRevisionType,
+               "s3Location" .= _rlS3Location,
+               "gitHubLocation" .= _rlGitHubLocation]
+
+-- | Information about the location of application artifacts that are 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'
+--
+-- * 'slETag'
+--
+-- * 'slBucket'
+--
+-- * 'slKey'
+--
+-- * 'slVersion'
+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 ToJSON S3Location where
+        toJSON S3Location'{..}
+          = object
+              ["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'
+--
+-- * 'tagKey'
+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 ToJSON Tag where
+        toJSON Tag'{..}
+          = object ["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'
+--
+-- * 'tfKey'
+--
+-- * 'tfType'
+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 ToJSON TagFilter where
+        toJSON TagFilter'{..}
+          = object
+              ["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'
+--
+-- * 'trEnd'
+timeRange
+    :: TimeRange
+timeRange =
+    TimeRange'
+    { _trStart = Nothing
+    , _trEnd = Nothing
+    }
+
+-- | The time range\'s start time.
+--
+-- Specify null to leave the time range\'s start time open-ended.
+trStart :: Lens' TimeRange (Maybe UTCTime)
+trStart = lens _trStart (\ s a -> s{_trStart = a}) . mapping _Time;
+
+-- | The time range\'s end time.
+--
+-- Specify null to leave the time range\'s end time open-ended.
+trEnd :: Lens' TimeRange (Maybe UTCTime)
+trEnd = lens _trEnd (\ s a -> s{_trEnd = a}) . mapping _Time;
+
+instance ToJSON TimeRange where
+        toJSON TimeRange'{..}
+          = object ["start" .= _trStart, "end" .= _trEnd]
diff --git a/gen/Network/AWS/CodeDeploy/Types/Sum.hs b/gen/Network/AWS/CodeDeploy/Types/Sum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/CodeDeploy/Types/Sum.hs
@@ -0,0 +1,537 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE LambdaCase         #-}
+{-# LANGUAGE OverloadedStrings  #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Network.AWS.CodeDeploy.Types.Sum
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.AWS.CodeDeploy.Types.Sum where
+
+import           Network.AWS.Prelude
+
+data ApplicationRevisionSortBy
+    = FirstUsedTime
+    | LastUsedTime
+    | RegisterTime
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText ApplicationRevisionSortBy where
+    parser = takeLowerText >>= \case
+        "firstusedtime" -> pure FirstUsedTime
+        "lastusedtime" -> pure LastUsedTime
+        "registertime" -> pure RegisterTime
+        e -> fromTextError $ "Failure parsing ApplicationRevisionSortBy from value: '" <> e
+           <> "'. Accepted values: firstusedtime, lastusedtime, registertime"
+
+instance ToText ApplicationRevisionSortBy where
+    toText = \case
+        FirstUsedTime -> "firstusedtime"
+        LastUsedTime -> "lastusedtime"
+        RegisterTime -> "registertime"
+
+instance Hashable     ApplicationRevisionSortBy
+instance ToByteString ApplicationRevisionSortBy
+instance ToQuery      ApplicationRevisionSortBy
+instance ToHeader     ApplicationRevisionSortBy
+
+instance ToJSON ApplicationRevisionSortBy where
+    toJSON = toJSONText
+
+data BundleType
+    = TAR
+    | TGZ
+    | Zip
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText BundleType where
+    parser = takeLowerText >>= \case
+        "tar" -> pure TAR
+        "tgz" -> pure TGZ
+        "zip" -> pure Zip
+        e -> fromTextError $ "Failure parsing BundleType from value: '" <> e
+           <> "'. Accepted values: tar, tgz, zip"
+
+instance ToText BundleType where
+    toText = \case
+        TAR -> "tar"
+        TGZ -> "tgz"
+        Zip -> "zip"
+
+instance Hashable     BundleType
+instance ToByteString BundleType
+instance ToQuery      BundleType
+instance ToHeader     BundleType
+
+instance ToJSON BundleType where
+    toJSON = toJSONText
+
+instance FromJSON BundleType where
+    parseJSON = parseJSONText "BundleType"
+
+data DeployErrorCode
+    = ApplicationMissing
+    | DeploymentGroupMissing
+    | HealthConstraints
+    | HealthConstraintsInvalid
+    | IAMRoleMissing
+    | IAMRolePermissions
+    | InternalError
+    | NoEC2Subscription
+    | NoInstances
+    | OverMaxInstances
+    | RevisionMissing
+    | Throttled
+    | Timeout
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText DeployErrorCode where
+    parser = takeLowerText >>= \case
+        "application_missing" -> pure ApplicationMissing
+        "deployment_group_missing" -> pure DeploymentGroupMissing
+        "health_constraints" -> pure HealthConstraints
+        "health_constraints_invalid" -> pure HealthConstraintsInvalid
+        "iam_role_missing" -> pure IAMRoleMissing
+        "iam_role_permissions" -> pure IAMRolePermissions
+        "internal_error" -> pure InternalError
+        "no_ec2_subscription" -> pure NoEC2Subscription
+        "no_instances" -> pure NoInstances
+        "over_max_instances" -> pure OverMaxInstances
+        "revision_missing" -> pure RevisionMissing
+        "throttled" -> pure Throttled
+        "timeout" -> pure Timeout
+        e -> fromTextError $ "Failure parsing DeployErrorCode from value: '" <> e
+           <> "'. Accepted values: application_missing, deployment_group_missing, health_constraints, health_constraints_invalid, iam_role_missing, iam_role_permissions, internal_error, no_ec2_subscription, no_instances, over_max_instances, revision_missing, throttled, timeout"
+
+instance ToText DeployErrorCode where
+    toText = \case
+        ApplicationMissing -> "application_missing"
+        DeploymentGroupMissing -> "deployment_group_missing"
+        HealthConstraints -> "health_constraints"
+        HealthConstraintsInvalid -> "health_constraints_invalid"
+        IAMRoleMissing -> "iam_role_missing"
+        IAMRolePermissions -> "iam_role_permissions"
+        InternalError -> "internal_error"
+        NoEC2Subscription -> "no_ec2_subscription"
+        NoInstances -> "no_instances"
+        OverMaxInstances -> "over_max_instances"
+        RevisionMissing -> "revision_missing"
+        Throttled -> "throttled"
+        Timeout -> "timeout"
+
+instance Hashable     DeployErrorCode
+instance ToByteString DeployErrorCode
+instance ToQuery      DeployErrorCode
+instance ToHeader     DeployErrorCode
+
+instance FromJSON DeployErrorCode where
+    parseJSON = parseJSONText "DeployErrorCode"
+
+data DeploymentCreator
+    = Autoscaling
+    | User
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText DeploymentCreator where
+    parser = takeLowerText >>= \case
+        "autoscaling" -> pure Autoscaling
+        "user" -> pure User
+        e -> fromTextError $ "Failure parsing DeploymentCreator from value: '" <> e
+           <> "'. Accepted values: autoscaling, user"
+
+instance ToText DeploymentCreator where
+    toText = \case
+        Autoscaling -> "autoscaling"
+        User -> "user"
+
+instance Hashable     DeploymentCreator
+instance ToByteString DeploymentCreator
+instance ToQuery      DeploymentCreator
+instance ToHeader     DeploymentCreator
+
+instance FromJSON DeploymentCreator where
+    parseJSON = parseJSONText "DeploymentCreator"
+
+data DeploymentStatus
+    = Created
+    | Failed
+    | InProgress
+    | Queued
+    | Stopped
+    | Succeeded
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText DeploymentStatus where
+    parser = takeLowerText >>= \case
+        "created" -> pure Created
+        "failed" -> pure Failed
+        "inprogress" -> pure InProgress
+        "queued" -> pure Queued
+        "stopped" -> pure Stopped
+        "succeeded" -> pure Succeeded
+        e -> fromTextError $ "Failure parsing DeploymentStatus from value: '" <> e
+           <> "'. Accepted values: created, failed, inprogress, queued, stopped, succeeded"
+
+instance ToText DeploymentStatus where
+    toText = \case
+        Created -> "created"
+        Failed -> "failed"
+        InProgress -> "inprogress"
+        Queued -> "queued"
+        Stopped -> "stopped"
+        Succeeded -> "succeeded"
+
+instance Hashable     DeploymentStatus
+instance ToByteString DeploymentStatus
+instance ToQuery      DeploymentStatus
+instance ToHeader     DeploymentStatus
+
+instance ToJSON DeploymentStatus where
+    toJSON = toJSONText
+
+instance FromJSON DeploymentStatus where
+    parseJSON = parseJSONText "DeploymentStatus"
+
+data EC2TagFilterType
+    = KeyAndValue
+    | KeyOnly
+    | ValueOnly
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText EC2TagFilterType where
+    parser = takeLowerText >>= \case
+        "key_and_value" -> pure KeyAndValue
+        "key_only" -> pure KeyOnly
+        "value_only" -> pure ValueOnly
+        e -> fromTextError $ "Failure parsing EC2TagFilterType from value: '" <> e
+           <> "'. Accepted values: key_and_value, key_only, value_only"
+
+instance ToText EC2TagFilterType where
+    toText = \case
+        KeyAndValue -> "key_and_value"
+        KeyOnly -> "key_only"
+        ValueOnly -> "value_only"
+
+instance Hashable     EC2TagFilterType
+instance ToByteString EC2TagFilterType
+instance ToQuery      EC2TagFilterType
+instance ToHeader     EC2TagFilterType
+
+instance ToJSON EC2TagFilterType where
+    toJSON = toJSONText
+
+instance FromJSON EC2TagFilterType where
+    parseJSON = parseJSONText "EC2TagFilterType"
+
+data InstanceStatus
+    = ISFailed
+    | ISInProgress
+    | ISPending
+    | ISSkipped
+    | ISSucceeded
+    | ISUnknown
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText InstanceStatus where
+    parser = takeLowerText >>= \case
+        "failed" -> pure ISFailed
+        "inprogress" -> pure ISInProgress
+        "pending" -> pure ISPending
+        "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"
+
+instance ToText InstanceStatus where
+    toText = \case
+        ISFailed -> "failed"
+        ISInProgress -> "inprogress"
+        ISPending -> "pending"
+        ISSkipped -> "skipped"
+        ISSucceeded -> "succeeded"
+        ISUnknown -> "unknown"
+
+instance Hashable     InstanceStatus
+instance ToByteString InstanceStatus
+instance ToQuery      InstanceStatus
+instance ToHeader     InstanceStatus
+
+instance ToJSON InstanceStatus where
+    toJSON = toJSONText
+
+instance FromJSON InstanceStatus where
+    parseJSON = parseJSONText "InstanceStatus"
+
+data LifecycleErrorCode
+    = ScriptFailed
+    | ScriptMissing
+    | ScriptNotExecutable
+    | ScriptTimedOut
+    | Success
+    | UnknownError
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText LifecycleErrorCode where
+    parser = takeLowerText >>= \case
+        "scriptfailed" -> pure ScriptFailed
+        "scriptmissing" -> pure ScriptMissing
+        "scriptnotexecutable" -> pure ScriptNotExecutable
+        "scripttimedout" -> pure ScriptTimedOut
+        "success" -> pure Success
+        "unknownerror" -> pure UnknownError
+        e -> fromTextError $ "Failure parsing LifecycleErrorCode from value: '" <> e
+           <> "'. Accepted values: scriptfailed, scriptmissing, scriptnotexecutable, scripttimedout, success, unknownerror"
+
+instance ToText LifecycleErrorCode where
+    toText = \case
+        ScriptFailed -> "scriptfailed"
+        ScriptMissing -> "scriptmissing"
+        ScriptNotExecutable -> "scriptnotexecutable"
+        ScriptTimedOut -> "scripttimedout"
+        Success -> "success"
+        UnknownError -> "unknownerror"
+
+instance Hashable     LifecycleErrorCode
+instance ToByteString LifecycleErrorCode
+instance ToQuery      LifecycleErrorCode
+instance ToHeader     LifecycleErrorCode
+
+instance FromJSON LifecycleErrorCode where
+    parseJSON = parseJSONText "LifecycleErrorCode"
+
+data LifecycleEventStatus
+    = LESFailed
+    | LESInProgress
+    | LESPending
+    | LESSkipped
+    | LESSucceeded
+    | LESUnknown
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText LifecycleEventStatus where
+    parser = takeLowerText >>= \case
+        "failed" -> pure LESFailed
+        "inprogress" -> pure LESInProgress
+        "pending" -> pure LESPending
+        "skipped" -> pure LESSkipped
+        "succeeded" -> pure LESSucceeded
+        "unknown" -> pure LESUnknown
+        e -> fromTextError $ "Failure parsing LifecycleEventStatus from value: '" <> e
+           <> "'. Accepted values: failed, inprogress, pending, skipped, succeeded, unknown"
+
+instance ToText LifecycleEventStatus where
+    toText = \case
+        LESFailed -> "failed"
+        LESInProgress -> "inprogress"
+        LESPending -> "pending"
+        LESSkipped -> "skipped"
+        LESSucceeded -> "succeeded"
+        LESUnknown -> "unknown"
+
+instance Hashable     LifecycleEventStatus
+instance ToByteString LifecycleEventStatus
+instance ToQuery      LifecycleEventStatus
+instance ToHeader     LifecycleEventStatus
+
+instance FromJSON LifecycleEventStatus where
+    parseJSON = parseJSONText "LifecycleEventStatus"
+
+data ListStateFilterAction
+    = Exclude
+    | Ignore
+    | Include
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText ListStateFilterAction where
+    parser = takeLowerText >>= \case
+        "exclude" -> pure Exclude
+        "ignore" -> pure Ignore
+        "include" -> pure Include
+        e -> fromTextError $ "Failure parsing ListStateFilterAction from value: '" <> e
+           <> "'. Accepted values: exclude, ignore, include"
+
+instance ToText ListStateFilterAction where
+    toText = \case
+        Exclude -> "exclude"
+        Ignore -> "ignore"
+        Include -> "include"
+
+instance Hashable     ListStateFilterAction
+instance ToByteString ListStateFilterAction
+instance ToQuery      ListStateFilterAction
+instance ToHeader     ListStateFilterAction
+
+instance ToJSON ListStateFilterAction where
+    toJSON = toJSONText
+
+data MinimumHealthyHostsType
+    = FleetPercent
+    | HostCount
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText MinimumHealthyHostsType where
+    parser = takeLowerText >>= \case
+        "fleet_percent" -> pure FleetPercent
+        "host_count" -> pure HostCount
+        e -> fromTextError $ "Failure parsing MinimumHealthyHostsType from value: '" <> e
+           <> "'. Accepted values: fleet_percent, host_count"
+
+instance ToText MinimumHealthyHostsType where
+    toText = \case
+        FleetPercent -> "fleet_percent"
+        HostCount -> "host_count"
+
+instance Hashable     MinimumHealthyHostsType
+instance ToByteString MinimumHealthyHostsType
+instance ToQuery      MinimumHealthyHostsType
+instance ToHeader     MinimumHealthyHostsType
+
+instance ToJSON MinimumHealthyHostsType where
+    toJSON = toJSONText
+
+instance FromJSON MinimumHealthyHostsType where
+    parseJSON = parseJSONText "MinimumHealthyHostsType"
+
+data RegistrationStatus
+    = Deregistered
+    | Registered
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText RegistrationStatus where
+    parser = takeLowerText >>= \case
+        "deregistered" -> pure Deregistered
+        "registered" -> pure Registered
+        e -> fromTextError $ "Failure parsing RegistrationStatus from value: '" <> e
+           <> "'. Accepted values: deregistered, registered"
+
+instance ToText RegistrationStatus where
+    toText = \case
+        Deregistered -> "deregistered"
+        Registered -> "registered"
+
+instance Hashable     RegistrationStatus
+instance ToByteString RegistrationStatus
+instance ToQuery      RegistrationStatus
+instance ToHeader     RegistrationStatus
+
+instance ToJSON RegistrationStatus where
+    toJSON = toJSONText
+
+data RevisionLocationType
+    = GitHub
+    | S3
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText RevisionLocationType where
+    parser = takeLowerText >>= \case
+        "github" -> pure GitHub
+        "s3" -> pure S3
+        e -> fromTextError $ "Failure parsing RevisionLocationType from value: '" <> e
+           <> "'. Accepted values: github, s3"
+
+instance ToText RevisionLocationType where
+    toText = \case
+        GitHub -> "github"
+        S3 -> "s3"
+
+instance Hashable     RevisionLocationType
+instance ToByteString RevisionLocationType
+instance ToQuery      RevisionLocationType
+instance ToHeader     RevisionLocationType
+
+instance ToJSON RevisionLocationType where
+    toJSON = toJSONText
+
+instance FromJSON RevisionLocationType where
+    parseJSON = parseJSONText "RevisionLocationType"
+
+data SortOrder
+    = Ascending
+    | Descending
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText SortOrder where
+    parser = takeLowerText >>= \case
+        "ascending" -> pure Ascending
+        "descending" -> pure Descending
+        e -> fromTextError $ "Failure parsing SortOrder from value: '" <> e
+           <> "'. Accepted values: ascending, descending"
+
+instance ToText SortOrder where
+    toText = \case
+        Ascending -> "ascending"
+        Descending -> "descending"
+
+instance Hashable     SortOrder
+instance ToByteString SortOrder
+instance ToQuery      SortOrder
+instance ToHeader     SortOrder
+
+instance ToJSON SortOrder where
+    toJSON = toJSONText
+
+data StopStatus
+    = SSPending
+    | SSSucceeded
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText StopStatus where
+    parser = takeLowerText >>= \case
+        "pending" -> pure SSPending
+        "succeeded" -> pure SSSucceeded
+        e -> fromTextError $ "Failure parsing StopStatus from value: '" <> e
+           <> "'. Accepted values: pending, succeeded"
+
+instance ToText StopStatus where
+    toText = \case
+        SSPending -> "pending"
+        SSSucceeded -> "succeeded"
+
+instance Hashable     StopStatus
+instance ToByteString StopStatus
+instance ToQuery      StopStatus
+instance ToHeader     StopStatus
+
+instance FromJSON StopStatus where
+    parseJSON = parseJSONText "StopStatus"
+
+data TagFilterType
+    = TFTKeyAndValue
+    | TFTKeyOnly
+    | TFTValueOnly
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText TagFilterType where
+    parser = takeLowerText >>= \case
+        "key_and_value" -> pure TFTKeyAndValue
+        "key_only" -> pure TFTKeyOnly
+        "value_only" -> pure TFTValueOnly
+        e -> fromTextError $ "Failure parsing TagFilterType from value: '" <> e
+           <> "'. Accepted values: key_and_value, key_only, value_only"
+
+instance ToText TagFilterType where
+    toText = \case
+        TFTKeyAndValue -> "key_and_value"
+        TFTKeyOnly -> "key_only"
+        TFTValueOnly -> "value_only"
+
+instance Hashable     TagFilterType
+instance ToByteString TagFilterType
+instance ToQuery      TagFilterType
+instance ToHeader     TagFilterType
+
+instance ToJSON TagFilterType where
+    toJSON = toJSONText
+
+instance FromJSON TagFilterType where
+    parseJSON = parseJSONText "TagFilterType"
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
@@ -1,105 +1,112 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.UpdateApplication
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Changes an existing application's name.
+-- Changes an existing application\'s name.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_UpdateApplication.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_UpdateApplication.html AWS API Reference> for UpdateApplication.
 module Network.AWS.CodeDeploy.UpdateApplication
     (
-    -- * Request
-      UpdateApplication
-    -- ** Request constructor
-    , updateApplication
-    -- ** Request lenses
-    , uaApplicationName
+    -- * Creating a Request
+      updateApplication
+    , UpdateApplication
+    -- * Request Lenses
     , uaNewApplicationName
+    , uaApplicationName
 
-    -- * Response
-    , UpdateApplicationResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , updateApplicationResponse
+    , UpdateApplicationResponse
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
-
-data UpdateApplication = UpdateApplication
-    { _uaApplicationName    :: Maybe Text
-    , _uaNewApplicationName :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'UpdateApplication' constructor.
+-- | Represents the input of an update application operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'updateApplication' smart constructor.
+data UpdateApplication = UpdateApplication'
+    { _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.
 --
--- * 'uaApplicationName' @::@ 'Maybe' 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'uaNewApplicationName' @::@ 'Maybe' 'Text'
+-- * 'uaNewApplicationName'
 --
-updateApplication :: UpdateApplication
-updateApplication = UpdateApplication
-    { _uaApplicationName    = Nothing
-    , _uaNewApplicationName = Nothing
+-- * 'uaApplicationName'
+updateApplication
+    :: UpdateApplication
+updateApplication =
+    UpdateApplication'
+    { _uaNewApplicationName = Nothing
+    , _uaApplicationName = Nothing
     }
 
+-- | The new name that you want to change the application to.
+uaNewApplicationName :: Lens' UpdateApplication (Maybe Text)
+uaNewApplicationName = lens _uaNewApplicationName (\ s a -> s{_uaNewApplicationName = a});
+
 -- | The current name of the application that you want to change.
 uaApplicationName :: Lens' UpdateApplication (Maybe Text)
-uaApplicationName =
-    lens _uaApplicationName (\s a -> s { _uaApplicationName = a })
+uaApplicationName = lens _uaApplicationName (\ s a -> s{_uaApplicationName = a});
 
--- | The new name that you want to change the application to.
-uaNewApplicationName :: Lens' UpdateApplication (Maybe Text)
-uaNewApplicationName =
-    lens _uaNewApplicationName (\s a -> s { _uaNewApplicationName = a })
+instance AWSRequest UpdateApplication where
+        type Sv UpdateApplication = CodeDeploy
+        type Rs UpdateApplication = UpdateApplicationResponse
+        request = postJSON
+        response = receiveNull UpdateApplicationResponse'
 
-data UpdateApplicationResponse = UpdateApplicationResponse
-    deriving (Eq, Ord, Read, Show, Generic)
+instance ToHeaders UpdateApplication where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.UpdateApplication" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | 'UpdateApplicationResponse' constructor.
-updateApplicationResponse :: UpdateApplicationResponse
-updateApplicationResponse = UpdateApplicationResponse
+instance ToJSON UpdateApplication where
+        toJSON UpdateApplication'{..}
+          = object
+              ["newApplicationName" .= _uaNewApplicationName,
+               "applicationName" .= _uaApplicationName]
 
 instance ToPath UpdateApplication where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery UpdateApplication where
-    toQuery = const mempty
-
-instance ToHeaders UpdateApplication
-
-instance ToJSON UpdateApplication where
-    toJSON UpdateApplication{..} = object
-        [ "applicationName"    .= _uaApplicationName
-        , "newApplicationName" .= _uaNewApplicationName
-        ]
+        toQuery = const mempty
 
-instance AWSRequest UpdateApplication where
-    type Sv UpdateApplication = CodeDeploy
-    type Rs UpdateApplication = UpdateApplicationResponse
+-- | /See:/ 'updateApplicationResponse' smart constructor.
+data UpdateApplicationResponse =
+    UpdateApplicationResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-    request  = post "UpdateApplication"
-    response = nullResponse UpdateApplicationResponse
+-- | Creates a value of 'UpdateApplicationResponse' with the minimum fields required to make a request.
+--
+updateApplicationResponse
+    :: UpdateApplicationResponse
+updateApplicationResponse = UpdateApplicationResponse'
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
@@ -1,211 +1,215 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# 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.UpdateDeploymentGroup
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Changes information about an existing deployment group.
+-- Changes information about an existing deployment group.
 --
--- <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_UpdateDeploymentGroup.html>
+-- /See:/ <http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_UpdateDeploymentGroup.html AWS API Reference> for UpdateDeploymentGroup.
 module Network.AWS.CodeDeploy.UpdateDeploymentGroup
     (
-    -- * Request
-      UpdateDeploymentGroup
-    -- ** Request constructor
-    , updateDeploymentGroup
-    -- ** Request lenses
-    , udgApplicationName
-    , udgAutoScalingGroups
-    , udgCurrentDeploymentGroupName
+    -- * Creating a Request
+      updateDeploymentGroup
+    , UpdateDeploymentGroup
+    -- * Request Lenses
+    , udgServiceRoleARN
     , udgDeploymentConfigName
     , udgEc2TagFilters
     , udgNewDeploymentGroupName
     , udgOnPremisesInstanceTagFilters
-    , udgServiceRoleArn
+    , udgAutoScalingGroups
+    , udgApplicationName
+    , udgCurrentDeploymentGroupName
 
-    -- * Response
-    , UpdateDeploymentGroupResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , updateDeploymentGroupResponse
-    -- ** Response lenses
-    , udgrHooksNotCleanedUp
+    , UpdateDeploymentGroupResponse
+    -- * Response Lenses
+    , udgrsHooksNotCleanedUp
+    , udgrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.CodeDeploy.Types
-import qualified GHC.Exts
-
-data UpdateDeploymentGroup = UpdateDeploymentGroup
-    { _udgApplicationName              :: Text
-    , _udgAutoScalingGroups            :: List "autoScalingGroups" Text
-    , _udgCurrentDeploymentGroupName   :: Text
-    , _udgDeploymentConfigName         :: Maybe Text
-    , _udgEc2TagFilters                :: List "ec2TagFilters" EC2TagFilter
-    , _udgNewDeploymentGroupName       :: Maybe Text
-    , _udgOnPremisesInstanceTagFilters :: List "onPremisesInstanceTagFilters" TagFilter
-    , _udgServiceRoleArn               :: Maybe Text
-    } deriving (Eq, Read, Show)
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.CodeDeploy.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'UpdateDeploymentGroup' constructor.
+-- | Represents the input of an update deployment group operation.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'updateDeploymentGroup' smart constructor.
+data UpdateDeploymentGroup = UpdateDeploymentGroup'
+    { _udgServiceRoleARN               :: !(Maybe Text)
+    , _udgDeploymentConfigName         :: !(Maybe Text)
+    , _udgEc2TagFilters                :: !(Maybe [EC2TagFilter])
+    , _udgNewDeploymentGroupName       :: !(Maybe Text)
+    , _udgOnPremisesInstanceTagFilters :: !(Maybe [TagFilter])
+    , _udgAutoScalingGroups            :: !(Maybe [Text])
+    , _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.
 --
--- * 'udgApplicationName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'udgAutoScalingGroups' @::@ ['Text']
+-- * 'udgServiceRoleARN'
 --
--- * 'udgCurrentDeploymentGroupName' @::@ 'Text'
+-- * 'udgDeploymentConfigName'
 --
--- * 'udgDeploymentConfigName' @::@ 'Maybe' 'Text'
+-- * 'udgEc2TagFilters'
 --
--- * 'udgEc2TagFilters' @::@ ['EC2TagFilter']
+-- * 'udgNewDeploymentGroupName'
 --
--- * 'udgNewDeploymentGroupName' @::@ 'Maybe' 'Text'
+-- * 'udgOnPremisesInstanceTagFilters'
 --
--- * 'udgOnPremisesInstanceTagFilters' @::@ ['TagFilter']
+-- * 'udgAutoScalingGroups'
 --
--- * 'udgServiceRoleArn' @::@ 'Maybe' 'Text'
+-- * 'udgApplicationName'
 --
-updateDeploymentGroup :: Text -- ^ 'udgApplicationName'
-                      -> Text -- ^ 'udgCurrentDeploymentGroupName'
-                      -> UpdateDeploymentGroup
-updateDeploymentGroup p1 p2 = UpdateDeploymentGroup
-    { _udgApplicationName              = p1
-    , _udgCurrentDeploymentGroupName   = p2
-    , _udgNewDeploymentGroupName       = Nothing
-    , _udgDeploymentConfigName         = Nothing
-    , _udgEc2TagFilters                = mempty
-    , _udgOnPremisesInstanceTagFilters = mempty
-    , _udgAutoScalingGroups            = mempty
-    , _udgServiceRoleArn               = Nothing
+-- * 'udgCurrentDeploymentGroupName'
+updateDeploymentGroup
+    :: Text -- ^ 'udgApplicationName'
+    -> Text -- ^ 'udgCurrentDeploymentGroupName'
+    -> UpdateDeploymentGroup
+updateDeploymentGroup pApplicationName_ pCurrentDeploymentGroupName_ =
+    UpdateDeploymentGroup'
+    { _udgServiceRoleARN = Nothing
+    , _udgDeploymentConfigName = Nothing
+    , _udgEc2TagFilters = Nothing
+    , _udgNewDeploymentGroupName = Nothing
+    , _udgOnPremisesInstanceTagFilters = Nothing
+    , _udgAutoScalingGroups = Nothing
+    , _udgApplicationName = pApplicationName_
+    , _udgCurrentDeploymentGroupName = pCurrentDeploymentGroupName_
     }
 
--- | The application name corresponding to the deployment group to update.
-udgApplicationName :: Lens' UpdateDeploymentGroup Text
-udgApplicationName =
-    lens _udgApplicationName (\s a -> s { _udgApplicationName = a })
-
--- | The replacement list of Auto Scaling groups to be included in the deployment
--- group, if you want to change them.
-udgAutoScalingGroups :: Lens' UpdateDeploymentGroup [Text]
-udgAutoScalingGroups =
-    lens _udgAutoScalingGroups (\s a -> s { _udgAutoScalingGroups = a })
-        . _List
-
--- | The current name of the existing deployment group.
-udgCurrentDeploymentGroupName :: Lens' UpdateDeploymentGroup Text
-udgCurrentDeploymentGroupName =
-    lens _udgCurrentDeploymentGroupName
-        (\s a -> s { _udgCurrentDeploymentGroupName = a })
+-- | A replacement service role\'s ARN, if you want to change it.
+udgServiceRoleARN :: Lens' UpdateDeploymentGroup (Maybe Text)
+udgServiceRoleARN = lens _udgServiceRoleARN (\ s a -> s{_udgServiceRoleARN = a});
 
--- | The replacement deployment configuration name to use, if you want to change
--- it.
+-- | 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 })
+udgDeploymentConfigName = lens _udgDeploymentConfigName (\ s a -> s{_udgDeploymentConfigName = a});
 
--- | The replacement set of Amazon EC2 tags to filter on, if you want to change
--- them.
+-- | The replacement set of Amazon EC2 tags to filter on, if you want to
+-- change them.
 udgEc2TagFilters :: Lens' UpdateDeploymentGroup [EC2TagFilter]
-udgEc2TagFilters = lens _udgEc2TagFilters (\s a -> s { _udgEc2TagFilters = a }) . _List
+udgEc2TagFilters = lens _udgEc2TagFilters (\ s a -> s{_udgEc2TagFilters = a}) . _Default . _Coerce;
 
 -- | 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 })
+udgNewDeploymentGroupName = lens _udgNewDeploymentGroupName (\ s a -> s{_udgNewDeploymentGroupName = a});
 
--- | The replacement set of on-premises instance tags for filter on, if you want
--- to change them.
+-- | The replacement set of on-premises instance tags for filter on, if you
+-- want to change them.
 udgOnPremisesInstanceTagFilters :: Lens' UpdateDeploymentGroup [TagFilter]
-udgOnPremisesInstanceTagFilters =
-    lens _udgOnPremisesInstanceTagFilters
-        (\s a -> s { _udgOnPremisesInstanceTagFilters = a })
-            . _List
+udgOnPremisesInstanceTagFilters = lens _udgOnPremisesInstanceTagFilters (\ s a -> s{_udgOnPremisesInstanceTagFilters = a}) . _Default . _Coerce;
 
--- | A replacement service role's ARN, if you want to change it.
-udgServiceRoleArn :: Lens' UpdateDeploymentGroup (Maybe Text)
-udgServiceRoleArn =
-    lens _udgServiceRoleArn (\s a -> s { _udgServiceRoleArn = a })
+-- | The replacement list of Auto Scaling groups to be included in the
+-- deployment group, if you want to change them.
+udgAutoScalingGroups :: Lens' UpdateDeploymentGroup [Text]
+udgAutoScalingGroups = lens _udgAutoScalingGroups (\ s a -> s{_udgAutoScalingGroups = a}) . _Default . _Coerce;
 
-newtype UpdateDeploymentGroupResponse = UpdateDeploymentGroupResponse
-    { _udgrHooksNotCleanedUp :: List "hooksNotCleanedUp" AutoScalingGroup
-    } deriving (Eq, Read, Show, Monoid, Semigroup)
+-- | The application name corresponding to the deployment group to update.
+udgApplicationName :: Lens' UpdateDeploymentGroup Text
+udgApplicationName = lens _udgApplicationName (\ s a -> s{_udgApplicationName = a});
 
-instance GHC.Exts.IsList UpdateDeploymentGroupResponse where
-    type Item UpdateDeploymentGroupResponse = AutoScalingGroup
+-- | The current name of the existing deployment group.
+udgCurrentDeploymentGroupName :: Lens' UpdateDeploymentGroup Text
+udgCurrentDeploymentGroupName = lens _udgCurrentDeploymentGroupName (\ s a -> s{_udgCurrentDeploymentGroupName = a});
 
-    fromList = UpdateDeploymentGroupResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _udgrHooksNotCleanedUp
+instance AWSRequest UpdateDeploymentGroup where
+        type Sv UpdateDeploymentGroup = CodeDeploy
+        type Rs UpdateDeploymentGroup =
+             UpdateDeploymentGroupResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 UpdateDeploymentGroupResponse' <$>
+                   (x .?> "hooksNotCleanedUp" .!@ mempty) <*>
+                     (pure (fromEnum s)))
 
--- | 'UpdateDeploymentGroupResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'udgrHooksNotCleanedUp' @::@ ['AutoScalingGroup']
---
-updateDeploymentGroupResponse :: UpdateDeploymentGroupResponse
-updateDeploymentGroupResponse = UpdateDeploymentGroupResponse
-    { _udgrHooksNotCleanedUp = mempty
-    }
+instance ToHeaders UpdateDeploymentGroup where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("CodeDeploy_20141006.UpdateDeploymentGroup" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | 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 does contain data, AWS CodeDeploy could not remove
--- some Auto Scaling lifecycle event hooks from the AWS account.
-udgrHooksNotCleanedUp :: Lens' UpdateDeploymentGroupResponse [AutoScalingGroup]
-udgrHooksNotCleanedUp =
-    lens _udgrHooksNotCleanedUp (\s a -> s { _udgrHooksNotCleanedUp = a })
-        . _List
+instance ToJSON UpdateDeploymentGroup where
+        toJSON UpdateDeploymentGroup'{..}
+          = object
+              ["serviceRoleArn" .= _udgServiceRoleARN,
+               "deploymentConfigName" .= _udgDeploymentConfigName,
+               "ec2TagFilters" .= _udgEc2TagFilters,
+               "newDeploymentGroupName" .=
+                 _udgNewDeploymentGroupName,
+               "onPremisesInstanceTagFilters" .=
+                 _udgOnPremisesInstanceTagFilters,
+               "autoScalingGroups" .= _udgAutoScalingGroups,
+               "applicationName" .= _udgApplicationName,
+               "currentDeploymentGroupName" .=
+                 _udgCurrentDeploymentGroupName]
 
 instance ToPath UpdateDeploymentGroup where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery UpdateDeploymentGroup where
-    toQuery = const mempty
-
-instance ToHeaders UpdateDeploymentGroup
+        toQuery = const mempty
 
-instance ToJSON UpdateDeploymentGroup where
-    toJSON UpdateDeploymentGroup{..} = object
-        [ "applicationName"              .= _udgApplicationName
-        , "currentDeploymentGroupName"   .= _udgCurrentDeploymentGroupName
-        , "newDeploymentGroupName"       .= _udgNewDeploymentGroupName
-        , "deploymentConfigName"         .= _udgDeploymentConfigName
-        , "ec2TagFilters"                .= _udgEc2TagFilters
-        , "onPremisesInstanceTagFilters" .= _udgOnPremisesInstanceTagFilters
-        , "autoScalingGroups"            .= _udgAutoScalingGroups
-        , "serviceRoleArn"               .= _udgServiceRoleArn
-        ]
+-- | Represents the output of an update deployment group operation.
+--
+-- /See:/ 'updateDeploymentGroupResponse' smart constructor.
+data UpdateDeploymentGroupResponse = UpdateDeploymentGroupResponse'
+    { _udgrsHooksNotCleanedUp :: !(Maybe [AutoScalingGroup])
+    , _udgrsStatus            :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest UpdateDeploymentGroup where
-    type Sv UpdateDeploymentGroup = CodeDeploy
-    type Rs UpdateDeploymentGroup = UpdateDeploymentGroupResponse
+-- | 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:
+--
+-- * 'udgrsHooksNotCleanedUp'
+--
+-- * 'udgrsStatus'
+updateDeploymentGroupResponse
+    :: Int -- ^ 'udgrsStatus'
+    -> UpdateDeploymentGroupResponse
+updateDeploymentGroupResponse pStatus_ =
+    UpdateDeploymentGroupResponse'
+    { _udgrsHooksNotCleanedUp = Nothing
+    , _udgrsStatus = pStatus_
+    }
 
-    request  = post "UpdateDeploymentGroup"
-    response = jsonResponse
+-- | 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 does contain 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;
 
-instance FromJSON UpdateDeploymentGroupResponse where
-    parseJSON = withObject "UpdateDeploymentGroupResponse" $ \o -> UpdateDeploymentGroupResponse
-        <$> o .:? "hooksNotCleanedUp" .!= mempty
+-- | The response status code.
+udgrsStatus :: Lens' UpdateDeploymentGroupResponse Int
+udgrsStatus = lens _udgrsStatus (\ s a -> s{_udgrsStatus = a});
diff --git a/gen/Network/AWS/CodeDeploy/Waiters.hs b/gen/Network/AWS/CodeDeploy/Waiters.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/CodeDeploy/Waiters.hs
@@ -0,0 +1,20 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE TypeFamilies      #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Network.AWS.CodeDeploy.Waiters
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.AWS.CodeDeploy.Waiters where
+
+import           Network.AWS.CodeDeploy.Types
+import           Network.AWS.Prelude
+import           Network.AWS.Waiter
diff --git a/test/Main.hs b/test/Main.hs
new file mode 100644
--- /dev/null
+++ b/test/Main.hs
@@ -0,0 +1,21 @@
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Main
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Main (main) where
+
+import Test.Tasty
+import Test.AWS.CodeDeploy
+import Test.AWS.CodeDeploy.Internal
+
+main :: IO ()
+main = defaultMain $ testGroup "CodeDeploy"
+    [ testGroup "tests"    tests
+    , testGroup "fixtures" fixtures
+    ]
diff --git a/test/Test/AWS/CodeDeploy.hs b/test/Test/AWS/CodeDeploy.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/AWS/CodeDeploy.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+-- Module      : Test.AWS.CodeDeploy
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : This Source Code Form is subject to the terms of
+--               the Mozilla Public License, v. 2.0.
+--               A copy of the MPL can be found in the LICENSE file or
+--               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : experimental
+-- Portability : non-portable (GHC extensions)
+
+module Test.AWS.CodeDeploy
+    ( tests
+    , fixtures
+    ) where
+
+import           Network.AWS.CodeDeploy
+import           Test.AWS.Gen.CodeDeploy
+import           Test.Tasty
+
+tests :: [TestTree]
+tests = []
+
+fixtures :: [TestTree]
+fixtures = []
diff --git a/test/Test/AWS/CodeDeploy/Internal.hs b/test/Test/AWS/CodeDeploy/Internal.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/AWS/CodeDeploy/Internal.hs
@@ -0,0 +1,16 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Module      : Test.AWS.CodeDeploy.Internal
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : This Source Code Form is subject to the terms of
+--               the Mozilla Public License, v. 2.0.
+--               A copy of the MPL can be found in the LICENSE file or
+--               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : experimental
+-- Portability : non-portable (GHC extensions)
+
+module Test.AWS.CodeDeploy.Internal where
+
+import Test.AWS.Prelude
diff --git a/test/Test/AWS/Gen/CodeDeploy.hs b/test/Test/AWS/Gen/CodeDeploy.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/AWS/Gen/CodeDeploy.hs
@@ -0,0 +1,583 @@
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-orphans        #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Test.AWS.Gen.CodeDeploy
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Test.AWS.Gen.CodeDeploy where
+
+import Data.Proxy
+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.
+--
+-- This commented snippet is what the entire set should look like:
+
+-- fixtures :: TestTree
+-- fixtures =
+--     [ testGroup "request"
+--         [ testRemoveTagsFromOnPremisesInstances $
+--             removeTagsFromOnPremisesInstances
+--
+--         , testGetDeployment $
+--             getDeployment
+--
+--         , testCreateDeploymentConfig $
+--             createDeploymentConfig
+--
+--         , testUpdateDeploymentGroup $
+--             updateDeploymentGroup
+--
+--         , testDeleteDeploymentGroup $
+--             deleteDeploymentGroup
+--
+--         , testListOnPremisesInstances $
+--             listOnPremisesInstances
+--
+--         , testGetApplicationRevision $
+--             getApplicationRevision
+--
+--         , testDeleteDeploymentConfig $
+--             deleteDeploymentConfig
+--
+--         , testGetDeploymentConfig $
+--             getDeploymentConfig
+--
+--         , testCreateDeployment $
+--             createDeployment
+--
+--         , testGetOnPremisesInstance $
+--             getOnPremisesInstance
+--
+--         , testBatchGetDeployments $
+--             batchGetDeployments
+--
+--         , testRegisterApplicationRevision $
+--             registerApplicationRevision
+--
+--         , testDeleteApplication $
+--             deleteApplication
+--
+--         , testUpdateApplication $
+--             updateApplication
+--
+--         , testBatchGetApplications $
+--             batchGetApplications
+--
+--         , testCreateApplication $
+--             createApplication
+--
+--         , testDeregisterOnPremisesInstance $
+--             deregisterOnPremisesInstance
+--
+--         , testGetDeploymentInstance $
+--             getDeploymentInstance
+--
+--         , testStopDeployment $
+--             stopDeployment
+--
+--         , testGetApplication $
+--             getApplication
+--
+--         , testListDeploymentGroups $
+--             listDeploymentGroups
+--
+--         , testRegisterOnPremisesInstance $
+--             registerOnPremisesInstance
+--
+--         , testBatchGetOnPremisesInstances $
+--             batchGetOnPremisesInstances
+--
+--         , testListDeploymentConfigs $
+--             listDeploymentConfigs
+--
+--         , testCreateDeploymentGroup $
+--             createDeploymentGroup
+--
+--         , testGetDeploymentGroup $
+--             getDeploymentGroup
+--
+--         , testListDeployments $
+--             listDeployments
+--
+--         , testListApplicationRevisions $
+--             listApplicationRevisions
+--
+--         , testListApplications $
+--             listApplications
+--
+--         , testAddTagsToOnPremisesInstances $
+--             addTagsToOnPremisesInstances
+--
+--         , testListDeploymentInstances $
+--             listDeploymentInstances
+--
+--           ]
+
+--     , testGroup "response"
+--         [ testRemoveTagsFromOnPremisesInstancesResponse $
+--             removeTagsFromOnPremisesInstancesResponse
+--
+--         , testGetDeploymentResponse $
+--             getDeploymentResponse
+--
+--         , testCreateDeploymentConfigResponse $
+--             createDeploymentConfigResponse
+--
+--         , testUpdateDeploymentGroupResponse $
+--             updateDeploymentGroupResponse
+--
+--         , testDeleteDeploymentGroupResponse $
+--             deleteDeploymentGroupResponse
+--
+--         , testListOnPremisesInstancesResponse $
+--             listOnPremisesInstancesResponse
+--
+--         , testGetApplicationRevisionResponse $
+--             getApplicationRevisionResponse
+--
+--         , testDeleteDeploymentConfigResponse $
+--             deleteDeploymentConfigResponse
+--
+--         , testGetDeploymentConfigResponse $
+--             getDeploymentConfigResponse
+--
+--         , testCreateDeploymentResponse $
+--             createDeploymentResponse
+--
+--         , testGetOnPremisesInstanceResponse $
+--             getOnPremisesInstanceResponse
+--
+--         , testBatchGetDeploymentsResponse $
+--             batchGetDeploymentsResponse
+--
+--         , testRegisterApplicationRevisionResponse $
+--             registerApplicationRevisionResponse
+--
+--         , testDeleteApplicationResponse $
+--             deleteApplicationResponse
+--
+--         , testUpdateApplicationResponse $
+--             updateApplicationResponse
+--
+--         , testBatchGetApplicationsResponse $
+--             batchGetApplicationsResponse
+--
+--         , testCreateApplicationResponse $
+--             createApplicationResponse
+--
+--         , testDeregisterOnPremisesInstanceResponse $
+--             deregisterOnPremisesInstanceResponse
+--
+--         , testGetDeploymentInstanceResponse $
+--             getDeploymentInstanceResponse
+--
+--         , testStopDeploymentResponse $
+--             stopDeploymentResponse
+--
+--         , testGetApplicationResponse $
+--             getApplicationResponse
+--
+--         , testListDeploymentGroupsResponse $
+--             listDeploymentGroupsResponse
+--
+--         , testRegisterOnPremisesInstanceResponse $
+--             registerOnPremisesInstanceResponse
+--
+--         , testBatchGetOnPremisesInstancesResponse $
+--             batchGetOnPremisesInstancesResponse
+--
+--         , testListDeploymentConfigsResponse $
+--             listDeploymentConfigsResponse
+--
+--         , testCreateDeploymentGroupResponse $
+--             createDeploymentGroupResponse
+--
+--         , testGetDeploymentGroupResponse $
+--             getDeploymentGroupResponse
+--
+--         , testListDeploymentsResponse $
+--             listDeploymentsResponse
+--
+--         , testListApplicationRevisionsResponse $
+--             listApplicationRevisionsResponse
+--
+--         , testListApplicationsResponse $
+--             listApplicationsResponse
+--
+--         , testAddTagsToOnPremisesInstancesResponse $
+--             addTagsToOnPremisesInstancesResponse
+--
+--         , testListDeploymentInstancesResponse $
+--             listDeploymentInstancesResponse
+--
+--           ]
+--     ]
+
+-- Requests
+
+testRemoveTagsFromOnPremisesInstances :: RemoveTagsFromOnPremisesInstances -> TestTree
+testRemoveTagsFromOnPremisesInstances = req
+    "RemoveTagsFromOnPremisesInstances"
+    "fixture/RemoveTagsFromOnPremisesInstances"
+
+testGetDeployment :: GetDeployment -> TestTree
+testGetDeployment = req
+    "GetDeployment"
+    "fixture/GetDeployment"
+
+testCreateDeploymentConfig :: CreateDeploymentConfig -> TestTree
+testCreateDeploymentConfig = req
+    "CreateDeploymentConfig"
+    "fixture/CreateDeploymentConfig"
+
+testUpdateDeploymentGroup :: UpdateDeploymentGroup -> TestTree
+testUpdateDeploymentGroup = req
+    "UpdateDeploymentGroup"
+    "fixture/UpdateDeploymentGroup"
+
+testDeleteDeploymentGroup :: DeleteDeploymentGroup -> TestTree
+testDeleteDeploymentGroup = req
+    "DeleteDeploymentGroup"
+    "fixture/DeleteDeploymentGroup"
+
+testListOnPremisesInstances :: ListOnPremisesInstances -> TestTree
+testListOnPremisesInstances = req
+    "ListOnPremisesInstances"
+    "fixture/ListOnPremisesInstances"
+
+testGetApplicationRevision :: GetApplicationRevision -> TestTree
+testGetApplicationRevision = req
+    "GetApplicationRevision"
+    "fixture/GetApplicationRevision"
+
+testDeleteDeploymentConfig :: DeleteDeploymentConfig -> TestTree
+testDeleteDeploymentConfig = req
+    "DeleteDeploymentConfig"
+    "fixture/DeleteDeploymentConfig"
+
+testGetDeploymentConfig :: GetDeploymentConfig -> TestTree
+testGetDeploymentConfig = req
+    "GetDeploymentConfig"
+    "fixture/GetDeploymentConfig"
+
+testCreateDeployment :: CreateDeployment -> TestTree
+testCreateDeployment = req
+    "CreateDeployment"
+    "fixture/CreateDeployment"
+
+testGetOnPremisesInstance :: GetOnPremisesInstance -> TestTree
+testGetOnPremisesInstance = req
+    "GetOnPremisesInstance"
+    "fixture/GetOnPremisesInstance"
+
+testBatchGetDeployments :: BatchGetDeployments -> TestTree
+testBatchGetDeployments = req
+    "BatchGetDeployments"
+    "fixture/BatchGetDeployments"
+
+testRegisterApplicationRevision :: RegisterApplicationRevision -> TestTree
+testRegisterApplicationRevision = req
+    "RegisterApplicationRevision"
+    "fixture/RegisterApplicationRevision"
+
+testDeleteApplication :: DeleteApplication -> TestTree
+testDeleteApplication = req
+    "DeleteApplication"
+    "fixture/DeleteApplication"
+
+testUpdateApplication :: UpdateApplication -> TestTree
+testUpdateApplication = req
+    "UpdateApplication"
+    "fixture/UpdateApplication"
+
+testBatchGetApplications :: BatchGetApplications -> TestTree
+testBatchGetApplications = req
+    "BatchGetApplications"
+    "fixture/BatchGetApplications"
+
+testCreateApplication :: CreateApplication -> TestTree
+testCreateApplication = req
+    "CreateApplication"
+    "fixture/CreateApplication"
+
+testDeregisterOnPremisesInstance :: DeregisterOnPremisesInstance -> TestTree
+testDeregisterOnPremisesInstance = req
+    "DeregisterOnPremisesInstance"
+    "fixture/DeregisterOnPremisesInstance"
+
+testGetDeploymentInstance :: GetDeploymentInstance -> TestTree
+testGetDeploymentInstance = req
+    "GetDeploymentInstance"
+    "fixture/GetDeploymentInstance"
+
+testStopDeployment :: StopDeployment -> TestTree
+testStopDeployment = req
+    "StopDeployment"
+    "fixture/StopDeployment"
+
+testGetApplication :: GetApplication -> TestTree
+testGetApplication = req
+    "GetApplication"
+    "fixture/GetApplication"
+
+testListDeploymentGroups :: ListDeploymentGroups -> TestTree
+testListDeploymentGroups = req
+    "ListDeploymentGroups"
+    "fixture/ListDeploymentGroups"
+
+testRegisterOnPremisesInstance :: RegisterOnPremisesInstance -> TestTree
+testRegisterOnPremisesInstance = req
+    "RegisterOnPremisesInstance"
+    "fixture/RegisterOnPremisesInstance"
+
+testBatchGetOnPremisesInstances :: BatchGetOnPremisesInstances -> TestTree
+testBatchGetOnPremisesInstances = req
+    "BatchGetOnPremisesInstances"
+    "fixture/BatchGetOnPremisesInstances"
+
+testListDeploymentConfigs :: ListDeploymentConfigs -> TestTree
+testListDeploymentConfigs = req
+    "ListDeploymentConfigs"
+    "fixture/ListDeploymentConfigs"
+
+testCreateDeploymentGroup :: CreateDeploymentGroup -> TestTree
+testCreateDeploymentGroup = req
+    "CreateDeploymentGroup"
+    "fixture/CreateDeploymentGroup"
+
+testGetDeploymentGroup :: GetDeploymentGroup -> TestTree
+testGetDeploymentGroup = req
+    "GetDeploymentGroup"
+    "fixture/GetDeploymentGroup"
+
+testListDeployments :: ListDeployments -> TestTree
+testListDeployments = req
+    "ListDeployments"
+    "fixture/ListDeployments"
+
+testListApplicationRevisions :: ListApplicationRevisions -> TestTree
+testListApplicationRevisions = req
+    "ListApplicationRevisions"
+    "fixture/ListApplicationRevisions"
+
+testListApplications :: ListApplications -> TestTree
+testListApplications = req
+    "ListApplications"
+    "fixture/ListApplications"
+
+testAddTagsToOnPremisesInstances :: AddTagsToOnPremisesInstances -> TestTree
+testAddTagsToOnPremisesInstances = req
+    "AddTagsToOnPremisesInstances"
+    "fixture/AddTagsToOnPremisesInstances"
+
+testListDeploymentInstances :: ListDeploymentInstances -> TestTree
+testListDeploymentInstances = req
+    "ListDeploymentInstances"
+    "fixture/ListDeploymentInstances"
+
+-- Responses
+
+testRemoveTagsFromOnPremisesInstancesResponse :: RemoveTagsFromOnPremisesInstancesResponse -> TestTree
+testRemoveTagsFromOnPremisesInstancesResponse = res
+    "RemoveTagsFromOnPremisesInstancesResponse"
+    "fixture/RemoveTagsFromOnPremisesInstancesResponse"
+    (Proxy :: Proxy RemoveTagsFromOnPremisesInstances)
+
+testGetDeploymentResponse :: GetDeploymentResponse -> TestTree
+testGetDeploymentResponse = res
+    "GetDeploymentResponse"
+    "fixture/GetDeploymentResponse"
+    (Proxy :: Proxy GetDeployment)
+
+testCreateDeploymentConfigResponse :: CreateDeploymentConfigResponse -> TestTree
+testCreateDeploymentConfigResponse = res
+    "CreateDeploymentConfigResponse"
+    "fixture/CreateDeploymentConfigResponse"
+    (Proxy :: Proxy CreateDeploymentConfig)
+
+testUpdateDeploymentGroupResponse :: UpdateDeploymentGroupResponse -> TestTree
+testUpdateDeploymentGroupResponse = res
+    "UpdateDeploymentGroupResponse"
+    "fixture/UpdateDeploymentGroupResponse"
+    (Proxy :: Proxy UpdateDeploymentGroup)
+
+testDeleteDeploymentGroupResponse :: DeleteDeploymentGroupResponse -> TestTree
+testDeleteDeploymentGroupResponse = res
+    "DeleteDeploymentGroupResponse"
+    "fixture/DeleteDeploymentGroupResponse"
+    (Proxy :: Proxy DeleteDeploymentGroup)
+
+testListOnPremisesInstancesResponse :: ListOnPremisesInstancesResponse -> TestTree
+testListOnPremisesInstancesResponse = res
+    "ListOnPremisesInstancesResponse"
+    "fixture/ListOnPremisesInstancesResponse"
+    (Proxy :: Proxy ListOnPremisesInstances)
+
+testGetApplicationRevisionResponse :: GetApplicationRevisionResponse -> TestTree
+testGetApplicationRevisionResponse = res
+    "GetApplicationRevisionResponse"
+    "fixture/GetApplicationRevisionResponse"
+    (Proxy :: Proxy GetApplicationRevision)
+
+testDeleteDeploymentConfigResponse :: DeleteDeploymentConfigResponse -> TestTree
+testDeleteDeploymentConfigResponse = res
+    "DeleteDeploymentConfigResponse"
+    "fixture/DeleteDeploymentConfigResponse"
+    (Proxy :: Proxy DeleteDeploymentConfig)
+
+testGetDeploymentConfigResponse :: GetDeploymentConfigResponse -> TestTree
+testGetDeploymentConfigResponse = res
+    "GetDeploymentConfigResponse"
+    "fixture/GetDeploymentConfigResponse"
+    (Proxy :: Proxy GetDeploymentConfig)
+
+testCreateDeploymentResponse :: CreateDeploymentResponse -> TestTree
+testCreateDeploymentResponse = res
+    "CreateDeploymentResponse"
+    "fixture/CreateDeploymentResponse"
+    (Proxy :: Proxy CreateDeployment)
+
+testGetOnPremisesInstanceResponse :: GetOnPremisesInstanceResponse -> TestTree
+testGetOnPremisesInstanceResponse = res
+    "GetOnPremisesInstanceResponse"
+    "fixture/GetOnPremisesInstanceResponse"
+    (Proxy :: Proxy GetOnPremisesInstance)
+
+testBatchGetDeploymentsResponse :: BatchGetDeploymentsResponse -> TestTree
+testBatchGetDeploymentsResponse = res
+    "BatchGetDeploymentsResponse"
+    "fixture/BatchGetDeploymentsResponse"
+    (Proxy :: Proxy BatchGetDeployments)
+
+testRegisterApplicationRevisionResponse :: RegisterApplicationRevisionResponse -> TestTree
+testRegisterApplicationRevisionResponse = res
+    "RegisterApplicationRevisionResponse"
+    "fixture/RegisterApplicationRevisionResponse"
+    (Proxy :: Proxy RegisterApplicationRevision)
+
+testDeleteApplicationResponse :: DeleteApplicationResponse -> TestTree
+testDeleteApplicationResponse = res
+    "DeleteApplicationResponse"
+    "fixture/DeleteApplicationResponse"
+    (Proxy :: Proxy DeleteApplication)
+
+testUpdateApplicationResponse :: UpdateApplicationResponse -> TestTree
+testUpdateApplicationResponse = res
+    "UpdateApplicationResponse"
+    "fixture/UpdateApplicationResponse"
+    (Proxy :: Proxy UpdateApplication)
+
+testBatchGetApplicationsResponse :: BatchGetApplicationsResponse -> TestTree
+testBatchGetApplicationsResponse = res
+    "BatchGetApplicationsResponse"
+    "fixture/BatchGetApplicationsResponse"
+    (Proxy :: Proxy BatchGetApplications)
+
+testCreateApplicationResponse :: CreateApplicationResponse -> TestTree
+testCreateApplicationResponse = res
+    "CreateApplicationResponse"
+    "fixture/CreateApplicationResponse"
+    (Proxy :: Proxy CreateApplication)
+
+testDeregisterOnPremisesInstanceResponse :: DeregisterOnPremisesInstanceResponse -> TestTree
+testDeregisterOnPremisesInstanceResponse = res
+    "DeregisterOnPremisesInstanceResponse"
+    "fixture/DeregisterOnPremisesInstanceResponse"
+    (Proxy :: Proxy DeregisterOnPremisesInstance)
+
+testGetDeploymentInstanceResponse :: GetDeploymentInstanceResponse -> TestTree
+testGetDeploymentInstanceResponse = res
+    "GetDeploymentInstanceResponse"
+    "fixture/GetDeploymentInstanceResponse"
+    (Proxy :: Proxy GetDeploymentInstance)
+
+testStopDeploymentResponse :: StopDeploymentResponse -> TestTree
+testStopDeploymentResponse = res
+    "StopDeploymentResponse"
+    "fixture/StopDeploymentResponse"
+    (Proxy :: Proxy StopDeployment)
+
+testGetApplicationResponse :: GetApplicationResponse -> TestTree
+testGetApplicationResponse = res
+    "GetApplicationResponse"
+    "fixture/GetApplicationResponse"
+    (Proxy :: Proxy GetApplication)
+
+testListDeploymentGroupsResponse :: ListDeploymentGroupsResponse -> TestTree
+testListDeploymentGroupsResponse = res
+    "ListDeploymentGroupsResponse"
+    "fixture/ListDeploymentGroupsResponse"
+    (Proxy :: Proxy ListDeploymentGroups)
+
+testRegisterOnPremisesInstanceResponse :: RegisterOnPremisesInstanceResponse -> TestTree
+testRegisterOnPremisesInstanceResponse = res
+    "RegisterOnPremisesInstanceResponse"
+    "fixture/RegisterOnPremisesInstanceResponse"
+    (Proxy :: Proxy RegisterOnPremisesInstance)
+
+testBatchGetOnPremisesInstancesResponse :: BatchGetOnPremisesInstancesResponse -> TestTree
+testBatchGetOnPremisesInstancesResponse = res
+    "BatchGetOnPremisesInstancesResponse"
+    "fixture/BatchGetOnPremisesInstancesResponse"
+    (Proxy :: Proxy BatchGetOnPremisesInstances)
+
+testListDeploymentConfigsResponse :: ListDeploymentConfigsResponse -> TestTree
+testListDeploymentConfigsResponse = res
+    "ListDeploymentConfigsResponse"
+    "fixture/ListDeploymentConfigsResponse"
+    (Proxy :: Proxy ListDeploymentConfigs)
+
+testCreateDeploymentGroupResponse :: CreateDeploymentGroupResponse -> TestTree
+testCreateDeploymentGroupResponse = res
+    "CreateDeploymentGroupResponse"
+    "fixture/CreateDeploymentGroupResponse"
+    (Proxy :: Proxy CreateDeploymentGroup)
+
+testGetDeploymentGroupResponse :: GetDeploymentGroupResponse -> TestTree
+testGetDeploymentGroupResponse = res
+    "GetDeploymentGroupResponse"
+    "fixture/GetDeploymentGroupResponse"
+    (Proxy :: Proxy GetDeploymentGroup)
+
+testListDeploymentsResponse :: ListDeploymentsResponse -> TestTree
+testListDeploymentsResponse = res
+    "ListDeploymentsResponse"
+    "fixture/ListDeploymentsResponse"
+    (Proxy :: Proxy ListDeployments)
+
+testListApplicationRevisionsResponse :: ListApplicationRevisionsResponse -> TestTree
+testListApplicationRevisionsResponse = res
+    "ListApplicationRevisionsResponse"
+    "fixture/ListApplicationRevisionsResponse"
+    (Proxy :: Proxy ListApplicationRevisions)
+
+testListApplicationsResponse :: ListApplicationsResponse -> TestTree
+testListApplicationsResponse = res
+    "ListApplicationsResponse"
+    "fixture/ListApplicationsResponse"
+    (Proxy :: Proxy ListApplications)
+
+testAddTagsToOnPremisesInstancesResponse :: AddTagsToOnPremisesInstancesResponse -> TestTree
+testAddTagsToOnPremisesInstancesResponse = res
+    "AddTagsToOnPremisesInstancesResponse"
+    "fixture/AddTagsToOnPremisesInstancesResponse"
+    (Proxy :: Proxy AddTagsToOnPremisesInstances)
+
+testListDeploymentInstancesResponse :: ListDeploymentInstancesResponse -> TestTree
+testListDeploymentInstancesResponse = res
+    "ListDeploymentInstancesResponse"
+    "fixture/ListDeploymentInstancesResponse"
+    (Proxy :: Proxy ListDeploymentInstances)
