diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,27 +1,55 @@
 # Amazon Elastic Beanstalk 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
 
-AWS Elastic Beanstalk is an easy-to-use service for deploying and scaling web
-applications and services developed with Java, .NET, PHP, Node.js, Python,
-Ruby, and Docker on familiar servers such as Apache HTTP Server, Apache
-Tomcat, Nginx, Passenger, and IIS 7.5/8. You can simply upload your code and
-Elastic Beanstalk automatically handles the deployment, from capacity
-provisioning, load balancing, auto-scaling to application health monitoring.
-At the same time, you retain full control over the AWS resources powering
-your application and can access the underlying resources at any time. There
-is no additional charge for Elastic Beanstalk - you pay only for the AWS
-resources needed to store and run your applications.
+AWS Elastic Beanstalk
 
+This is the AWS Elastic Beanstalk API Reference. This guide provides
+detailed information about AWS Elastic Beanstalk actions, data types,
+parameters, and errors.
+
+AWS Elastic Beanstalk is a tool that makes it easy for you to create,
+deploy, and manage scalable, fault-tolerant applications running on
+Amazon Web Services cloud resources.
+
+For more information about this product, go to the
+<http://aws.amazon.com/elasticbeanstalk/ AWS Elastic Beanstalk> details
+page. The location of the latest AWS Elastic Beanstalk WSDL is
+<http://elasticbeanstalk.s3.amazonaws.com/doc/2010-12-01/AWSElasticBeanstalk.wsdl>.
+To install the Software Development Kits (SDKs), Integrated Development
+Environment (IDE) Toolkits, and command line tools that enable you to
+access the API, go to
+<https://aws.amazon.com/tools/ Tools for Amazon Web Services>.
+
+__Endpoints__
+
+For a list of region-specific endpoints that AWS Elastic Beanstalk
+supports, go to
+<http://docs.aws.amazon.com/general/latest/gr/rande.html#elasticbeanstalk_region Regions and Endpoints>
+in the /Amazon Web Services Glossary/.
+
 Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-elasticbeanstalk)
 and the [AWS API Reference](http://docs.aws.amazon.com/elasticbeanstalk/latest/api/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-elasticbeanstalk.cabal b/amazonka-elasticbeanstalk.cabal
--- a/amazonka-elasticbeanstalk.cabal
+++ b/amazonka-elasticbeanstalk.cabal
@@ -1,34 +1,57 @@
 name:                  amazonka-elasticbeanstalk
-version:               0.3.6
+version:               1.0.0
 synopsis:              Amazon Elastic Beanstalk 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:
-    AWS Elastic Beanstalk is an easy-to-use service for deploying and scaling web
-    applications and services developed with Java, .NET, PHP, Node.js, Python,
-    Ruby, and Docker on familiar servers such as Apache HTTP Server, Apache
-    Tomcat, Nginx, Passenger, and IIS 7.5/8. You can simply upload your code and
-    Elastic Beanstalk automatically handles the deployment, from capacity
-    provisioning, load balancing, auto-scaling to application health monitoring.
-    At the same time, you retain full control over the AWS resources powering
-    your application and can access the underlying resources at any time. There
-    is no additional charge for Elastic Beanstalk - you pay only for the AWS
-    resources needed to store and run your applications.
+    AWS Elastic Beanstalk
 
+    This is the AWS Elastic Beanstalk API Reference. This guide provides
+    detailed information about AWS Elastic Beanstalk actions, data types,
+    parameters, and errors.
+
+    AWS Elastic Beanstalk is a tool that makes it easy for you to create,
+    deploy, and manage scalable, fault-tolerant applications running on
+    Amazon Web Services cloud resources.
+
+    For more information about this product, go to the
+    <http://aws.amazon.com/elasticbeanstalk/ AWS Elastic Beanstalk> details
+    page. The location of the latest AWS Elastic Beanstalk WSDL is
+    <http://elasticbeanstalk.s3.amazonaws.com/doc/2010-12-01/AWSElasticBeanstalk.wsdl>.
+    To install the Software Development Kits (SDKs), Integrated Development
+    Environment (IDE) Toolkits, and command line tools that enable you to
+    access the API, go to
+    <https://aws.amazon.com/tools/ Tools for Amazon Web Services>.
+
+    __Endpoints__
+
+    For a list of region-specific endpoints that AWS Elastic Beanstalk
+    supports, go to
+    <http://docs.aws.amazon.com/general/latest/gr/rande.html#elasticbeanstalk_region Regions and Endpoints>
+    in the /Amazon Web Services Glossary/.
     .
-    /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/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.ElasticBeanstalk" and the <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/Welcome.html AWS API Reference>
+    to get started.
 
 source-repository head
     type:     git
@@ -57,9 +80,11 @@
         , Network.AWS.ElasticBeanstalk.DescribeApplications
         , Network.AWS.ElasticBeanstalk.DescribeConfigurationOptions
         , Network.AWS.ElasticBeanstalk.DescribeConfigurationSettings
+        , Network.AWS.ElasticBeanstalk.DescribeEnvironmentHealth
         , Network.AWS.ElasticBeanstalk.DescribeEnvironmentResources
         , Network.AWS.ElasticBeanstalk.DescribeEnvironments
         , Network.AWS.ElasticBeanstalk.DescribeEvents
+        , Network.AWS.ElasticBeanstalk.DescribeInstancesHealth
         , Network.AWS.ElasticBeanstalk.ListAvailableSolutionStacks
         , Network.AWS.ElasticBeanstalk.RebuildEnvironment
         , Network.AWS.ElasticBeanstalk.RequestEnvironmentInfo
@@ -73,9 +98,40 @@
         , Network.AWS.ElasticBeanstalk.UpdateConfigurationTemplate
         , Network.AWS.ElasticBeanstalk.UpdateEnvironment
         , Network.AWS.ElasticBeanstalk.ValidateConfigurationSettings
+        , Network.AWS.ElasticBeanstalk.Waiters
 
     other-modules:
+          Network.AWS.ElasticBeanstalk.Types.Product
+        , Network.AWS.ElasticBeanstalk.Types.Sum
 
     build-depends:
-          amazonka-core == 0.3.6.*
+          amazonka-core == 1.0.0.*
         , base          >= 4.7     && < 5
+
+test-suite amazonka-elasticbeanstalk-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.ElasticBeanstalk
+        , Test.AWS.Gen.ElasticBeanstalk
+        , Test.AWS.ElasticBeanstalk.Internal
+
+    build-depends:
+          amazonka-core == 1.0.0
+        , amazonka-test == 1.0.0
+        , amazonka-elasticbeanstalk == 1.0.0
+        , base
+        , bytestring
+        , lens
+        , tasty
+        , tasty-hunit
+        , text
+        , time
+        , unordered-containers
diff --git a/gen/Network/AWS/ElasticBeanstalk.hs b/gen/Network/AWS/ElasticBeanstalk.hs
--- a/gen/Network/AWS/ElasticBeanstalk.hs
+++ b/gen/Network/AWS/ElasticBeanstalk.hs
@@ -1,87 +1,570 @@
+{-# 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.ElasticBeanstalk
--- 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.
-
--- | AWS Elastic Beanstalk is an easy-to-use service for deploying and scaling web
--- applications and services developed with Java, .NET, PHP, Node.js, Python,
--- Ruby, and Docker on familiar servers such as Apache HTTP Server, Apache
--- Tomcat, Nginx, Passenger, and IIS 7.5/8. You can simply upload your code and
--- Elastic Beanstalk automatically handles the deployment, from capacity
--- provisioning, load balancing, auto-scaling to application health monitoring.
--- At the same time, you retain full control over the AWS resources powering
--- your application and can access the underlying resources at any time. There
--- is no additional charge for Elastic Beanstalk - you pay only for the AWS
--- resources needed to store and run your applications.
+-- AWS Elastic Beanstalk
+--
+-- This is the AWS Elastic Beanstalk API Reference. This guide provides
+-- detailed information about AWS Elastic Beanstalk actions, data types,
+-- parameters, and errors.
+--
+-- AWS Elastic Beanstalk is a tool that makes it easy for you to create,
+-- deploy, and manage scalable, fault-tolerant applications running on
+-- Amazon Web Services cloud resources.
+--
+-- For more information about this product, go to the
+-- <http://aws.amazon.com/elasticbeanstalk/ AWS Elastic Beanstalk> details
+-- page. The location of the latest AWS Elastic Beanstalk WSDL is
+-- <http://elasticbeanstalk.s3.amazonaws.com/doc/2010-12-01/AWSElasticBeanstalk.wsdl>.
+-- To install the Software Development Kits (SDKs), Integrated Development
+-- Environment (IDE) Toolkits, and command line tools that enable you to
+-- access the API, go to
+-- <https://aws.amazon.com/tools/ Tools for Amazon Web Services>.
+--
+-- __Endpoints__
+--
+-- For a list of region-specific endpoints that AWS Elastic Beanstalk
+-- supports, go to
+-- <http://docs.aws.amazon.com/general/latest/gr/rande.html#elasticbeanstalk_region Regions and Endpoints>
+-- in the /Amazon Web Services Glossary/.
+--
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/Welcome.html AWS API Reference>
 module Network.AWS.ElasticBeanstalk
-    ( module Network.AWS.ElasticBeanstalk.AbortEnvironmentUpdate
-    , module Network.AWS.ElasticBeanstalk.CheckDNSAvailability
-    , module Network.AWS.ElasticBeanstalk.CreateApplication
+    (
+    -- * Service
+      ElasticBeanstalk
+
+    -- * Errors
+    -- $errors
+
+    -- ** InvalidRequestException
+    , _InvalidRequestException
+
+    -- ** S3SubscriptionRequiredException
+    , _S3SubscriptionRequiredException
+
+    -- ** TooManyBucketsException
+    , _TooManyBucketsException
+
+    -- ** OperationInProgressException
+    , _OperationInProgressException
+
+    -- ** TooManyConfigurationTemplatesException
+    , _TooManyConfigurationTemplatesException
+
+    -- ** TooManyApplicationVersionsException
+    , _TooManyApplicationVersionsException
+
+    -- ** ElasticBeanstalkServiceException
+    , _ElasticBeanstalkServiceException
+
+    -- ** InsufficientPrivilegesException
+    , _InsufficientPrivilegesException
+
+    -- ** TooManyApplicationsException
+    , _TooManyApplicationsException
+
+    -- ** SourceBundleDeletionException
+    , _SourceBundleDeletionException
+
+    -- ** S3LocationNotInServiceRegionException
+    , _S3LocationNotInServiceRegionException
+
+    -- ** TooManyEnvironmentsException
+    , _TooManyEnvironmentsException
+
+    -- * Waiters
+    -- $waiters
+
+    -- * Operations
+    -- $operations
+
+    -- ** DescribeApplications
+    , module Network.AWS.ElasticBeanstalk.DescribeApplications
+
+    -- ** CreateApplicationVersion
     , module Network.AWS.ElasticBeanstalk.CreateApplicationVersion
-    , module Network.AWS.ElasticBeanstalk.CreateConfigurationTemplate
-    , module Network.AWS.ElasticBeanstalk.CreateEnvironment
-    , module Network.AWS.ElasticBeanstalk.CreateStorageLocation
+
+    -- ** UpdateEnvironment
+    , module Network.AWS.ElasticBeanstalk.UpdateEnvironment
+
+    -- ** TerminateEnvironment
+    , module Network.AWS.ElasticBeanstalk.TerminateEnvironment
+
+    -- ** DescribeEvents (Paginated)
+    , module Network.AWS.ElasticBeanstalk.DescribeEvents
+
+    -- ** RequestEnvironmentInfo
+    , module Network.AWS.ElasticBeanstalk.RequestEnvironmentInfo
+
+    -- ** RetrieveEnvironmentInfo
+    , module Network.AWS.ElasticBeanstalk.RetrieveEnvironmentInfo
+
+    -- ** DeleteApplication
     , module Network.AWS.ElasticBeanstalk.DeleteApplication
+
+    -- ** UpdateApplication
+    , module Network.AWS.ElasticBeanstalk.UpdateApplication
+
+    -- ** DescribeInstancesHealth
+    , module Network.AWS.ElasticBeanstalk.DescribeInstancesHealth
+
+    -- ** CreateApplication
+    , module Network.AWS.ElasticBeanstalk.CreateApplication
+
+    -- ** AbortEnvironmentUpdate
+    , module Network.AWS.ElasticBeanstalk.AbortEnvironmentUpdate
+
+    -- ** DeleteApplicationVersion
     , module Network.AWS.ElasticBeanstalk.DeleteApplicationVersion
+
+    -- ** UpdateApplicationVersion
+    , module Network.AWS.ElasticBeanstalk.UpdateApplicationVersion
+
+    -- ** DescribeEnvironmentResources
+    , module Network.AWS.ElasticBeanstalk.DescribeEnvironmentResources
+
+    -- ** DeleteConfigurationTemplate
     , module Network.AWS.ElasticBeanstalk.DeleteConfigurationTemplate
+
+    -- ** UpdateConfigurationTemplate
+    , module Network.AWS.ElasticBeanstalk.UpdateConfigurationTemplate
+
+    -- ** DescribeEnvironmentHealth
+    , module Network.AWS.ElasticBeanstalk.DescribeEnvironmentHealth
+
+    -- ** RebuildEnvironment
+    , module Network.AWS.ElasticBeanstalk.RebuildEnvironment
+
+    -- ** DeleteEnvironmentConfiguration
     , module Network.AWS.ElasticBeanstalk.DeleteEnvironmentConfiguration
-    , module Network.AWS.ElasticBeanstalk.DescribeApplicationVersions
-    , module Network.AWS.ElasticBeanstalk.DescribeApplications
+
+    -- ** CreateConfigurationTemplate
+    , module Network.AWS.ElasticBeanstalk.CreateConfigurationTemplate
+
+    -- ** ListAvailableSolutionStacks
+    , module Network.AWS.ElasticBeanstalk.ListAvailableSolutionStacks
+
+    -- ** SwapEnvironmentCNAMEs
+    , module Network.AWS.ElasticBeanstalk.SwapEnvironmentCNAMEs
+
+    -- ** DescribeConfigurationOptions
     , module Network.AWS.ElasticBeanstalk.DescribeConfigurationOptions
+
+    -- ** DescribeConfigurationSettings
     , module Network.AWS.ElasticBeanstalk.DescribeConfigurationSettings
-    , module Network.AWS.ElasticBeanstalk.DescribeEnvironmentResources
+
+    -- ** CreateStorageLocation
+    , module Network.AWS.ElasticBeanstalk.CreateStorageLocation
+
+    -- ** DescribeEnvironments
     , module Network.AWS.ElasticBeanstalk.DescribeEnvironments
-    , module Network.AWS.ElasticBeanstalk.DescribeEvents
-    , module Network.AWS.ElasticBeanstalk.ListAvailableSolutionStacks
-    , module Network.AWS.ElasticBeanstalk.RebuildEnvironment
-    , module Network.AWS.ElasticBeanstalk.RequestEnvironmentInfo
+
+    -- ** RestartAppServer
     , module Network.AWS.ElasticBeanstalk.RestartAppServer
-    , module Network.AWS.ElasticBeanstalk.RetrieveEnvironmentInfo
-    , module Network.AWS.ElasticBeanstalk.SwapEnvironmentCNAMEs
-    , module Network.AWS.ElasticBeanstalk.TerminateEnvironment
-    , module Network.AWS.ElasticBeanstalk.Types
-    , module Network.AWS.ElasticBeanstalk.UpdateApplication
-    , module Network.AWS.ElasticBeanstalk.UpdateApplicationVersion
-    , module Network.AWS.ElasticBeanstalk.UpdateConfigurationTemplate
-    , module Network.AWS.ElasticBeanstalk.UpdateEnvironment
+
+    -- ** ValidateConfigurationSettings
     , module Network.AWS.ElasticBeanstalk.ValidateConfigurationSettings
+
+    -- ** DescribeApplicationVersions
+    , module Network.AWS.ElasticBeanstalk.DescribeApplicationVersions
+
+    -- ** CheckDNSAvailability
+    , module Network.AWS.ElasticBeanstalk.CheckDNSAvailability
+
+    -- ** CreateEnvironment
+    , module Network.AWS.ElasticBeanstalk.CreateEnvironment
+
+    -- * Types
+
+    -- ** ConfigurationDeploymentStatus
+    , ConfigurationDeploymentStatus (..)
+
+    -- ** ConfigurationOptionValueType
+    , ConfigurationOptionValueType (..)
+
+    -- ** EnvironmentHealth
+    , EnvironmentHealth (..)
+
+    -- ** EnvironmentHealthAttribute
+    , EnvironmentHealthAttribute (..)
+
+    -- ** EnvironmentHealthStatus
+    , EnvironmentHealthStatus (..)
+
+    -- ** EnvironmentInfoType
+    , EnvironmentInfoType (..)
+
+    -- ** EnvironmentStatus
+    , EnvironmentStatus (..)
+
+    -- ** EventSeverity
+    , EventSeverity (..)
+
+    -- ** InstancesHealthAttribute
+    , InstancesHealthAttribute (..)
+
+    -- ** ValidationSeverity
+    , ValidationSeverity (..)
+
+    -- ** ApplicationDescription
+    , ApplicationDescription
+    , applicationDescription
+    , adDateUpdated
+    , adVersions
+    , adDateCreated
+    , adApplicationName
+    , adConfigurationTemplates
+    , adDescription
+
+    -- ** ApplicationDescriptionMessage
+    , ApplicationDescriptionMessage
+    , applicationDescriptionMessage
+    , admApplication
+
+    -- ** ApplicationMetrics
+    , ApplicationMetrics
+    , applicationMetrics
+    , amRequestCount
+    , amLatency
+    , amStatusCodes
+    , amDuration
+
+    -- ** ApplicationVersionDescription
+    , ApplicationVersionDescription
+    , applicationVersionDescription
+    , avdDateUpdated
+    , avdSourceBundle
+    , avdVersionLabel
+    , avdDateCreated
+    , avdApplicationName
+    , avdDescription
+
+    -- ** ApplicationVersionDescriptionMessage
+    , ApplicationVersionDescriptionMessage
+    , applicationVersionDescriptionMessage
+    , avdmApplicationVersion
+
+    -- ** AutoScalingGroup
+    , AutoScalingGroup
+    , autoScalingGroup
+    , asgName
+
+    -- ** CPUUtilization
+    , CPUUtilization
+    , cpuUtilization
+    , cuIdle
+    , cuSoftIRQ
+    , cuIRQ
+    , cuSystem
+    , cuUser
+    , cuIOWait
+    , cuNice
+
+    -- ** ConfigurationOptionDescription
+    , ConfigurationOptionDescription
+    , configurationOptionDescription
+    , codMaxValue
+    , codRegex
+    , codUserDefined
+    , codMaxLength
+    , codValueOptions
+    , codNamespace
+    , codName
+    , codChangeSeverity
+    , codDefaultValue
+    , codValueType
+    , codMinValue
+
+    -- ** ConfigurationOptionSetting
+    , ConfigurationOptionSetting
+    , configurationOptionSetting
+    , cosOptionName
+    , cosResourceName
+    , cosValue
+    , cosNamespace
+
+    -- ** ConfigurationSettingsDescription
+    , ConfigurationSettingsDescription
+    , configurationSettingsDescription
+    , csdTemplateName
+    , csdOptionSettings
+    , csdDateUpdated
+    , csdDateCreated
+    , csdEnvironmentName
+    , csdApplicationName
+    , csdDeploymentStatus
+    , csdSolutionStackName
+    , csdDescription
+
+    -- ** EnvironmentDescription
+    , EnvironmentDescription
+    , environmentDescription
+    , eCNAME
+    , eStatus
+    , eTemplateName
+    , eAbortableOperationInProgress
+    , eEndpointURL
+    , eDateUpdated
+    , eResources
+    , eHealth
+    , eVersionLabel
+    , eDateCreated
+    , eTier
+    , eEnvironmentName
+    , eApplicationName
+    , eHealthStatus
+    , eEnvironmentId
+    , eSolutionStackName
+    , eDescription
+
+    -- ** EnvironmentInfoDescription
+    , EnvironmentInfoDescription
+    , environmentInfoDescription
+    , eidSampleTimestamp
+    , eidEC2InstanceId
+    , eidInfoType
+    , eidMessage
+
+    -- ** EnvironmentResourceDescription
+    , EnvironmentResourceDescription
+    , environmentResourceDescription
+    , erdQueues
+    , erdTriggers
+    , erdLoadBalancers
+    , erdInstances
+    , erdEnvironmentName
+    , erdLaunchConfigurations
+    , erdAutoScalingGroups
+
+    -- ** EnvironmentResourcesDescription
+    , EnvironmentResourcesDescription
+    , environmentResourcesDescription
+    , erdLoadBalancer
+
+    -- ** EnvironmentTier
+    , EnvironmentTier
+    , environmentTier
+    , etName
+    , etVersion
+    , etType
+
+    -- ** EventDescription
+    , EventDescription
+    , eventDescription
+    , edRequestId
+    , edTemplateName
+    , edSeverity
+    , edVersionLabel
+    , edEnvironmentName
+    , edApplicationName
+    , edEventDate
+    , edMessage
+
+    -- ** Instance
+    , Instance
+    , instance'
+    , iId
+
+    -- ** InstanceHealthSummary
+    , InstanceHealthSummary
+    , instanceHealthSummary
+    , ihsOK
+    , ihsPending
+    , ihsSevere
+    , ihsUnknown
+    , ihsNoData
+    , ihsWarning
+    , ihsDegraded
+    , ihsInfo
+
+    -- ** Latency
+    , Latency
+    , latency
+    , lP75
+    , lP50
+    , lP85
+    , lP999
+    , lP90
+    , lP95
+    , lP99
+    , lP10
+
+    -- ** LaunchConfiguration
+    , LaunchConfiguration
+    , launchConfiguration
+    , lcName
+
+    -- ** Listener
+    , Listener
+    , listener
+    , lProtocol
+    , lPort
+
+    -- ** LoadBalancer
+    , LoadBalancer
+    , loadBalancer
+    , lbName
+
+    -- ** LoadBalancerDescription
+    , LoadBalancerDescription
+    , loadBalancerDescription
+    , lbdLoadBalancerName
+    , lbdDomain
+    , lbdListeners
+
+    -- ** OptionRestrictionRegex
+    , OptionRestrictionRegex
+    , optionRestrictionRegex
+    , orrPattern
+    , orrLabel
+
+    -- ** OptionSpecification
+    , OptionSpecification
+    , optionSpecification
+    , osOptionName
+    , osResourceName
+    , osNamespace
+
+    -- ** Queue
+    , Queue
+    , queue
+    , qURL
+    , qName
+
+    -- ** S3Location
+    , S3Location
+    , s3Location
+    , slS3Key
+    , slS3Bucket
+
+    -- ** SingleInstanceHealth
+    , SingleInstanceHealth
+    , singleInstanceHealth
+    , sihInstanceId
+    , sihCauses
+    , sihApplicationMetrics
+    , sihColor
+    , sihSystem
+    , sihHealthStatus
+    , sihLaunchedAt
+
+    -- ** SolutionStackDescription
+    , SolutionStackDescription
+    , solutionStackDescription
+    , ssdPermittedFileTypes
+    , ssdSolutionStackName
+
+    -- ** SourceConfiguration
+    , SourceConfiguration
+    , sourceConfiguration
+    , scTemplateName
+    , scApplicationName
+
+    -- ** StatusCodes
+    , StatusCodes
+    , statusCodes
+    , scStatus2xx
+    , scStatus3xx
+    , scStatus4xx
+    , scStatus5xx
+
+    -- ** SystemStatus
+    , SystemStatus
+    , systemStatus
+    , ssCPUUtilization
+    , ssLoadAverage
+
+    -- ** Tag
+    , Tag
+    , tag
+    , tagValue
+    , tagKey
+
+    -- ** Trigger
+    , Trigger
+    , trigger
+    , tName
+
+    -- ** ValidationMessage
+    , ValidationMessage
+    , validationMessage
+    , vmOptionName
+    , vmSeverity
+    , vmNamespace
+    , vmMessage
     ) where
 
-import Network.AWS.ElasticBeanstalk.AbortEnvironmentUpdate
-import Network.AWS.ElasticBeanstalk.CheckDNSAvailability
-import Network.AWS.ElasticBeanstalk.CreateApplication
-import Network.AWS.ElasticBeanstalk.CreateApplicationVersion
-import Network.AWS.ElasticBeanstalk.CreateConfigurationTemplate
-import Network.AWS.ElasticBeanstalk.CreateEnvironment
-import Network.AWS.ElasticBeanstalk.CreateStorageLocation
-import Network.AWS.ElasticBeanstalk.DeleteApplication
-import Network.AWS.ElasticBeanstalk.DeleteApplicationVersion
-import Network.AWS.ElasticBeanstalk.DeleteConfigurationTemplate
-import Network.AWS.ElasticBeanstalk.DeleteEnvironmentConfiguration
-import Network.AWS.ElasticBeanstalk.DescribeApplicationVersions
-import Network.AWS.ElasticBeanstalk.DescribeApplications
-import Network.AWS.ElasticBeanstalk.DescribeConfigurationOptions
-import Network.AWS.ElasticBeanstalk.DescribeConfigurationSettings
-import Network.AWS.ElasticBeanstalk.DescribeEnvironmentResources
-import Network.AWS.ElasticBeanstalk.DescribeEnvironments
-import Network.AWS.ElasticBeanstalk.DescribeEvents
-import Network.AWS.ElasticBeanstalk.ListAvailableSolutionStacks
-import Network.AWS.ElasticBeanstalk.RebuildEnvironment
-import Network.AWS.ElasticBeanstalk.RequestEnvironmentInfo
-import Network.AWS.ElasticBeanstalk.RestartAppServer
-import Network.AWS.ElasticBeanstalk.RetrieveEnvironmentInfo
-import Network.AWS.ElasticBeanstalk.SwapEnvironmentCNAMEs
-import Network.AWS.ElasticBeanstalk.TerminateEnvironment
-import Network.AWS.ElasticBeanstalk.Types
-import Network.AWS.ElasticBeanstalk.UpdateApplication
-import Network.AWS.ElasticBeanstalk.UpdateApplicationVersion
-import Network.AWS.ElasticBeanstalk.UpdateConfigurationTemplate
-import Network.AWS.ElasticBeanstalk.UpdateEnvironment
-import Network.AWS.ElasticBeanstalk.ValidateConfigurationSettings
+import           Network.AWS.ElasticBeanstalk.AbortEnvironmentUpdate
+import           Network.AWS.ElasticBeanstalk.CheckDNSAvailability
+import           Network.AWS.ElasticBeanstalk.CreateApplication
+import           Network.AWS.ElasticBeanstalk.CreateApplicationVersion
+import           Network.AWS.ElasticBeanstalk.CreateConfigurationTemplate
+import           Network.AWS.ElasticBeanstalk.CreateEnvironment
+import           Network.AWS.ElasticBeanstalk.CreateStorageLocation
+import           Network.AWS.ElasticBeanstalk.DeleteApplication
+import           Network.AWS.ElasticBeanstalk.DeleteApplicationVersion
+import           Network.AWS.ElasticBeanstalk.DeleteConfigurationTemplate
+import           Network.AWS.ElasticBeanstalk.DeleteEnvironmentConfiguration
+import           Network.AWS.ElasticBeanstalk.DescribeApplications
+import           Network.AWS.ElasticBeanstalk.DescribeApplicationVersions
+import           Network.AWS.ElasticBeanstalk.DescribeConfigurationOptions
+import           Network.AWS.ElasticBeanstalk.DescribeConfigurationSettings
+import           Network.AWS.ElasticBeanstalk.DescribeEnvironmentHealth
+import           Network.AWS.ElasticBeanstalk.DescribeEnvironmentResources
+import           Network.AWS.ElasticBeanstalk.DescribeEnvironments
+import           Network.AWS.ElasticBeanstalk.DescribeEvents
+import           Network.AWS.ElasticBeanstalk.DescribeInstancesHealth
+import           Network.AWS.ElasticBeanstalk.ListAvailableSolutionStacks
+import           Network.AWS.ElasticBeanstalk.RebuildEnvironment
+import           Network.AWS.ElasticBeanstalk.RequestEnvironmentInfo
+import           Network.AWS.ElasticBeanstalk.RestartAppServer
+import           Network.AWS.ElasticBeanstalk.RetrieveEnvironmentInfo
+import           Network.AWS.ElasticBeanstalk.SwapEnvironmentCNAMEs
+import           Network.AWS.ElasticBeanstalk.TerminateEnvironment
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.UpdateApplication
+import           Network.AWS.ElasticBeanstalk.UpdateApplicationVersion
+import           Network.AWS.ElasticBeanstalk.UpdateConfigurationTemplate
+import           Network.AWS.ElasticBeanstalk.UpdateEnvironment
+import           Network.AWS.ElasticBeanstalk.ValidateConfigurationSettings
+import           Network.AWS.ElasticBeanstalk.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 'ElasticBeanstalk'.
+-}
+
+{- $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/ElasticBeanstalk/AbortEnvironmentUpdate.hs b/gen/Network/AWS/ElasticBeanstalk/AbortEnvironmentUpdate.hs
--- a/gen/Network/AWS/ElasticBeanstalk/AbortEnvironmentUpdate.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/AbortEnvironmentUpdate.hs
@@ -1,103 +1,110 @@
-{-# 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.ElasticBeanstalk.AbortEnvironmentUpdate
--- 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.
-
--- | Cancels in-progress environment configuration update or application version
--- deployment.
+-- Cancels in-progress environment configuration update or application
+-- version deployment.
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_AbortEnvironmentUpdate.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_AbortEnvironmentUpdate.html AWS API Reference> for AbortEnvironmentUpdate.
 module Network.AWS.ElasticBeanstalk.AbortEnvironmentUpdate
     (
-    -- * Request
-      AbortEnvironmentUpdate
-    -- ** Request constructor
-    , abortEnvironmentUpdate
-    -- ** Request lenses
-    , aeuEnvironmentId
+    -- * Creating a Request
+      abortEnvironmentUpdate
+    , AbortEnvironmentUpdate
+    -- * Request Lenses
     , aeuEnvironmentName
+    , aeuEnvironmentId
 
-    -- * Response
-    , AbortEnvironmentUpdateResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , abortEnvironmentUpdateResponse
+    , AbortEnvironmentUpdateResponse
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data AbortEnvironmentUpdate = AbortEnvironmentUpdate
-    { _aeuEnvironmentId   :: Maybe Text
-    , _aeuEnvironmentName :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'AbortEnvironmentUpdate' constructor.
+-- |
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'abortEnvironmentUpdate' smart constructor.
+data AbortEnvironmentUpdate = AbortEnvironmentUpdate'
+    { _aeuEnvironmentName :: !(Maybe Text)
+    , _aeuEnvironmentId   :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AbortEnvironmentUpdate' with the minimum fields required to make a request.
 --
--- * 'aeuEnvironmentId' @::@ 'Maybe' 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'aeuEnvironmentName' @::@ 'Maybe' 'Text'
+-- * 'aeuEnvironmentName'
 --
-abortEnvironmentUpdate :: AbortEnvironmentUpdate
-abortEnvironmentUpdate = AbortEnvironmentUpdate
-    { _aeuEnvironmentId   = Nothing
-    , _aeuEnvironmentName = Nothing
+-- * 'aeuEnvironmentId'
+abortEnvironmentUpdate
+    :: AbortEnvironmentUpdate
+abortEnvironmentUpdate =
+    AbortEnvironmentUpdate'
+    { _aeuEnvironmentName = Nothing
+    , _aeuEnvironmentId = Nothing
     }
 
--- | This specifies the ID of the environment with the in-progress update that you
--- want to cancel.
-aeuEnvironmentId :: Lens' AbortEnvironmentUpdate (Maybe Text)
-aeuEnvironmentId = lens _aeuEnvironmentId (\s a -> s { _aeuEnvironmentId = a })
-
--- | This specifies the name of the environment with the in-progress update that
--- you want to cancel.
+-- | This specifies the name of the environment with the in-progress update
+-- that you want to cancel.
 aeuEnvironmentName :: Lens' AbortEnvironmentUpdate (Maybe Text)
-aeuEnvironmentName =
-    lens _aeuEnvironmentName (\s a -> s { _aeuEnvironmentName = a })
+aeuEnvironmentName = lens _aeuEnvironmentName (\ s a -> s{_aeuEnvironmentName = a});
 
-data AbortEnvironmentUpdateResponse = AbortEnvironmentUpdateResponse
-    deriving (Eq, Ord, Read, Show, Generic)
+-- | This specifies the ID of the environment with the in-progress update
+-- that you want to cancel.
+aeuEnvironmentId :: Lens' AbortEnvironmentUpdate (Maybe Text)
+aeuEnvironmentId = lens _aeuEnvironmentId (\ s a -> s{_aeuEnvironmentId = a});
 
--- | 'AbortEnvironmentUpdateResponse' constructor.
-abortEnvironmentUpdateResponse :: AbortEnvironmentUpdateResponse
-abortEnvironmentUpdateResponse = AbortEnvironmentUpdateResponse
+instance AWSRequest AbortEnvironmentUpdate where
+        type Sv AbortEnvironmentUpdate = ElasticBeanstalk
+        type Rs AbortEnvironmentUpdate =
+             AbortEnvironmentUpdateResponse
+        request = postQuery
+        response
+          = receiveNull AbortEnvironmentUpdateResponse'
 
+instance ToHeaders AbortEnvironmentUpdate where
+        toHeaders = const mempty
+
 instance ToPath AbortEnvironmentUpdate where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery AbortEnvironmentUpdate where
-    toQuery AbortEnvironmentUpdate{..} = mconcat
-        [ "EnvironmentId"   =? _aeuEnvironmentId
-        , "EnvironmentName" =? _aeuEnvironmentName
-        ]
-
-instance ToHeaders AbortEnvironmentUpdate
+        toQuery AbortEnvironmentUpdate'{..}
+          = mconcat
+              ["Action" =:
+                 ("AbortEnvironmentUpdate" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "EnvironmentName" =: _aeuEnvironmentName,
+               "EnvironmentId" =: _aeuEnvironmentId]
 
-instance AWSRequest AbortEnvironmentUpdate where
-    type Sv AbortEnvironmentUpdate = ElasticBeanstalk
-    type Rs AbortEnvironmentUpdate = AbortEnvironmentUpdateResponse
+-- | /See:/ 'abortEnvironmentUpdateResponse' smart constructor.
+data AbortEnvironmentUpdateResponse =
+    AbortEnvironmentUpdateResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-    request  = post "AbortEnvironmentUpdate"
-    response = nullResponse AbortEnvironmentUpdateResponse
+-- | Creates a value of 'AbortEnvironmentUpdateResponse' with the minimum fields required to make a request.
+--
+abortEnvironmentUpdateResponse
+    :: AbortEnvironmentUpdateResponse
+abortEnvironmentUpdateResponse = AbortEnvironmentUpdateResponse'
diff --git a/gen/Network/AWS/ElasticBeanstalk/CheckDNSAvailability.hs b/gen/Network/AWS/ElasticBeanstalk/CheckDNSAvailability.hs
--- a/gen/Network/AWS/ElasticBeanstalk/CheckDNSAvailability.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/CheckDNSAvailability.hs
@@ -1,127 +1,142 @@
-{-# 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.ElasticBeanstalk.CheckDNSAvailability
--- 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.
-
--- | Checks if the specified CNAME is available.
+-- Checks if the specified CNAME is available.
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_CheckDNSAvailability.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_CheckDNSAvailability.html AWS API Reference> for CheckDNSAvailability.
 module Network.AWS.ElasticBeanstalk.CheckDNSAvailability
     (
-    -- * Request
-      CheckDNSAvailability
-    -- ** Request constructor
-    , checkDNSAvailability
-    -- ** Request lenses
-    , cdnsaCNAMEPrefix
+    -- * Creating a Request
+      checkDNSAvailability
+    , CheckDNSAvailability
+    -- * Request Lenses
+    , cdaCNAMEPrefix
 
-    -- * Response
-    , CheckDNSAvailabilityResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , checkDNSAvailabilityResponse
-    -- ** Response lenses
-    , cdnsarAvailable
-    , cdnsarFullyQualifiedCNAME
+    , CheckDNSAvailabilityResponse
+    -- * Response Lenses
+    , cdarsFullyQualifiedCNAME
+    , cdarsAvailable
+    , cdarsStatus
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-newtype CheckDNSAvailability = CheckDNSAvailability
-    { _cdnsaCNAMEPrefix :: Text
-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'CheckDNSAvailability' constructor.
+-- | Results message indicating whether a CNAME is available.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'checkDNSAvailability' smart constructor.
+newtype CheckDNSAvailability = CheckDNSAvailability'
+    { _cdaCNAMEPrefix :: Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CheckDNSAvailability' with the minimum fields required to make a request.
 --
--- * 'cdnsaCNAMEPrefix' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
-checkDNSAvailability :: Text -- ^ 'cdnsaCNAMEPrefix'
-                     -> CheckDNSAvailability
-checkDNSAvailability p1 = CheckDNSAvailability
-    { _cdnsaCNAMEPrefix = p1
+-- * 'cdaCNAMEPrefix'
+checkDNSAvailability
+    :: Text -- ^ 'cdaCNAMEPrefix'
+    -> CheckDNSAvailability
+checkDNSAvailability pCNAMEPrefix_ =
+    CheckDNSAvailability'
+    { _cdaCNAMEPrefix = pCNAMEPrefix_
     }
 
 -- | The prefix used when this CNAME is reserved.
-cdnsaCNAMEPrefix :: Lens' CheckDNSAvailability Text
-cdnsaCNAMEPrefix = lens _cdnsaCNAMEPrefix (\s a -> s { _cdnsaCNAMEPrefix = a })
+cdaCNAMEPrefix :: Lens' CheckDNSAvailability Text
+cdaCNAMEPrefix = lens _cdaCNAMEPrefix (\ s a -> s{_cdaCNAMEPrefix = a});
 
-data CheckDNSAvailabilityResponse = CheckDNSAvailabilityResponse
-    { _cdnsarAvailable           :: Maybe Bool
-    , _cdnsarFullyQualifiedCNAME :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
+instance AWSRequest CheckDNSAvailability where
+        type Sv CheckDNSAvailability = ElasticBeanstalk
+        type Rs CheckDNSAvailability =
+             CheckDNSAvailabilityResponse
+        request = postQuery
+        response
+          = receiveXMLWrapper "CheckDNSAvailabilityResult"
+              (\ s h x ->
+                 CheckDNSAvailabilityResponse' <$>
+                   (x .@? "FullyQualifiedCNAME") <*> (x .@? "Available")
+                     <*> (pure (fromEnum s)))
 
--- | 'CheckDNSAvailabilityResponse' constructor.
+instance ToHeaders CheckDNSAvailability where
+        toHeaders = const mempty
+
+instance ToPath CheckDNSAvailability where
+        toPath = const "/"
+
+instance ToQuery CheckDNSAvailability where
+        toQuery CheckDNSAvailability'{..}
+          = mconcat
+              ["Action" =: ("CheckDNSAvailability" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "CNAMEPrefix" =: _cdaCNAMEPrefix]
+
+-- | Indicates if the specified CNAME is available.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'checkDNSAvailabilityResponse' smart constructor.
+data CheckDNSAvailabilityResponse = CheckDNSAvailabilityResponse'
+    { _cdarsFullyQualifiedCNAME :: !(Maybe Text)
+    , _cdarsAvailable           :: !(Maybe Bool)
+    , _cdarsStatus              :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CheckDNSAvailabilityResponse' with the minimum fields required to make a request.
 --
--- * 'cdnsarAvailable' @::@ 'Maybe' 'Bool'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'cdnsarFullyQualifiedCNAME' @::@ 'Maybe' 'Text'
+-- * 'cdarsFullyQualifiedCNAME'
 --
-checkDNSAvailabilityResponse :: CheckDNSAvailabilityResponse
-checkDNSAvailabilityResponse = CheckDNSAvailabilityResponse
-    { _cdnsarAvailable           = Nothing
-    , _cdnsarFullyQualifiedCNAME = Nothing
+-- * 'cdarsAvailable'
+--
+-- * 'cdarsStatus'
+checkDNSAvailabilityResponse
+    :: Int -- ^ 'cdarsStatus'
+    -> CheckDNSAvailabilityResponse
+checkDNSAvailabilityResponse pStatus_ =
+    CheckDNSAvailabilityResponse'
+    { _cdarsFullyQualifiedCNAME = Nothing
+    , _cdarsAvailable = Nothing
+    , _cdarsStatus = pStatus_
     }
 
+-- | The fully qualified CNAME to reserve when CreateEnvironment is called
+-- with the provided prefix.
+cdarsFullyQualifiedCNAME :: Lens' CheckDNSAvailabilityResponse (Maybe Text)
+cdarsFullyQualifiedCNAME = lens _cdarsFullyQualifiedCNAME (\ s a -> s{_cdarsFullyQualifiedCNAME = a});
+
 -- | Indicates if the specified CNAME is available:
 --
 -- 'true' : The CNAME is available.
 --
 -- 'true' : The CNAME is not available.
 --
--- 'true' : The CNAME is available.   'false' : The CNAME is not available.
-cdnsarAvailable :: Lens' CheckDNSAvailabilityResponse (Maybe Bool)
-cdnsarAvailable = lens _cdnsarAvailable (\s a -> s { _cdnsarAvailable = a })
-
--- | The fully qualified CNAME to reserve when 'CreateEnvironment' is called with
--- the provided prefix.
-cdnsarFullyQualifiedCNAME :: Lens' CheckDNSAvailabilityResponse (Maybe Text)
-cdnsarFullyQualifiedCNAME =
-    lens _cdnsarFullyQualifiedCNAME
-        (\s a -> s { _cdnsarFullyQualifiedCNAME = a })
-
-instance ToPath CheckDNSAvailability where
-    toPath = const "/"
-
-instance ToQuery CheckDNSAvailability where
-    toQuery CheckDNSAvailability{..} = mconcat
-        [ "CNAMEPrefix" =? _cdnsaCNAMEPrefix
-        ]
-
-instance ToHeaders CheckDNSAvailability
-
-instance AWSRequest CheckDNSAvailability where
-    type Sv CheckDNSAvailability = ElasticBeanstalk
-    type Rs CheckDNSAvailability = CheckDNSAvailabilityResponse
-
-    request  = post "CheckDNSAvailability"
-    response = xmlResponse
+-- -   'true' : The CNAME is available.
+-- -   'false' : The CNAME is not available.
+cdarsAvailable :: Lens' CheckDNSAvailabilityResponse (Maybe Bool)
+cdarsAvailable = lens _cdarsAvailable (\ s a -> s{_cdarsAvailable = a});
 
-instance FromXML CheckDNSAvailabilityResponse where
-    parseXML = withElement "CheckDNSAvailabilityResult" $ \x -> CheckDNSAvailabilityResponse
-        <$> x .@? "Available"
-        <*> x .@? "FullyQualifiedCNAME"
+-- | The response status code.
+cdarsStatus :: Lens' CheckDNSAvailabilityResponse Int
+cdarsStatus = lens _cdarsStatus (\ s a -> s{_cdarsStatus = a});
diff --git a/gen/Network/AWS/ElasticBeanstalk/CreateApplication.hs b/gen/Network/AWS/ElasticBeanstalk/CreateApplication.hs
--- a/gen/Network/AWS/ElasticBeanstalk/CreateApplication.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/CreateApplication.hs
@@ -1,123 +1,104 @@
-{-# 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.ElasticBeanstalk.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 an application that has one configuration template named 'default' and
--- no application versions.
+-- Creates an application that has one configuration template named
+-- 'default' and no application versions.
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_CreateApplication.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_CreateApplication.html AWS API Reference> for CreateApplication.
 module Network.AWS.ElasticBeanstalk.CreateApplication
     (
-    -- * Request
-      CreateApplication
-    -- ** Request constructor
-    , createApplication
-    -- ** Request lenses
-    , caApplicationName
+    -- * Creating a Request
+      createApplication
+    , CreateApplication
+    -- * Request Lenses
     , caDescription
+    , caApplicationName
 
-    -- * Response
-    , CreateApplicationResponse
-    -- ** Response constructor
-    , createApplicationResponse
-    -- ** Response lenses
-    , carApplication
+    -- * Destructuring the Response
+    , applicationDescriptionMessage
+    , ApplicationDescriptionMessage
+    -- * Response Lenses
+    , admApplication
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data CreateApplication = CreateApplication
-    { _caApplicationName :: Text
-    , _caDescription     :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'CreateApplication' constructor.
+-- | This documentation target is not reported in the API reference.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'createApplication' smart constructor.
+data CreateApplication = CreateApplication'
+    { _caDescription     :: !(Maybe Text)
+    , _caApplicationName :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | 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:
 --
--- * 'caDescription' @::@ 'Maybe' 'Text'
+-- * 'caDescription'
 --
-createApplication :: Text -- ^ 'caApplicationName'
-                  -> CreateApplication
-createApplication p1 = CreateApplication
-    { _caApplicationName = p1
-    , _caDescription     = Nothing
+-- * 'caApplicationName'
+createApplication
+    :: Text -- ^ 'caApplicationName'
+    -> CreateApplication
+createApplication pApplicationName_ =
+    CreateApplication'
+    { _caDescription = Nothing
+    , _caApplicationName = pApplicationName_
     }
 
--- | The name of the application.
---
--- Constraint: This name must be unique within your account. If the specified
--- name already exists, the action returns an 'InvalidParameterValue' error.
-caApplicationName :: Lens' CreateApplication Text
-caApplicationName =
-    lens _caApplicationName (\s a -> s { _caApplicationName = a })
-
 -- | Describes the application.
 caDescription :: Lens' CreateApplication (Maybe Text)
-caDescription = lens _caDescription (\s a -> s { _caDescription = a })
-
-newtype CreateApplicationResponse = CreateApplicationResponse
-    { _carApplication :: Maybe ApplicationDescription
-    } deriving (Eq, Read, Show)
+caDescription = lens _caDescription (\ s a -> s{_caDescription = a});
 
--- | 'CreateApplicationResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'carApplication' @::@ 'Maybe' 'ApplicationDescription'
+-- | The name of the application.
 --
-createApplicationResponse :: CreateApplicationResponse
-createApplicationResponse = CreateApplicationResponse
-    { _carApplication = Nothing
-    }
+-- Constraint: This name must be unique within your account. If the
+-- specified name already exists, the action returns an
+-- 'InvalidParameterValue' error.
+caApplicationName :: Lens' CreateApplication Text
+caApplicationName = lens _caApplicationName (\ s a -> s{_caApplicationName = a});
 
--- | The 'ApplicationDescription' of the application.
-carApplication :: Lens' CreateApplicationResponse (Maybe ApplicationDescription)
-carApplication = lens _carApplication (\s a -> s { _carApplication = a })
+instance AWSRequest CreateApplication where
+        type Sv CreateApplication = ElasticBeanstalk
+        type Rs CreateApplication =
+             ApplicationDescriptionMessage
+        request = postQuery
+        response
+          = receiveXMLWrapper "CreateApplicationResult"
+              (\ s h x -> parseXML x)
 
+instance ToHeaders CreateApplication where
+        toHeaders = const mempty
+
 instance ToPath CreateApplication where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery CreateApplication where
-    toQuery CreateApplication{..} = mconcat
-        [ "ApplicationName" =? _caApplicationName
-        , "Description"     =? _caDescription
-        ]
-
-instance ToHeaders CreateApplication
-
-instance AWSRequest CreateApplication where
-    type Sv CreateApplication = ElasticBeanstalk
-    type Rs CreateApplication = CreateApplicationResponse
-
-    request  = post "CreateApplication"
-    response = xmlResponse
-
-instance FromXML CreateApplicationResponse where
-    parseXML = withElement "CreateApplicationResult" $ \x -> CreateApplicationResponse
-        <$> x .@? "Application"
+        toQuery CreateApplication'{..}
+          = mconcat
+              ["Action" =: ("CreateApplication" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "Description" =: _caDescription,
+               "ApplicationName" =: _caApplicationName]
diff --git a/gen/Network/AWS/ElasticBeanstalk/CreateApplicationVersion.hs b/gen/Network/AWS/ElasticBeanstalk/CreateApplicationVersion.hs
--- a/gen/Network/AWS/ElasticBeanstalk/CreateApplicationVersion.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/CreateApplicationVersion.hs
@@ -1,186 +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.ElasticBeanstalk.CreateApplicationVersion
--- 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 an application version for the specified application.
+-- Creates an application version for the specified application.
 --
--- Once you create an application version with a specified Amazon S3 bucket and
--- key location, you cannot change that Amazon S3 location. If you change the
--- Amazon S3 location, you receive an exception when you attempt to launch an
--- environment from the application version.
+-- Once you create an application version with a specified Amazon S3 bucket
+-- and key location, you cannot change that Amazon S3 location. If you
+-- change the Amazon S3 location, you receive an exception when you attempt
+-- to launch an environment from the application version.
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_CreateApplicationVersion.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_CreateApplicationVersion.html AWS API Reference> for CreateApplicationVersion.
 module Network.AWS.ElasticBeanstalk.CreateApplicationVersion
     (
-    -- * Request
-      CreateApplicationVersion
-    -- ** Request constructor
-    , createApplicationVersion
-    -- ** Request lenses
-    , cavApplicationName
+    -- * Creating a Request
+      createApplicationVersion
+    , CreateApplicationVersion
+    -- * Request Lenses
+    , cavSourceBundle
     , cavAutoCreateApplication
     , cavDescription
-    , cavSourceBundle
+    , cavApplicationName
     , cavVersionLabel
 
-    -- * Response
-    , CreateApplicationVersionResponse
-    -- ** Response constructor
-    , createApplicationVersionResponse
-    -- ** Response lenses
-    , cavrApplicationVersion
+    -- * Destructuring the Response
+    , applicationVersionDescriptionMessage
+    , ApplicationVersionDescriptionMessage
+    -- * Response Lenses
+    , avdmApplicationVersion
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data CreateApplicationVersion = CreateApplicationVersion
-    { _cavApplicationName       :: Text
-    , _cavAutoCreateApplication :: Maybe Bool
-    , _cavDescription           :: Maybe Text
-    , _cavSourceBundle          :: Maybe S3Location
-    , _cavVersionLabel          :: Text
-    } deriving (Eq, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'CreateApplicationVersion' constructor.
+-- |
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'createApplicationVersion' smart constructor.
+data CreateApplicationVersion = CreateApplicationVersion'
+    { _cavSourceBundle          :: !(Maybe S3Location)
+    , _cavAutoCreateApplication :: !(Maybe Bool)
+    , _cavDescription           :: !(Maybe Text)
+    , _cavApplicationName       :: !Text
+    , _cavVersionLabel          :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreateApplicationVersion' with the minimum fields required to make a request.
 --
--- * 'cavApplicationName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'cavAutoCreateApplication' @::@ 'Maybe' 'Bool'
+-- * 'cavSourceBundle'
 --
--- * 'cavDescription' @::@ 'Maybe' 'Text'
+-- * 'cavAutoCreateApplication'
 --
--- * 'cavSourceBundle' @::@ 'Maybe' 'S3Location'
+-- * 'cavDescription'
 --
--- * 'cavVersionLabel' @::@ 'Text'
+-- * 'cavApplicationName'
 --
-createApplicationVersion :: Text -- ^ 'cavApplicationName'
-                         -> Text -- ^ 'cavVersionLabel'
-                         -> CreateApplicationVersion
-createApplicationVersion p1 p2 = CreateApplicationVersion
-    { _cavApplicationName       = p1
-    , _cavVersionLabel          = p2
-    , _cavDescription           = Nothing
-    , _cavSourceBundle          = Nothing
+-- * 'cavVersionLabel'
+createApplicationVersion
+    :: Text -- ^ 'cavApplicationName'
+    -> Text -- ^ 'cavVersionLabel'
+    -> CreateApplicationVersion
+createApplicationVersion pApplicationName_ pVersionLabel_ =
+    CreateApplicationVersion'
+    { _cavSourceBundle = Nothing
     , _cavAutoCreateApplication = Nothing
+    , _cavDescription = Nothing
+    , _cavApplicationName = pApplicationName_
+    , _cavVersionLabel = pVersionLabel_
     }
 
--- | The name of the application. If no application is found with this name, and 'AutoCreateApplication' is 'false', returns an 'InvalidParameterValue' error.
-cavApplicationName :: Lens' CreateApplicationVersion Text
-cavApplicationName =
-    lens _cavApplicationName (\s a -> s { _cavApplicationName = a })
+-- | The Amazon S3 bucket and key that identify the location of the source
+-- bundle for this version.
+--
+-- If data found at the Amazon S3 location exceeds the maximum allowed
+-- source bundle size, AWS Elastic Beanstalk returns an
+-- 'InvalidParameterValue' error. The maximum size allowed is 512 MB.
+--
+-- Default: If not specified, AWS Elastic Beanstalk uses a sample
+-- application. If only partially specified (for example, a bucket is
+-- provided but not the key) or if no data is found at the Amazon S3
+-- location, AWS Elastic Beanstalk returns an 'InvalidParameterCombination'
+-- error.
+cavSourceBundle :: Lens' CreateApplicationVersion (Maybe S3Location)
+cavSourceBundle = lens _cavSourceBundle (\ s a -> s{_cavSourceBundle = a});
 
 -- | Determines how the system behaves if the specified application for this
 -- version does not already exist:
 --
--- 'true': Automatically creates the specified application for this version if
--- it does not already exist.
+-- 'true': Automatically creates the specified application for this version
+-- if it does not already exist.
 --
--- 'false': Returns an 'InvalidParameterValue' if the specified application for
--- this version does not already exist.
+-- 'false': Returns an 'InvalidParameterValue' if the specified application
+-- for this version does not already exist.
 --
--- 'true' : Automatically creates the specified application for this release
--- if it does not already exist.   'false' : Throws an 'InvalidParameterValue' if
--- the specified application for this release does not already exist.
+-- -   'true' : Automatically creates the specified application for this
+--     release if it does not already exist.
+-- -   'false' : Throws an 'InvalidParameterValue' if the specified
+--     application for this release does not already exist.
+--
 -- Default: 'false'
 --
 -- Valid Values: 'true' | 'false'
 cavAutoCreateApplication :: Lens' CreateApplicationVersion (Maybe Bool)
-cavAutoCreateApplication =
-    lens _cavAutoCreateApplication
-        (\s a -> s { _cavAutoCreateApplication = a })
+cavAutoCreateApplication = lens _cavAutoCreateApplication (\ s a -> s{_cavAutoCreateApplication = a});
 
 -- | Describes this version.
 cavDescription :: Lens' CreateApplicationVersion (Maybe Text)
-cavDescription = lens _cavDescription (\s a -> s { _cavDescription = a })
+cavDescription = lens _cavDescription (\ s a -> s{_cavDescription = a});
 
--- | The Amazon S3 bucket and key that identify the location of the source bundle
--- for this version.
---
--- If data found at the Amazon S3 location exceeds the maximum allowed source
--- bundle size, AWS Elastic Beanstalk returns an 'InvalidParameterValue' error.
--- The maximum size allowed is 512 MB.
---
--- Default: If not specified, AWS Elastic Beanstalk uses a sample application.
--- If only partially specified (for example, a bucket is provided but not the
--- key) or if no data is found at the Amazon S3 location, AWS Elastic Beanstalk
--- returns an 'InvalidParameterCombination' error.
-cavSourceBundle :: Lens' CreateApplicationVersion (Maybe S3Location)
-cavSourceBundle = lens _cavSourceBundle (\s a -> s { _cavSourceBundle = a })
+-- | The name of the application. If no application is found with this name,
+-- and 'AutoCreateApplication' is 'false', returns an
+-- 'InvalidParameterValue' error.
+cavApplicationName :: Lens' CreateApplicationVersion Text
+cavApplicationName = lens _cavApplicationName (\ s a -> s{_cavApplicationName = a});
 
 -- | A label identifying this version.
 --
 -- Constraint: Must be unique per application. If an application version
--- already exists with this label for the specified application, AWS Elastic
--- Beanstalk returns an 'InvalidParameterValue' error.
+-- already exists with this label for the specified application, AWS
+-- Elastic Beanstalk returns an 'InvalidParameterValue' error.
 cavVersionLabel :: Lens' CreateApplicationVersion Text
-cavVersionLabel = lens _cavVersionLabel (\s a -> s { _cavVersionLabel = a })
-
-newtype CreateApplicationVersionResponse = CreateApplicationVersionResponse
-    { _cavrApplicationVersion :: Maybe ApplicationVersionDescription
-    } deriving (Eq, Read, Show)
+cavVersionLabel = lens _cavVersionLabel (\ s a -> s{_cavVersionLabel = a});
 
--- | 'CreateApplicationVersionResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'cavrApplicationVersion' @::@ 'Maybe' 'ApplicationVersionDescription'
---
-createApplicationVersionResponse :: CreateApplicationVersionResponse
-createApplicationVersionResponse = CreateApplicationVersionResponse
-    { _cavrApplicationVersion = Nothing
-    }
+instance AWSRequest CreateApplicationVersion where
+        type Sv CreateApplicationVersion = ElasticBeanstalk
+        type Rs CreateApplicationVersion =
+             ApplicationVersionDescriptionMessage
+        request = postQuery
+        response
+          = receiveXMLWrapper "CreateApplicationVersionResult"
+              (\ s h x -> parseXML x)
 
--- | The 'ApplicationVersionDescription' of the application version.
-cavrApplicationVersion :: Lens' CreateApplicationVersionResponse (Maybe ApplicationVersionDescription)
-cavrApplicationVersion =
-    lens _cavrApplicationVersion (\s a -> s { _cavrApplicationVersion = a })
+instance ToHeaders CreateApplicationVersion where
+        toHeaders = const mempty
 
 instance ToPath CreateApplicationVersion where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery CreateApplicationVersion where
-    toQuery CreateApplicationVersion{..} = mconcat
-        [ "ApplicationName"       =? _cavApplicationName
-        , "AutoCreateApplication" =? _cavAutoCreateApplication
-        , "Description"           =? _cavDescription
-        , "SourceBundle"          =? _cavSourceBundle
-        , "VersionLabel"          =? _cavVersionLabel
-        ]
-
-instance ToHeaders CreateApplicationVersion
-
-instance AWSRequest CreateApplicationVersion where
-    type Sv CreateApplicationVersion = ElasticBeanstalk
-    type Rs CreateApplicationVersion = CreateApplicationVersionResponse
-
-    request  = post "CreateApplicationVersion"
-    response = xmlResponse
-
-instance FromXML CreateApplicationVersionResponse where
-    parseXML = withElement "CreateApplicationVersionResult" $ \x -> CreateApplicationVersionResponse
-        <$> x .@? "ApplicationVersion"
+        toQuery CreateApplicationVersion'{..}
+          = mconcat
+              ["Action" =:
+                 ("CreateApplicationVersion" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "SourceBundle" =: _cavSourceBundle,
+               "AutoCreateApplication" =: _cavAutoCreateApplication,
+               "Description" =: _cavDescription,
+               "ApplicationName" =: _cavApplicationName,
+               "VersionLabel" =: _cavVersionLabel]
diff --git a/gen/Network/AWS/ElasticBeanstalk/CreateConfigurationTemplate.hs b/gen/Network/AWS/ElasticBeanstalk/CreateConfigurationTemplate.hs
--- a/gen/Network/AWS/ElasticBeanstalk/CreateConfigurationTemplate.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/CreateConfigurationTemplate.hs
@@ -1,171 +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.ElasticBeanstalk.CreateConfigurationTemplate
--- 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 configuration template. Templates are associated with a specific
--- application and are used to deploy different versions of the application with
--- the same configuration settings.
+-- Creates a configuration template. Templates are associated with a
+-- specific application and are used to deploy different versions of the
+-- application with the same configuration settings.
 --
 -- Related Topics
 --
--- 'DescribeConfigurationOptions'   'DescribeConfigurationSettings'   'ListAvailableSolutionStacks'
+-- -   DescribeConfigurationOptions
+-- -   DescribeConfigurationSettings
+-- -   ListAvailableSolutionStacks
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_CreateConfigurationTemplate.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_CreateConfigurationTemplate.html AWS API Reference> for CreateConfigurationTemplate.
 module Network.AWS.ElasticBeanstalk.CreateConfigurationTemplate
     (
-    -- * Request
-      CreateConfigurationTemplate
-    -- ** Request constructor
-    , createConfigurationTemplate
-    -- ** Request lenses
-    , cctApplicationName
-    , cctDescription
-    , cctEnvironmentId
+    -- * Creating a Request
+      createConfigurationTemplate
+    , CreateConfigurationTemplate
+    -- * Request Lenses
     , cctOptionSettings
-    , cctSolutionStackName
     , cctSourceConfiguration
+    , cctEnvironmentId
+    , cctSolutionStackName
+    , cctDescription
+    , cctApplicationName
     , cctTemplateName
 
-    -- * Response
-    , CreateConfigurationTemplateResponse
-    -- ** Response constructor
-    , createConfigurationTemplateResponse
-    -- ** Response lenses
-    , cctrApplicationName
-    , cctrDateCreated
-    , cctrDateUpdated
-    , cctrDeploymentStatus
-    , cctrDescription
-    , cctrEnvironmentName
-    , cctrOptionSettings
-    , cctrSolutionStackName
-    , cctrTemplateName
+    -- * Destructuring the Response
+    , configurationSettingsDescription
+    , ConfigurationSettingsDescription
+    -- * Response Lenses
+    , csdTemplateName
+    , csdOptionSettings
+    , csdDateUpdated
+    , csdDateCreated
+    , csdEnvironmentName
+    , csdApplicationName
+    , csdDeploymentStatus
+    , csdSolutionStackName
+    , csdDescription
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data CreateConfigurationTemplate = CreateConfigurationTemplate
-    { _cctApplicationName     :: Text
-    , _cctDescription         :: Maybe Text
-    , _cctEnvironmentId       :: Maybe Text
-    , _cctOptionSettings      :: List "member" ConfigurationOptionSetting
-    , _cctSolutionStackName   :: Maybe Text
-    , _cctSourceConfiguration :: Maybe SourceConfiguration
-    , _cctTemplateName        :: Text
-    } deriving (Eq, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'CreateConfigurationTemplate' constructor.
+-- | This documentation target is not reported in the API reference.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'createConfigurationTemplate' smart constructor.
+data CreateConfigurationTemplate = CreateConfigurationTemplate'
+    { _cctOptionSettings      :: !(Maybe [ConfigurationOptionSetting])
+    , _cctSourceConfiguration :: !(Maybe SourceConfiguration)
+    , _cctEnvironmentId       :: !(Maybe Text)
+    , _cctSolutionStackName   :: !(Maybe Text)
+    , _cctDescription         :: !(Maybe Text)
+    , _cctApplicationName     :: !Text
+    , _cctTemplateName        :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreateConfigurationTemplate' with the minimum fields required to make a request.
 --
--- * 'cctApplicationName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'cctDescription' @::@ 'Maybe' 'Text'
+-- * 'cctOptionSettings'
 --
--- * 'cctEnvironmentId' @::@ 'Maybe' 'Text'
+-- * 'cctSourceConfiguration'
 --
--- * 'cctOptionSettings' @::@ ['ConfigurationOptionSetting']
+-- * 'cctEnvironmentId'
 --
--- * 'cctSolutionStackName' @::@ 'Maybe' 'Text'
+-- * 'cctSolutionStackName'
 --
--- * 'cctSourceConfiguration' @::@ 'Maybe' 'SourceConfiguration'
+-- * 'cctDescription'
 --
--- * 'cctTemplateName' @::@ 'Text'
+-- * 'cctApplicationName'
 --
-createConfigurationTemplate :: Text -- ^ 'cctApplicationName'
-                            -> Text -- ^ 'cctTemplateName'
-                            -> CreateConfigurationTemplate
-createConfigurationTemplate p1 p2 = CreateConfigurationTemplate
-    { _cctApplicationName     = p1
-    , _cctTemplateName        = p2
-    , _cctSolutionStackName   = Nothing
+-- * 'cctTemplateName'
+createConfigurationTemplate
+    :: Text -- ^ 'cctApplicationName'
+    -> Text -- ^ 'cctTemplateName'
+    -> CreateConfigurationTemplate
+createConfigurationTemplate pApplicationName_ pTemplateName_ =
+    CreateConfigurationTemplate'
+    { _cctOptionSettings = Nothing
     , _cctSourceConfiguration = Nothing
-    , _cctEnvironmentId       = Nothing
-    , _cctDescription         = Nothing
-    , _cctOptionSettings      = mempty
+    , _cctEnvironmentId = Nothing
+    , _cctSolutionStackName = Nothing
+    , _cctDescription = Nothing
+    , _cctApplicationName = pApplicationName_
+    , _cctTemplateName = pTemplateName_
     }
 
--- | The name of the application to associate with this configuration template.
--- If no application is found with this name, AWS Elastic Beanstalk returns an 'InvalidParameterValue' error.
-cctApplicationName :: Lens' CreateConfigurationTemplate Text
-cctApplicationName =
-    lens _cctApplicationName (\s a -> s { _cctApplicationName = a })
+-- | If specified, AWS Elastic Beanstalk sets the specified configuration
+-- option to the requested value. The new value overrides the value
+-- obtained from the solution stack or the source configuration template.
+cctOptionSettings :: Lens' CreateConfigurationTemplate [ConfigurationOptionSetting]
+cctOptionSettings = lens _cctOptionSettings (\ s a -> s{_cctOptionSettings = a}) . _Default . _Coerce;
 
--- | Describes this configuration.
-cctDescription :: Lens' CreateConfigurationTemplate (Maybe Text)
-cctDescription = lens _cctDescription (\s a -> s { _cctDescription = a })
+-- | If specified, AWS Elastic Beanstalk uses the configuration values from
+-- the specified configuration template to create a new configuration.
+--
+-- Values specified in the 'OptionSettings' parameter of this call
+-- overrides any values obtained from the 'SourceConfiguration'.
+--
+-- If no configuration template is found, returns an
+-- 'InvalidParameterValue' error.
+--
+-- Constraint: If both the solution stack name parameter and the source
+-- configuration parameters are specified, the solution stack of the source
+-- configuration template must match the specified solution stack name or
+-- else AWS Elastic Beanstalk returns an 'InvalidParameterCombination'
+-- error.
+cctSourceConfiguration :: Lens' CreateConfigurationTemplate (Maybe SourceConfiguration)
+cctSourceConfiguration = lens _cctSourceConfiguration (\ s a -> s{_cctSourceConfiguration = a});
 
 -- | The ID of the environment used with this configuration template.
 cctEnvironmentId :: Lens' CreateConfigurationTemplate (Maybe Text)
-cctEnvironmentId = lens _cctEnvironmentId (\s a -> s { _cctEnvironmentId = a })
-
--- | If specified, AWS Elastic Beanstalk sets the specified configuration option
--- to the requested value. The new value overrides the value obtained from the
--- solution stack or the source configuration template.
-cctOptionSettings :: Lens' CreateConfigurationTemplate [ConfigurationOptionSetting]
-cctOptionSettings =
-    lens _cctOptionSettings (\s a -> s { _cctOptionSettings = a })
-        . _List
+cctEnvironmentId = lens _cctEnvironmentId (\ s a -> s{_cctEnvironmentId = a});
 
--- | The name of the solution stack used by this configuration. The solution stack
--- specifies the operating system, architecture, and application server for a
--- configuration template. It determines the set of configuration options as
--- well as the possible and default values.
+-- | The name of the solution stack used by this configuration. The solution
+-- stack specifies the operating system, architecture, and application
+-- server for a configuration template. It determines the set of
+-- configuration options as well as the possible and default values.
 --
--- Use 'ListAvailableSolutionStacks' to obtain a list of available solution
+-- Use ListAvailableSolutionStacks to obtain a list of available solution
 -- stacks.
 --
 -- A solution stack name or a source configuration parameter must be
--- specified, otherwise AWS Elastic Beanstalk returns an 'InvalidParameterValue'
--- error.
+-- specified, otherwise AWS Elastic Beanstalk returns an
+-- 'InvalidParameterValue' error.
 --
 -- If a solution stack name is not specified and the source configuration
--- parameter is specified, AWS Elastic Beanstalk uses the same solution stack as
--- the source configuration template.
+-- parameter is specified, AWS Elastic Beanstalk uses the same solution
+-- stack as the source configuration template.
 cctSolutionStackName :: Lens' CreateConfigurationTemplate (Maybe Text)
-cctSolutionStackName =
-    lens _cctSolutionStackName (\s a -> s { _cctSolutionStackName = a })
+cctSolutionStackName = lens _cctSolutionStackName (\ s a -> s{_cctSolutionStackName = a});
 
--- | If specified, AWS Elastic Beanstalk uses the configuration values from the
--- specified configuration template to create a new configuration.
---
--- Values specified in the 'OptionSettings' parameter of this call overrides any
--- values obtained from the 'SourceConfiguration'.
---
--- If no configuration template is found, returns an 'InvalidParameterValue'
--- error.
---
--- Constraint: If both the solution stack name parameter and the source
--- configuration parameters are specified, the solution stack of the source
--- configuration template must match the specified solution stack name or else
--- AWS Elastic Beanstalk returns an 'InvalidParameterCombination' error.
-cctSourceConfiguration :: Lens' CreateConfigurationTemplate (Maybe SourceConfiguration)
-cctSourceConfiguration =
-    lens _cctSourceConfiguration (\s a -> s { _cctSourceConfiguration = a })
+-- | Describes this configuration.
+cctDescription :: Lens' CreateConfigurationTemplate (Maybe Text)
+cctDescription = lens _cctDescription (\ s a -> s{_cctDescription = a});
 
+-- | The name of the application to associate with this configuration
+-- template. If no application is found with this name, AWS Elastic
+-- Beanstalk returns an 'InvalidParameterValue' error.
+cctApplicationName :: Lens' CreateConfigurationTemplate Text
+cctApplicationName = lens _cctApplicationName (\ s a -> s{_cctApplicationName = a});
+
 -- | The name of the configuration template.
 --
 -- Constraint: This name must be unique per application.
@@ -173,147 +171,37 @@
 -- Default: If a configuration template already exists with this name, AWS
 -- Elastic Beanstalk returns an 'InvalidParameterValue' error.
 cctTemplateName :: Lens' CreateConfigurationTemplate Text
-cctTemplateName = lens _cctTemplateName (\s a -> s { _cctTemplateName = a })
-
-data CreateConfigurationTemplateResponse = CreateConfigurationTemplateResponse
-    { _cctrApplicationName   :: Maybe Text
-    , _cctrDateCreated       :: Maybe ISO8601
-    , _cctrDateUpdated       :: Maybe ISO8601
-    , _cctrDeploymentStatus  :: Maybe ConfigurationDeploymentStatus
-    , _cctrDescription       :: Maybe Text
-    , _cctrEnvironmentName   :: Maybe Text
-    , _cctrOptionSettings    :: List "member" ConfigurationOptionSetting
-    , _cctrSolutionStackName :: Maybe Text
-    , _cctrTemplateName      :: Maybe Text
-    } deriving (Eq, Read, Show)
-
--- | 'CreateConfigurationTemplateResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'cctrApplicationName' @::@ 'Maybe' 'Text'
---
--- * 'cctrDateCreated' @::@ 'Maybe' 'UTCTime'
---
--- * 'cctrDateUpdated' @::@ 'Maybe' 'UTCTime'
---
--- * 'cctrDeploymentStatus' @::@ 'Maybe' 'ConfigurationDeploymentStatus'
---
--- * 'cctrDescription' @::@ 'Maybe' 'Text'
---
--- * 'cctrEnvironmentName' @::@ 'Maybe' 'Text'
---
--- * 'cctrOptionSettings' @::@ ['ConfigurationOptionSetting']
---
--- * 'cctrSolutionStackName' @::@ 'Maybe' 'Text'
---
--- * 'cctrTemplateName' @::@ 'Maybe' 'Text'
---
-createConfigurationTemplateResponse :: CreateConfigurationTemplateResponse
-createConfigurationTemplateResponse = CreateConfigurationTemplateResponse
-    { _cctrSolutionStackName = Nothing
-    , _cctrApplicationName   = Nothing
-    , _cctrTemplateName      = Nothing
-    , _cctrDescription       = Nothing
-    , _cctrEnvironmentName   = Nothing
-    , _cctrDeploymentStatus  = Nothing
-    , _cctrDateCreated       = Nothing
-    , _cctrDateUpdated       = Nothing
-    , _cctrOptionSettings    = mempty
-    }
-
--- | The name of the application associated with this configuration set.
-cctrApplicationName :: Lens' CreateConfigurationTemplateResponse (Maybe Text)
-cctrApplicationName =
-    lens _cctrApplicationName (\s a -> s { _cctrApplicationName = a })
-
--- | The date (in UTC time) when this configuration set was created.
-cctrDateCreated :: Lens' CreateConfigurationTemplateResponse (Maybe UTCTime)
-cctrDateCreated = lens _cctrDateCreated (\s a -> s { _cctrDateCreated = a }) . mapping _Time
-
--- | The date (in UTC time) when this configuration set was last modified.
-cctrDateUpdated :: Lens' CreateConfigurationTemplateResponse (Maybe UTCTime)
-cctrDateUpdated = lens _cctrDateUpdated (\s a -> s { _cctrDateUpdated = a }) . mapping _Time
-
--- | If this configuration set is associated with an environment, the 'DeploymentStatus' parameter indicates the deployment status of this configuration set:
---
--- 'null': This configuration is not associated with a running environment.
---
--- 'pending': This is a draft configuration that is not deployed to the
--- associated environment but is in the process of deploying.
---
--- 'deployed': This is the configuration that is currently deployed to the
--- associated running environment.
---
--- 'failed': This is a draft configuration, that failed to successfully
--- deploy.
---
--- 'null': This configuration is not associated with a running environment.   'pending': This is a draft configuration that is not deployed to the associated
--- environment but is in the process of deploying.   'deployed': This is the
--- configuration that is currently deployed to the associated running
--- environment.   'failed': This is a draft configuration that failed to
--- successfully deploy.
-cctrDeploymentStatus :: Lens' CreateConfigurationTemplateResponse (Maybe ConfigurationDeploymentStatus)
-cctrDeploymentStatus =
-    lens _cctrDeploymentStatus (\s a -> s { _cctrDeploymentStatus = a })
-
--- | Describes this configuration set.
-cctrDescription :: Lens' CreateConfigurationTemplateResponse (Maybe Text)
-cctrDescription = lens _cctrDescription (\s a -> s { _cctrDescription = a })
-
--- | If not 'null', the name of the environment for this configuration set.
-cctrEnvironmentName :: Lens' CreateConfigurationTemplateResponse (Maybe Text)
-cctrEnvironmentName =
-    lens _cctrEnvironmentName (\s a -> s { _cctrEnvironmentName = a })
-
--- | A list of the configuration options and their values in this configuration
--- set.
-cctrOptionSettings :: Lens' CreateConfigurationTemplateResponse [ConfigurationOptionSetting]
-cctrOptionSettings =
-    lens _cctrOptionSettings (\s a -> s { _cctrOptionSettings = a })
-        . _List
+cctTemplateName = lens _cctTemplateName (\ s a -> s{_cctTemplateName = a});
 
--- | The name of the solution stack this configuration set uses.
-cctrSolutionStackName :: Lens' CreateConfigurationTemplateResponse (Maybe Text)
-cctrSolutionStackName =
-    lens _cctrSolutionStackName (\s a -> s { _cctrSolutionStackName = a })
+instance AWSRequest CreateConfigurationTemplate where
+        type Sv CreateConfigurationTemplate =
+             ElasticBeanstalk
+        type Rs CreateConfigurationTemplate =
+             ConfigurationSettingsDescription
+        request = postQuery
+        response
+          = receiveXMLWrapper
+              "CreateConfigurationTemplateResult"
+              (\ s h x -> parseXML x)
 
--- | If not 'null', the name of the configuration template for this configuration
--- set.
-cctrTemplateName :: Lens' CreateConfigurationTemplateResponse (Maybe Text)
-cctrTemplateName = lens _cctrTemplateName (\s a -> s { _cctrTemplateName = a })
+instance ToHeaders CreateConfigurationTemplate where
+        toHeaders = const mempty
 
 instance ToPath CreateConfigurationTemplate where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery CreateConfigurationTemplate where
-    toQuery CreateConfigurationTemplate{..} = mconcat
-        [ "ApplicationName"     =? _cctApplicationName
-        , "Description"         =? _cctDescription
-        , "EnvironmentId"       =? _cctEnvironmentId
-        , "OptionSettings"      =? _cctOptionSettings
-        , "SolutionStackName"   =? _cctSolutionStackName
-        , "SourceConfiguration" =? _cctSourceConfiguration
-        , "TemplateName"        =? _cctTemplateName
-        ]
-
-instance ToHeaders CreateConfigurationTemplate
-
-instance AWSRequest CreateConfigurationTemplate where
-    type Sv CreateConfigurationTemplate = ElasticBeanstalk
-    type Rs CreateConfigurationTemplate = CreateConfigurationTemplateResponse
-
-    request  = post "CreateConfigurationTemplate"
-    response = xmlResponse
-
-instance FromXML CreateConfigurationTemplateResponse where
-    parseXML = withElement "CreateConfigurationTemplateResult" $ \x -> CreateConfigurationTemplateResponse
-        <$> x .@? "ApplicationName"
-        <*> x .@? "DateCreated"
-        <*> x .@? "DateUpdated"
-        <*> x .@? "DeploymentStatus"
-        <*> x .@? "Description"
-        <*> x .@? "EnvironmentName"
-        <*> x .@? "OptionSettings" .!@ mempty
-        <*> x .@? "SolutionStackName"
-        <*> x .@? "TemplateName"
+        toQuery CreateConfigurationTemplate'{..}
+          = mconcat
+              ["Action" =:
+                 ("CreateConfigurationTemplate" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "OptionSettings" =:
+                 toQuery
+                   (toQueryList "member" <$> _cctOptionSettings),
+               "SourceConfiguration" =: _cctSourceConfiguration,
+               "EnvironmentId" =: _cctEnvironmentId,
+               "SolutionStackName" =: _cctSolutionStackName,
+               "Description" =: _cctDescription,
+               "ApplicationName" =: _cctApplicationName,
+               "TemplateName" =: _cctTemplateName]
diff --git a/gen/Network/AWS/ElasticBeanstalk/CreateEnvironment.hs b/gen/Network/AWS/ElasticBeanstalk/CreateEnvironment.hs
--- a/gen/Network/AWS/ElasticBeanstalk/CreateEnvironment.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/CreateEnvironment.hs
@@ -1,433 +1,250 @@
-{-# 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.ElasticBeanstalk.CreateEnvironment
--- 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.
-
--- | Launches an environment for the specified application using the specified
--- configuration.
+-- Launches an environment for the specified application using the
+-- specified configuration.
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_CreateEnvironment.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_CreateEnvironment.html AWS API Reference> for CreateEnvironment.
 module Network.AWS.ElasticBeanstalk.CreateEnvironment
     (
-    -- * Request
-      CreateEnvironment
-    -- ** Request constructor
-    , createEnvironment
-    -- ** Request lenses
-    , ceApplicationName
+    -- * Creating a Request
+      createEnvironment
+    , CreateEnvironment
+    -- * Request Lenses
     , ceCNAMEPrefix
-    , ceDescription
-    , ceEnvironmentName
-    , ceOptionSettings
+    , ceTemplateName
     , ceOptionsToRemove
+    , ceOptionSettings
+    , ceVersionLabel
+    , ceTier
     , ceSolutionStackName
+    , ceDescription
     , ceTags
-    , ceTemplateName
-    , ceTier
-    , ceVersionLabel
+    , ceApplicationName
+    , ceEnvironmentName
 
-    -- * Response
-    , CreateEnvironmentResponse
-    -- ** Response constructor
-    , createEnvironmentResponse
-    -- ** Response lenses
-    , cerAbortableOperationInProgress
-    , cerApplicationName
-    , cerCNAME
-    , cerDateCreated
-    , cerDateUpdated
-    , cerDescription
-    , cerEndpointURL
-    , cerEnvironmentId
-    , cerEnvironmentName
-    , cerHealth
-    , cerResources
-    , cerSolutionStackName
-    , cerStatus
-    , cerTemplateName
-    , cerTier
-    , cerVersionLabel
+    -- * Destructuring the Response
+    , environmentDescription
+    , EnvironmentDescription
+    -- * Response Lenses
+    , eCNAME
+    , eStatus
+    , eTemplateName
+    , eAbortableOperationInProgress
+    , eEndpointURL
+    , eDateUpdated
+    , eResources
+    , eHealth
+    , eVersionLabel
+    , eDateCreated
+    , eTier
+    , eEnvironmentName
+    , eApplicationName
+    , eHealthStatus
+    , eEnvironmentId
+    , eSolutionStackName
+    , eDescription
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data CreateEnvironment = CreateEnvironment
-    { _ceApplicationName   :: Text
-    , _ceCNAMEPrefix       :: Maybe Text
-    , _ceDescription       :: Maybe Text
-    , _ceEnvironmentName   :: Text
-    , _ceOptionSettings    :: List "member" ConfigurationOptionSetting
-    , _ceOptionsToRemove   :: List "member" OptionSpecification
-    , _ceSolutionStackName :: Maybe Text
-    , _ceTags              :: List "member" Tag
-    , _ceTemplateName      :: Maybe Text
-    , _ceTier              :: Maybe EnvironmentTier
-    , _ceVersionLabel      :: Maybe Text
-    } deriving (Eq, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'CreateEnvironment' constructor.
+-- |
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'createEnvironment' smart constructor.
+data CreateEnvironment = CreateEnvironment'
+    { _ceCNAMEPrefix       :: !(Maybe Text)
+    , _ceTemplateName      :: !(Maybe Text)
+    , _ceOptionsToRemove   :: !(Maybe [OptionSpecification])
+    , _ceOptionSettings    :: !(Maybe [ConfigurationOptionSetting])
+    , _ceVersionLabel      :: !(Maybe Text)
+    , _ceTier              :: !(Maybe EnvironmentTier)
+    , _ceSolutionStackName :: !(Maybe Text)
+    , _ceDescription       :: !(Maybe Text)
+    , _ceTags              :: !(Maybe [Tag])
+    , _ceApplicationName   :: !Text
+    , _ceEnvironmentName   :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreateEnvironment' with the minimum fields required to make a request.
 --
--- * 'ceApplicationName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ceCNAMEPrefix' @::@ 'Maybe' 'Text'
+-- * 'ceCNAMEPrefix'
 --
--- * 'ceDescription' @::@ 'Maybe' 'Text'
+-- * 'ceTemplateName'
 --
--- * 'ceEnvironmentName' @::@ 'Text'
+-- * 'ceOptionsToRemove'
 --
--- * 'ceOptionSettings' @::@ ['ConfigurationOptionSetting']
+-- * 'ceOptionSettings'
 --
--- * 'ceOptionsToRemove' @::@ ['OptionSpecification']
+-- * 'ceVersionLabel'
 --
--- * 'ceSolutionStackName' @::@ 'Maybe' 'Text'
+-- * 'ceTier'
 --
--- * 'ceTags' @::@ ['Tag']
+-- * 'ceSolutionStackName'
 --
--- * 'ceTemplateName' @::@ 'Maybe' 'Text'
+-- * 'ceDescription'
 --
--- * 'ceTier' @::@ 'Maybe' 'EnvironmentTier'
+-- * 'ceTags'
 --
--- * 'ceVersionLabel' @::@ 'Maybe' 'Text'
+-- * 'ceApplicationName'
 --
-createEnvironment :: Text -- ^ 'ceApplicationName'
-                  -> Text -- ^ 'ceEnvironmentName'
-                  -> CreateEnvironment
-createEnvironment p1 p2 = CreateEnvironment
-    { _ceApplicationName   = p1
-    , _ceEnvironmentName   = p2
-    , _ceDescription       = Nothing
-    , _ceCNAMEPrefix       = Nothing
-    , _ceTier              = Nothing
-    , _ceTags              = mempty
-    , _ceVersionLabel      = Nothing
-    , _ceTemplateName      = Nothing
+-- * 'ceEnvironmentName'
+createEnvironment
+    :: Text -- ^ 'ceApplicationName'
+    -> Text -- ^ 'ceEnvironmentName'
+    -> CreateEnvironment
+createEnvironment pApplicationName_ pEnvironmentName_ =
+    CreateEnvironment'
+    { _ceCNAMEPrefix = Nothing
+    , _ceTemplateName = Nothing
+    , _ceOptionsToRemove = Nothing
+    , _ceOptionSettings = Nothing
+    , _ceVersionLabel = Nothing
+    , _ceTier = Nothing
     , _ceSolutionStackName = Nothing
-    , _ceOptionSettings    = mempty
-    , _ceOptionsToRemove   = mempty
+    , _ceDescription = Nothing
+    , _ceTags = Nothing
+    , _ceApplicationName = pApplicationName_
+    , _ceEnvironmentName = pEnvironmentName_
     }
 
--- | The name of the application that contains the version to be deployed.
---
--- If no application is found with this name, 'CreateEnvironment' returns an 'InvalidParameterValue' error.
-ceApplicationName :: Lens' CreateEnvironment Text
-ceApplicationName =
-    lens _ceApplicationName (\s a -> s { _ceApplicationName = a })
-
--- | If specified, the environment attempts to use this value as the prefix for
--- the CNAME. If not specified, the CNAME is generated automatically by
+-- | If specified, the environment attempts to use this value as the prefix
+-- for the CNAME. If not specified, the CNAME is generated automatically by
 -- appending a random alphanumeric string to the environment name.
 ceCNAMEPrefix :: Lens' CreateEnvironment (Maybe Text)
-ceCNAMEPrefix = lens _ceCNAMEPrefix (\s a -> s { _ceCNAMEPrefix = a })
-
--- | Describes this environment.
-ceDescription :: Lens' CreateEnvironment (Maybe Text)
-ceDescription = lens _ceDescription (\s a -> s { _ceDescription = a })
+ceCNAMEPrefix = lens _ceCNAMEPrefix (\ s a -> s{_ceCNAMEPrefix = a});
 
--- | A unique name for the deployment environment. Used in the application URL.
---
--- Constraint: Must be from 4 to 23 characters in length. The name can contain
--- only letters, numbers, and hyphens. It cannot start or end with a hyphen.
--- This name must be unique in your account. If the specified name already
--- exists, AWS Elastic Beanstalk returns an 'InvalidParameterValue' error.
+-- | The name of the configuration template to use in deployment. If no
+-- configuration template is found with this name, AWS Elastic Beanstalk
+-- returns an 'InvalidParameterValue' error.
 --
--- Default: If the CNAME parameter is not specified, the environment name
--- becomes part of the CNAME, and therefore part of the visible URL for your
--- application.
-ceEnvironmentName :: Lens' CreateEnvironment Text
-ceEnvironmentName =
-    lens _ceEnvironmentName (\s a -> s { _ceEnvironmentName = a })
-
--- | If specified, AWS Elastic Beanstalk sets the specified configuration options
--- to the requested value in the configuration set for the new environment.
--- These override the values obtained from the solution stack or the
--- configuration template.
-ceOptionSettings :: Lens' CreateEnvironment [ConfigurationOptionSetting]
-ceOptionSettings = lens _ceOptionSettings (\s a -> s { _ceOptionSettings = a }) . _List
+-- Condition: You must specify either this parameter or a
+-- 'SolutionStackName', but not both. If you specify both, AWS Elastic
+-- Beanstalk returns an 'InvalidParameterCombination' error. If you do not
+-- specify either, AWS Elastic Beanstalk returns a
+-- 'MissingRequiredParameter' error.
+ceTemplateName :: Lens' CreateEnvironment (Maybe Text)
+ceTemplateName = lens _ceTemplateName (\ s a -> s{_ceTemplateName = a});
 
 -- | A list of custom user-defined configuration options to remove from the
 -- configuration set for this new environment.
 ceOptionsToRemove :: Lens' CreateEnvironment [OptionSpecification]
-ceOptionsToRemove =
-    lens _ceOptionsToRemove (\s a -> s { _ceOptionsToRemove = a })
-        . _List
-
--- | This is an alternative to specifying a configuration name. If specified, AWS
--- Elastic Beanstalk sets the configuration values to the default values
--- associated with the specified solution stack.
---
--- Condition: You must specify either this or a 'TemplateName', but not both. If
--- you specify both, AWS Elastic Beanstalk returns an 'InvalidParameterCombination'
--- error. If you do not specify either, AWS Elastic Beanstalk returns a 'MissingRequiredParameter' error.
-ceSolutionStackName :: Lens' CreateEnvironment (Maybe Text)
-ceSolutionStackName =
-    lens _ceSolutionStackName (\s a -> s { _ceSolutionStackName = a })
-
--- | This specifies the tags applied to resources in the environment.
-ceTags :: Lens' CreateEnvironment [Tag]
-ceTags = lens _ceTags (\s a -> s { _ceTags = a }) . _List
-
--- | The name of the configuration template to use in deployment. If no
--- configuration template is found with this name, AWS Elastic Beanstalk returns
--- an 'InvalidParameterValue' error.
---
--- Condition: You must specify either this parameter or a 'SolutionStackName',
--- but not both. If you specify both, AWS Elastic Beanstalk returns an 'InvalidParameterCombination' error. If you do not specify either, AWS Elastic Beanstalk returns a 'MissingRequiredParameter' error.
-ceTemplateName :: Lens' CreateEnvironment (Maybe Text)
-ceTemplateName = lens _ceTemplateName (\s a -> s { _ceTemplateName = a })
+ceOptionsToRemove = lens _ceOptionsToRemove (\ s a -> s{_ceOptionsToRemove = a}) . _Default . _Coerce;
 
--- | This specifies the tier to use for creating this environment.
-ceTier :: Lens' CreateEnvironment (Maybe EnvironmentTier)
-ceTier = lens _ceTier (\s a -> s { _ceTier = a })
+-- | If specified, AWS Elastic Beanstalk sets the specified configuration
+-- options to the requested value in the configuration set for the new
+-- environment. These override the values obtained from the solution stack
+-- or the configuration template.
+ceOptionSettings :: Lens' CreateEnvironment [ConfigurationOptionSetting]
+ceOptionSettings = lens _ceOptionSettings (\ s a -> s{_ceOptionSettings = a}) . _Default . _Coerce;
 
 -- | The name of the application version to deploy.
 --
 -- If the specified application has no associated application versions, AWS
--- Elastic Beanstalk 'UpdateEnvironment' returns an 'InvalidParameterValue' error.
+-- Elastic Beanstalk 'UpdateEnvironment' returns an 'InvalidParameterValue'
+-- error.
 --
 -- Default: If not specified, AWS Elastic Beanstalk attempts to launch the
 -- sample application in the container.
 ceVersionLabel :: Lens' CreateEnvironment (Maybe Text)
-ceVersionLabel = lens _ceVersionLabel (\s a -> s { _ceVersionLabel = a })
-
-data CreateEnvironmentResponse = CreateEnvironmentResponse
-    { _cerAbortableOperationInProgress :: Maybe Bool
-    , _cerApplicationName              :: Maybe Text
-    , _cerCNAME                        :: Maybe Text
-    , _cerDateCreated                  :: Maybe ISO8601
-    , _cerDateUpdated                  :: Maybe ISO8601
-    , _cerDescription                  :: Maybe Text
-    , _cerEndpointURL                  :: Maybe Text
-    , _cerEnvironmentId                :: Maybe Text
-    , _cerEnvironmentName              :: Maybe Text
-    , _cerHealth                       :: Maybe EnvironmentHealth
-    , _cerResources                    :: Maybe EnvironmentResourcesDescription
-    , _cerSolutionStackName            :: Maybe Text
-    , _cerStatus                       :: Maybe EnvironmentStatus
-    , _cerTemplateName                 :: Maybe Text
-    , _cerTier                         :: Maybe EnvironmentTier
-    , _cerVersionLabel                 :: Maybe Text
-    } deriving (Eq, Read, Show)
+ceVersionLabel = lens _ceVersionLabel (\ s a -> s{_ceVersionLabel = a});
 
--- | 'CreateEnvironmentResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'cerAbortableOperationInProgress' @::@ 'Maybe' 'Bool'
---
--- * 'cerApplicationName' @::@ 'Maybe' 'Text'
---
--- * 'cerCNAME' @::@ 'Maybe' 'Text'
---
--- * 'cerDateCreated' @::@ 'Maybe' 'UTCTime'
---
--- * 'cerDateUpdated' @::@ 'Maybe' 'UTCTime'
---
--- * 'cerDescription' @::@ 'Maybe' 'Text'
---
--- * 'cerEndpointURL' @::@ 'Maybe' 'Text'
---
--- * 'cerEnvironmentId' @::@ 'Maybe' 'Text'
---
--- * 'cerEnvironmentName' @::@ 'Maybe' 'Text'
---
--- * 'cerHealth' @::@ 'Maybe' 'EnvironmentHealth'
---
--- * 'cerResources' @::@ 'Maybe' 'EnvironmentResourcesDescription'
---
--- * 'cerSolutionStackName' @::@ 'Maybe' 'Text'
---
--- * 'cerStatus' @::@ 'Maybe' 'EnvironmentStatus'
---
--- * 'cerTemplateName' @::@ 'Maybe' 'Text'
---
--- * 'cerTier' @::@ 'Maybe' 'EnvironmentTier'
---
--- * 'cerVersionLabel' @::@ 'Maybe' 'Text'
---
-createEnvironmentResponse :: CreateEnvironmentResponse
-createEnvironmentResponse = CreateEnvironmentResponse
-    { _cerEnvironmentName              = Nothing
-    , _cerEnvironmentId                = Nothing
-    , _cerApplicationName              = Nothing
-    , _cerVersionLabel                 = Nothing
-    , _cerSolutionStackName            = Nothing
-    , _cerTemplateName                 = Nothing
-    , _cerDescription                  = Nothing
-    , _cerEndpointURL                  = Nothing
-    , _cerCNAME                        = Nothing
-    , _cerDateCreated                  = Nothing
-    , _cerDateUpdated                  = Nothing
-    , _cerStatus                       = Nothing
-    , _cerAbortableOperationInProgress = Nothing
-    , _cerHealth                       = Nothing
-    , _cerResources                    = Nothing
-    , _cerTier                         = Nothing
-    }
+-- | This specifies the tier to use for creating this environment.
+ceTier :: Lens' CreateEnvironment (Maybe EnvironmentTier)
+ceTier = lens _ceTier (\ s a -> s{_ceTier = a});
 
--- | Indicates if there is an in-progress environment configuration update or
--- application version deployment that you can cancel.
---
--- 'true:' There is an update in progress.
+-- | This is an alternative to specifying a configuration name. If specified,
+-- AWS Elastic Beanstalk sets the configuration values to the default
+-- values associated with the specified solution stack.
 --
--- 'false:' There are no updates currently in progress.
-cerAbortableOperationInProgress :: Lens' CreateEnvironmentResponse (Maybe Bool)
-cerAbortableOperationInProgress =
-    lens _cerAbortableOperationInProgress
-        (\s a -> s { _cerAbortableOperationInProgress = a })
-
--- | The name of the application associated with this environment.
-cerApplicationName :: Lens' CreateEnvironmentResponse (Maybe Text)
-cerApplicationName =
-    lens _cerApplicationName (\s a -> s { _cerApplicationName = a })
-
--- | The URL to the CNAME for this environment.
-cerCNAME :: Lens' CreateEnvironmentResponse (Maybe Text)
-cerCNAME = lens _cerCNAME (\s a -> s { _cerCNAME = a })
-
--- | The creation date for this environment.
-cerDateCreated :: Lens' CreateEnvironmentResponse (Maybe UTCTime)
-cerDateCreated = lens _cerDateCreated (\s a -> s { _cerDateCreated = a }) . mapping _Time
-
--- | The last modified date for this environment.
-cerDateUpdated :: Lens' CreateEnvironmentResponse (Maybe UTCTime)
-cerDateUpdated = lens _cerDateUpdated (\s a -> s { _cerDateUpdated = a }) . mapping _Time
+-- Condition: You must specify either this or a 'TemplateName', but not
+-- both. If you specify both, AWS Elastic Beanstalk returns an
+-- 'InvalidParameterCombination' error. If you do not specify either, AWS
+-- Elastic Beanstalk returns a 'MissingRequiredParameter' error.
+ceSolutionStackName :: Lens' CreateEnvironment (Maybe Text)
+ceSolutionStackName = lens _ceSolutionStackName (\ s a -> s{_ceSolutionStackName = a});
 
 -- | Describes this environment.
-cerDescription :: Lens' CreateEnvironmentResponse (Maybe Text)
-cerDescription = lens _cerDescription (\s a -> s { _cerDescription = a })
-
--- | For load-balanced, autoscaling environments, the URL to the LoadBalancer. For
--- single-instance environments, the IP address of the instance.
-cerEndpointURL :: Lens' CreateEnvironmentResponse (Maybe Text)
-cerEndpointURL = lens _cerEndpointURL (\s a -> s { _cerEndpointURL = a })
-
--- | The ID of this environment.
-cerEnvironmentId :: Lens' CreateEnvironmentResponse (Maybe Text)
-cerEnvironmentId = lens _cerEnvironmentId (\s a -> s { _cerEnvironmentId = a })
+ceDescription :: Lens' CreateEnvironment (Maybe Text)
+ceDescription = lens _ceDescription (\ s a -> s{_ceDescription = a});
 
--- | The name of this environment.
-cerEnvironmentName :: Lens' CreateEnvironmentResponse (Maybe Text)
-cerEnvironmentName =
-    lens _cerEnvironmentName (\s a -> s { _cerEnvironmentName = a })
+-- | This specifies the tags applied to resources in the environment.
+ceTags :: Lens' CreateEnvironment [Tag]
+ceTags = lens _ceTags (\ s a -> s{_ceTags = a}) . _Default . _Coerce;
 
--- | Describes the health status of the environment. AWS Elastic Beanstalk
--- indicates the failure levels for a running environment:
---
--- 'Red' : Indicates the environment is not working.
---
--- 'Yellow': Indicates that something is wrong, the application might not be
--- available, but the instances appear running.
---
--- 'Green': Indicates the environment is healthy and fully functional.
+-- | The name of the application that contains the version to be deployed.
 --
--- 'Red': Indicates the environment is not responsive. Occurs when three or
--- more consecutive failures occur for an environment.   'Yellow': Indicates that
--- something is wrong. Occurs when two consecutive failures occur for an
--- environment.   'Green': Indicates the environment is healthy and fully
--- functional.   'Grey': Default health for a new environment. The environment is
--- not fully launched and health checks have not started or health checks are
--- suspended during an 'UpdateEnvironment' or 'RestartEnvironement' request.
--- Default: 'Grey'
-cerHealth :: Lens' CreateEnvironmentResponse (Maybe EnvironmentHealth)
-cerHealth = lens _cerHealth (\s a -> s { _cerHealth = a })
-
--- | The description of the AWS resources used by this environment.
-cerResources :: Lens' CreateEnvironmentResponse (Maybe EnvironmentResourcesDescription)
-cerResources = lens _cerResources (\s a -> s { _cerResources = a })
-
--- | The name of the 'SolutionStack' deployed with this environment.
-cerSolutionStackName :: Lens' CreateEnvironmentResponse (Maybe Text)
-cerSolutionStackName =
-    lens _cerSolutionStackName (\s a -> s { _cerSolutionStackName = a })
+-- If no application is found with this name, 'CreateEnvironment' returns
+-- an 'InvalidParameterValue' error.
+ceApplicationName :: Lens' CreateEnvironment Text
+ceApplicationName = lens _ceApplicationName (\ s a -> s{_ceApplicationName = a});
 
--- | The current operational status of the environment:
+-- | A unique name for the deployment environment. Used in the application
+-- URL.
 --
--- 'Launching': Environment is in the process of initial deployment.   'Updating': Environment is in the process of updating its configuration settings or application version.
--- 'Ready': Environment is available to have an action performed on it, such as
--- update or terminate.   'Terminating': Environment is in the shut-down process.
--- 'Terminated': Environment is not running.
-cerStatus :: Lens' CreateEnvironmentResponse (Maybe EnvironmentStatus)
-cerStatus = lens _cerStatus (\s a -> s { _cerStatus = a })
-
--- | The name of the configuration template used to originally launch this
--- environment.
-cerTemplateName :: Lens' CreateEnvironmentResponse (Maybe Text)
-cerTemplateName = lens _cerTemplateName (\s a -> s { _cerTemplateName = a })
+-- Constraint: Must be from 4 to 23 characters in length. The name can
+-- contain only letters, numbers, and hyphens. It cannot start or end with
+-- a hyphen. This name must be unique in your account. If the specified
+-- name already exists, AWS Elastic Beanstalk returns an
+-- 'InvalidParameterValue' error.
+--
+-- Default: If the CNAME parameter is not specified, the environment name
+-- becomes part of the CNAME, and therefore part of the visible URL for
+-- your application.
+ceEnvironmentName :: Lens' CreateEnvironment Text
+ceEnvironmentName = lens _ceEnvironmentName (\ s a -> s{_ceEnvironmentName = a});
 
--- | Describes the current tier of this environment.
-cerTier :: Lens' CreateEnvironmentResponse (Maybe EnvironmentTier)
-cerTier = lens _cerTier (\s a -> s { _cerTier = a })
+instance AWSRequest CreateEnvironment where
+        type Sv CreateEnvironment = ElasticBeanstalk
+        type Rs CreateEnvironment = EnvironmentDescription
+        request = postQuery
+        response
+          = receiveXMLWrapper "CreateEnvironmentResult"
+              (\ s h x -> parseXML x)
 
--- | The application version deployed in this environment.
-cerVersionLabel :: Lens' CreateEnvironmentResponse (Maybe Text)
-cerVersionLabel = lens _cerVersionLabel (\s a -> s { _cerVersionLabel = a })
+instance ToHeaders CreateEnvironment where
+        toHeaders = const mempty
 
 instance ToPath CreateEnvironment where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery CreateEnvironment where
-    toQuery CreateEnvironment{..} = mconcat
-        [ "ApplicationName"   =? _ceApplicationName
-        , "CNAMEPrefix"       =? _ceCNAMEPrefix
-        , "Description"       =? _ceDescription
-        , "EnvironmentName"   =? _ceEnvironmentName
-        , "OptionSettings"    =? _ceOptionSettings
-        , "OptionsToRemove"   =? _ceOptionsToRemove
-        , "SolutionStackName" =? _ceSolutionStackName
-        , "Tags"              =? _ceTags
-        , "TemplateName"      =? _ceTemplateName
-        , "Tier"              =? _ceTier
-        , "VersionLabel"      =? _ceVersionLabel
-        ]
-
-instance ToHeaders CreateEnvironment
-
-instance AWSRequest CreateEnvironment where
-    type Sv CreateEnvironment = ElasticBeanstalk
-    type Rs CreateEnvironment = CreateEnvironmentResponse
-
-    request  = post "CreateEnvironment"
-    response = xmlResponse
-
-instance FromXML CreateEnvironmentResponse where
-    parseXML = withElement "CreateEnvironmentResult" $ \x -> CreateEnvironmentResponse
-        <$> x .@? "AbortableOperationInProgress"
-        <*> x .@? "ApplicationName"
-        <*> x .@? "CNAME"
-        <*> x .@? "DateCreated"
-        <*> x .@? "DateUpdated"
-        <*> x .@? "Description"
-        <*> x .@? "EndpointURL"
-        <*> x .@? "EnvironmentId"
-        <*> x .@? "EnvironmentName"
-        <*> x .@? "Health"
-        <*> x .@? "Resources"
-        <*> x .@? "SolutionStackName"
-        <*> x .@? "Status"
-        <*> x .@? "TemplateName"
-        <*> x .@? "Tier"
-        <*> x .@? "VersionLabel"
+        toQuery CreateEnvironment'{..}
+          = mconcat
+              ["Action" =: ("CreateEnvironment" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "CNAMEPrefix" =: _ceCNAMEPrefix,
+               "TemplateName" =: _ceTemplateName,
+               "OptionsToRemove" =:
+                 toQuery
+                   (toQueryList "member" <$> _ceOptionsToRemove),
+               "OptionSettings" =:
+                 toQuery (toQueryList "member" <$> _ceOptionSettings),
+               "VersionLabel" =: _ceVersionLabel, "Tier" =: _ceTier,
+               "SolutionStackName" =: _ceSolutionStackName,
+               "Description" =: _ceDescription,
+               "Tags" =: toQuery (toQueryList "member" <$> _ceTags),
+               "ApplicationName" =: _ceApplicationName,
+               "EnvironmentName" =: _ceEnvironmentName]
diff --git a/gen/Network/AWS/ElasticBeanstalk/CreateStorageLocation.hs b/gen/Network/AWS/ElasticBeanstalk/CreateStorageLocation.hs
--- a/gen/Network/AWS/ElasticBeanstalk/CreateStorageLocation.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/CreateStorageLocation.hs
@@ -1,93 +1,111 @@
-{-# 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.ElasticBeanstalk.CreateStorageLocation
--- 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 the Amazon S3 storage location for the account.
+-- Creates the Amazon S3 storage location for the account.
 --
 -- This location is used to store user log files.
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_CreateStorageLocation.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_CreateStorageLocation.html AWS API Reference> for CreateStorageLocation.
 module Network.AWS.ElasticBeanstalk.CreateStorageLocation
     (
-    -- * Request
-      CreateStorageLocation
-    -- ** Request constructor
-    , createStorageLocation
+    -- * Creating a Request
+      createStorageLocation
+    , CreateStorageLocation
 
-    -- * Response
-    , CreateStorageLocationResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , createStorageLocationResponse
-    -- ** Response lenses
-    , cslrS3Bucket
+    , CreateStorageLocationResponse
+    -- * Response Lenses
+    , cslrsS3Bucket
+    , cslrsStatus
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data CreateStorageLocation = CreateStorageLocation
-    deriving (Eq, Ord, Read, Show, Generic)
-
--- | 'CreateStorageLocation' constructor.
-createStorageLocation :: CreateStorageLocation
-createStorageLocation = CreateStorageLocation
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-newtype CreateStorageLocationResponse = CreateStorageLocationResponse
-    { _cslrS3Bucket :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
+-- | /See:/ 'createStorageLocation' smart constructor.
+data CreateStorageLocation =
+    CreateStorageLocation'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'CreateStorageLocationResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'cslrS3Bucket' @::@ 'Maybe' 'Text'
+-- | Creates a value of 'CreateStorageLocation' with the minimum fields required to make a request.
 --
-createStorageLocationResponse :: CreateStorageLocationResponse
-createStorageLocationResponse = CreateStorageLocationResponse
-    { _cslrS3Bucket = Nothing
-    }
+createStorageLocation
+    :: CreateStorageLocation
+createStorageLocation = CreateStorageLocation'
 
--- | The name of the Amazon S3 bucket created.
-cslrS3Bucket :: Lens' CreateStorageLocationResponse (Maybe Text)
-cslrS3Bucket = lens _cslrS3Bucket (\s a -> s { _cslrS3Bucket = a })
+instance AWSRequest CreateStorageLocation where
+        type Sv CreateStorageLocation = ElasticBeanstalk
+        type Rs CreateStorageLocation =
+             CreateStorageLocationResponse
+        request = postQuery
+        response
+          = receiveXMLWrapper "CreateStorageLocationResult"
+              (\ s h x ->
+                 CreateStorageLocationResponse' <$>
+                   (x .@? "S3Bucket") <*> (pure (fromEnum s)))
 
+instance ToHeaders CreateStorageLocation where
+        toHeaders = const mempty
+
 instance ToPath CreateStorageLocation where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery CreateStorageLocation where
-    toQuery = const mempty
+        toQuery
+          = const
+              (mconcat
+                 ["Action" =: ("CreateStorageLocation" :: ByteString),
+                  "Version" =: ("2010-12-01" :: ByteString)])
 
-instance ToHeaders CreateStorageLocation
+-- | Results of a CreateStorageLocationResult call.
+--
+-- /See:/ 'createStorageLocationResponse' smart constructor.
+data CreateStorageLocationResponse = CreateStorageLocationResponse'
+    { _cslrsS3Bucket :: !(Maybe Text)
+    , _cslrsStatus   :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest CreateStorageLocation where
-    type Sv CreateStorageLocation = ElasticBeanstalk
-    type Rs CreateStorageLocation = CreateStorageLocationResponse
+-- | Creates a value of 'CreateStorageLocationResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cslrsS3Bucket'
+--
+-- * 'cslrsStatus'
+createStorageLocationResponse
+    :: Int -- ^ 'cslrsStatus'
+    -> CreateStorageLocationResponse
+createStorageLocationResponse pStatus_ =
+    CreateStorageLocationResponse'
+    { _cslrsS3Bucket = Nothing
+    , _cslrsStatus = pStatus_
+    }
 
-    request  = post "CreateStorageLocation"
-    response = xmlResponse
+-- | The name of the Amazon S3 bucket created.
+cslrsS3Bucket :: Lens' CreateStorageLocationResponse (Maybe Text)
+cslrsS3Bucket = lens _cslrsS3Bucket (\ s a -> s{_cslrsS3Bucket = a});
 
-instance FromXML CreateStorageLocationResponse where
-    parseXML = withElement "CreateStorageLocationResult" $ \x -> CreateStorageLocationResponse
-        <$> x .@? "S3Bucket"
+-- | The response status code.
+cslrsStatus :: Lens' CreateStorageLocationResponse Int
+cslrsStatus = lens _cslrsStatus (\ s a -> s{_cslrsStatus = a});
diff --git a/gen/Network/AWS/ElasticBeanstalk/DeleteApplication.hs b/gen/Network/AWS/ElasticBeanstalk/DeleteApplication.hs
--- a/gen/Network/AWS/ElasticBeanstalk/DeleteApplication.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/DeleteApplication.hs
@@ -1,107 +1,110 @@
-{-# 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.ElasticBeanstalk.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 the specified application along with all associated versions and
--- configurations. The application versions will not be deleted from your Amazon
--- S3 bucket.
+-- Deletes the specified application along with all associated versions and
+-- configurations. The application versions will not be deleted from your
+-- Amazon S3 bucket.
 --
 -- You cannot delete an application that has a running environment.
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DeleteApplication.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DeleteApplication.html AWS API Reference> for DeleteApplication.
 module Network.AWS.ElasticBeanstalk.DeleteApplication
     (
-    -- * Request
-      DeleteApplication
-    -- ** Request constructor
-    , deleteApplication
-    -- ** Request lenses
-    , daApplicationName
+    -- * Creating a Request
+      deleteApplication
+    , DeleteApplication
+    -- * Request Lenses
     , daTerminateEnvByForce
+    , daApplicationName
 
-    -- * Response
-    , DeleteApplicationResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , deleteApplicationResponse
+    , DeleteApplicationResponse
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data DeleteApplication = DeleteApplication
-    { _daApplicationName     :: Text
-    , _daTerminateEnvByForce :: Maybe Bool
-    } deriving (Eq, Ord, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'DeleteApplication' constructor.
+-- | This documentation target is not reported in the API reference.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'deleteApplication' smart constructor.
+data DeleteApplication = DeleteApplication'
+    { _daTerminateEnvByForce :: !(Maybe Bool)
+    , _daApplicationName     :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | 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:
 --
--- * 'daTerminateEnvByForce' @::@ 'Maybe' 'Bool'
+-- * 'daTerminateEnvByForce'
 --
-deleteApplication :: Text -- ^ 'daApplicationName'
-                  -> DeleteApplication
-deleteApplication p1 = DeleteApplication
-    { _daApplicationName     = p1
-    , _daTerminateEnvByForce = Nothing
+-- * 'daApplicationName'
+deleteApplication
+    :: Text -- ^ 'daApplicationName'
+    -> DeleteApplication
+deleteApplication pApplicationName_ =
+    DeleteApplication'
+    { _daTerminateEnvByForce = Nothing
+    , _daApplicationName = pApplicationName_
     }
 
+-- | When set to true, running environments will be terminated before
+-- deleting the application.
+daTerminateEnvByForce :: Lens' DeleteApplication (Maybe Bool)
+daTerminateEnvByForce = lens _daTerminateEnvByForce (\ s a -> s{_daTerminateEnvByForce = a});
+
 -- | The name of the application to delete.
 daApplicationName :: Lens' DeleteApplication Text
-daApplicationName =
-    lens _daApplicationName (\s a -> s { _daApplicationName = a })
-
--- | When set to true, running environments will be terminated before deleting the
--- application.
-daTerminateEnvByForce :: Lens' DeleteApplication (Maybe Bool)
-daTerminateEnvByForce =
-    lens _daTerminateEnvByForce (\s a -> s { _daTerminateEnvByForce = 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 = ElasticBeanstalk
+        type Rs DeleteApplication = DeleteApplicationResponse
+        request = postQuery
+        response = receiveNull DeleteApplicationResponse'
 
--- | 'DeleteApplicationResponse' constructor.
-deleteApplicationResponse :: DeleteApplicationResponse
-deleteApplicationResponse = DeleteApplicationResponse
+instance ToHeaders DeleteApplication where
+        toHeaders = const mempty
 
 instance ToPath DeleteApplication where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery DeleteApplication where
-    toQuery DeleteApplication{..} = mconcat
-        [ "ApplicationName"     =? _daApplicationName
-        , "TerminateEnvByForce" =? _daTerminateEnvByForce
-        ]
-
-instance ToHeaders DeleteApplication
+        toQuery DeleteApplication'{..}
+          = mconcat
+              ["Action" =: ("DeleteApplication" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "TerminateEnvByForce" =: _daTerminateEnvByForce,
+               "ApplicationName" =: _daApplicationName]
 
-instance AWSRequest DeleteApplication where
-    type Sv DeleteApplication = ElasticBeanstalk
-    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/ElasticBeanstalk/DeleteApplicationVersion.hs b/gen/Network/AWS/ElasticBeanstalk/DeleteApplicationVersion.hs
--- a/gen/Network/AWS/ElasticBeanstalk/DeleteApplicationVersion.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/DeleteApplicationVersion.hs
@@ -1,120 +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.ElasticBeanstalk.DeleteApplicationVersion
--- 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 the specified version from the specified application.
+-- Deletes the specified version from the specified application.
 --
--- You cannot delete an application version that is associated with a running
--- environment.
+-- You cannot delete an application version that is associated with a
+-- running environment.
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DeleteApplicationVersion.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DeleteApplicationVersion.html AWS API Reference> for DeleteApplicationVersion.
 module Network.AWS.ElasticBeanstalk.DeleteApplicationVersion
     (
-    -- * Request
-      DeleteApplicationVersion
-    -- ** Request constructor
-    , deleteApplicationVersion
-    -- ** Request lenses
-    , davApplicationName
+    -- * Creating a Request
+      deleteApplicationVersion
+    , DeleteApplicationVersion
+    -- * Request Lenses
     , davDeleteSourceBundle
+    , davApplicationName
     , davVersionLabel
 
-    -- * Response
-    , DeleteApplicationVersionResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , deleteApplicationVersionResponse
+    , DeleteApplicationVersionResponse
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data DeleteApplicationVersion = DeleteApplicationVersion
-    { _davApplicationName    :: Text
-    , _davDeleteSourceBundle :: Maybe Bool
-    , _davVersionLabel       :: Text
-    } deriving (Eq, Ord, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'DeleteApplicationVersion' constructor.
+-- | This documentation target is not reported in the API reference.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'deleteApplicationVersion' smart constructor.
+data DeleteApplicationVersion = DeleteApplicationVersion'
+    { _davDeleteSourceBundle :: !(Maybe Bool)
+    , _davApplicationName    :: !Text
+    , _davVersionLabel       :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeleteApplicationVersion' with the minimum fields required to make a request.
 --
--- * 'davApplicationName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'davDeleteSourceBundle' @::@ 'Maybe' 'Bool'
+-- * 'davDeleteSourceBundle'
 --
--- * 'davVersionLabel' @::@ 'Text'
+-- * 'davApplicationName'
 --
-deleteApplicationVersion :: Text -- ^ 'davApplicationName'
-                         -> Text -- ^ 'davVersionLabel'
-                         -> DeleteApplicationVersion
-deleteApplicationVersion p1 p2 = DeleteApplicationVersion
-    { _davApplicationName    = p1
-    , _davVersionLabel       = p2
-    , _davDeleteSourceBundle = Nothing
+-- * 'davVersionLabel'
+deleteApplicationVersion
+    :: Text -- ^ 'davApplicationName'
+    -> Text -- ^ 'davVersionLabel'
+    -> DeleteApplicationVersion
+deleteApplicationVersion pApplicationName_ pVersionLabel_ =
+    DeleteApplicationVersion'
+    { _davDeleteSourceBundle = Nothing
+    , _davApplicationName = pApplicationName_
+    , _davVersionLabel = pVersionLabel_
     }
 
--- | The name of the application to delete releases from.
-davApplicationName :: Lens' DeleteApplicationVersion Text
-davApplicationName =
-    lens _davApplicationName (\s a -> s { _davApplicationName = a })
-
 -- | Indicates whether to delete the associated source bundle from Amazon S3:
 --
--- 'true': An attempt is made to delete the associated Amazon S3 source bundle
--- specified at time of creation.   'false': No action is taken on the Amazon S3
--- source bundle specified at time of creation.    Valid Values: 'true' | 'false'
+-- -   'true': An attempt is made to delete the associated Amazon S3 source
+--     bundle specified at time of creation.
+-- -   'false': No action is taken on the Amazon S3 source bundle specified
+--     at time of creation.
+--
+-- Valid Values: 'true' | 'false'
 davDeleteSourceBundle :: Lens' DeleteApplicationVersion (Maybe Bool)
-davDeleteSourceBundle =
-    lens _davDeleteSourceBundle (\s a -> s { _davDeleteSourceBundle = a })
+davDeleteSourceBundle = lens _davDeleteSourceBundle (\ s a -> s{_davDeleteSourceBundle = a});
 
+-- | The name of the application to delete releases from.
+davApplicationName :: Lens' DeleteApplicationVersion Text
+davApplicationName = lens _davApplicationName (\ s a -> s{_davApplicationName = a});
+
 -- | The label of the version to delete.
 davVersionLabel :: Lens' DeleteApplicationVersion Text
-davVersionLabel = lens _davVersionLabel (\s a -> s { _davVersionLabel = a })
+davVersionLabel = lens _davVersionLabel (\ s a -> s{_davVersionLabel = a});
 
-data DeleteApplicationVersionResponse = DeleteApplicationVersionResponse
-    deriving (Eq, Ord, Read, Show, Generic)
+instance AWSRequest DeleteApplicationVersion where
+        type Sv DeleteApplicationVersion = ElasticBeanstalk
+        type Rs DeleteApplicationVersion =
+             DeleteApplicationVersionResponse
+        request = postQuery
+        response
+          = receiveNull DeleteApplicationVersionResponse'
 
--- | 'DeleteApplicationVersionResponse' constructor.
-deleteApplicationVersionResponse :: DeleteApplicationVersionResponse
-deleteApplicationVersionResponse = DeleteApplicationVersionResponse
+instance ToHeaders DeleteApplicationVersion where
+        toHeaders = const mempty
 
 instance ToPath DeleteApplicationVersion where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery DeleteApplicationVersion where
-    toQuery DeleteApplicationVersion{..} = mconcat
-        [ "ApplicationName"    =? _davApplicationName
-        , "DeleteSourceBundle" =? _davDeleteSourceBundle
-        , "VersionLabel"       =? _davVersionLabel
-        ]
-
-instance ToHeaders DeleteApplicationVersion
+        toQuery DeleteApplicationVersion'{..}
+          = mconcat
+              ["Action" =:
+                 ("DeleteApplicationVersion" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "DeleteSourceBundle" =: _davDeleteSourceBundle,
+               "ApplicationName" =: _davApplicationName,
+               "VersionLabel" =: _davVersionLabel]
 
-instance AWSRequest DeleteApplicationVersion where
-    type Sv DeleteApplicationVersion = ElasticBeanstalk
-    type Rs DeleteApplicationVersion = DeleteApplicationVersionResponse
+-- | /See:/ 'deleteApplicationVersionResponse' smart constructor.
+data DeleteApplicationVersionResponse =
+    DeleteApplicationVersionResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-    request  = post "DeleteApplicationVersion"
-    response = nullResponse DeleteApplicationVersionResponse
+-- | Creates a value of 'DeleteApplicationVersionResponse' with the minimum fields required to make a request.
+--
+deleteApplicationVersionResponse
+    :: DeleteApplicationVersionResponse
+deleteApplicationVersionResponse = DeleteApplicationVersionResponse'
diff --git a/gen/Network/AWS/ElasticBeanstalk/DeleteConfigurationTemplate.hs b/gen/Network/AWS/ElasticBeanstalk/DeleteConfigurationTemplate.hs
--- a/gen/Network/AWS/ElasticBeanstalk/DeleteConfigurationTemplate.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/DeleteConfigurationTemplate.hs
@@ -1,106 +1,115 @@
-{-# 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.ElasticBeanstalk.DeleteConfigurationTemplate
--- 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 the specified configuration template.
+-- Deletes the specified configuration template.
 --
 -- When you launch an environment using a configuration template, the
 -- environment gets a copy of the template. You can delete or modify the
--- environment's copy of the template without affecting the running environment.
+-- environment\'s copy of the template without affecting the running
+-- environment.
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DeleteConfigurationTemplate.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DeleteConfigurationTemplate.html AWS API Reference> for DeleteConfigurationTemplate.
 module Network.AWS.ElasticBeanstalk.DeleteConfigurationTemplate
     (
-    -- * Request
-      DeleteConfigurationTemplate
-    -- ** Request constructor
-    , deleteConfigurationTemplate
-    -- ** Request lenses
+    -- * Creating a Request
+      deleteConfigurationTemplate
+    , DeleteConfigurationTemplate
+    -- * Request Lenses
     , dctApplicationName
     , dctTemplateName
 
-    -- * Response
-    , DeleteConfigurationTemplateResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , deleteConfigurationTemplateResponse
+    , DeleteConfigurationTemplateResponse
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data DeleteConfigurationTemplate = DeleteConfigurationTemplate
-    { _dctApplicationName :: Text
-    , _dctTemplateName    :: Text
-    } deriving (Eq, Ord, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'DeleteConfigurationTemplate' constructor.
+-- | This documentation target is not reported in the API reference.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'deleteConfigurationTemplate' smart constructor.
+data DeleteConfigurationTemplate = DeleteConfigurationTemplate'
+    { _dctApplicationName :: !Text
+    , _dctTemplateName    :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeleteConfigurationTemplate' with the minimum fields required to make a request.
 --
--- * 'dctApplicationName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'dctTemplateName' @::@ 'Text'
+-- * 'dctApplicationName'
 --
-deleteConfigurationTemplate :: Text -- ^ 'dctApplicationName'
-                            -> Text -- ^ 'dctTemplateName'
-                            -> DeleteConfigurationTemplate
-deleteConfigurationTemplate p1 p2 = DeleteConfigurationTemplate
-    { _dctApplicationName = p1
-    , _dctTemplateName    = p2
+-- * 'dctTemplateName'
+deleteConfigurationTemplate
+    :: Text -- ^ 'dctApplicationName'
+    -> Text -- ^ 'dctTemplateName'
+    -> DeleteConfigurationTemplate
+deleteConfigurationTemplate pApplicationName_ pTemplateName_ =
+    DeleteConfigurationTemplate'
+    { _dctApplicationName = pApplicationName_
+    , _dctTemplateName = pTemplateName_
     }
 
 -- | The name of the application to delete the configuration template from.
 dctApplicationName :: Lens' DeleteConfigurationTemplate Text
-dctApplicationName =
-    lens _dctApplicationName (\s a -> s { _dctApplicationName = a })
+dctApplicationName = lens _dctApplicationName (\ s a -> s{_dctApplicationName = a});
 
 -- | The name of the configuration template to delete.
 dctTemplateName :: Lens' DeleteConfigurationTemplate Text
-dctTemplateName = lens _dctTemplateName (\s a -> s { _dctTemplateName = a })
+dctTemplateName = lens _dctTemplateName (\ s a -> s{_dctTemplateName = a});
 
-data DeleteConfigurationTemplateResponse = DeleteConfigurationTemplateResponse
-    deriving (Eq, Ord, Read, Show, Generic)
+instance AWSRequest DeleteConfigurationTemplate where
+        type Sv DeleteConfigurationTemplate =
+             ElasticBeanstalk
+        type Rs DeleteConfigurationTemplate =
+             DeleteConfigurationTemplateResponse
+        request = postQuery
+        response
+          = receiveNull DeleteConfigurationTemplateResponse'
 
--- | 'DeleteConfigurationTemplateResponse' constructor.
-deleteConfigurationTemplateResponse :: DeleteConfigurationTemplateResponse
-deleteConfigurationTemplateResponse = DeleteConfigurationTemplateResponse
+instance ToHeaders DeleteConfigurationTemplate where
+        toHeaders = const mempty
 
 instance ToPath DeleteConfigurationTemplate where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery DeleteConfigurationTemplate where
-    toQuery DeleteConfigurationTemplate{..} = mconcat
-        [ "ApplicationName" =? _dctApplicationName
-        , "TemplateName"    =? _dctTemplateName
-        ]
-
-instance ToHeaders DeleteConfigurationTemplate
+        toQuery DeleteConfigurationTemplate'{..}
+          = mconcat
+              ["Action" =:
+                 ("DeleteConfigurationTemplate" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "ApplicationName" =: _dctApplicationName,
+               "TemplateName" =: _dctTemplateName]
 
-instance AWSRequest DeleteConfigurationTemplate where
-    type Sv DeleteConfigurationTemplate = ElasticBeanstalk
-    type Rs DeleteConfigurationTemplate = DeleteConfigurationTemplateResponse
+-- | /See:/ 'deleteConfigurationTemplateResponse' smart constructor.
+data DeleteConfigurationTemplateResponse =
+    DeleteConfigurationTemplateResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-    request  = post "DeleteConfigurationTemplate"
-    response = nullResponse DeleteConfigurationTemplateResponse
+-- | Creates a value of 'DeleteConfigurationTemplateResponse' with the minimum fields required to make a request.
+--
+deleteConfigurationTemplateResponse
+    :: DeleteConfigurationTemplateResponse
+deleteConfigurationTemplateResponse = DeleteConfigurationTemplateResponse'
diff --git a/gen/Network/AWS/ElasticBeanstalk/DeleteEnvironmentConfiguration.hs b/gen/Network/AWS/ElasticBeanstalk/DeleteEnvironmentConfiguration.hs
--- a/gen/Network/AWS/ElasticBeanstalk/DeleteEnvironmentConfiguration.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/DeleteEnvironmentConfiguration.hs
@@ -1,109 +1,120 @@
-{-# 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.ElasticBeanstalk.DeleteEnvironmentConfiguration
--- 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 the draft configuration associated with the running environment.
+-- Deletes the draft configuration associated with the running environment.
 --
 -- Updating a running environment with any configuration changes creates a
--- draft configuration set. You can get the draft configuration using 'DescribeConfigurationSettings' while the update is in progress or if the update fails. The 'DeploymentStatus'
--- for the draft configuration indicates whether the deployment is in process or
--- has failed. The draft configuration remains in existence until it is deleted
--- with this action.
+-- draft configuration set. You can get the draft configuration using
+-- DescribeConfigurationSettings while the update is in progress or if the
+-- update fails. The 'DeploymentStatus' for the draft configuration
+-- indicates whether the deployment is in process or has failed. The draft
+-- configuration remains in existence until it is deleted with this action.
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DeleteEnvironmentConfiguration.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DeleteEnvironmentConfiguration.html AWS API Reference> for DeleteEnvironmentConfiguration.
 module Network.AWS.ElasticBeanstalk.DeleteEnvironmentConfiguration
     (
-    -- * Request
-      DeleteEnvironmentConfiguration
-    -- ** Request constructor
-    , deleteEnvironmentConfiguration
-    -- ** Request lenses
+    -- * Creating a Request
+      deleteEnvironmentConfiguration
+    , DeleteEnvironmentConfiguration
+    -- * Request Lenses
     , decApplicationName
     , decEnvironmentName
 
-    -- * Response
-    , DeleteEnvironmentConfigurationResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , deleteEnvironmentConfigurationResponse
+    , DeleteEnvironmentConfigurationResponse
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data DeleteEnvironmentConfiguration = DeleteEnvironmentConfiguration
-    { _decApplicationName :: Text
-    , _decEnvironmentName :: Text
-    } deriving (Eq, Ord, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'DeleteEnvironmentConfiguration' constructor.
+-- | This documentation target is not reported in the API reference.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'deleteEnvironmentConfiguration' smart constructor.
+data DeleteEnvironmentConfiguration = DeleteEnvironmentConfiguration'
+    { _decApplicationName :: !Text
+    , _decEnvironmentName :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeleteEnvironmentConfiguration' with the minimum fields required to make a request.
 --
--- * 'decApplicationName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'decEnvironmentName' @::@ 'Text'
+-- * 'decApplicationName'
 --
-deleteEnvironmentConfiguration :: Text -- ^ 'decApplicationName'
-                               -> Text -- ^ 'decEnvironmentName'
-                               -> DeleteEnvironmentConfiguration
-deleteEnvironmentConfiguration p1 p2 = DeleteEnvironmentConfiguration
-    { _decApplicationName = p1
-    , _decEnvironmentName = p2
+-- * 'decEnvironmentName'
+deleteEnvironmentConfiguration
+    :: Text -- ^ 'decApplicationName'
+    -> Text -- ^ 'decEnvironmentName'
+    -> DeleteEnvironmentConfiguration
+deleteEnvironmentConfiguration pApplicationName_ pEnvironmentName_ =
+    DeleteEnvironmentConfiguration'
+    { _decApplicationName = pApplicationName_
+    , _decEnvironmentName = pEnvironmentName_
     }
 
 -- | The name of the application the environment is associated with.
 decApplicationName :: Lens' DeleteEnvironmentConfiguration Text
-decApplicationName =
-    lens _decApplicationName (\s a -> s { _decApplicationName = a })
+decApplicationName = lens _decApplicationName (\ s a -> s{_decApplicationName = a});
 
 -- | The name of the environment to delete the draft configuration from.
 decEnvironmentName :: Lens' DeleteEnvironmentConfiguration Text
-decEnvironmentName =
-    lens _decEnvironmentName (\s a -> s { _decEnvironmentName = a })
+decEnvironmentName = lens _decEnvironmentName (\ s a -> s{_decEnvironmentName = a});
 
-data DeleteEnvironmentConfigurationResponse = DeleteEnvironmentConfigurationResponse
-    deriving (Eq, Ord, Read, Show, Generic)
+instance AWSRequest DeleteEnvironmentConfiguration
+         where
+        type Sv DeleteEnvironmentConfiguration =
+             ElasticBeanstalk
+        type Rs DeleteEnvironmentConfiguration =
+             DeleteEnvironmentConfigurationResponse
+        request = postQuery
+        response
+          = receiveNull DeleteEnvironmentConfigurationResponse'
 
--- | 'DeleteEnvironmentConfigurationResponse' constructor.
-deleteEnvironmentConfigurationResponse :: DeleteEnvironmentConfigurationResponse
-deleteEnvironmentConfigurationResponse = DeleteEnvironmentConfigurationResponse
+instance ToHeaders DeleteEnvironmentConfiguration
+         where
+        toHeaders = const mempty
 
 instance ToPath DeleteEnvironmentConfiguration where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery DeleteEnvironmentConfiguration where
-    toQuery DeleteEnvironmentConfiguration{..} = mconcat
-        [ "ApplicationName" =? _decApplicationName
-        , "EnvironmentName" =? _decEnvironmentName
-        ]
-
-instance ToHeaders DeleteEnvironmentConfiguration
+        toQuery DeleteEnvironmentConfiguration'{..}
+          = mconcat
+              ["Action" =:
+                 ("DeleteEnvironmentConfiguration" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "ApplicationName" =: _decApplicationName,
+               "EnvironmentName" =: _decEnvironmentName]
 
-instance AWSRequest DeleteEnvironmentConfiguration where
-    type Sv DeleteEnvironmentConfiguration = ElasticBeanstalk
-    type Rs DeleteEnvironmentConfiguration = DeleteEnvironmentConfigurationResponse
+-- | /See:/ 'deleteEnvironmentConfigurationResponse' smart constructor.
+data DeleteEnvironmentConfigurationResponse =
+    DeleteEnvironmentConfigurationResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-    request  = post "DeleteEnvironmentConfiguration"
-    response = nullResponse DeleteEnvironmentConfigurationResponse
+-- | Creates a value of 'DeleteEnvironmentConfigurationResponse' with the minimum fields required to make a request.
+--
+deleteEnvironmentConfigurationResponse
+    :: DeleteEnvironmentConfigurationResponse
+deleteEnvironmentConfigurationResponse =
+    DeleteEnvironmentConfigurationResponse'
diff --git a/gen/Network/AWS/ElasticBeanstalk/DescribeApplicationVersions.hs b/gen/Network/AWS/ElasticBeanstalk/DescribeApplicationVersions.hs
--- a/gen/Network/AWS/ElasticBeanstalk/DescribeApplicationVersions.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/DescribeApplicationVersions.hs
@@ -1,130 +1,142 @@
-{-# 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.ElasticBeanstalk.DescribeApplicationVersions
--- 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.
-
--- | Returns descriptions for existing application versions.
+-- Returns descriptions for existing application versions.
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeApplicationVersions.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeApplicationVersions.html AWS API Reference> for DescribeApplicationVersions.
 module Network.AWS.ElasticBeanstalk.DescribeApplicationVersions
     (
-    -- * Request
-      DescribeApplicationVersions
-    -- ** Request constructor
-    , describeApplicationVersions
-    -- ** Request lenses
-    , dav1ApplicationName
-    , dav1VersionLabels
+    -- * Creating a Request
+      describeApplicationVersions
+    , DescribeApplicationVersions
+    -- * Request Lenses
+    , davsVersionLabels
+    , davsApplicationName
 
-    -- * Response
-    , DescribeApplicationVersionsResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , describeApplicationVersionsResponse
-    -- ** Response lenses
-    , davrApplicationVersions
+    , DescribeApplicationVersionsResponse
+    -- * Response Lenses
+    , davrsApplicationVersions
+    , davrsStatus
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data DescribeApplicationVersions = DescribeApplicationVersions
-    { _dav1ApplicationName :: Maybe Text
-    , _dav1VersionLabels   :: List "member" Text
-    } deriving (Eq, Ord, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'DescribeApplicationVersions' constructor.
+-- | Result message containing a list of configuration descriptions.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'describeApplicationVersions' smart constructor.
+data DescribeApplicationVersions = DescribeApplicationVersions'
+    { _davsVersionLabels   :: !(Maybe [Text])
+    , _davsApplicationName :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeApplicationVersions' with the minimum fields required to make a request.
 --
--- * 'dav1ApplicationName' @::@ 'Maybe' 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'dav1VersionLabels' @::@ ['Text']
+-- * 'davsVersionLabels'
 --
-describeApplicationVersions :: DescribeApplicationVersions
-describeApplicationVersions = DescribeApplicationVersions
-    { _dav1ApplicationName = Nothing
-    , _dav1VersionLabels   = mempty
+-- * 'davsApplicationName'
+describeApplicationVersions
+    :: DescribeApplicationVersions
+describeApplicationVersions =
+    DescribeApplicationVersions'
+    { _davsVersionLabels = Nothing
+    , _davsApplicationName = Nothing
     }
 
--- | If specified, AWS Elastic Beanstalk restricts the returned descriptions to
--- only include ones that are associated with the specified application.
-dav1ApplicationName :: Lens' DescribeApplicationVersions (Maybe Text)
-dav1ApplicationName =
-    lens _dav1ApplicationName (\s a -> s { _dav1ApplicationName = a })
-
--- | If specified, restricts the returned descriptions to only include ones that
--- have the specified version labels.
-dav1VersionLabels :: Lens' DescribeApplicationVersions [Text]
-dav1VersionLabels =
-    lens _dav1VersionLabels (\s a -> s { _dav1VersionLabels = a })
-        . _List
-
-newtype DescribeApplicationVersionsResponse = DescribeApplicationVersionsResponse
-    { _davrApplicationVersions :: List "member" ApplicationVersionDescription
-    } deriving (Eq, Read, Show, Monoid, Semigroup)
-
-instance GHC.Exts.IsList DescribeApplicationVersionsResponse where
-    type Item DescribeApplicationVersionsResponse = ApplicationVersionDescription
+-- | If specified, restricts the returned descriptions to only include ones
+-- that have the specified version labels.
+davsVersionLabels :: Lens' DescribeApplicationVersions [Text]
+davsVersionLabels = lens _davsVersionLabels (\ s a -> s{_davsVersionLabels = a}) . _Default . _Coerce;
 
-    fromList = DescribeApplicationVersionsResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _davrApplicationVersions
+-- | If specified, AWS Elastic Beanstalk restricts the returned descriptions
+-- to only include ones that are associated with the specified application.
+davsApplicationName :: Lens' DescribeApplicationVersions (Maybe Text)
+davsApplicationName = lens _davsApplicationName (\ s a -> s{_davsApplicationName = a});
 
--- | 'DescribeApplicationVersionsResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'davrApplicationVersions' @::@ ['ApplicationVersionDescription']
---
-describeApplicationVersionsResponse :: DescribeApplicationVersionsResponse
-describeApplicationVersionsResponse = DescribeApplicationVersionsResponse
-    { _davrApplicationVersions = mempty
-    }
+instance AWSRequest DescribeApplicationVersions where
+        type Sv DescribeApplicationVersions =
+             ElasticBeanstalk
+        type Rs DescribeApplicationVersions =
+             DescribeApplicationVersionsResponse
+        request = postQuery
+        response
+          = receiveXMLWrapper
+              "DescribeApplicationVersionsResult"
+              (\ s h x ->
+                 DescribeApplicationVersionsResponse' <$>
+                   (x .@? "ApplicationVersions" .!@ mempty >>=
+                      may (parseXMLList "member"))
+                     <*> (pure (fromEnum s)))
 
--- | A list of 'ApplicationVersionDescription' .
-davrApplicationVersions :: Lens' DescribeApplicationVersionsResponse [ApplicationVersionDescription]
-davrApplicationVersions =
-    lens _davrApplicationVersions (\s a -> s { _davrApplicationVersions = a })
-        . _List
+instance ToHeaders DescribeApplicationVersions where
+        toHeaders = const mempty
 
 instance ToPath DescribeApplicationVersions where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery DescribeApplicationVersions where
-    toQuery DescribeApplicationVersions{..} = mconcat
-        [ "ApplicationName" =? _dav1ApplicationName
-        , "VersionLabels"   =? _dav1VersionLabels
-        ]
+        toQuery DescribeApplicationVersions'{..}
+          = mconcat
+              ["Action" =:
+                 ("DescribeApplicationVersions" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "VersionLabels" =:
+                 toQuery
+                   (toQueryList "member" <$> _davsVersionLabels),
+               "ApplicationName" =: _davsApplicationName]
 
-instance ToHeaders DescribeApplicationVersions
+-- | Result message wrapping a list of application version descriptions.
+--
+-- /See:/ 'describeApplicationVersionsResponse' smart constructor.
+data DescribeApplicationVersionsResponse = DescribeApplicationVersionsResponse'
+    { _davrsApplicationVersions :: !(Maybe [ApplicationVersionDescription])
+    , _davrsStatus              :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest DescribeApplicationVersions where
-    type Sv DescribeApplicationVersions = ElasticBeanstalk
-    type Rs DescribeApplicationVersions = DescribeApplicationVersionsResponse
+-- | Creates a value of 'DescribeApplicationVersionsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'davrsApplicationVersions'
+--
+-- * 'davrsStatus'
+describeApplicationVersionsResponse
+    :: Int -- ^ 'davrsStatus'
+    -> DescribeApplicationVersionsResponse
+describeApplicationVersionsResponse pStatus_ =
+    DescribeApplicationVersionsResponse'
+    { _davrsApplicationVersions = Nothing
+    , _davrsStatus = pStatus_
+    }
 
-    request  = post "DescribeApplicationVersions"
-    response = xmlResponse
+-- | A list of ApplicationVersionDescription .
+davrsApplicationVersions :: Lens' DescribeApplicationVersionsResponse [ApplicationVersionDescription]
+davrsApplicationVersions = lens _davrsApplicationVersions (\ s a -> s{_davrsApplicationVersions = a}) . _Default . _Coerce;
 
-instance FromXML DescribeApplicationVersionsResponse where
-    parseXML = withElement "DescribeApplicationVersionsResult" $ \x -> DescribeApplicationVersionsResponse
-        <$> x .@? "ApplicationVersions" .!@ mempty
+-- | The response status code.
+davrsStatus :: Lens' DescribeApplicationVersionsResponse Int
+davrsStatus = lens _davrsStatus (\ s a -> s{_davrsStatus = a});
diff --git a/gen/Network/AWS/ElasticBeanstalk/DescribeApplications.hs b/gen/Network/AWS/ElasticBeanstalk/DescribeApplications.hs
--- a/gen/Network/AWS/ElasticBeanstalk/DescribeApplications.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/DescribeApplications.hs
@@ -1,122 +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.ElasticBeanstalk.DescribeApplications
--- 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.
-
--- | Returns the descriptions of existing applications.
+-- Returns the descriptions of existing applications.
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeApplications.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeApplications.html AWS API Reference> for DescribeApplications.
 module Network.AWS.ElasticBeanstalk.DescribeApplications
     (
-    -- * Request
-      DescribeApplications
-    -- ** Request constructor
-    , describeApplications
-    -- ** Request lenses
+    -- * Creating a Request
+      describeApplications
+    , DescribeApplications
+    -- * Request Lenses
     , daApplicationNames
 
-    -- * Response
-    , DescribeApplicationsResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , describeApplicationsResponse
-    -- ** Response lenses
-    , darApplications
+    , DescribeApplicationsResponse
+    -- * Response Lenses
+    , darsApplications
+    , darsStatus
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-newtype DescribeApplications = DescribeApplications
-    { _daApplicationNames :: List "member" Text
-    } deriving (Eq, Ord, Read, Show, Monoid, Semigroup)
-
-instance GHC.Exts.IsList DescribeApplications where
-    type Item DescribeApplications = Text
-
-    fromList = DescribeApplications . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _daApplicationNames
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'DescribeApplications' constructor.
+-- | This documentation target is not reported in the API reference.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'describeApplications' smart constructor.
+newtype DescribeApplications = DescribeApplications'
+    { _daApplicationNames :: Maybe [Text]
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeApplications' with the minimum fields required to make a request.
 --
--- * 'daApplicationNames' @::@ ['Text']
+-- Use one of the following lenses to modify other fields as desired:
 --
-describeApplications :: DescribeApplications
-describeApplications = DescribeApplications
-    { _daApplicationNames = mempty
+-- * 'daApplicationNames'
+describeApplications
+    :: DescribeApplications
+describeApplications =
+    DescribeApplications'
+    { _daApplicationNames = Nothing
     }
 
--- | If specified, AWS Elastic Beanstalk restricts the returned descriptions to
--- only include those with the specified names.
+-- | If specified, AWS Elastic Beanstalk restricts the returned descriptions
+-- to only include those with the specified names.
 daApplicationNames :: Lens' DescribeApplications [Text]
-daApplicationNames =
-    lens _daApplicationNames (\s a -> s { _daApplicationNames = a })
-        . _List
-
-newtype DescribeApplicationsResponse = DescribeApplicationsResponse
-    { _darApplications :: List "member" ApplicationDescription
-    } deriving (Eq, Read, Show, Monoid, Semigroup)
-
-instance GHC.Exts.IsList DescribeApplicationsResponse where
-    type Item DescribeApplicationsResponse = ApplicationDescription
-
-    fromList = DescribeApplicationsResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _darApplications
+daApplicationNames = lens _daApplicationNames (\ s a -> s{_daApplicationNames = a}) . _Default . _Coerce;
 
--- | 'DescribeApplicationsResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'darApplications' @::@ ['ApplicationDescription']
---
-describeApplicationsResponse :: DescribeApplicationsResponse
-describeApplicationsResponse = DescribeApplicationsResponse
-    { _darApplications = mempty
-    }
+instance AWSRequest DescribeApplications where
+        type Sv DescribeApplications = ElasticBeanstalk
+        type Rs DescribeApplications =
+             DescribeApplicationsResponse
+        request = postQuery
+        response
+          = receiveXMLWrapper "DescribeApplicationsResult"
+              (\ s h x ->
+                 DescribeApplicationsResponse' <$>
+                   (x .@? "Applications" .!@ mempty >>=
+                      may (parseXMLList "member"))
+                     <*> (pure (fromEnum s)))
 
--- | This parameter contains a list of 'ApplicationDescription'.
-darApplications :: Lens' DescribeApplicationsResponse [ApplicationDescription]
-darApplications = lens _darApplications (\s a -> s { _darApplications = a }) . _List
+instance ToHeaders DescribeApplications where
+        toHeaders = const mempty
 
 instance ToPath DescribeApplications where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery DescribeApplications where
-    toQuery DescribeApplications{..} = mconcat
-        [ "ApplicationNames" =? _daApplicationNames
-        ]
+        toQuery DescribeApplications'{..}
+          = mconcat
+              ["Action" =: ("DescribeApplications" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "ApplicationNames" =:
+                 toQuery
+                   (toQueryList "member" <$> _daApplicationNames)]
 
-instance ToHeaders DescribeApplications
+-- | Result message containing a list of application descriptions.
+--
+-- /See:/ 'describeApplicationsResponse' smart constructor.
+data DescribeApplicationsResponse = DescribeApplicationsResponse'
+    { _darsApplications :: !(Maybe [ApplicationDescription])
+    , _darsStatus       :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest DescribeApplications where
-    type Sv DescribeApplications = ElasticBeanstalk
-    type Rs DescribeApplications = DescribeApplicationsResponse
+-- | Creates a value of 'DescribeApplicationsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'darsApplications'
+--
+-- * 'darsStatus'
+describeApplicationsResponse
+    :: Int -- ^ 'darsStatus'
+    -> DescribeApplicationsResponse
+describeApplicationsResponse pStatus_ =
+    DescribeApplicationsResponse'
+    { _darsApplications = Nothing
+    , _darsStatus = pStatus_
+    }
 
-    request  = post "DescribeApplications"
-    response = xmlResponse
+-- | This parameter contains a list of ApplicationDescription.
+darsApplications :: Lens' DescribeApplicationsResponse [ApplicationDescription]
+darsApplications = lens _darsApplications (\ s a -> s{_darsApplications = a}) . _Default . _Coerce;
 
-instance FromXML DescribeApplicationsResponse where
-    parseXML = withElement "DescribeApplicationsResult" $ \x -> DescribeApplicationsResponse
-        <$> x .@? "Applications" .!@ mempty
+-- | The response status code.
+darsStatus :: Lens' DescribeApplicationsResponse Int
+darsStatus = lens _darsStatus (\ s a -> s{_darsStatus = a});
diff --git a/gen/Network/AWS/ElasticBeanstalk/DescribeConfigurationOptions.hs b/gen/Network/AWS/ElasticBeanstalk/DescribeConfigurationOptions.hs
--- a/gen/Network/AWS/ElasticBeanstalk/DescribeConfigurationOptions.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/DescribeConfigurationOptions.hs
@@ -1,170 +1,190 @@
-{-# 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.ElasticBeanstalk.DescribeConfigurationOptions
--- 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.
-
--- | Describes the configuration options that are used in a particular
--- configuration template or environment, or that a specified solution stack
--- defines. The description includes the values the options, their default
--- values, and an indication of the required action on a running environment if
--- an option value is changed.
+-- Describes the configuration options that are used in a particular
+-- configuration template or environment, or that a specified solution
+-- stack defines. The description includes the values the options, their
+-- default values, and an indication of the required action on a running
+-- environment if an option value is changed.
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeConfigurationOptions.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeConfigurationOptions.html AWS API Reference> for DescribeConfigurationOptions.
 module Network.AWS.ElasticBeanstalk.DescribeConfigurationOptions
     (
-    -- * Request
-      DescribeConfigurationOptions
-    -- ** Request constructor
-    , describeConfigurationOptions
-    -- ** Request lenses
-    , dcoApplicationName
+    -- * Creating a Request
+      describeConfigurationOptions
+    , DescribeConfigurationOptions
+    -- * Request Lenses
+    , dcoTemplateName
     , dcoEnvironmentName
+    , dcoApplicationName
     , dcoOptions
     , dcoSolutionStackName
-    , dcoTemplateName
 
-    -- * Response
-    , DescribeConfigurationOptionsResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , describeConfigurationOptionsResponse
-    -- ** Response lenses
-    , dcorOptions
-    , dcorSolutionStackName
+    , DescribeConfigurationOptionsResponse
+    -- * Response Lenses
+    , dcorsOptions
+    , dcorsSolutionStackName
+    , dcorsStatus
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data DescribeConfigurationOptions = DescribeConfigurationOptions
-    { _dcoApplicationName   :: Maybe Text
-    , _dcoEnvironmentName   :: Maybe Text
-    , _dcoOptions           :: List "member" OptionSpecification
-    , _dcoSolutionStackName :: Maybe Text
-    , _dcoTemplateName      :: Maybe Text
-    } deriving (Eq, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'DescribeConfigurationOptions' constructor.
+-- | Result message containig a list of application version descriptions.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'describeConfigurationOptions' smart constructor.
+data DescribeConfigurationOptions = DescribeConfigurationOptions'
+    { _dcoTemplateName      :: !(Maybe Text)
+    , _dcoEnvironmentName   :: !(Maybe Text)
+    , _dcoApplicationName   :: !(Maybe Text)
+    , _dcoOptions           :: !(Maybe [OptionSpecification])
+    , _dcoSolutionStackName :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeConfigurationOptions' with the minimum fields required to make a request.
 --
--- * 'dcoApplicationName' @::@ 'Maybe' 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'dcoEnvironmentName' @::@ 'Maybe' 'Text'
+-- * 'dcoTemplateName'
 --
--- * 'dcoOptions' @::@ ['OptionSpecification']
+-- * 'dcoEnvironmentName'
 --
--- * 'dcoSolutionStackName' @::@ 'Maybe' 'Text'
+-- * 'dcoApplicationName'
 --
--- * 'dcoTemplateName' @::@ 'Maybe' 'Text'
+-- * 'dcoOptions'
 --
-describeConfigurationOptions :: DescribeConfigurationOptions
-describeConfigurationOptions = DescribeConfigurationOptions
-    { _dcoApplicationName   = Nothing
-    , _dcoTemplateName      = Nothing
-    , _dcoEnvironmentName   = Nothing
+-- * 'dcoSolutionStackName'
+describeConfigurationOptions
+    :: DescribeConfigurationOptions
+describeConfigurationOptions =
+    DescribeConfigurationOptions'
+    { _dcoTemplateName = Nothing
+    , _dcoEnvironmentName = Nothing
+    , _dcoApplicationName = Nothing
+    , _dcoOptions = Nothing
     , _dcoSolutionStackName = Nothing
-    , _dcoOptions           = mempty
     }
 
--- | The name of the application associated with the configuration template or
--- environment. Only needed if you want to describe the configuration options
--- associated with either the configuration template or environment.
-dcoApplicationName :: Lens' DescribeConfigurationOptions (Maybe Text)
-dcoApplicationName =
-    lens _dcoApplicationName (\s a -> s { _dcoApplicationName = a })
+-- | The name of the configuration template whose configuration options you
+-- want to describe.
+dcoTemplateName :: Lens' DescribeConfigurationOptions (Maybe Text)
+dcoTemplateName = lens _dcoTemplateName (\ s a -> s{_dcoTemplateName = a});
 
 -- | The name of the environment whose configuration options you want to
 -- describe.
 dcoEnvironmentName :: Lens' DescribeConfigurationOptions (Maybe Text)
-dcoEnvironmentName =
-    lens _dcoEnvironmentName (\s a -> s { _dcoEnvironmentName = a })
+dcoEnvironmentName = lens _dcoEnvironmentName (\ s a -> s{_dcoEnvironmentName = a});
 
+-- | The name of the application associated with the configuration template
+-- or environment. Only needed if you want to describe the configuration
+-- options associated with either the configuration template or
+-- environment.
+dcoApplicationName :: Lens' DescribeConfigurationOptions (Maybe Text)
+dcoApplicationName = lens _dcoApplicationName (\ s a -> s{_dcoApplicationName = a});
+
 -- | If specified, restricts the descriptions to only the specified options.
 dcoOptions :: Lens' DescribeConfigurationOptions [OptionSpecification]
-dcoOptions = lens _dcoOptions (\s a -> s { _dcoOptions = a }) . _List
+dcoOptions = lens _dcoOptions (\ s a -> s{_dcoOptions = a}) . _Default . _Coerce;
 
 -- | The name of the solution stack whose configuration options you want to
 -- describe.
 dcoSolutionStackName :: Lens' DescribeConfigurationOptions (Maybe Text)
-dcoSolutionStackName =
-    lens _dcoSolutionStackName (\s a -> s { _dcoSolutionStackName = a })
+dcoSolutionStackName = lens _dcoSolutionStackName (\ s a -> s{_dcoSolutionStackName = a});
 
--- | The name of the configuration template whose configuration options you want
--- to describe.
-dcoTemplateName :: Lens' DescribeConfigurationOptions (Maybe Text)
-dcoTemplateName = lens _dcoTemplateName (\s a -> s { _dcoTemplateName = a })
+instance AWSRequest DescribeConfigurationOptions
+         where
+        type Sv DescribeConfigurationOptions =
+             ElasticBeanstalk
+        type Rs DescribeConfigurationOptions =
+             DescribeConfigurationOptionsResponse
+        request = postQuery
+        response
+          = receiveXMLWrapper
+              "DescribeConfigurationOptionsResult"
+              (\ s h x ->
+                 DescribeConfigurationOptionsResponse' <$>
+                   (x .@? "Options" .!@ mempty >>=
+                      may (parseXMLList "member"))
+                     <*> (x .@? "SolutionStackName")
+                     <*> (pure (fromEnum s)))
 
-data DescribeConfigurationOptionsResponse = DescribeConfigurationOptionsResponse
-    { _dcorOptions           :: List "member" ConfigurationOptionDescription
-    , _dcorSolutionStackName :: Maybe Text
-    } deriving (Eq, Read, Show)
+instance ToHeaders DescribeConfigurationOptions where
+        toHeaders = const mempty
 
--- | 'DescribeConfigurationOptionsResponse' constructor.
+instance ToPath DescribeConfigurationOptions where
+        toPath = const "/"
+
+instance ToQuery DescribeConfigurationOptions where
+        toQuery DescribeConfigurationOptions'{..}
+          = mconcat
+              ["Action" =:
+                 ("DescribeConfigurationOptions" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "TemplateName" =: _dcoTemplateName,
+               "EnvironmentName" =: _dcoEnvironmentName,
+               "ApplicationName" =: _dcoApplicationName,
+               "Options" =:
+                 toQuery (toQueryList "member" <$> _dcoOptions),
+               "SolutionStackName" =: _dcoSolutionStackName]
+
+-- | Describes the settings for a specified configuration set.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'describeConfigurationOptionsResponse' smart constructor.
+data DescribeConfigurationOptionsResponse = DescribeConfigurationOptionsResponse'
+    { _dcorsOptions           :: !(Maybe [ConfigurationOptionDescription])
+    , _dcorsSolutionStackName :: !(Maybe Text)
+    , _dcorsStatus            :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeConfigurationOptionsResponse' with the minimum fields required to make a request.
 --
--- * 'dcorOptions' @::@ ['ConfigurationOptionDescription']
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'dcorSolutionStackName' @::@ 'Maybe' 'Text'
+-- * 'dcorsOptions'
 --
-describeConfigurationOptionsResponse :: DescribeConfigurationOptionsResponse
-describeConfigurationOptionsResponse = DescribeConfigurationOptionsResponse
-    { _dcorSolutionStackName = Nothing
-    , _dcorOptions           = mempty
+-- * 'dcorsSolutionStackName'
+--
+-- * 'dcorsStatus'
+describeConfigurationOptionsResponse
+    :: Int -- ^ 'dcorsStatus'
+    -> DescribeConfigurationOptionsResponse
+describeConfigurationOptionsResponse pStatus_ =
+    DescribeConfigurationOptionsResponse'
+    { _dcorsOptions = Nothing
+    , _dcorsSolutionStackName = Nothing
+    , _dcorsStatus = pStatus_
     }
 
--- | A list of 'ConfigurationOptionDescription'.
-dcorOptions :: Lens' DescribeConfigurationOptionsResponse [ConfigurationOptionDescription]
-dcorOptions = lens _dcorOptions (\s a -> s { _dcorOptions = a }) . _List
+-- | A list of ConfigurationOptionDescription.
+dcorsOptions :: Lens' DescribeConfigurationOptionsResponse [ConfigurationOptionDescription]
+dcorsOptions = lens _dcorsOptions (\ s a -> s{_dcorsOptions = a}) . _Default . _Coerce;
 
 -- | The name of the solution stack these configuration options belong to.
-dcorSolutionStackName :: Lens' DescribeConfigurationOptionsResponse (Maybe Text)
-dcorSolutionStackName =
-    lens _dcorSolutionStackName (\s a -> s { _dcorSolutionStackName = a })
-
-instance ToPath DescribeConfigurationOptions where
-    toPath = const "/"
-
-instance ToQuery DescribeConfigurationOptions where
-    toQuery DescribeConfigurationOptions{..} = mconcat
-        [ "ApplicationName"   =? _dcoApplicationName
-        , "EnvironmentName"   =? _dcoEnvironmentName
-        , "Options"           =? _dcoOptions
-        , "SolutionStackName" =? _dcoSolutionStackName
-        , "TemplateName"      =? _dcoTemplateName
-        ]
-
-instance ToHeaders DescribeConfigurationOptions
-
-instance AWSRequest DescribeConfigurationOptions where
-    type Sv DescribeConfigurationOptions = ElasticBeanstalk
-    type Rs DescribeConfigurationOptions = DescribeConfigurationOptionsResponse
-
-    request  = post "DescribeConfigurationOptions"
-    response = xmlResponse
+dcorsSolutionStackName :: Lens' DescribeConfigurationOptionsResponse (Maybe Text)
+dcorsSolutionStackName = lens _dcorsSolutionStackName (\ s a -> s{_dcorsSolutionStackName = a});
 
-instance FromXML DescribeConfigurationOptionsResponse where
-    parseXML = withElement "DescribeConfigurationOptionsResult" $ \x -> DescribeConfigurationOptionsResponse
-        <$> x .@? "Options" .!@ mempty
-        <*> x .@? "SolutionStackName"
+-- | The response status code.
+dcorsStatus :: Lens' DescribeConfigurationOptionsResponse Int
+dcorsStatus = lens _dcorsStatus (\ s a -> s{_dcorsStatus = a});
diff --git a/gen/Network/AWS/ElasticBeanstalk/DescribeConfigurationSettings.hs b/gen/Network/AWS/ElasticBeanstalk/DescribeConfigurationSettings.hs
--- a/gen/Network/AWS/ElasticBeanstalk/DescribeConfigurationSettings.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/DescribeConfigurationSettings.hs
@@ -1,158 +1,176 @@
-{-# 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.ElasticBeanstalk.DescribeConfigurationSettings
--- 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.
-
--- | Returns a description of the settings for the specified configuration set,
--- that is, either a configuration template or the configuration set associated
--- with a running environment.
+-- Returns a description of the settings for the specified configuration
+-- set, that is, either a configuration template or the configuration set
+-- associated with a running environment.
 --
 -- When describing the settings for the configuration set associated with a
 -- running environment, it is possible to receive two sets of setting
--- descriptions. One is the deployed configuration set, and the other is a draft
--- configuration of an environment that is either in the process of deployment
--- or that failed to deploy.
+-- descriptions. One is the deployed configuration set, and the other is a
+-- draft configuration of an environment that is either in the process of
+-- deployment or that failed to deploy.
 --
 -- Related Topics
 --
--- 'DeleteEnvironmentConfiguration'
+-- -   DeleteEnvironmentConfiguration
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeConfigurationSettings.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeConfigurationSettings.html AWS API Reference> for DescribeConfigurationSettings.
 module Network.AWS.ElasticBeanstalk.DescribeConfigurationSettings
     (
-    -- * Request
-      DescribeConfigurationSettings
-    -- ** Request constructor
-    , describeConfigurationSettings
-    -- ** Request lenses
-    , dcsApplicationName
-    , dcsEnvironmentName
+    -- * Creating a Request
+      describeConfigurationSettings
+    , DescribeConfigurationSettings
+    -- * Request Lenses
     , dcsTemplateName
+    , dcsEnvironmentName
+    , dcsApplicationName
 
-    -- * Response
-    , DescribeConfigurationSettingsResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , describeConfigurationSettingsResponse
-    -- ** Response lenses
-    , dcsrConfigurationSettings
+    , DescribeConfigurationSettingsResponse
+    -- * Response Lenses
+    , dcsrsConfigurationSettings
+    , dcsrsStatus
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data DescribeConfigurationSettings = DescribeConfigurationSettings
-    { _dcsApplicationName :: Text
-    , _dcsEnvironmentName :: Maybe Text
-    , _dcsTemplateName    :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'DescribeConfigurationSettings' constructor.
+-- | Result message containing all of the configuration settings for a
+-- specified solution stack or configuration template.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'describeConfigurationSettings' smart constructor.
+data DescribeConfigurationSettings = DescribeConfigurationSettings'
+    { _dcsTemplateName    :: !(Maybe Text)
+    , _dcsEnvironmentName :: !(Maybe Text)
+    , _dcsApplicationName :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeConfigurationSettings' with the minimum fields required to make a request.
 --
--- * 'dcsApplicationName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'dcsEnvironmentName' @::@ 'Maybe' 'Text'
+-- * 'dcsTemplateName'
 --
--- * 'dcsTemplateName' @::@ 'Maybe' 'Text'
+-- * 'dcsEnvironmentName'
 --
-describeConfigurationSettings :: Text -- ^ 'dcsApplicationName'
-                              -> DescribeConfigurationSettings
-describeConfigurationSettings p1 = DescribeConfigurationSettings
-    { _dcsApplicationName = p1
-    , _dcsTemplateName    = Nothing
+-- * 'dcsApplicationName'
+describeConfigurationSettings
+    :: Text -- ^ 'dcsApplicationName'
+    -> DescribeConfigurationSettings
+describeConfigurationSettings pApplicationName_ =
+    DescribeConfigurationSettings'
+    { _dcsTemplateName = Nothing
     , _dcsEnvironmentName = Nothing
+    , _dcsApplicationName = pApplicationName_
     }
 
--- | The application for the environment or configuration template.
-dcsApplicationName :: Lens' DescribeConfigurationSettings Text
-dcsApplicationName =
-    lens _dcsApplicationName (\s a -> s { _dcsApplicationName = a })
-
--- | The name of the environment to describe.
---
--- Condition: You must specify either this or a TemplateName, but not both. If
--- you specify both, AWS Elastic Beanstalk returns an 'InvalidParameterCombination'
--- error. If you do not specify either, AWS Elastic Beanstalk returns 'MissingRequiredParameter' error.
-dcsEnvironmentName :: Lens' DescribeConfigurationSettings (Maybe Text)
-dcsEnvironmentName =
-    lens _dcsEnvironmentName (\s a -> s { _dcsEnvironmentName = a })
-
 -- | The name of the configuration template to describe.
 --
--- Conditional: You must specify either this parameter or an EnvironmentName,
--- but not both. If you specify both, AWS Elastic Beanstalk returns an 'InvalidParameterCombination' error. If you do not specify either, AWS Elastic Beanstalk returns a 'MissingRequiredParameter' error.
+-- Conditional: You must specify either this parameter or an
+-- EnvironmentName, but not both. If you specify both, AWS Elastic
+-- Beanstalk returns an 'InvalidParameterCombination' error. If you do not
+-- specify either, AWS Elastic Beanstalk returns a
+-- 'MissingRequiredParameter' error.
 dcsTemplateName :: Lens' DescribeConfigurationSettings (Maybe Text)
-dcsTemplateName = lens _dcsTemplateName (\s a -> s { _dcsTemplateName = a })
-
-newtype DescribeConfigurationSettingsResponse = DescribeConfigurationSettingsResponse
-    { _dcsrConfigurationSettings :: List "member" ConfigurationSettingsDescription
-    } deriving (Eq, Read, Show, Monoid, Semigroup)
+dcsTemplateName = lens _dcsTemplateName (\ s a -> s{_dcsTemplateName = a});
 
-instance GHC.Exts.IsList DescribeConfigurationSettingsResponse where
-    type Item DescribeConfigurationSettingsResponse = ConfigurationSettingsDescription
+-- | The name of the environment to describe.
+--
+-- Condition: You must specify either this or a TemplateName, but not both.
+-- If you specify both, AWS Elastic Beanstalk returns an
+-- 'InvalidParameterCombination' error. If you do not specify either, AWS
+-- Elastic Beanstalk returns 'MissingRequiredParameter' error.
+dcsEnvironmentName :: Lens' DescribeConfigurationSettings (Maybe Text)
+dcsEnvironmentName = lens _dcsEnvironmentName (\ s a -> s{_dcsEnvironmentName = a});
 
-    fromList = DescribeConfigurationSettingsResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _dcsrConfigurationSettings
+-- | The application for the environment or configuration template.
+dcsApplicationName :: Lens' DescribeConfigurationSettings Text
+dcsApplicationName = lens _dcsApplicationName (\ s a -> s{_dcsApplicationName = a});
 
--- | 'DescribeConfigurationSettingsResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'dcsrConfigurationSettings' @::@ ['ConfigurationSettingsDescription']
---
-describeConfigurationSettingsResponse :: DescribeConfigurationSettingsResponse
-describeConfigurationSettingsResponse = DescribeConfigurationSettingsResponse
-    { _dcsrConfigurationSettings = mempty
-    }
+instance AWSRequest DescribeConfigurationSettings
+         where
+        type Sv DescribeConfigurationSettings =
+             ElasticBeanstalk
+        type Rs DescribeConfigurationSettings =
+             DescribeConfigurationSettingsResponse
+        request = postQuery
+        response
+          = receiveXMLWrapper
+              "DescribeConfigurationSettingsResult"
+              (\ s h x ->
+                 DescribeConfigurationSettingsResponse' <$>
+                   (x .@? "ConfigurationSettings" .!@ mempty >>=
+                      may (parseXMLList "member"))
+                     <*> (pure (fromEnum s)))
 
--- | A list of 'ConfigurationSettingsDescription'.
-dcsrConfigurationSettings :: Lens' DescribeConfigurationSettingsResponse [ConfigurationSettingsDescription]
-dcsrConfigurationSettings =
-    lens _dcsrConfigurationSettings
-        (\s a -> s { _dcsrConfigurationSettings = a })
-            . _List
+instance ToHeaders DescribeConfigurationSettings
+         where
+        toHeaders = const mempty
 
 instance ToPath DescribeConfigurationSettings where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery DescribeConfigurationSettings where
-    toQuery DescribeConfigurationSettings{..} = mconcat
-        [ "ApplicationName" =? _dcsApplicationName
-        , "EnvironmentName" =? _dcsEnvironmentName
-        , "TemplateName"    =? _dcsTemplateName
-        ]
+        toQuery DescribeConfigurationSettings'{..}
+          = mconcat
+              ["Action" =:
+                 ("DescribeConfigurationSettings" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "TemplateName" =: _dcsTemplateName,
+               "EnvironmentName" =: _dcsEnvironmentName,
+               "ApplicationName" =: _dcsApplicationName]
 
-instance ToHeaders DescribeConfigurationSettings
+-- | The results from a request to change the configuration settings of an
+-- environment.
+--
+-- /See:/ 'describeConfigurationSettingsResponse' smart constructor.
+data DescribeConfigurationSettingsResponse = DescribeConfigurationSettingsResponse'
+    { _dcsrsConfigurationSettings :: !(Maybe [ConfigurationSettingsDescription])
+    , _dcsrsStatus                :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest DescribeConfigurationSettings where
-    type Sv DescribeConfigurationSettings = ElasticBeanstalk
-    type Rs DescribeConfigurationSettings = DescribeConfigurationSettingsResponse
+-- | Creates a value of 'DescribeConfigurationSettingsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dcsrsConfigurationSettings'
+--
+-- * 'dcsrsStatus'
+describeConfigurationSettingsResponse
+    :: Int -- ^ 'dcsrsStatus'
+    -> DescribeConfigurationSettingsResponse
+describeConfigurationSettingsResponse pStatus_ =
+    DescribeConfigurationSettingsResponse'
+    { _dcsrsConfigurationSettings = Nothing
+    , _dcsrsStatus = pStatus_
+    }
 
-    request  = post "DescribeConfigurationSettings"
-    response = xmlResponse
+-- | A list of ConfigurationSettingsDescription.
+dcsrsConfigurationSettings :: Lens' DescribeConfigurationSettingsResponse [ConfigurationSettingsDescription]
+dcsrsConfigurationSettings = lens _dcsrsConfigurationSettings (\ s a -> s{_dcsrsConfigurationSettings = a}) . _Default . _Coerce;
 
-instance FromXML DescribeConfigurationSettingsResponse where
-    parseXML = withElement "DescribeConfigurationSettingsResult" $ \x -> DescribeConfigurationSettingsResponse
-        <$> x .@? "ConfigurationSettings" .!@ mempty
+-- | The response status code.
+dcsrsStatus :: Lens' DescribeConfigurationSettingsResponse Int
+dcsrsStatus = lens _dcsrsStatus (\ s a -> s{_dcsrsStatus = a});
diff --git a/gen/Network/AWS/ElasticBeanstalk/DescribeEnvironmentHealth.hs b/gen/Network/AWS/ElasticBeanstalk/DescribeEnvironmentHealth.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/ElasticBeanstalk/DescribeEnvironmentHealth.hs
@@ -0,0 +1,215 @@
+{-# 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.ElasticBeanstalk.DescribeEnvironmentHealth
+-- 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)
+--
+-- Returns information about the overall health of the specified
+-- environment. The __DescribeEnvironmentHealth__ operation is only
+-- available with AWS Elastic Beanstalk Enhanced Health.
+--
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironmentHealth.html AWS API Reference> for DescribeEnvironmentHealth.
+module Network.AWS.ElasticBeanstalk.DescribeEnvironmentHealth
+    (
+    -- * Creating a Request
+      describeEnvironmentHealth
+    , DescribeEnvironmentHealth
+    -- * Request Lenses
+    , dehEnvironmentName
+    , dehEnvironmentId
+    , dehAttributeNames
+
+    -- * Destructuring the Response
+    , describeEnvironmentHealthResponse
+    , DescribeEnvironmentHealthResponse
+    -- * Response Lenses
+    , dehrsCauses
+    , dehrsApplicationMetrics
+    , dehrsColor
+    , dehrsEnvironmentName
+    , dehrsHealthStatus
+    , dehrsInstancesHealth
+    , dehrsRefreshedAt
+    , dehrsStatus
+    ) where
+
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | See the example below to learn how to create a request body.
+--
+-- /See:/ 'describeEnvironmentHealth' smart constructor.
+data DescribeEnvironmentHealth = DescribeEnvironmentHealth'
+    { _dehEnvironmentName :: !(Maybe Text)
+    , _dehEnvironmentId   :: !(Maybe Text)
+    , _dehAttributeNames  :: !(Maybe [EnvironmentHealthAttribute])
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeEnvironmentHealth' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dehEnvironmentName'
+--
+-- * 'dehEnvironmentId'
+--
+-- * 'dehAttributeNames'
+describeEnvironmentHealth
+    :: DescribeEnvironmentHealth
+describeEnvironmentHealth =
+    DescribeEnvironmentHealth'
+    { _dehEnvironmentName = Nothing
+    , _dehEnvironmentId = Nothing
+    , _dehAttributeNames = Nothing
+    }
+
+-- | Specifies the AWS Elastic Beanstalk environment name.
+dehEnvironmentName :: Lens' DescribeEnvironmentHealth (Maybe Text)
+dehEnvironmentName = lens _dehEnvironmentName (\ s a -> s{_dehEnvironmentName = a});
+
+-- | Specifies the AWS Elastic Beanstalk environment ID.
+dehEnvironmentId :: Lens' DescribeEnvironmentHealth (Maybe Text)
+dehEnvironmentId = lens _dehEnvironmentId (\ s a -> s{_dehEnvironmentId = a});
+
+-- | Specifies the response elements you wish to receive. If no attribute
+-- names are specified, AWS Elastic Beanstalk returns all response
+-- elements.
+dehAttributeNames :: Lens' DescribeEnvironmentHealth [EnvironmentHealthAttribute]
+dehAttributeNames = lens _dehAttributeNames (\ s a -> s{_dehAttributeNames = a}) . _Default . _Coerce;
+
+instance AWSRequest DescribeEnvironmentHealth where
+        type Sv DescribeEnvironmentHealth = ElasticBeanstalk
+        type Rs DescribeEnvironmentHealth =
+             DescribeEnvironmentHealthResponse
+        request = postQuery
+        response
+          = receiveXMLWrapper "DescribeEnvironmentHealthResult"
+              (\ s h x ->
+                 DescribeEnvironmentHealthResponse' <$>
+                   (x .@? "Causes" .!@ mempty >>=
+                      may (parseXMLList "member"))
+                     <*> (x .@? "ApplicationMetrics")
+                     <*> (x .@? "Color")
+                     <*> (x .@? "EnvironmentName")
+                     <*> (x .@? "HealthStatus")
+                     <*> (x .@? "InstancesHealth")
+                     <*> (x .@? "RefreshedAt")
+                     <*> (pure (fromEnum s)))
+
+instance ToHeaders DescribeEnvironmentHealth where
+        toHeaders = const mempty
+
+instance ToPath DescribeEnvironmentHealth where
+        toPath = const "/"
+
+instance ToQuery DescribeEnvironmentHealth where
+        toQuery DescribeEnvironmentHealth'{..}
+          = mconcat
+              ["Action" =:
+                 ("DescribeEnvironmentHealth" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "EnvironmentName" =: _dehEnvironmentName,
+               "EnvironmentId" =: _dehEnvironmentId,
+               "AttributeNames" =:
+                 toQuery
+                   (toQueryList "member" <$> _dehAttributeNames)]
+
+-- | See the example below for a sample response.
+--
+-- /See:/ 'describeEnvironmentHealthResponse' smart constructor.
+data DescribeEnvironmentHealthResponse = DescribeEnvironmentHealthResponse'
+    { _dehrsCauses             :: !(Maybe [Text])
+    , _dehrsApplicationMetrics :: !(Maybe ApplicationMetrics)
+    , _dehrsColor              :: !(Maybe Text)
+    , _dehrsEnvironmentName    :: !(Maybe Text)
+    , _dehrsHealthStatus       :: !(Maybe Text)
+    , _dehrsInstancesHealth    :: !(Maybe InstanceHealthSummary)
+    , _dehrsRefreshedAt        :: !(Maybe ISO8601)
+    , _dehrsStatus             :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeEnvironmentHealthResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dehrsCauses'
+--
+-- * 'dehrsApplicationMetrics'
+--
+-- * 'dehrsColor'
+--
+-- * 'dehrsEnvironmentName'
+--
+-- * 'dehrsHealthStatus'
+--
+-- * 'dehrsInstancesHealth'
+--
+-- * 'dehrsRefreshedAt'
+--
+-- * 'dehrsStatus'
+describeEnvironmentHealthResponse
+    :: Int -- ^ 'dehrsStatus'
+    -> DescribeEnvironmentHealthResponse
+describeEnvironmentHealthResponse pStatus_ =
+    DescribeEnvironmentHealthResponse'
+    { _dehrsCauses = Nothing
+    , _dehrsApplicationMetrics = Nothing
+    , _dehrsColor = Nothing
+    , _dehrsEnvironmentName = Nothing
+    , _dehrsHealthStatus = Nothing
+    , _dehrsInstancesHealth = Nothing
+    , _dehrsRefreshedAt = Nothing
+    , _dehrsStatus = pStatus_
+    }
+
+-- | Returns potential causes for the reported status.
+dehrsCauses :: Lens' DescribeEnvironmentHealthResponse [Text]
+dehrsCauses = lens _dehrsCauses (\ s a -> s{_dehrsCauses = a}) . _Default . _Coerce;
+
+-- | Undocumented member.
+dehrsApplicationMetrics :: Lens' DescribeEnvironmentHealthResponse (Maybe ApplicationMetrics)
+dehrsApplicationMetrics = lens _dehrsApplicationMetrics (\ s a -> s{_dehrsApplicationMetrics = a});
+
+-- | Returns the color indicator that tells you information about the health
+-- of the environment. For more information, see
+-- <http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/health-enhanced-status.html Health Colors and Statuses>.
+dehrsColor :: Lens' DescribeEnvironmentHealthResponse (Maybe Text)
+dehrsColor = lens _dehrsColor (\ s a -> s{_dehrsColor = a});
+
+-- | The AWS Elastic Beanstalk environment name.
+dehrsEnvironmentName :: Lens' DescribeEnvironmentHealthResponse (Maybe Text)
+dehrsEnvironmentName = lens _dehrsEnvironmentName (\ s a -> s{_dehrsEnvironmentName = a});
+
+-- | Contains the response body with information about the health of the
+-- environment.
+dehrsHealthStatus :: Lens' DescribeEnvironmentHealthResponse (Maybe Text)
+dehrsHealthStatus = lens _dehrsHealthStatus (\ s a -> s{_dehrsHealthStatus = a});
+
+-- | Undocumented member.
+dehrsInstancesHealth :: Lens' DescribeEnvironmentHealthResponse (Maybe InstanceHealthSummary)
+dehrsInstancesHealth = lens _dehrsInstancesHealth (\ s a -> s{_dehrsInstancesHealth = a});
+
+-- | The date and time the information was last refreshed.
+dehrsRefreshedAt :: Lens' DescribeEnvironmentHealthResponse (Maybe UTCTime)
+dehrsRefreshedAt = lens _dehrsRefreshedAt (\ s a -> s{_dehrsRefreshedAt = a}) . mapping _Time;
+
+-- | The response status code.
+dehrsStatus :: Lens' DescribeEnvironmentHealthResponse Int
+dehrsStatus = lens _dehrsStatus (\ s a -> s{_dehrsStatus = a});
diff --git a/gen/Network/AWS/ElasticBeanstalk/DescribeEnvironmentResources.hs b/gen/Network/AWS/ElasticBeanstalk/DescribeEnvironmentResources.hs
--- a/gen/Network/AWS/ElasticBeanstalk/DescribeEnvironmentResources.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/DescribeEnvironmentResources.hs
@@ -1,126 +1,146 @@
-{-# 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.ElasticBeanstalk.DescribeEnvironmentResources
--- 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.
-
--- | Returns AWS resources for this environment.
+-- Returns AWS resources for this environment.
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironmentResources.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironmentResources.html AWS API Reference> for DescribeEnvironmentResources.
 module Network.AWS.ElasticBeanstalk.DescribeEnvironmentResources
     (
-    -- * Request
-      DescribeEnvironmentResources
-    -- ** Request constructor
-    , describeEnvironmentResources
-    -- ** Request lenses
-    , derEnvironmentId
+    -- * Creating a Request
+      describeEnvironmentResources
+    , DescribeEnvironmentResources
+    -- * Request Lenses
     , derEnvironmentName
+    , derEnvironmentId
 
-    -- * Response
-    , DescribeEnvironmentResourcesResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , describeEnvironmentResourcesResponse
-    -- ** Response lenses
-    , derrEnvironmentResources
+    , DescribeEnvironmentResourcesResponse
+    -- * Response Lenses
+    , derrsEnvironmentResources
+    , derrsStatus
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data DescribeEnvironmentResources = DescribeEnvironmentResources
-    { _derEnvironmentId   :: Maybe Text
-    , _derEnvironmentName :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'DescribeEnvironmentResources' constructor.
+-- | This documentation target is not reported in the API reference.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'describeEnvironmentResources' smart constructor.
+data DescribeEnvironmentResources = DescribeEnvironmentResources'
+    { _derEnvironmentName :: !(Maybe Text)
+    , _derEnvironmentId   :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeEnvironmentResources' with the minimum fields required to make a request.
 --
--- * 'derEnvironmentId' @::@ 'Maybe' 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'derEnvironmentName' @::@ 'Maybe' 'Text'
+-- * 'derEnvironmentName'
 --
-describeEnvironmentResources :: DescribeEnvironmentResources
-describeEnvironmentResources = DescribeEnvironmentResources
-    { _derEnvironmentId   = Nothing
-    , _derEnvironmentName = Nothing
+-- * 'derEnvironmentId'
+describeEnvironmentResources
+    :: DescribeEnvironmentResources
+describeEnvironmentResources =
+    DescribeEnvironmentResources'
+    { _derEnvironmentName = Nothing
+    , _derEnvironmentId = Nothing
     }
 
--- | The ID of the environment to retrieve AWS resource usage data.
---
--- Condition: You must specify either this or an EnvironmentName, or both. If
--- you do not specify either, AWS Elastic Beanstalk returns 'MissingRequiredParameter' error.
-derEnvironmentId :: Lens' DescribeEnvironmentResources (Maybe Text)
-derEnvironmentId = lens _derEnvironmentId (\s a -> s { _derEnvironmentId = a })
-
 -- | The name of the environment to retrieve AWS resource usage data.
 --
 -- Condition: You must specify either this or an EnvironmentId, or both. If
--- you do not specify either, AWS Elastic Beanstalk returns 'MissingRequiredParameter' error.
+-- you do not specify either, AWS Elastic Beanstalk returns
+-- 'MissingRequiredParameter' error.
 derEnvironmentName :: Lens' DescribeEnvironmentResources (Maybe Text)
-derEnvironmentName =
-    lens _derEnvironmentName (\s a -> s { _derEnvironmentName = a })
-
-newtype DescribeEnvironmentResourcesResponse = DescribeEnvironmentResourcesResponse
-    { _derrEnvironmentResources :: Maybe EnvironmentResourceDescription
-    } deriving (Eq, Read, Show)
+derEnvironmentName = lens _derEnvironmentName (\ s a -> s{_derEnvironmentName = a});
 
--- | 'DescribeEnvironmentResourcesResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'derrEnvironmentResources' @::@ 'Maybe' 'EnvironmentResourceDescription'
+-- | The ID of the environment to retrieve AWS resource usage data.
 --
-describeEnvironmentResourcesResponse :: DescribeEnvironmentResourcesResponse
-describeEnvironmentResourcesResponse = DescribeEnvironmentResourcesResponse
-    { _derrEnvironmentResources = Nothing
-    }
+-- Condition: You must specify either this or an EnvironmentName, or both.
+-- If you do not specify either, AWS Elastic Beanstalk returns
+-- 'MissingRequiredParameter' error.
+derEnvironmentId :: Lens' DescribeEnvironmentResources (Maybe Text)
+derEnvironmentId = lens _derEnvironmentId (\ s a -> s{_derEnvironmentId = a});
 
--- | A list of 'EnvironmentResourceDescription'.
-derrEnvironmentResources :: Lens' DescribeEnvironmentResourcesResponse (Maybe EnvironmentResourceDescription)
-derrEnvironmentResources =
-    lens _derrEnvironmentResources
-        (\s a -> s { _derrEnvironmentResources = a })
+instance AWSRequest DescribeEnvironmentResources
+         where
+        type Sv DescribeEnvironmentResources =
+             ElasticBeanstalk
+        type Rs DescribeEnvironmentResources =
+             DescribeEnvironmentResourcesResponse
+        request = postQuery
+        response
+          = receiveXMLWrapper
+              "DescribeEnvironmentResourcesResult"
+              (\ s h x ->
+                 DescribeEnvironmentResourcesResponse' <$>
+                   (x .@? "EnvironmentResources") <*>
+                     (pure (fromEnum s)))
 
+instance ToHeaders DescribeEnvironmentResources where
+        toHeaders = const mempty
+
 instance ToPath DescribeEnvironmentResources where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery DescribeEnvironmentResources where
-    toQuery DescribeEnvironmentResources{..} = mconcat
-        [ "EnvironmentId"   =? _derEnvironmentId
-        , "EnvironmentName" =? _derEnvironmentName
-        ]
+        toQuery DescribeEnvironmentResources'{..}
+          = mconcat
+              ["Action" =:
+                 ("DescribeEnvironmentResources" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "EnvironmentName" =: _derEnvironmentName,
+               "EnvironmentId" =: _derEnvironmentId]
 
-instance ToHeaders DescribeEnvironmentResources
+-- | Result message containing a list of environment resource descriptions.
+--
+-- /See:/ 'describeEnvironmentResourcesResponse' smart constructor.
+data DescribeEnvironmentResourcesResponse = DescribeEnvironmentResourcesResponse'
+    { _derrsEnvironmentResources :: !(Maybe EnvironmentResourceDescription)
+    , _derrsStatus               :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest DescribeEnvironmentResources where
-    type Sv DescribeEnvironmentResources = ElasticBeanstalk
-    type Rs DescribeEnvironmentResources = DescribeEnvironmentResourcesResponse
+-- | Creates a value of 'DescribeEnvironmentResourcesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'derrsEnvironmentResources'
+--
+-- * 'derrsStatus'
+describeEnvironmentResourcesResponse
+    :: Int -- ^ 'derrsStatus'
+    -> DescribeEnvironmentResourcesResponse
+describeEnvironmentResourcesResponse pStatus_ =
+    DescribeEnvironmentResourcesResponse'
+    { _derrsEnvironmentResources = Nothing
+    , _derrsStatus = pStatus_
+    }
 
-    request  = post "DescribeEnvironmentResources"
-    response = xmlResponse
+-- | A list of EnvironmentResourceDescription.
+derrsEnvironmentResources :: Lens' DescribeEnvironmentResourcesResponse (Maybe EnvironmentResourceDescription)
+derrsEnvironmentResources = lens _derrsEnvironmentResources (\ s a -> s{_derrsEnvironmentResources = a});
 
-instance FromXML DescribeEnvironmentResourcesResponse where
-    parseXML = withElement "DescribeEnvironmentResourcesResult" $ \x -> DescribeEnvironmentResourcesResponse
-        <$> x .@? "EnvironmentResources"
+-- | The response status code.
+derrsStatus :: Lens' DescribeEnvironmentResourcesResponse Int
+derrsStatus = lens _derrsStatus (\ s a -> s{_derrsStatus = a});
diff --git a/gen/Network/AWS/ElasticBeanstalk/DescribeEnvironments.hs b/gen/Network/AWS/ElasticBeanstalk/DescribeEnvironments.hs
--- a/gen/Network/AWS/ElasticBeanstalk/DescribeEnvironments.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/DescribeEnvironments.hs
@@ -1,182 +1,188 @@
-{-# 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.ElasticBeanstalk.DescribeEnvironments
--- 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.
-
--- | Returns descriptions for existing environments.
+-- Returns descriptions for existing environments.
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html AWS API Reference> for DescribeEnvironments.
 module Network.AWS.ElasticBeanstalk.DescribeEnvironments
     (
-    -- * Request
-      DescribeEnvironments
-    -- ** Request constructor
-    , describeEnvironments
-    -- ** Request lenses
-    , de1ApplicationName
-    , de1EnvironmentIds
-    , de1EnvironmentNames
-    , de1IncludeDeleted
-    , de1IncludedDeletedBackTo
-    , de1VersionLabel
+    -- * Creating a Request
+      describeEnvironments
+    , DescribeEnvironments
+    -- * Request Lenses
+    , dEnvironmentIds
+    , dEnvironmentNames
+    , dVersionLabel
+    , dIncludedDeletedBackTo
+    , dApplicationName
+    , dIncludeDeleted
 
-    -- * Response
-    , DescribeEnvironmentsResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , describeEnvironmentsResponse
-    -- ** Response lenses
-    , derEnvironments
+    , DescribeEnvironmentsResponse
+    -- * Response Lenses
+    , drsEnvironments
+    , drsStatus
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data DescribeEnvironments = DescribeEnvironments
-    { _de1ApplicationName       :: Maybe Text
-    , _de1EnvironmentIds        :: List "member" Text
-    , _de1EnvironmentNames      :: List "member" Text
-    , _de1IncludeDeleted        :: Maybe Bool
-    , _de1IncludedDeletedBackTo :: Maybe ISO8601
-    , _de1VersionLabel          :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'DescribeEnvironments' constructor.
+-- | This documentation target is not reported in the API reference.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'describeEnvironments' smart constructor.
+data DescribeEnvironments = DescribeEnvironments'
+    { _dEnvironmentIds        :: !(Maybe [Text])
+    , _dEnvironmentNames      :: !(Maybe [Text])
+    , _dVersionLabel          :: !(Maybe Text)
+    , _dIncludedDeletedBackTo :: !(Maybe ISO8601)
+    , _dApplicationName       :: !(Maybe Text)
+    , _dIncludeDeleted        :: !(Maybe Bool)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeEnvironments' with the minimum fields required to make a request.
 --
--- * 'de1ApplicationName' @::@ 'Maybe' 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'de1EnvironmentIds' @::@ ['Text']
+-- * 'dEnvironmentIds'
 --
--- * 'de1EnvironmentNames' @::@ ['Text']
+-- * 'dEnvironmentNames'
 --
--- * 'de1IncludeDeleted' @::@ 'Maybe' 'Bool'
+-- * 'dVersionLabel'
 --
--- * 'de1IncludedDeletedBackTo' @::@ 'Maybe' 'UTCTime'
+-- * 'dIncludedDeletedBackTo'
 --
--- * 'de1VersionLabel' @::@ 'Maybe' 'Text'
+-- * 'dApplicationName'
 --
-describeEnvironments :: DescribeEnvironments
-describeEnvironments = DescribeEnvironments
-    { _de1ApplicationName       = Nothing
-    , _de1VersionLabel          = Nothing
-    , _de1EnvironmentIds        = mempty
-    , _de1EnvironmentNames      = mempty
-    , _de1IncludeDeleted        = Nothing
-    , _de1IncludedDeletedBackTo = Nothing
+-- * 'dIncludeDeleted'
+describeEnvironments
+    :: DescribeEnvironments
+describeEnvironments =
+    DescribeEnvironments'
+    { _dEnvironmentIds = Nothing
+    , _dEnvironmentNames = Nothing
+    , _dVersionLabel = Nothing
+    , _dIncludedDeletedBackTo = Nothing
+    , _dApplicationName = Nothing
+    , _dIncludeDeleted = Nothing
     }
 
--- | If specified, AWS Elastic Beanstalk restricts the returned descriptions to
--- include only those that are associated with this application.
-de1ApplicationName :: Lens' DescribeEnvironments (Maybe Text)
-de1ApplicationName =
-    lens _de1ApplicationName (\s a -> s { _de1ApplicationName = a })
+-- | If specified, AWS Elastic Beanstalk restricts the returned descriptions
+-- to include only those that have the specified IDs.
+dEnvironmentIds :: Lens' DescribeEnvironments [Text]
+dEnvironmentIds = lens _dEnvironmentIds (\ s a -> s{_dEnvironmentIds = a}) . _Default . _Coerce;
 
--- | If specified, AWS Elastic Beanstalk restricts the returned descriptions to
--- include only those that have the specified IDs.
-de1EnvironmentIds :: Lens' DescribeEnvironments [Text]
-de1EnvironmentIds =
-    lens _de1EnvironmentIds (\s a -> s { _de1EnvironmentIds = a })
-        . _List
+-- | If specified, AWS Elastic Beanstalk restricts the returned descriptions
+-- to include only those that have the specified names.
+dEnvironmentNames :: Lens' DescribeEnvironments [Text]
+dEnvironmentNames = lens _dEnvironmentNames (\ s a -> s{_dEnvironmentNames = a}) . _Default . _Coerce;
 
--- | If specified, AWS Elastic Beanstalk restricts the returned descriptions to
--- include only those that have the specified names.
-de1EnvironmentNames :: Lens' DescribeEnvironments [Text]
-de1EnvironmentNames =
-    lens _de1EnvironmentNames (\s a -> s { _de1EnvironmentNames = a })
-        . _List
+-- | If specified, AWS Elastic Beanstalk restricts the returned descriptions
+-- to include only those that are associated with this application version.
+dVersionLabel :: Lens' DescribeEnvironments (Maybe Text)
+dVersionLabel = lens _dVersionLabel (\ s a -> s{_dVersionLabel = a});
 
+-- | If specified when 'IncludeDeleted' is set to 'true', then environments
+-- deleted after this date are displayed.
+dIncludedDeletedBackTo :: Lens' DescribeEnvironments (Maybe UTCTime)
+dIncludedDeletedBackTo = lens _dIncludedDeletedBackTo (\ s a -> s{_dIncludedDeletedBackTo = a}) . mapping _Time;
+
+-- | If specified, AWS Elastic Beanstalk restricts the returned descriptions
+-- to include only those that are associated with this application.
+dApplicationName :: Lens' DescribeEnvironments (Maybe Text)
+dApplicationName = lens _dApplicationName (\ s a -> s{_dApplicationName = a});
+
 -- | Indicates whether to include deleted environments:
 --
--- 'true': Environments that have been deleted after 'IncludedDeletedBackTo' are
--- displayed.
+-- 'true': Environments that have been deleted after
+-- 'IncludedDeletedBackTo' are displayed.
 --
 -- 'false': Do not include deleted environments.
-de1IncludeDeleted :: Lens' DescribeEnvironments (Maybe Bool)
-de1IncludeDeleted =
-    lens _de1IncludeDeleted (\s a -> s { _de1IncludeDeleted = a })
+dIncludeDeleted :: Lens' DescribeEnvironments (Maybe Bool)
+dIncludeDeleted = lens _dIncludeDeleted (\ s a -> s{_dIncludeDeleted = a});
 
--- | If specified when 'IncludeDeleted' is set to 'true', then environments deleted
--- after this date are displayed.
-de1IncludedDeletedBackTo :: Lens' DescribeEnvironments (Maybe UTCTime)
-de1IncludedDeletedBackTo =
-    lens _de1IncludedDeletedBackTo
-        (\s a -> s { _de1IncludedDeletedBackTo = a })
-            . mapping _Time
+instance AWSRequest DescribeEnvironments where
+        type Sv DescribeEnvironments = ElasticBeanstalk
+        type Rs DescribeEnvironments =
+             DescribeEnvironmentsResponse
+        request = postQuery
+        response
+          = receiveXMLWrapper "DescribeEnvironmentsResult"
+              (\ s h x ->
+                 DescribeEnvironmentsResponse' <$>
+                   (x .@? "Environments" .!@ mempty >>=
+                      may (parseXMLList "member"))
+                     <*> (pure (fromEnum s)))
 
--- | If specified, AWS Elastic Beanstalk restricts the returned descriptions to
--- include only those that are associated with this application version.
-de1VersionLabel :: Lens' DescribeEnvironments (Maybe Text)
-de1VersionLabel = lens _de1VersionLabel (\s a -> s { _de1VersionLabel = a })
+instance ToHeaders DescribeEnvironments where
+        toHeaders = const mempty
 
-newtype DescribeEnvironmentsResponse = DescribeEnvironmentsResponse
-    { _derEnvironments :: List "member" EnvironmentDescription
-    } deriving (Eq, Read, Show, Monoid, Semigroup)
+instance ToPath DescribeEnvironments where
+        toPath = const "/"
 
-instance GHC.Exts.IsList DescribeEnvironmentsResponse where
-    type Item DescribeEnvironmentsResponse = EnvironmentDescription
+instance ToQuery DescribeEnvironments where
+        toQuery DescribeEnvironments'{..}
+          = mconcat
+              ["Action" =: ("DescribeEnvironments" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "EnvironmentIds" =:
+                 toQuery (toQueryList "member" <$> _dEnvironmentIds),
+               "EnvironmentNames" =:
+                 toQuery
+                   (toQueryList "member" <$> _dEnvironmentNames),
+               "VersionLabel" =: _dVersionLabel,
+               "IncludedDeletedBackTo" =: _dIncludedDeletedBackTo,
+               "ApplicationName" =: _dApplicationName,
+               "IncludeDeleted" =: _dIncludeDeleted]
 
-    fromList = DescribeEnvironmentsResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _derEnvironments
+-- | Result message containing a list of environment descriptions.
+--
+-- /See:/ 'describeEnvironmentsResponse' smart constructor.
+data DescribeEnvironmentsResponse = DescribeEnvironmentsResponse'
+    { _drsEnvironments :: !(Maybe [EnvironmentDescription])
+    , _drsStatus       :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'DescribeEnvironmentsResponse' constructor.
+-- | Creates a value of 'DescribeEnvironmentsResponse' with the minimum fields required to make a request.
 --
--- The fields accessible through corresponding lenses are:
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'derEnvironments' @::@ ['EnvironmentDescription']
+-- * 'drsEnvironments'
 --
-describeEnvironmentsResponse :: DescribeEnvironmentsResponse
-describeEnvironmentsResponse = DescribeEnvironmentsResponse
-    { _derEnvironments = mempty
+-- * 'drsStatus'
+describeEnvironmentsResponse
+    :: Int -- ^ 'drsStatus'
+    -> DescribeEnvironmentsResponse
+describeEnvironmentsResponse pStatus_ =
+    DescribeEnvironmentsResponse'
+    { _drsEnvironments = Nothing
+    , _drsStatus = pStatus_
     }
 
--- | Returns an 'EnvironmentDescription' list.
-derEnvironments :: Lens' DescribeEnvironmentsResponse [EnvironmentDescription]
-derEnvironments = lens _derEnvironments (\s a -> s { _derEnvironments = a }) . _List
-
-instance ToPath DescribeEnvironments where
-    toPath = const "/"
-
-instance ToQuery DescribeEnvironments where
-    toQuery DescribeEnvironments{..} = mconcat
-        [ "ApplicationName"       =? _de1ApplicationName
-        , "EnvironmentIds"        =? _de1EnvironmentIds
-        , "EnvironmentNames"      =? _de1EnvironmentNames
-        , "IncludeDeleted"        =? _de1IncludeDeleted
-        , "IncludedDeletedBackTo" =? _de1IncludedDeletedBackTo
-        , "VersionLabel"          =? _de1VersionLabel
-        ]
-
-instance ToHeaders DescribeEnvironments
-
-instance AWSRequest DescribeEnvironments where
-    type Sv DescribeEnvironments = ElasticBeanstalk
-    type Rs DescribeEnvironments = DescribeEnvironmentsResponse
-
-    request  = post "DescribeEnvironments"
-    response = xmlResponse
+-- | Returns an EnvironmentDescription list.
+drsEnvironments :: Lens' DescribeEnvironmentsResponse [EnvironmentDescription]
+drsEnvironments = lens _drsEnvironments (\ s a -> s{_drsEnvironments = a}) . _Default . _Coerce;
 
-instance FromXML DescribeEnvironmentsResponse where
-    parseXML = withElement "DescribeEnvironmentsResult" $ \x -> DescribeEnvironmentsResponse
-        <$> x .@? "Environments" .!@ mempty
+-- | The response status code.
+drsStatus :: Lens' DescribeEnvironmentsResponse Int
+drsStatus = lens _drsStatus (\ s a -> s{_drsStatus = a});
diff --git a/gen/Network/AWS/ElasticBeanstalk/DescribeEvents.hs b/gen/Network/AWS/ElasticBeanstalk/DescribeEvents.hs
--- a/gen/Network/AWS/ElasticBeanstalk/DescribeEvents.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/DescribeEvents.hs
@@ -1,238 +1,261 @@
-{-# 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.ElasticBeanstalk.DescribeEvents
--- 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.
-
--- | Returns list of event descriptions matching criteria up to the last 6 weeks.
+-- Returns list of event descriptions matching criteria up to the last 6
+-- weeks.
 --
--- This action returns the most recent 1,000 events from the specified 'NextToken'.
+-- This action returns the most recent 1,000 events from the specified
+-- 'NextToken'.
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEvents.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEvents.html AWS API Reference> for DescribeEvents.
+--
+-- This operation returns paginated results.
 module Network.AWS.ElasticBeanstalk.DescribeEvents
     (
-    -- * Request
-      DescribeEvents
-    -- ** Request constructor
-    , describeEvents
-    -- ** Request lenses
-    , deApplicationName
-    , deEndTime
-    , deEnvironmentId
-    , deEnvironmentName
-    , deMaxRecords
-    , deNextToken
+    -- * Creating a Request
+      describeEvents
+    , DescribeEvents
+    -- * Request Lenses
     , deRequestId
-    , deSeverity
-    , deStartTime
     , deTemplateName
+    , deStartTime
+    , deSeverity
+    , deNextToken
     , deVersionLabel
+    , deMaxRecords
+    , deEnvironmentName
+    , deEndTime
+    , deApplicationName
+    , deEnvironmentId
 
-    -- * Response
-    , DescribeEventsResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , describeEventsResponse
-    -- ** Response lenses
-    , derEvents
-    , derNextToken
+    , DescribeEventsResponse
+    -- * Response Lenses
+    , dersNextToken
+    , dersEvents
+    , dersStatus
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data DescribeEvents = DescribeEvents
-    { _deApplicationName :: Maybe Text
-    , _deEndTime         :: Maybe ISO8601
-    , _deEnvironmentId   :: Maybe Text
-    , _deEnvironmentName :: Maybe Text
-    , _deMaxRecords      :: Maybe Nat
-    , _deNextToken       :: Maybe Text
-    , _deRequestId       :: Maybe Text
-    , _deSeverity        :: Maybe EventSeverity
-    , _deStartTime       :: Maybe ISO8601
-    , _deTemplateName    :: Maybe Text
-    , _deVersionLabel    :: Maybe Text
-    } deriving (Eq, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Pager
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'DescribeEvents' constructor.
+-- | This documentation target is not reported in the API reference.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'describeEvents' smart constructor.
+data DescribeEvents = DescribeEvents'
+    { _deRequestId       :: !(Maybe Text)
+    , _deTemplateName    :: !(Maybe Text)
+    , _deStartTime       :: !(Maybe ISO8601)
+    , _deSeverity        :: !(Maybe EventSeverity)
+    , _deNextToken       :: !(Maybe Text)
+    , _deVersionLabel    :: !(Maybe Text)
+    , _deMaxRecords      :: !(Maybe Nat)
+    , _deEnvironmentName :: !(Maybe Text)
+    , _deEndTime         :: !(Maybe ISO8601)
+    , _deApplicationName :: !(Maybe Text)
+    , _deEnvironmentId   :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeEvents' with the minimum fields required to make a request.
 --
--- * 'deApplicationName' @::@ 'Maybe' 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'deEndTime' @::@ 'Maybe' 'UTCTime'
+-- * 'deRequestId'
 --
--- * 'deEnvironmentId' @::@ 'Maybe' 'Text'
+-- * 'deTemplateName'
 --
--- * 'deEnvironmentName' @::@ 'Maybe' 'Text'
+-- * 'deStartTime'
 --
--- * 'deMaxRecords' @::@ 'Maybe' 'Natural'
+-- * 'deSeverity'
 --
--- * 'deNextToken' @::@ 'Maybe' 'Text'
+-- * 'deNextToken'
 --
--- * 'deRequestId' @::@ 'Maybe' 'Text'
+-- * 'deVersionLabel'
 --
--- * 'deSeverity' @::@ 'Maybe' 'EventSeverity'
+-- * 'deMaxRecords'
 --
--- * 'deStartTime' @::@ 'Maybe' 'UTCTime'
+-- * 'deEnvironmentName'
 --
--- * 'deTemplateName' @::@ 'Maybe' 'Text'
+-- * 'deEndTime'
 --
--- * 'deVersionLabel' @::@ 'Maybe' 'Text'
+-- * 'deApplicationName'
 --
-describeEvents :: DescribeEvents
-describeEvents = DescribeEvents
-    { _deApplicationName = Nothing
-    , _deVersionLabel    = Nothing
-    , _deTemplateName    = Nothing
-    , _deEnvironmentId   = Nothing
+-- * 'deEnvironmentId'
+describeEvents
+    :: DescribeEvents
+describeEvents =
+    DescribeEvents'
+    { _deRequestId = Nothing
+    , _deTemplateName = Nothing
+    , _deStartTime = Nothing
+    , _deSeverity = Nothing
+    , _deNextToken = Nothing
+    , _deVersionLabel = Nothing
+    , _deMaxRecords = Nothing
     , _deEnvironmentName = Nothing
-    , _deRequestId       = Nothing
-    , _deSeverity        = Nothing
-    , _deStartTime       = Nothing
-    , _deEndTime         = Nothing
-    , _deMaxRecords      = Nothing
-    , _deNextToken       = Nothing
+    , _deEndTime = Nothing
+    , _deApplicationName = Nothing
+    , _deEnvironmentId = Nothing
     }
 
--- | If specified, AWS Elastic Beanstalk restricts the returned descriptions to
--- include only those associated with this application.
-deApplicationName :: Lens' DescribeEvents (Maybe Text)
-deApplicationName =
-    lens _deApplicationName (\s a -> s { _deApplicationName = a })
-
--- | If specified, AWS Elastic Beanstalk restricts the returned descriptions to
--- those that occur up to, but not including, the 'EndTime'.
-deEndTime :: Lens' DescribeEvents (Maybe UTCTime)
-deEndTime = lens _deEndTime (\s a -> s { _deEndTime = a }) . mapping _Time
-
--- | If specified, AWS Elastic Beanstalk restricts the returned descriptions to
--- those associated with this environment.
-deEnvironmentId :: Lens' DescribeEvents (Maybe Text)
-deEnvironmentId = lens _deEnvironmentId (\s a -> s { _deEnvironmentId = a })
-
--- | If specified, AWS Elastic Beanstalk restricts the returned descriptions to
--- those associated with this environment.
-deEnvironmentName :: Lens' DescribeEvents (Maybe Text)
-deEnvironmentName =
-    lens _deEnvironmentName (\s a -> s { _deEnvironmentName = a })
-
--- | Specifies the maximum number of events that can be returned, beginning with
--- the most recent event.
-deMaxRecords :: Lens' DescribeEvents (Maybe Natural)
-deMaxRecords = lens _deMaxRecords (\s a -> s { _deMaxRecords = a }) . mapping _Nat
-
--- | Pagination token. If specified, the events return the next batch of results.
-deNextToken :: Lens' DescribeEvents (Maybe Text)
-deNextToken = lens _deNextToken (\s a -> s { _deNextToken = a })
-
 -- | If specified, AWS Elastic Beanstalk restricts the described events to
 -- include only those associated with this request ID.
 deRequestId :: Lens' DescribeEvents (Maybe Text)
-deRequestId = lens _deRequestId (\s a -> s { _deRequestId = a })
+deRequestId = lens _deRequestId (\ s a -> s{_deRequestId = a});
 
+-- | If specified, AWS Elastic Beanstalk restricts the returned descriptions
+-- to those that are associated with this environment configuration.
+deTemplateName :: Lens' DescribeEvents (Maybe Text)
+deTemplateName = lens _deTemplateName (\ s a -> s{_deTemplateName = a});
+
+-- | If specified, AWS Elastic Beanstalk restricts the returned descriptions
+-- to those that occur on or after this time.
+deStartTime :: Lens' DescribeEvents (Maybe UTCTime)
+deStartTime = lens _deStartTime (\ s a -> s{_deStartTime = a}) . mapping _Time;
+
 -- | If specified, limits the events returned from this call to include only
 -- those with the specified severity or higher.
 deSeverity :: Lens' DescribeEvents (Maybe EventSeverity)
-deSeverity = lens _deSeverity (\s a -> s { _deSeverity = a })
-
--- | If specified, AWS Elastic Beanstalk restricts the returned descriptions to
--- those that occur on or after this time.
-deStartTime :: Lens' DescribeEvents (Maybe UTCTime)
-deStartTime = lens _deStartTime (\s a -> s { _deStartTime = a }) . mapping _Time
+deSeverity = lens _deSeverity (\ s a -> s{_deSeverity = a});
 
--- | If specified, AWS Elastic Beanstalk restricts the returned descriptions to
--- those that are associated with this environment configuration.
-deTemplateName :: Lens' DescribeEvents (Maybe Text)
-deTemplateName = lens _deTemplateName (\s a -> s { _deTemplateName = a })
+-- | Pagination token. If specified, the events return the next batch of
+-- results.
+deNextToken :: Lens' DescribeEvents (Maybe Text)
+deNextToken = lens _deNextToken (\ s a -> s{_deNextToken = a});
 
--- | If specified, AWS Elastic Beanstalk restricts the returned descriptions to
--- those associated with this application version.
+-- | If specified, AWS Elastic Beanstalk restricts the returned descriptions
+-- to those associated with this application version.
 deVersionLabel :: Lens' DescribeEvents (Maybe Text)
-deVersionLabel = lens _deVersionLabel (\s a -> s { _deVersionLabel = a })
+deVersionLabel = lens _deVersionLabel (\ s a -> s{_deVersionLabel = a});
 
-data DescribeEventsResponse = DescribeEventsResponse
-    { _derEvents    :: List "member" EventDescription
-    , _derNextToken :: Maybe Text
-    } deriving (Eq, Read, Show)
+-- | Specifies the maximum number of events that can be returned, beginning
+-- with the most recent event.
+deMaxRecords :: Lens' DescribeEvents (Maybe Natural)
+deMaxRecords = lens _deMaxRecords (\ s a -> s{_deMaxRecords = a}) . mapping _Nat;
 
--- | 'DescribeEventsResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'derEvents' @::@ ['EventDescription']
---
--- * 'derNextToken' @::@ 'Maybe' 'Text'
---
-describeEventsResponse :: DescribeEventsResponse
-describeEventsResponse = DescribeEventsResponse
-    { _derEvents    = mempty
-    , _derNextToken = Nothing
-    }
+-- | If specified, AWS Elastic Beanstalk restricts the returned descriptions
+-- to those associated with this environment.
+deEnvironmentName :: Lens' DescribeEvents (Maybe Text)
+deEnvironmentName = lens _deEnvironmentName (\ s a -> s{_deEnvironmentName = a});
 
--- | A list of 'EventDescription'.
-derEvents :: Lens' DescribeEventsResponse [EventDescription]
-derEvents = lens _derEvents (\s a -> s { _derEvents = a }) . _List
+-- | If specified, AWS Elastic Beanstalk restricts the returned descriptions
+-- to those that occur up to, but not including, the 'EndTime'.
+deEndTime :: Lens' DescribeEvents (Maybe UTCTime)
+deEndTime = lens _deEndTime (\ s a -> s{_deEndTime = a}) . mapping _Time;
 
--- | If returned, this indicates that there are more results to obtain. Use this
--- token in the next 'DescribeEvents' call to get the next batch of events.
-derNextToken :: Lens' DescribeEventsResponse (Maybe Text)
-derNextToken = lens _derNextToken (\s a -> s { _derNextToken = a })
+-- | If specified, AWS Elastic Beanstalk restricts the returned descriptions
+-- to include only those associated with this application.
+deApplicationName :: Lens' DescribeEvents (Maybe Text)
+deApplicationName = lens _deApplicationName (\ s a -> s{_deApplicationName = a});
 
+-- | If specified, AWS Elastic Beanstalk restricts the returned descriptions
+-- to those associated with this environment.
+deEnvironmentId :: Lens' DescribeEvents (Maybe Text)
+deEnvironmentId = lens _deEnvironmentId (\ s a -> s{_deEnvironmentId = a});
+
+instance AWSPager DescribeEvents where
+        page rq rs
+          | stop (rs ^. dersNextToken) = Nothing
+          | stop (rs ^. dersEvents) = Nothing
+          | otherwise =
+            Just $ rq & deNextToken .~ rs ^. dersNextToken
+
+instance AWSRequest DescribeEvents where
+        type Sv DescribeEvents = ElasticBeanstalk
+        type Rs DescribeEvents = DescribeEventsResponse
+        request = postQuery
+        response
+          = receiveXMLWrapper "DescribeEventsResult"
+              (\ s h x ->
+                 DescribeEventsResponse' <$>
+                   (x .@? "NextToken") <*>
+                     (x .@? "Events" .!@ mempty >>=
+                        may (parseXMLList "member"))
+                     <*> (pure (fromEnum s)))
+
+instance ToHeaders DescribeEvents where
+        toHeaders = const mempty
+
 instance ToPath DescribeEvents where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery DescribeEvents where
-    toQuery DescribeEvents{..} = mconcat
-        [ "ApplicationName" =? _deApplicationName
-        , "EndTime"         =? _deEndTime
-        , "EnvironmentId"   =? _deEnvironmentId
-        , "EnvironmentName" =? _deEnvironmentName
-        , "MaxRecords"      =? _deMaxRecords
-        , "NextToken"       =? _deNextToken
-        , "RequestId"       =? _deRequestId
-        , "Severity"        =? _deSeverity
-        , "StartTime"       =? _deStartTime
-        , "TemplateName"    =? _deTemplateName
-        , "VersionLabel"    =? _deVersionLabel
-        ]
+        toQuery DescribeEvents'{..}
+          = mconcat
+              ["Action" =: ("DescribeEvents" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "RequestId" =: _deRequestId,
+               "TemplateName" =: _deTemplateName,
+               "StartTime" =: _deStartTime,
+               "Severity" =: _deSeverity,
+               "NextToken" =: _deNextToken,
+               "VersionLabel" =: _deVersionLabel,
+               "MaxRecords" =: _deMaxRecords,
+               "EnvironmentName" =: _deEnvironmentName,
+               "EndTime" =: _deEndTime,
+               "ApplicationName" =: _deApplicationName,
+               "EnvironmentId" =: _deEnvironmentId]
 
-instance ToHeaders DescribeEvents
+-- | Result message wrapping a list of event descriptions.
+--
+-- /See:/ 'describeEventsResponse' smart constructor.
+data DescribeEventsResponse = DescribeEventsResponse'
+    { _dersNextToken :: !(Maybe Text)
+    , _dersEvents    :: !(Maybe [EventDescription])
+    , _dersStatus    :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest DescribeEvents where
-    type Sv DescribeEvents = ElasticBeanstalk
-    type Rs DescribeEvents = DescribeEventsResponse
+-- | Creates a value of 'DescribeEventsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dersNextToken'
+--
+-- * 'dersEvents'
+--
+-- * 'dersStatus'
+describeEventsResponse
+    :: Int -- ^ 'dersStatus'
+    -> DescribeEventsResponse
+describeEventsResponse pStatus_ =
+    DescribeEventsResponse'
+    { _dersNextToken = Nothing
+    , _dersEvents = Nothing
+    , _dersStatus = pStatus_
+    }
 
-    request  = post "DescribeEvents"
-    response = xmlResponse
+-- | If returned, this indicates that there are more results to obtain. Use
+-- this token in the next DescribeEvents call to get the next batch of
+-- events.
+dersNextToken :: Lens' DescribeEventsResponse (Maybe Text)
+dersNextToken = lens _dersNextToken (\ s a -> s{_dersNextToken = a});
 
-instance FromXML DescribeEventsResponse where
-    parseXML = withElement "DescribeEventsResult" $ \x -> DescribeEventsResponse
-        <$> x .@? "Events" .!@ mempty
-        <*> x .@? "NextToken"
+-- | A list of EventDescription.
+dersEvents :: Lens' DescribeEventsResponse [EventDescription]
+dersEvents = lens _dersEvents (\ s a -> s{_dersEvents = a}) . _Default . _Coerce;
 
-instance AWSPager DescribeEvents where
-    page rq rs
-        | stop (rs ^. derNextToken) = Nothing
-        | otherwise = (\x -> rq & deNextToken ?~ x)
-            <$> (rs ^. derNextToken)
+-- | The response status code.
+dersStatus :: Lens' DescribeEventsResponse Int
+dersStatus = lens _dersStatus (\ s a -> s{_dersStatus = a});
diff --git a/gen/Network/AWS/ElasticBeanstalk/DescribeInstancesHealth.hs b/gen/Network/AWS/ElasticBeanstalk/DescribeInstancesHealth.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/ElasticBeanstalk/DescribeInstancesHealth.hs
@@ -0,0 +1,184 @@
+{-# 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.ElasticBeanstalk.DescribeInstancesHealth
+-- 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)
+--
+-- Returns more detailed information about the health of the specified
+-- instances (for example, CPU utilization, load average, and causes). The
+-- __DescribeInstancesHealth__ operation is only available with AWS Elastic
+-- Beanstalk Enhanced Health.
+--
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeInstancesHealth.html AWS API Reference> for DescribeInstancesHealth.
+module Network.AWS.ElasticBeanstalk.DescribeInstancesHealth
+    (
+    -- * Creating a Request
+      describeInstancesHealth
+    , DescribeInstancesHealth
+    -- * Request Lenses
+    , dihNextToken
+    , dihEnvironmentName
+    , dihEnvironmentId
+    , dihAttributeNames
+
+    -- * Destructuring the Response
+    , describeInstancesHealthResponse
+    , DescribeInstancesHealthResponse
+    -- * Response Lenses
+    , dihrsInstanceHealthList
+    , dihrsNextToken
+    , dihrsRefreshedAt
+    , dihrsStatus
+    ) where
+
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | See the example below to learn how to create a request body.
+--
+-- /See:/ 'describeInstancesHealth' smart constructor.
+data DescribeInstancesHealth = DescribeInstancesHealth'
+    { _dihNextToken       :: !(Maybe Text)
+    , _dihEnvironmentName :: !(Maybe Text)
+    , _dihEnvironmentId   :: !(Maybe Text)
+    , _dihAttributeNames  :: !(Maybe [InstancesHealthAttribute])
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeInstancesHealth' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dihNextToken'
+--
+-- * 'dihEnvironmentName'
+--
+-- * 'dihEnvironmentId'
+--
+-- * 'dihAttributeNames'
+describeInstancesHealth
+    :: DescribeInstancesHealth
+describeInstancesHealth =
+    DescribeInstancesHealth'
+    { _dihNextToken = Nothing
+    , _dihEnvironmentName = Nothing
+    , _dihEnvironmentId = Nothing
+    , _dihAttributeNames = Nothing
+    }
+
+-- | Specifies the next token of the request.
+dihNextToken :: Lens' DescribeInstancesHealth (Maybe Text)
+dihNextToken = lens _dihNextToken (\ s a -> s{_dihNextToken = a});
+
+-- | Specifies the AWS Elastic Beanstalk environment name.
+dihEnvironmentName :: Lens' DescribeInstancesHealth (Maybe Text)
+dihEnvironmentName = lens _dihEnvironmentName (\ s a -> s{_dihEnvironmentName = a});
+
+-- | Specifies the AWS Elastic Beanstalk environment ID.
+dihEnvironmentId :: Lens' DescribeInstancesHealth (Maybe Text)
+dihEnvironmentId = lens _dihEnvironmentId (\ s a -> s{_dihEnvironmentId = a});
+
+-- | Specifies the response elements you wish to receive. If no attribute
+-- names are specified, AWS Elastic Beanstalk returns all response
+-- elements.
+dihAttributeNames :: Lens' DescribeInstancesHealth [InstancesHealthAttribute]
+dihAttributeNames = lens _dihAttributeNames (\ s a -> s{_dihAttributeNames = a}) . _Default . _Coerce;
+
+instance AWSRequest DescribeInstancesHealth where
+        type Sv DescribeInstancesHealth = ElasticBeanstalk
+        type Rs DescribeInstancesHealth =
+             DescribeInstancesHealthResponse
+        request = postQuery
+        response
+          = receiveXMLWrapper "DescribeInstancesHealthResult"
+              (\ s h x ->
+                 DescribeInstancesHealthResponse' <$>
+                   (x .@? "InstanceHealthList" .!@ mempty >>=
+                      may (parseXMLList "member"))
+                     <*> (x .@? "NextToken")
+                     <*> (x .@? "RefreshedAt")
+                     <*> (pure (fromEnum s)))
+
+instance ToHeaders DescribeInstancesHealth where
+        toHeaders = const mempty
+
+instance ToPath DescribeInstancesHealth where
+        toPath = const "/"
+
+instance ToQuery DescribeInstancesHealth where
+        toQuery DescribeInstancesHealth'{..}
+          = mconcat
+              ["Action" =:
+                 ("DescribeInstancesHealth" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "NextToken" =: _dihNextToken,
+               "EnvironmentName" =: _dihEnvironmentName,
+               "EnvironmentId" =: _dihEnvironmentId,
+               "AttributeNames" =:
+                 toQuery
+                   (toQueryList "member" <$> _dihAttributeNames)]
+
+-- | See the example below for a sample response.
+--
+-- /See:/ 'describeInstancesHealthResponse' smart constructor.
+data DescribeInstancesHealthResponse = DescribeInstancesHealthResponse'
+    { _dihrsInstanceHealthList :: !(Maybe [SingleInstanceHealth])
+    , _dihrsNextToken          :: !(Maybe Text)
+    , _dihrsRefreshedAt        :: !(Maybe ISO8601)
+    , _dihrsStatus             :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeInstancesHealthResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dihrsInstanceHealthList'
+--
+-- * 'dihrsNextToken'
+--
+-- * 'dihrsRefreshedAt'
+--
+-- * 'dihrsStatus'
+describeInstancesHealthResponse
+    :: Int -- ^ 'dihrsStatus'
+    -> DescribeInstancesHealthResponse
+describeInstancesHealthResponse pStatus_ =
+    DescribeInstancesHealthResponse'
+    { _dihrsInstanceHealthList = Nothing
+    , _dihrsNextToken = Nothing
+    , _dihrsRefreshedAt = Nothing
+    , _dihrsStatus = pStatus_
+    }
+
+-- | Contains the response body with information about the health of the
+-- instance.
+dihrsInstanceHealthList :: Lens' DescribeInstancesHealthResponse [SingleInstanceHealth]
+dihrsInstanceHealthList = lens _dihrsInstanceHealthList (\ s a -> s{_dihrsInstanceHealthList = a}) . _Default . _Coerce;
+
+-- | The next token.
+dihrsNextToken :: Lens' DescribeInstancesHealthResponse (Maybe Text)
+dihrsNextToken = lens _dihrsNextToken (\ s a -> s{_dihrsNextToken = a});
+
+-- | The date and time the information was last refreshed.
+dihrsRefreshedAt :: Lens' DescribeInstancesHealthResponse (Maybe UTCTime)
+dihrsRefreshedAt = lens _dihrsRefreshedAt (\ s a -> s{_dihrsRefreshedAt = a}) . mapping _Time;
+
+-- | The response status code.
+dihrsStatus :: Lens' DescribeInstancesHealthResponse Int
+dihrsStatus = lens _dihrsStatus (\ s a -> s{_dihrsStatus = a});
diff --git a/gen/Network/AWS/ElasticBeanstalk/ListAvailableSolutionStacks.hs b/gen/Network/AWS/ElasticBeanstalk/ListAvailableSolutionStacks.hs
--- a/gen/Network/AWS/ElasticBeanstalk/ListAvailableSolutionStacks.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/ListAvailableSolutionStacks.hs
@@ -1,106 +1,126 @@
-{-# 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.ElasticBeanstalk.ListAvailableSolutionStacks
--- 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.
-
--- | Returns a list of the available solution stack names.
+-- Returns a list of the available solution stack names.
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ListAvailableSolutionStacks.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ListAvailableSolutionStacks.html AWS API Reference> for ListAvailableSolutionStacks.
 module Network.AWS.ElasticBeanstalk.ListAvailableSolutionStacks
     (
-    -- * Request
-      ListAvailableSolutionStacks
-    -- ** Request constructor
-    , listAvailableSolutionStacks
+    -- * Creating a Request
+      listAvailableSolutionStacks
+    , ListAvailableSolutionStacks
 
-    -- * Response
-    , ListAvailableSolutionStacksResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , listAvailableSolutionStacksResponse
-    -- ** Response lenses
-    , lassrSolutionStackDetails
-    , lassrSolutionStacks
+    , ListAvailableSolutionStacksResponse
+    -- * Response Lenses
+    , lassrsSolutionStacks
+    , lassrsSolutionStackDetails
+    , lassrsStatus
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data ListAvailableSolutionStacks = ListAvailableSolutionStacks
-    deriving (Eq, Ord, Read, Show, Generic)
-
--- | 'ListAvailableSolutionStacks' constructor.
-listAvailableSolutionStacks :: ListAvailableSolutionStacks
-listAvailableSolutionStacks = ListAvailableSolutionStacks
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-data ListAvailableSolutionStacksResponse = ListAvailableSolutionStacksResponse
-    { _lassrSolutionStackDetails :: List "member" SolutionStackDescription
-    , _lassrSolutionStacks       :: List "member" Text
-    } deriving (Eq, Read, Show)
+-- | /See:/ 'listAvailableSolutionStacks' smart constructor.
+data ListAvailableSolutionStacks =
+    ListAvailableSolutionStacks'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'ListAvailableSolutionStacksResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'lassrSolutionStackDetails' @::@ ['SolutionStackDescription']
---
--- * 'lassrSolutionStacks' @::@ ['Text']
+-- | Creates a value of 'ListAvailableSolutionStacks' with the minimum fields required to make a request.
 --
-listAvailableSolutionStacksResponse :: ListAvailableSolutionStacksResponse
-listAvailableSolutionStacksResponse = ListAvailableSolutionStacksResponse
-    { _lassrSolutionStacks       = mempty
-    , _lassrSolutionStackDetails = mempty
-    }
+listAvailableSolutionStacks
+    :: ListAvailableSolutionStacks
+listAvailableSolutionStacks = ListAvailableSolutionStacks'
 
--- | A list of available solution stacks and their 'SolutionStackDescription'.
-lassrSolutionStackDetails :: Lens' ListAvailableSolutionStacksResponse [SolutionStackDescription]
-lassrSolutionStackDetails =
-    lens _lassrSolutionStackDetails
-        (\s a -> s { _lassrSolutionStackDetails = a })
-            . _List
+instance AWSRequest ListAvailableSolutionStacks where
+        type Sv ListAvailableSolutionStacks =
+             ElasticBeanstalk
+        type Rs ListAvailableSolutionStacks =
+             ListAvailableSolutionStacksResponse
+        request = postQuery
+        response
+          = receiveXMLWrapper
+              "ListAvailableSolutionStacksResult"
+              (\ s h x ->
+                 ListAvailableSolutionStacksResponse' <$>
+                   (x .@? "SolutionStacks" .!@ mempty >>=
+                      may (parseXMLList "member"))
+                     <*>
+                     (x .@? "SolutionStackDetails" .!@ mempty >>=
+                        may (parseXMLList "member"))
+                     <*> (pure (fromEnum s)))
 
--- | A list of available solution stacks.
-lassrSolutionStacks :: Lens' ListAvailableSolutionStacksResponse [Text]
-lassrSolutionStacks =
-    lens _lassrSolutionStacks (\s a -> s { _lassrSolutionStacks = a })
-        . _List
+instance ToHeaders ListAvailableSolutionStacks where
+        toHeaders = const mempty
 
 instance ToPath ListAvailableSolutionStacks where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery ListAvailableSolutionStacks where
-    toQuery = const mempty
+        toQuery
+          = const
+              (mconcat
+                 ["Action" =:
+                    ("ListAvailableSolutionStacks" :: ByteString),
+                  "Version" =: ("2010-12-01" :: ByteString)])
 
-instance ToHeaders ListAvailableSolutionStacks
+-- | A list of available AWS Elastic Beanstalk solution stacks.
+--
+-- /See:/ 'listAvailableSolutionStacksResponse' smart constructor.
+data ListAvailableSolutionStacksResponse = ListAvailableSolutionStacksResponse'
+    { _lassrsSolutionStacks       :: !(Maybe [Text])
+    , _lassrsSolutionStackDetails :: !(Maybe [SolutionStackDescription])
+    , _lassrsStatus               :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest ListAvailableSolutionStacks where
-    type Sv ListAvailableSolutionStacks = ElasticBeanstalk
-    type Rs ListAvailableSolutionStacks = ListAvailableSolutionStacksResponse
+-- | Creates a value of 'ListAvailableSolutionStacksResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lassrsSolutionStacks'
+--
+-- * 'lassrsSolutionStackDetails'
+--
+-- * 'lassrsStatus'
+listAvailableSolutionStacksResponse
+    :: Int -- ^ 'lassrsStatus'
+    -> ListAvailableSolutionStacksResponse
+listAvailableSolutionStacksResponse pStatus_ =
+    ListAvailableSolutionStacksResponse'
+    { _lassrsSolutionStacks = Nothing
+    , _lassrsSolutionStackDetails = Nothing
+    , _lassrsStatus = pStatus_
+    }
 
-    request  = post "ListAvailableSolutionStacks"
-    response = xmlResponse
+-- | A list of available solution stacks.
+lassrsSolutionStacks :: Lens' ListAvailableSolutionStacksResponse [Text]
+lassrsSolutionStacks = lens _lassrsSolutionStacks (\ s a -> s{_lassrsSolutionStacks = a}) . _Default . _Coerce;
 
-instance FromXML ListAvailableSolutionStacksResponse where
-    parseXML = withElement "ListAvailableSolutionStacksResult" $ \x -> ListAvailableSolutionStacksResponse
-        <$> x .@? "SolutionStackDetails" .!@ mempty
-        <*> x .@? "SolutionStacks" .!@ mempty
+-- | A list of available solution stacks and their SolutionStackDescription.
+lassrsSolutionStackDetails :: Lens' ListAvailableSolutionStacksResponse [SolutionStackDescription]
+lassrsSolutionStackDetails = lens _lassrsSolutionStackDetails (\ s a -> s{_lassrsSolutionStackDetails = a}) . _Default . _Coerce;
+
+-- | The response status code.
+lassrsStatus :: Lens' ListAvailableSolutionStacksResponse Int
+lassrsStatus = lens _lassrsStatus (\ s a -> s{_lassrsStatus = a});
diff --git a/gen/Network/AWS/ElasticBeanstalk/RebuildEnvironment.hs b/gen/Network/AWS/ElasticBeanstalk/RebuildEnvironment.hs
--- a/gen/Network/AWS/ElasticBeanstalk/RebuildEnvironment.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/RebuildEnvironment.hs
@@ -1,108 +1,115 @@
-{-# 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.ElasticBeanstalk.RebuildEnvironment
--- 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 and recreates all of the AWS resources (for example: the Auto
--- Scaling group, load balancer, etc.) for a specified environment and forces a
--- restart.
+-- Deletes and recreates all of the AWS resources (for example: the Auto
+-- Scaling group, load balancer, etc.) for a specified environment and
+-- forces a restart.
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_RebuildEnvironment.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_RebuildEnvironment.html AWS API Reference> for RebuildEnvironment.
 module Network.AWS.ElasticBeanstalk.RebuildEnvironment
     (
-    -- * Request
-      RebuildEnvironment
-    -- ** Request constructor
-    , rebuildEnvironment
-    -- ** Request lenses
-    , reEnvironmentId
+    -- * Creating a Request
+      rebuildEnvironment
+    , RebuildEnvironment
+    -- * Request Lenses
     , reEnvironmentName
+    , reEnvironmentId
 
-    -- * Response
-    , RebuildEnvironmentResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , rebuildEnvironmentResponse
+    , RebuildEnvironmentResponse
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data RebuildEnvironment = RebuildEnvironment
-    { _reEnvironmentId   :: Maybe Text
-    , _reEnvironmentName :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'RebuildEnvironment' constructor.
+-- |
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'rebuildEnvironment' smart constructor.
+data RebuildEnvironment = RebuildEnvironment'
+    { _reEnvironmentName :: !(Maybe Text)
+    , _reEnvironmentId   :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RebuildEnvironment' with the minimum fields required to make a request.
 --
--- * 'reEnvironmentId' @::@ 'Maybe' 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'reEnvironmentName' @::@ 'Maybe' 'Text'
+-- * 'reEnvironmentName'
 --
-rebuildEnvironment :: RebuildEnvironment
-rebuildEnvironment = RebuildEnvironment
-    { _reEnvironmentId   = Nothing
-    , _reEnvironmentName = Nothing
+-- * 'reEnvironmentId'
+rebuildEnvironment
+    :: RebuildEnvironment
+rebuildEnvironment =
+    RebuildEnvironment'
+    { _reEnvironmentName = Nothing
+    , _reEnvironmentId = Nothing
     }
 
--- | The ID of the environment to rebuild.
---
--- Condition: You must specify either this or an EnvironmentName, or both. If
--- you do not specify either, AWS Elastic Beanstalk returns 'MissingRequiredParameter' error.
-reEnvironmentId :: Lens' RebuildEnvironment (Maybe Text)
-reEnvironmentId = lens _reEnvironmentId (\s a -> s { _reEnvironmentId = a })
-
 -- | The name of the environment to rebuild.
 --
 -- Condition: You must specify either this or an EnvironmentId, or both. If
--- you do not specify either, AWS Elastic Beanstalk returns 'MissingRequiredParameter' error.
+-- you do not specify either, AWS Elastic Beanstalk returns
+-- 'MissingRequiredParameter' error.
 reEnvironmentName :: Lens' RebuildEnvironment (Maybe Text)
-reEnvironmentName =
-    lens _reEnvironmentName (\s a -> s { _reEnvironmentName = a })
+reEnvironmentName = lens _reEnvironmentName (\ s a -> s{_reEnvironmentName = a});
 
-data RebuildEnvironmentResponse = RebuildEnvironmentResponse
-    deriving (Eq, Ord, Read, Show, Generic)
+-- | The ID of the environment to rebuild.
+--
+-- Condition: You must specify either this or an EnvironmentName, or both.
+-- If you do not specify either, AWS Elastic Beanstalk returns
+-- 'MissingRequiredParameter' error.
+reEnvironmentId :: Lens' RebuildEnvironment (Maybe Text)
+reEnvironmentId = lens _reEnvironmentId (\ s a -> s{_reEnvironmentId = a});
 
--- | 'RebuildEnvironmentResponse' constructor.
-rebuildEnvironmentResponse :: RebuildEnvironmentResponse
-rebuildEnvironmentResponse = RebuildEnvironmentResponse
+instance AWSRequest RebuildEnvironment where
+        type Sv RebuildEnvironment = ElasticBeanstalk
+        type Rs RebuildEnvironment =
+             RebuildEnvironmentResponse
+        request = postQuery
+        response = receiveNull RebuildEnvironmentResponse'
 
+instance ToHeaders RebuildEnvironment where
+        toHeaders = const mempty
+
 instance ToPath RebuildEnvironment where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery RebuildEnvironment where
-    toQuery RebuildEnvironment{..} = mconcat
-        [ "EnvironmentId"   =? _reEnvironmentId
-        , "EnvironmentName" =? _reEnvironmentName
-        ]
-
-instance ToHeaders RebuildEnvironment
+        toQuery RebuildEnvironment'{..}
+          = mconcat
+              ["Action" =: ("RebuildEnvironment" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "EnvironmentName" =: _reEnvironmentName,
+               "EnvironmentId" =: _reEnvironmentId]
 
-instance AWSRequest RebuildEnvironment where
-    type Sv RebuildEnvironment = ElasticBeanstalk
-    type Rs RebuildEnvironment = RebuildEnvironmentResponse
+-- | /See:/ 'rebuildEnvironmentResponse' smart constructor.
+data RebuildEnvironmentResponse =
+    RebuildEnvironmentResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-    request  = post "RebuildEnvironment"
-    response = nullResponse RebuildEnvironmentResponse
+-- | Creates a value of 'RebuildEnvironmentResponse' with the minimum fields required to make a request.
+--
+rebuildEnvironmentResponse
+    :: RebuildEnvironmentResponse
+rebuildEnvironmentResponse = RebuildEnvironmentResponse'
diff --git a/gen/Network/AWS/ElasticBeanstalk/RequestEnvironmentInfo.hs b/gen/Network/AWS/ElasticBeanstalk/RequestEnvironmentInfo.hs
--- a/gen/Network/AWS/ElasticBeanstalk/RequestEnvironmentInfo.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/RequestEnvironmentInfo.hs
@@ -1,135 +1,147 @@
-{-# 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.ElasticBeanstalk.RequestEnvironmentInfo
--- 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.
-
--- | Initiates a request to compile the specified type of information of the
+-- Initiates a request to compile the specified type of information of the
 -- deployed environment.
 --
--- Setting the 'InfoType' to 'tail' compiles the last lines from the application
--- server log files of every Amazon EC2 instance in your environment.
+-- Setting the 'InfoType' to 'tail' compiles the last lines from the
+-- application server log files of every Amazon EC2 instance in your
+-- environment.
 --
--- Setting the 'InfoType' to 'bundle' compresses the application server log files
--- for every Amazon EC2 instance into a '.zip' file. Legacy and .NET containers do
--- not support bundle logs.
+-- Setting the 'InfoType' to 'bundle' compresses the application server log
+-- files for every Amazon EC2 instance into a '.zip' file. Legacy and .NET
+-- containers do not support bundle logs.
 --
--- Use 'RetrieveEnvironmentInfo' to obtain the set of logs.
+-- Use RetrieveEnvironmentInfo to obtain the set of logs.
 --
 -- Related Topics
 --
--- 'RetrieveEnvironmentInfo'
+-- -   RetrieveEnvironmentInfo
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_RequestEnvironmentInfo.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_RequestEnvironmentInfo.html AWS API Reference> for RequestEnvironmentInfo.
 module Network.AWS.ElasticBeanstalk.RequestEnvironmentInfo
     (
-    -- * Request
-      RequestEnvironmentInfo
-    -- ** Request constructor
-    , requestEnvironmentInfo
-    -- ** Request lenses
-    , reiEnvironmentId
+    -- * Creating a Request
+      requestEnvironmentInfo
+    , RequestEnvironmentInfo
+    -- * Request Lenses
     , reiEnvironmentName
+    , reiEnvironmentId
     , reiInfoType
 
-    -- * Response
-    , RequestEnvironmentInfoResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , requestEnvironmentInfoResponse
+    , RequestEnvironmentInfoResponse
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data RequestEnvironmentInfo = RequestEnvironmentInfo
-    { _reiEnvironmentId   :: Maybe Text
-    , _reiEnvironmentName :: Maybe Text
-    , _reiInfoType        :: EnvironmentInfoType
-    } deriving (Eq, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'RequestEnvironmentInfo' constructor.
+-- | This documentation target is not reported in the API reference.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'requestEnvironmentInfo' smart constructor.
+data RequestEnvironmentInfo = RequestEnvironmentInfo'
+    { _reiEnvironmentName :: !(Maybe Text)
+    , _reiEnvironmentId   :: !(Maybe Text)
+    , _reiInfoType        :: !EnvironmentInfoType
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RequestEnvironmentInfo' with the minimum fields required to make a request.
 --
--- * 'reiEnvironmentId' @::@ 'Maybe' 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'reiEnvironmentName' @::@ 'Maybe' 'Text'
+-- * 'reiEnvironmentName'
 --
--- * 'reiInfoType' @::@ 'EnvironmentInfoType'
+-- * 'reiEnvironmentId'
 --
-requestEnvironmentInfo :: EnvironmentInfoType -- ^ 'reiInfoType'
-                       -> RequestEnvironmentInfo
-requestEnvironmentInfo p1 = RequestEnvironmentInfo
-    { _reiInfoType        = p1
-    , _reiEnvironmentId   = Nothing
-    , _reiEnvironmentName = Nothing
+-- * 'reiInfoType'
+requestEnvironmentInfo
+    :: EnvironmentInfoType -- ^ 'reiInfoType'
+    -> RequestEnvironmentInfo
+requestEnvironmentInfo pInfoType_ =
+    RequestEnvironmentInfo'
+    { _reiEnvironmentName = Nothing
+    , _reiEnvironmentId = Nothing
+    , _reiInfoType = pInfoType_
     }
 
--- | The ID of the environment of the requested data.
---
--- If no such environment is found, 'RequestEnvironmentInfo' returns an 'InvalidParameterValue' error.
---
--- Condition: You must specify either this or an EnvironmentName, or both. If
--- you do not specify either, AWS Elastic Beanstalk returns 'MissingRequiredParameter' error.
-reiEnvironmentId :: Lens' RequestEnvironmentInfo (Maybe Text)
-reiEnvironmentId = lens _reiEnvironmentId (\s a -> s { _reiEnvironmentId = a })
-
 -- | The name of the environment of the requested data.
 --
--- If no such environment is found, 'RequestEnvironmentInfo' returns an 'InvalidParameterValue' error.
+-- If no such environment is found, 'RequestEnvironmentInfo' returns an
+-- 'InvalidParameterValue' error.
 --
 -- Condition: You must specify either this or an EnvironmentId, or both. If
--- you do not specify either, AWS Elastic Beanstalk returns 'MissingRequiredParameter' error.
+-- you do not specify either, AWS Elastic Beanstalk returns
+-- 'MissingRequiredParameter' error.
 reiEnvironmentName :: Lens' RequestEnvironmentInfo (Maybe Text)
-reiEnvironmentName =
-    lens _reiEnvironmentName (\s a -> s { _reiEnvironmentName = a })
+reiEnvironmentName = lens _reiEnvironmentName (\ s a -> s{_reiEnvironmentName = a});
 
+-- | The ID of the environment of the requested data.
+--
+-- If no such environment is found, 'RequestEnvironmentInfo' returns an
+-- 'InvalidParameterValue' error.
+--
+-- Condition: You must specify either this or an EnvironmentName, or both.
+-- If you do not specify either, AWS Elastic Beanstalk returns
+-- 'MissingRequiredParameter' error.
+reiEnvironmentId :: Lens' RequestEnvironmentInfo (Maybe Text)
+reiEnvironmentId = lens _reiEnvironmentId (\ s a -> s{_reiEnvironmentId = a});
+
 -- | The type of information to request.
 reiInfoType :: Lens' RequestEnvironmentInfo EnvironmentInfoType
-reiInfoType = lens _reiInfoType (\s a -> s { _reiInfoType = a })
+reiInfoType = lens _reiInfoType (\ s a -> s{_reiInfoType = a});
 
-data RequestEnvironmentInfoResponse = RequestEnvironmentInfoResponse
-    deriving (Eq, Ord, Read, Show, Generic)
+instance AWSRequest RequestEnvironmentInfo where
+        type Sv RequestEnvironmentInfo = ElasticBeanstalk
+        type Rs RequestEnvironmentInfo =
+             RequestEnvironmentInfoResponse
+        request = postQuery
+        response
+          = receiveNull RequestEnvironmentInfoResponse'
 
--- | 'RequestEnvironmentInfoResponse' constructor.
-requestEnvironmentInfoResponse :: RequestEnvironmentInfoResponse
-requestEnvironmentInfoResponse = RequestEnvironmentInfoResponse
+instance ToHeaders RequestEnvironmentInfo where
+        toHeaders = const mempty
 
 instance ToPath RequestEnvironmentInfo where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery RequestEnvironmentInfo where
-    toQuery RequestEnvironmentInfo{..} = mconcat
-        [ "EnvironmentId"   =? _reiEnvironmentId
-        , "EnvironmentName" =? _reiEnvironmentName
-        , "InfoType"        =? _reiInfoType
-        ]
-
-instance ToHeaders RequestEnvironmentInfo
+        toQuery RequestEnvironmentInfo'{..}
+          = mconcat
+              ["Action" =:
+                 ("RequestEnvironmentInfo" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "EnvironmentName" =: _reiEnvironmentName,
+               "EnvironmentId" =: _reiEnvironmentId,
+               "InfoType" =: _reiInfoType]
 
-instance AWSRequest RequestEnvironmentInfo where
-    type Sv RequestEnvironmentInfo = ElasticBeanstalk
-    type Rs RequestEnvironmentInfo = RequestEnvironmentInfoResponse
+-- | /See:/ 'requestEnvironmentInfoResponse' smart constructor.
+data RequestEnvironmentInfoResponse =
+    RequestEnvironmentInfoResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-    request  = post "RequestEnvironmentInfo"
-    response = nullResponse RequestEnvironmentInfoResponse
+-- | Creates a value of 'RequestEnvironmentInfoResponse' with the minimum fields required to make a request.
+--
+requestEnvironmentInfoResponse
+    :: RequestEnvironmentInfoResponse
+requestEnvironmentInfoResponse = RequestEnvironmentInfoResponse'
diff --git a/gen/Network/AWS/ElasticBeanstalk/RestartAppServer.hs b/gen/Network/AWS/ElasticBeanstalk/RestartAppServer.hs
--- a/gen/Network/AWS/ElasticBeanstalk/RestartAppServer.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/RestartAppServer.hs
@@ -1,107 +1,113 @@
-{-# 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.ElasticBeanstalk.RestartAppServer
--- 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.
-
--- | Causes the environment to restart the application container server running
--- on each Amazon EC2 instance.
+-- Causes the environment to restart the application container server
+-- running on each Amazon EC2 instance.
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_RestartAppServer.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_RestartAppServer.html AWS API Reference> for RestartAppServer.
 module Network.AWS.ElasticBeanstalk.RestartAppServer
     (
-    -- * Request
-      RestartAppServer
-    -- ** Request constructor
-    , restartAppServer
-    -- ** Request lenses
-    , rasEnvironmentId
+    -- * Creating a Request
+      restartAppServer
+    , RestartAppServer
+    -- * Request Lenses
     , rasEnvironmentName
+    , rasEnvironmentId
 
-    -- * Response
-    , RestartAppServerResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , restartAppServerResponse
+    , RestartAppServerResponse
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data RestartAppServer = RestartAppServer
-    { _rasEnvironmentId   :: Maybe Text
-    , _rasEnvironmentName :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'RestartAppServer' constructor.
+-- |
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'restartAppServer' smart constructor.
+data RestartAppServer = RestartAppServer'
+    { _rasEnvironmentName :: !(Maybe Text)
+    , _rasEnvironmentId   :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RestartAppServer' with the minimum fields required to make a request.
 --
--- * 'rasEnvironmentId' @::@ 'Maybe' 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'rasEnvironmentName' @::@ 'Maybe' 'Text'
+-- * 'rasEnvironmentName'
 --
-restartAppServer :: RestartAppServer
-restartAppServer = RestartAppServer
-    { _rasEnvironmentId   = Nothing
-    , _rasEnvironmentName = Nothing
+-- * 'rasEnvironmentId'
+restartAppServer
+    :: RestartAppServer
+restartAppServer =
+    RestartAppServer'
+    { _rasEnvironmentName = Nothing
+    , _rasEnvironmentId = Nothing
     }
 
--- | The ID of the environment to restart the server for.
---
--- Condition: You must specify either this or an EnvironmentName, or both. If
--- you do not specify either, AWS Elastic Beanstalk returns 'MissingRequiredParameter' error.
-rasEnvironmentId :: Lens' RestartAppServer (Maybe Text)
-rasEnvironmentId = lens _rasEnvironmentId (\s a -> s { _rasEnvironmentId = a })
-
 -- | The name of the environment to restart the server for.
 --
 -- Condition: You must specify either this or an EnvironmentId, or both. If
--- you do not specify either, AWS Elastic Beanstalk returns 'MissingRequiredParameter' error.
+-- you do not specify either, AWS Elastic Beanstalk returns
+-- 'MissingRequiredParameter' error.
 rasEnvironmentName :: Lens' RestartAppServer (Maybe Text)
-rasEnvironmentName =
-    lens _rasEnvironmentName (\s a -> s { _rasEnvironmentName = a })
+rasEnvironmentName = lens _rasEnvironmentName (\ s a -> s{_rasEnvironmentName = a});
 
-data RestartAppServerResponse = RestartAppServerResponse
-    deriving (Eq, Ord, Read, Show, Generic)
+-- | The ID of the environment to restart the server for.
+--
+-- Condition: You must specify either this or an EnvironmentName, or both.
+-- If you do not specify either, AWS Elastic Beanstalk returns
+-- 'MissingRequiredParameter' error.
+rasEnvironmentId :: Lens' RestartAppServer (Maybe Text)
+rasEnvironmentId = lens _rasEnvironmentId (\ s a -> s{_rasEnvironmentId = a});
 
--- | 'RestartAppServerResponse' constructor.
-restartAppServerResponse :: RestartAppServerResponse
-restartAppServerResponse = RestartAppServerResponse
+instance AWSRequest RestartAppServer where
+        type Sv RestartAppServer = ElasticBeanstalk
+        type Rs RestartAppServer = RestartAppServerResponse
+        request = postQuery
+        response = receiveNull RestartAppServerResponse'
 
+instance ToHeaders RestartAppServer where
+        toHeaders = const mempty
+
 instance ToPath RestartAppServer where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery RestartAppServer where
-    toQuery RestartAppServer{..} = mconcat
-        [ "EnvironmentId"   =? _rasEnvironmentId
-        , "EnvironmentName" =? _rasEnvironmentName
-        ]
-
-instance ToHeaders RestartAppServer
+        toQuery RestartAppServer'{..}
+          = mconcat
+              ["Action" =: ("RestartAppServer" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "EnvironmentName" =: _rasEnvironmentName,
+               "EnvironmentId" =: _rasEnvironmentId]
 
-instance AWSRequest RestartAppServer where
-    type Sv RestartAppServer = ElasticBeanstalk
-    type Rs RestartAppServer = RestartAppServerResponse
+-- | /See:/ 'restartAppServerResponse' smart constructor.
+data RestartAppServerResponse =
+    RestartAppServerResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-    request  = post "RestartAppServer"
-    response = nullResponse RestartAppServerResponse
+-- | Creates a value of 'RestartAppServerResponse' with the minimum fields required to make a request.
+--
+restartAppServerResponse
+    :: RestartAppServerResponse
+restartAppServerResponse = RestartAppServerResponse'
diff --git a/gen/Network/AWS/ElasticBeanstalk/RetrieveEnvironmentInfo.hs b/gen/Network/AWS/ElasticBeanstalk/RetrieveEnvironmentInfo.hs
--- a/gen/Network/AWS/ElasticBeanstalk/RetrieveEnvironmentInfo.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/RetrieveEnvironmentInfo.hs
@@ -1,152 +1,167 @@
-{-# 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.ElasticBeanstalk.RetrieveEnvironmentInfo
--- 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.
-
--- | Retrieves the compiled information from a 'RequestEnvironmentInfo' request.
+-- Retrieves the compiled information from a RequestEnvironmentInfo
+-- request.
 --
 -- Related Topics
 --
--- 'RequestEnvironmentInfo'
+-- -   RequestEnvironmentInfo
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_RetrieveEnvironmentInfo.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_RetrieveEnvironmentInfo.html AWS API Reference> for RetrieveEnvironmentInfo.
 module Network.AWS.ElasticBeanstalk.RetrieveEnvironmentInfo
     (
-    -- * Request
-      RetrieveEnvironmentInfo
-    -- ** Request constructor
-    , retrieveEnvironmentInfo
-    -- ** Request lenses
-    , rei1EnvironmentId
-    , rei1EnvironmentName
-    , rei1InfoType
+    -- * Creating a Request
+      retrieveEnvironmentInfo
+    , RetrieveEnvironmentInfo
+    -- * Request Lenses
+    , rEnvironmentName
+    , rEnvironmentId
+    , rInfoType
 
-    -- * Response
-    , RetrieveEnvironmentInfoResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , retrieveEnvironmentInfoResponse
-    -- ** Response lenses
-    , reirEnvironmentInfo
+    , RetrieveEnvironmentInfoResponse
+    -- * Response Lenses
+    , reirsEnvironmentInfo
+    , reirsStatus
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data RetrieveEnvironmentInfo = RetrieveEnvironmentInfo
-    { _rei1EnvironmentId   :: Maybe Text
-    , _rei1EnvironmentName :: Maybe Text
-    , _rei1InfoType        :: EnvironmentInfoType
-    } deriving (Eq, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'RetrieveEnvironmentInfo' constructor.
+-- | This documentation target is not reported in the API reference.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'retrieveEnvironmentInfo' smart constructor.
+data RetrieveEnvironmentInfo = RetrieveEnvironmentInfo'
+    { _rEnvironmentName :: !(Maybe Text)
+    , _rEnvironmentId   :: !(Maybe Text)
+    , _rInfoType        :: !EnvironmentInfoType
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RetrieveEnvironmentInfo' with the minimum fields required to make a request.
 --
--- * 'rei1EnvironmentId' @::@ 'Maybe' 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'rei1EnvironmentName' @::@ 'Maybe' 'Text'
+-- * 'rEnvironmentName'
 --
--- * 'rei1InfoType' @::@ 'EnvironmentInfoType'
+-- * 'rEnvironmentId'
 --
-retrieveEnvironmentInfo :: EnvironmentInfoType -- ^ 'rei1InfoType'
-                        -> RetrieveEnvironmentInfo
-retrieveEnvironmentInfo p1 = RetrieveEnvironmentInfo
-    { _rei1InfoType        = p1
-    , _rei1EnvironmentId   = Nothing
-    , _rei1EnvironmentName = Nothing
+-- * 'rInfoType'
+retrieveEnvironmentInfo
+    :: EnvironmentInfoType -- ^ 'rInfoType'
+    -> RetrieveEnvironmentInfo
+retrieveEnvironmentInfo pInfoType_ =
+    RetrieveEnvironmentInfo'
+    { _rEnvironmentName = Nothing
+    , _rEnvironmentId = Nothing
+    , _rInfoType = pInfoType_
     }
 
--- | The ID of the data's environment.
+-- | The name of the data\'s environment.
 --
--- If no such environment is found, returns an 'InvalidParameterValue' error.
+-- If no such environment is found, returns an 'InvalidParameterValue'
+-- error.
 --
--- Condition: You must specify either this or an EnvironmentName, or both. If
--- you do not specify either, AWS Elastic Beanstalk returns 'MissingRequiredParameter' error.
-rei1EnvironmentId :: Lens' RetrieveEnvironmentInfo (Maybe Text)
-rei1EnvironmentId =
-    lens _rei1EnvironmentId (\s a -> s { _rei1EnvironmentId = a })
+-- Condition: You must specify either this or an EnvironmentId, or both. If
+-- you do not specify either, AWS Elastic Beanstalk returns
+-- 'MissingRequiredParameter' error.
+rEnvironmentName :: Lens' RetrieveEnvironmentInfo (Maybe Text)
+rEnvironmentName = lens _rEnvironmentName (\ s a -> s{_rEnvironmentName = a});
 
--- | The name of the data's environment.
+-- | The ID of the data\'s environment.
 --
--- If no such environment is found, returns an 'InvalidParameterValue' error.
+-- If no such environment is found, returns an 'InvalidParameterValue'
+-- error.
 --
--- Condition: You must specify either this or an EnvironmentId, or both. If
--- you do not specify either, AWS Elastic Beanstalk returns 'MissingRequiredParameter' error.
-rei1EnvironmentName :: Lens' RetrieveEnvironmentInfo (Maybe Text)
-rei1EnvironmentName =
-    lens _rei1EnvironmentName (\s a -> s { _rei1EnvironmentName = a })
+-- Condition: You must specify either this or an EnvironmentName, or both.
+-- If you do not specify either, AWS Elastic Beanstalk returns
+-- 'MissingRequiredParameter' error.
+rEnvironmentId :: Lens' RetrieveEnvironmentInfo (Maybe Text)
+rEnvironmentId = lens _rEnvironmentId (\ s a -> s{_rEnvironmentId = a});
 
 -- | The type of information to retrieve.
-rei1InfoType :: Lens' RetrieveEnvironmentInfo EnvironmentInfoType
-rei1InfoType = lens _rei1InfoType (\s a -> s { _rei1InfoType = a })
-
-newtype RetrieveEnvironmentInfoResponse = RetrieveEnvironmentInfoResponse
-    { _reirEnvironmentInfo :: List "member" EnvironmentInfoDescription
-    } deriving (Eq, Read, Show, Monoid, Semigroup)
-
-instance GHC.Exts.IsList RetrieveEnvironmentInfoResponse where
-    type Item RetrieveEnvironmentInfoResponse = EnvironmentInfoDescription
-
-    fromList = RetrieveEnvironmentInfoResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _reirEnvironmentInfo
+rInfoType :: Lens' RetrieveEnvironmentInfo EnvironmentInfoType
+rInfoType = lens _rInfoType (\ s a -> s{_rInfoType = a});
 
--- | 'RetrieveEnvironmentInfoResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'reirEnvironmentInfo' @::@ ['EnvironmentInfoDescription']
---
-retrieveEnvironmentInfoResponse :: RetrieveEnvironmentInfoResponse
-retrieveEnvironmentInfoResponse = RetrieveEnvironmentInfoResponse
-    { _reirEnvironmentInfo = mempty
-    }
+instance AWSRequest RetrieveEnvironmentInfo where
+        type Sv RetrieveEnvironmentInfo = ElasticBeanstalk
+        type Rs RetrieveEnvironmentInfo =
+             RetrieveEnvironmentInfoResponse
+        request = postQuery
+        response
+          = receiveXMLWrapper "RetrieveEnvironmentInfoResult"
+              (\ s h x ->
+                 RetrieveEnvironmentInfoResponse' <$>
+                   (x .@? "EnvironmentInfo" .!@ mempty >>=
+                      may (parseXMLList "member"))
+                     <*> (pure (fromEnum s)))
 
--- | The 'EnvironmentInfoDescription' of the environment.
-reirEnvironmentInfo :: Lens' RetrieveEnvironmentInfoResponse [EnvironmentInfoDescription]
-reirEnvironmentInfo =
-    lens _reirEnvironmentInfo (\s a -> s { _reirEnvironmentInfo = a })
-        . _List
+instance ToHeaders RetrieveEnvironmentInfo where
+        toHeaders = const mempty
 
 instance ToPath RetrieveEnvironmentInfo where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery RetrieveEnvironmentInfo where
-    toQuery RetrieveEnvironmentInfo{..} = mconcat
-        [ "EnvironmentId"   =? _rei1EnvironmentId
-        , "EnvironmentName" =? _rei1EnvironmentName
-        , "InfoType"        =? _rei1InfoType
-        ]
+        toQuery RetrieveEnvironmentInfo'{..}
+          = mconcat
+              ["Action" =:
+                 ("RetrieveEnvironmentInfo" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "EnvironmentName" =: _rEnvironmentName,
+               "EnvironmentId" =: _rEnvironmentId,
+               "InfoType" =: _rInfoType]
 
-instance ToHeaders RetrieveEnvironmentInfo
+-- | Result message containing a description of the requested environment
+-- info.
+--
+-- /See:/ 'retrieveEnvironmentInfoResponse' smart constructor.
+data RetrieveEnvironmentInfoResponse = RetrieveEnvironmentInfoResponse'
+    { _reirsEnvironmentInfo :: !(Maybe [EnvironmentInfoDescription])
+    , _reirsStatus          :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest RetrieveEnvironmentInfo where
-    type Sv RetrieveEnvironmentInfo = ElasticBeanstalk
-    type Rs RetrieveEnvironmentInfo = RetrieveEnvironmentInfoResponse
+-- | Creates a value of 'RetrieveEnvironmentInfoResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'reirsEnvironmentInfo'
+--
+-- * 'reirsStatus'
+retrieveEnvironmentInfoResponse
+    :: Int -- ^ 'reirsStatus'
+    -> RetrieveEnvironmentInfoResponse
+retrieveEnvironmentInfoResponse pStatus_ =
+    RetrieveEnvironmentInfoResponse'
+    { _reirsEnvironmentInfo = Nothing
+    , _reirsStatus = pStatus_
+    }
 
-    request  = post "RetrieveEnvironmentInfo"
-    response = xmlResponse
+-- | The EnvironmentInfoDescription of the environment.
+reirsEnvironmentInfo :: Lens' RetrieveEnvironmentInfoResponse [EnvironmentInfoDescription]
+reirsEnvironmentInfo = lens _reirsEnvironmentInfo (\ s a -> s{_reirsEnvironmentInfo = a}) . _Default . _Coerce;
 
-instance FromXML RetrieveEnvironmentInfoResponse where
-    parseXML = withElement "RetrieveEnvironmentInfoResult" $ \x -> RetrieveEnvironmentInfoResponse
-        <$> x .@? "EnvironmentInfo" .!@ mempty
+-- | The response status code.
+reirsStatus :: Lens' RetrieveEnvironmentInfoResponse Int
+reirsStatus = lens _reirsStatus (\ s a -> s{_reirsStatus = a});
diff --git a/gen/Network/AWS/ElasticBeanstalk/SwapEnvironmentCNAMEs.hs b/gen/Network/AWS/ElasticBeanstalk/SwapEnvironmentCNAMEs.hs
--- a/gen/Network/AWS/ElasticBeanstalk/SwapEnvironmentCNAMEs.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/SwapEnvironmentCNAMEs.hs
@@ -1,139 +1,146 @@
-{-# 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.ElasticBeanstalk.SwapEnvironmentCNAMEs
--- 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.
-
--- | Swaps the CNAMEs of two environments.
+-- Swaps the CNAMEs of two environments.
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_SwapEnvironmentCNAMEs.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_SwapEnvironmentCNAMEs.html AWS API Reference> for SwapEnvironmentCNAMEs.
 module Network.AWS.ElasticBeanstalk.SwapEnvironmentCNAMEs
     (
-    -- * Request
-      SwapEnvironmentCNAMEs
-    -- ** Request constructor
-    , swapEnvironmentCNAMEs
-    -- ** Request lenses
-    , secnameDestinationEnvironmentId
+    -- * Creating a Request
+      swapEnvironmentCNAMEs
+    , SwapEnvironmentCNAMEs
+    -- * Request Lenses
     , secnameDestinationEnvironmentName
-    , secnameSourceEnvironmentId
+    , secnameDestinationEnvironmentId
     , secnameSourceEnvironmentName
+    , secnameSourceEnvironmentId
 
-    -- * Response
-    , SwapEnvironmentCNAMEsResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , swapEnvironmentCNAMEsResponse
+    , SwapEnvironmentCNAMEsResponse
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data SwapEnvironmentCNAMEs = SwapEnvironmentCNAMEs
-    { _secnameDestinationEnvironmentId   :: Maybe Text
-    , _secnameDestinationEnvironmentName :: Maybe Text
-    , _secnameSourceEnvironmentId        :: Maybe Text
-    , _secnameSourceEnvironmentName      :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'SwapEnvironmentCNAMEs' constructor.
+-- | Swaps the CNAMEs of two environments.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'swapEnvironmentCNAMEs' smart constructor.
+data SwapEnvironmentCNAMEs = SwapEnvironmentCNAMEs'
+    { _secnameDestinationEnvironmentName :: !(Maybe Text)
+    , _secnameDestinationEnvironmentId   :: !(Maybe Text)
+    , _secnameSourceEnvironmentName      :: !(Maybe Text)
+    , _secnameSourceEnvironmentId        :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SwapEnvironmentCNAMEs' with the minimum fields required to make a request.
 --
--- * 'secnameDestinationEnvironmentId' @::@ 'Maybe' 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'secnameDestinationEnvironmentName' @::@ 'Maybe' 'Text'
+-- * 'secnameDestinationEnvironmentName'
 --
--- * 'secnameSourceEnvironmentId' @::@ 'Maybe' 'Text'
+-- * 'secnameDestinationEnvironmentId'
 --
--- * 'secnameSourceEnvironmentName' @::@ 'Maybe' 'Text'
+-- * 'secnameSourceEnvironmentName'
 --
-swapEnvironmentCNAMEs :: SwapEnvironmentCNAMEs
-swapEnvironmentCNAMEs = SwapEnvironmentCNAMEs
-    { _secnameSourceEnvironmentId        = Nothing
-    , _secnameSourceEnvironmentName      = Nothing
-    , _secnameDestinationEnvironmentId   = Nothing
-    , _secnameDestinationEnvironmentName = Nothing
+-- * 'secnameSourceEnvironmentId'
+swapEnvironmentCNAMEs
+    :: SwapEnvironmentCNAMEs
+swapEnvironmentCNAMEs =
+    SwapEnvironmentCNAMEs'
+    { _secnameDestinationEnvironmentName = Nothing
+    , _secnameDestinationEnvironmentId = Nothing
+    , _secnameSourceEnvironmentName = Nothing
+    , _secnameSourceEnvironmentId = Nothing
     }
 
--- | The ID of the destination environment.
---
--- Condition: You must specify at least the 'DestinationEnvironmentID' or the 'DestinationEnvironmentName'. You may also specify both. You must specify the 'SourceEnvironmentId' with
--- the 'DestinationEnvironmentId'.
-secnameDestinationEnvironmentId :: Lens' SwapEnvironmentCNAMEs (Maybe Text)
-secnameDestinationEnvironmentId =
-    lens _secnameDestinationEnvironmentId
-        (\s a -> s { _secnameDestinationEnvironmentId = a })
-
 -- | The name of the destination environment.
 --
--- Condition: You must specify at least the 'DestinationEnvironmentID' or the 'DestinationEnvironmentName'. You may also specify both. You must specify the 'SourceEnvironmentName' with
--- the 'DestinationEnvironmentName'.
+-- Condition: You must specify at least the 'DestinationEnvironmentID' or
+-- the 'DestinationEnvironmentName'. You may also specify both. You must
+-- specify the 'SourceEnvironmentName' with the
+-- 'DestinationEnvironmentName'.
 secnameDestinationEnvironmentName :: Lens' SwapEnvironmentCNAMEs (Maybe Text)
-secnameDestinationEnvironmentName =
-    lens _secnameDestinationEnvironmentName
-        (\s a -> s { _secnameDestinationEnvironmentName = a })
+secnameDestinationEnvironmentName = lens _secnameDestinationEnvironmentName (\ s a -> s{_secnameDestinationEnvironmentName = a});
 
--- | The ID of the source environment.
+-- | The ID of the destination environment.
 --
--- Condition: You must specify at least the 'SourceEnvironmentID' or the 'SourceEnvironmentName'. You may also specify both. If you specify the 'SourceEnvironmentId', you must
--- specify the 'DestinationEnvironmentId'.
-secnameSourceEnvironmentId :: Lens' SwapEnvironmentCNAMEs (Maybe Text)
-secnameSourceEnvironmentId =
-    lens _secnameSourceEnvironmentId
-        (\s a -> s { _secnameSourceEnvironmentId = a })
+-- Condition: You must specify at least the 'DestinationEnvironmentID' or
+-- the 'DestinationEnvironmentName'. You may also specify both. You must
+-- specify the 'SourceEnvironmentId' with the 'DestinationEnvironmentId'.
+secnameDestinationEnvironmentId :: Lens' SwapEnvironmentCNAMEs (Maybe Text)
+secnameDestinationEnvironmentId = lens _secnameDestinationEnvironmentId (\ s a -> s{_secnameDestinationEnvironmentId = a});
 
 -- | The name of the source environment.
 --
--- Condition: You must specify at least the 'SourceEnvironmentID' or the 'SourceEnvironmentName'. You may also specify both. If you specify the 'SourceEnvironmentName', you
--- must specify the 'DestinationEnvironmentName'.
+-- Condition: You must specify at least the 'SourceEnvironmentID' or the
+-- 'SourceEnvironmentName'. You may also specify both. If you specify the
+-- 'SourceEnvironmentName', you must specify the
+-- 'DestinationEnvironmentName'.
 secnameSourceEnvironmentName :: Lens' SwapEnvironmentCNAMEs (Maybe Text)
-secnameSourceEnvironmentName =
-    lens _secnameSourceEnvironmentName
-        (\s a -> s { _secnameSourceEnvironmentName = a })
+secnameSourceEnvironmentName = lens _secnameSourceEnvironmentName (\ s a -> s{_secnameSourceEnvironmentName = a});
 
-data SwapEnvironmentCNAMEsResponse = SwapEnvironmentCNAMEsResponse
-    deriving (Eq, Ord, Read, Show, Generic)
+-- | The ID of the source environment.
+--
+-- Condition: You must specify at least the 'SourceEnvironmentID' or the
+-- 'SourceEnvironmentName'. You may also specify both. If you specify the
+-- 'SourceEnvironmentId', you must specify the 'DestinationEnvironmentId'.
+secnameSourceEnvironmentId :: Lens' SwapEnvironmentCNAMEs (Maybe Text)
+secnameSourceEnvironmentId = lens _secnameSourceEnvironmentId (\ s a -> s{_secnameSourceEnvironmentId = a});
 
--- | 'SwapEnvironmentCNAMEsResponse' constructor.
-swapEnvironmentCNAMEsResponse :: SwapEnvironmentCNAMEsResponse
-swapEnvironmentCNAMEsResponse = SwapEnvironmentCNAMEsResponse
+instance AWSRequest SwapEnvironmentCNAMEs where
+        type Sv SwapEnvironmentCNAMEs = ElasticBeanstalk
+        type Rs SwapEnvironmentCNAMEs =
+             SwapEnvironmentCNAMEsResponse
+        request = postQuery
+        response = receiveNull SwapEnvironmentCNAMEsResponse'
 
+instance ToHeaders SwapEnvironmentCNAMEs where
+        toHeaders = const mempty
+
 instance ToPath SwapEnvironmentCNAMEs where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery SwapEnvironmentCNAMEs where
-    toQuery SwapEnvironmentCNAMEs{..} = mconcat
-        [ "DestinationEnvironmentId"   =? _secnameDestinationEnvironmentId
-        , "DestinationEnvironmentName" =? _secnameDestinationEnvironmentName
-        , "SourceEnvironmentId"        =? _secnameSourceEnvironmentId
-        , "SourceEnvironmentName"      =? _secnameSourceEnvironmentName
-        ]
-
-instance ToHeaders SwapEnvironmentCNAMEs
+        toQuery SwapEnvironmentCNAMEs'{..}
+          = mconcat
+              ["Action" =: ("SwapEnvironmentCNAMEs" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "DestinationEnvironmentName" =:
+                 _secnameDestinationEnvironmentName,
+               "DestinationEnvironmentId" =:
+                 _secnameDestinationEnvironmentId,
+               "SourceEnvironmentName" =:
+                 _secnameSourceEnvironmentName,
+               "SourceEnvironmentId" =: _secnameSourceEnvironmentId]
 
-instance AWSRequest SwapEnvironmentCNAMEs where
-    type Sv SwapEnvironmentCNAMEs = ElasticBeanstalk
-    type Rs SwapEnvironmentCNAMEs = SwapEnvironmentCNAMEsResponse
+-- | /See:/ 'swapEnvironmentCNAMEsResponse' smart constructor.
+data SwapEnvironmentCNAMEsResponse =
+    SwapEnvironmentCNAMEsResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-    request  = post "SwapEnvironmentCNAMEs"
-    response = nullResponse SwapEnvironmentCNAMEsResponse
+-- | Creates a value of 'SwapEnvironmentCNAMEsResponse' with the minimum fields required to make a request.
+--
+swapEnvironmentCNAMEsResponse
+    :: SwapEnvironmentCNAMEsResponse
+swapEnvironmentCNAMEsResponse = SwapEnvironmentCNAMEsResponse'
diff --git a/gen/Network/AWS/ElasticBeanstalk/TerminateEnvironment.hs b/gen/Network/AWS/ElasticBeanstalk/TerminateEnvironment.hs
--- a/gen/Network/AWS/ElasticBeanstalk/TerminateEnvironment.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/TerminateEnvironment.hs
@@ -1,335 +1,151 @@
-{-# 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.ElasticBeanstalk.TerminateEnvironment
--- 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.
-
--- | Terminates the specified environment.
+-- Terminates the specified environment.
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_TerminateEnvironment.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_TerminateEnvironment.html AWS API Reference> for TerminateEnvironment.
 module Network.AWS.ElasticBeanstalk.TerminateEnvironment
     (
-    -- * Request
-      TerminateEnvironment
-    -- ** Request constructor
-    , terminateEnvironment
-    -- ** Request lenses
-    , teEnvironmentId
-    , teEnvironmentName
+    -- * Creating a Request
+      terminateEnvironment
+    , TerminateEnvironment
+    -- * Request Lenses
     , teTerminateResources
+    , teEnvironmentName
+    , teEnvironmentId
 
-    -- * Response
-    , TerminateEnvironmentResponse
-    -- ** Response constructor
-    , terminateEnvironmentResponse
-    -- ** Response lenses
-    , terAbortableOperationInProgress
-    , terApplicationName
-    , terCNAME
-    , terDateCreated
-    , terDateUpdated
-    , terDescription
-    , terEndpointURL
-    , terEnvironmentId
-    , terEnvironmentName
-    , terHealth
-    , terResources
-    , terSolutionStackName
-    , terStatus
-    , terTemplateName
-    , terTier
-    , terVersionLabel
+    -- * Destructuring the Response
+    , environmentDescription
+    , EnvironmentDescription
+    -- * Response Lenses
+    , eCNAME
+    , eStatus
+    , eTemplateName
+    , eAbortableOperationInProgress
+    , eEndpointURL
+    , eDateUpdated
+    , eResources
+    , eHealth
+    , eVersionLabel
+    , eDateCreated
+    , eTier
+    , eEnvironmentName
+    , eApplicationName
+    , eHealthStatus
+    , eEnvironmentId
+    , eSolutionStackName
+    , eDescription
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data TerminateEnvironment = TerminateEnvironment
-    { _teEnvironmentId      :: Maybe Text
-    , _teEnvironmentName    :: Maybe Text
-    , _teTerminateResources :: Maybe Bool
-    } deriving (Eq, Ord, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'TerminateEnvironment' constructor.
+-- | This documentation target is not reported in the API reference.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'terminateEnvironment' smart constructor.
+data TerminateEnvironment = TerminateEnvironment'
+    { _teTerminateResources :: !(Maybe Bool)
+    , _teEnvironmentName    :: !(Maybe Text)
+    , _teEnvironmentId      :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TerminateEnvironment' with the minimum fields required to make a request.
 --
--- * 'teEnvironmentId' @::@ 'Maybe' 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'teEnvironmentName' @::@ 'Maybe' 'Text'
+-- * 'teTerminateResources'
 --
--- * 'teTerminateResources' @::@ 'Maybe' 'Bool'
+-- * 'teEnvironmentName'
 --
-terminateEnvironment :: TerminateEnvironment
-terminateEnvironment = TerminateEnvironment
-    { _teEnvironmentId      = Nothing
-    , _teEnvironmentName    = Nothing
-    , _teTerminateResources = Nothing
+-- * 'teEnvironmentId'
+terminateEnvironment
+    :: TerminateEnvironment
+terminateEnvironment =
+    TerminateEnvironment'
+    { _teTerminateResources = Nothing
+    , _teEnvironmentName = Nothing
+    , _teEnvironmentId = Nothing
     }
 
--- | The ID of the environment to terminate.
---
--- Condition: You must specify either this or an EnvironmentName, or both. If
--- you do not specify either, AWS Elastic Beanstalk returns 'MissingRequiredParameter' error.
-teEnvironmentId :: Lens' TerminateEnvironment (Maybe Text)
-teEnvironmentId = lens _teEnvironmentId (\s a -> s { _teEnvironmentId = a })
-
--- | The name of the environment to terminate.
---
--- Condition: You must specify either this or an EnvironmentId, or both. If
--- you do not specify either, AWS Elastic Beanstalk returns 'MissingRequiredParameter' error.
-teEnvironmentName :: Lens' TerminateEnvironment (Maybe Text)
-teEnvironmentName =
-    lens _teEnvironmentName (\s a -> s { _teEnvironmentName = a })
-
 -- | Indicates whether the associated AWS resources should shut down when the
 -- environment is terminated:
 --
 -- 'true': (default) The user AWS resources (for example, the Auto Scaling
 -- group, LoadBalancer, etc.) are terminated along with the environment.
 --
--- 'false': The environment is removed from the AWS Elastic Beanstalk but the
--- AWS resources continue to operate.
+-- 'false': The environment is removed from the AWS Elastic Beanstalk but
+-- the AWS resources continue to operate.
 --
--- 'true': The specified environment as well as the associated AWS resources,
--- such as Auto Scaling group and LoadBalancer, are terminated.   'false': AWS
--- Elastic Beanstalk resource management is removed from the environment, but
--- the AWS resources continue to operate.    For more information, see the <http://docs.aws.amazon.com/elasticbeanstalk/latest/ug/  AWSElastic Beanstalk User Guide. >
+-- -   'true': The specified environment as well as the associated AWS
+--     resources, such as Auto Scaling group and LoadBalancer, are
+--     terminated.
+-- -   'false': AWS Elastic Beanstalk resource management is removed from
+--     the environment, but the AWS resources continue to operate.
 --
+-- For more information, see the
+-- <http://docs.aws.amazon.com/elasticbeanstalk/latest/ug/ AWS Elastic Beanstalk User Guide.>
+--
 -- Default: 'true'
 --
 -- Valid Values: 'true' | 'false'
 teTerminateResources :: Lens' TerminateEnvironment (Maybe Bool)
-teTerminateResources =
-    lens _teTerminateResources (\s a -> s { _teTerminateResources = a })
-
-data TerminateEnvironmentResponse = TerminateEnvironmentResponse
-    { _terAbortableOperationInProgress :: Maybe Bool
-    , _terApplicationName              :: Maybe Text
-    , _terCNAME                        :: Maybe Text
-    , _terDateCreated                  :: Maybe ISO8601
-    , _terDateUpdated                  :: Maybe ISO8601
-    , _terDescription                  :: Maybe Text
-    , _terEndpointURL                  :: Maybe Text
-    , _terEnvironmentId                :: Maybe Text
-    , _terEnvironmentName              :: Maybe Text
-    , _terHealth                       :: Maybe EnvironmentHealth
-    , _terResources                    :: Maybe EnvironmentResourcesDescription
-    , _terSolutionStackName            :: Maybe Text
-    , _terStatus                       :: Maybe EnvironmentStatus
-    , _terTemplateName                 :: Maybe Text
-    , _terTier                         :: Maybe EnvironmentTier
-    , _terVersionLabel                 :: Maybe Text
-    } deriving (Eq, Read, Show)
-
--- | 'TerminateEnvironmentResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'terAbortableOperationInProgress' @::@ 'Maybe' 'Bool'
---
--- * 'terApplicationName' @::@ 'Maybe' 'Text'
---
--- * 'terCNAME' @::@ 'Maybe' 'Text'
---
--- * 'terDateCreated' @::@ 'Maybe' 'UTCTime'
---
--- * 'terDateUpdated' @::@ 'Maybe' 'UTCTime'
---
--- * 'terDescription' @::@ 'Maybe' 'Text'
---
--- * 'terEndpointURL' @::@ 'Maybe' 'Text'
---
--- * 'terEnvironmentId' @::@ 'Maybe' 'Text'
---
--- * 'terEnvironmentName' @::@ 'Maybe' 'Text'
---
--- * 'terHealth' @::@ 'Maybe' 'EnvironmentHealth'
---
--- * 'terResources' @::@ 'Maybe' 'EnvironmentResourcesDescription'
---
--- * 'terSolutionStackName' @::@ 'Maybe' 'Text'
---
--- * 'terStatus' @::@ 'Maybe' 'EnvironmentStatus'
---
--- * 'terTemplateName' @::@ 'Maybe' 'Text'
---
--- * 'terTier' @::@ 'Maybe' 'EnvironmentTier'
---
--- * 'terVersionLabel' @::@ 'Maybe' 'Text'
---
-terminateEnvironmentResponse :: TerminateEnvironmentResponse
-terminateEnvironmentResponse = TerminateEnvironmentResponse
-    { _terEnvironmentName              = Nothing
-    , _terEnvironmentId                = Nothing
-    , _terApplicationName              = Nothing
-    , _terVersionLabel                 = Nothing
-    , _terSolutionStackName            = Nothing
-    , _terTemplateName                 = Nothing
-    , _terDescription                  = Nothing
-    , _terEndpointURL                  = Nothing
-    , _terCNAME                        = Nothing
-    , _terDateCreated                  = Nothing
-    , _terDateUpdated                  = Nothing
-    , _terStatus                       = Nothing
-    , _terAbortableOperationInProgress = Nothing
-    , _terHealth                       = Nothing
-    , _terResources                    = Nothing
-    , _terTier                         = Nothing
-    }
-
--- | Indicates if there is an in-progress environment configuration update or
--- application version deployment that you can cancel.
---
--- 'true:' There is an update in progress.
---
--- 'false:' There are no updates currently in progress.
-terAbortableOperationInProgress :: Lens' TerminateEnvironmentResponse (Maybe Bool)
-terAbortableOperationInProgress =
-    lens _terAbortableOperationInProgress
-        (\s a -> s { _terAbortableOperationInProgress = a })
-
--- | The name of the application associated with this environment.
-terApplicationName :: Lens' TerminateEnvironmentResponse (Maybe Text)
-terApplicationName =
-    lens _terApplicationName (\s a -> s { _terApplicationName = a })
-
--- | The URL to the CNAME for this environment.
-terCNAME :: Lens' TerminateEnvironmentResponse (Maybe Text)
-terCNAME = lens _terCNAME (\s a -> s { _terCNAME = a })
-
--- | The creation date for this environment.
-terDateCreated :: Lens' TerminateEnvironmentResponse (Maybe UTCTime)
-terDateCreated = lens _terDateCreated (\s a -> s { _terDateCreated = a }) . mapping _Time
-
--- | The last modified date for this environment.
-terDateUpdated :: Lens' TerminateEnvironmentResponse (Maybe UTCTime)
-terDateUpdated = lens _terDateUpdated (\s a -> s { _terDateUpdated = a }) . mapping _Time
-
--- | Describes this environment.
-terDescription :: Lens' TerminateEnvironmentResponse (Maybe Text)
-terDescription = lens _terDescription (\s a -> s { _terDescription = a })
-
--- | For load-balanced, autoscaling environments, the URL to the LoadBalancer. For
--- single-instance environments, the IP address of the instance.
-terEndpointURL :: Lens' TerminateEnvironmentResponse (Maybe Text)
-terEndpointURL = lens _terEndpointURL (\s a -> s { _terEndpointURL = a })
-
--- | The ID of this environment.
-terEnvironmentId :: Lens' TerminateEnvironmentResponse (Maybe Text)
-terEnvironmentId = lens _terEnvironmentId (\s a -> s { _terEnvironmentId = a })
-
--- | The name of this environment.
-terEnvironmentName :: Lens' TerminateEnvironmentResponse (Maybe Text)
-terEnvironmentName =
-    lens _terEnvironmentName (\s a -> s { _terEnvironmentName = a })
+teTerminateResources = lens _teTerminateResources (\ s a -> s{_teTerminateResources = a});
 
--- | Describes the health status of the environment. AWS Elastic Beanstalk
--- indicates the failure levels for a running environment:
---
--- 'Red' : Indicates the environment is not working.
---
--- 'Yellow': Indicates that something is wrong, the application might not be
--- available, but the instances appear running.
---
--- 'Green': Indicates the environment is healthy and fully functional.
+-- | The name of the environment to terminate.
 --
--- 'Red': Indicates the environment is not responsive. Occurs when three or
--- more consecutive failures occur for an environment.   'Yellow': Indicates that
--- something is wrong. Occurs when two consecutive failures occur for an
--- environment.   'Green': Indicates the environment is healthy and fully
--- functional.   'Grey': Default health for a new environment. The environment is
--- not fully launched and health checks have not started or health checks are
--- suspended during an 'UpdateEnvironment' or 'RestartEnvironement' request.
--- Default: 'Grey'
-terHealth :: Lens' TerminateEnvironmentResponse (Maybe EnvironmentHealth)
-terHealth = lens _terHealth (\s a -> s { _terHealth = a })
-
--- | The description of the AWS resources used by this environment.
-terResources :: Lens' TerminateEnvironmentResponse (Maybe EnvironmentResourcesDescription)
-terResources = lens _terResources (\s a -> s { _terResources = a })
-
--- | The name of the 'SolutionStack' deployed with this environment.
-terSolutionStackName :: Lens' TerminateEnvironmentResponse (Maybe Text)
-terSolutionStackName =
-    lens _terSolutionStackName (\s a -> s { _terSolutionStackName = a })
+-- Condition: You must specify either this or an EnvironmentId, or both. If
+-- you do not specify either, AWS Elastic Beanstalk returns
+-- 'MissingRequiredParameter' error.
+teEnvironmentName :: Lens' TerminateEnvironment (Maybe Text)
+teEnvironmentName = lens _teEnvironmentName (\ s a -> s{_teEnvironmentName = a});
 
--- | The current operational status of the environment:
+-- | The ID of the environment to terminate.
 --
--- 'Launching': Environment is in the process of initial deployment.   'Updating': Environment is in the process of updating its configuration settings or application version.
--- 'Ready': Environment is available to have an action performed on it, such as
--- update or terminate.   'Terminating': Environment is in the shut-down process.
--- 'Terminated': Environment is not running.
-terStatus :: Lens' TerminateEnvironmentResponse (Maybe EnvironmentStatus)
-terStatus = lens _terStatus (\s a -> s { _terStatus = a })
-
--- | The name of the configuration template used to originally launch this
--- environment.
-terTemplateName :: Lens' TerminateEnvironmentResponse (Maybe Text)
-terTemplateName = lens _terTemplateName (\s a -> s { _terTemplateName = a })
+-- Condition: You must specify either this or an EnvironmentName, or both.
+-- If you do not specify either, AWS Elastic Beanstalk returns
+-- 'MissingRequiredParameter' error.
+teEnvironmentId :: Lens' TerminateEnvironment (Maybe Text)
+teEnvironmentId = lens _teEnvironmentId (\ s a -> s{_teEnvironmentId = a});
 
--- | Describes the current tier of this environment.
-terTier :: Lens' TerminateEnvironmentResponse (Maybe EnvironmentTier)
-terTier = lens _terTier (\s a -> s { _terTier = a })
+instance AWSRequest TerminateEnvironment where
+        type Sv TerminateEnvironment = ElasticBeanstalk
+        type Rs TerminateEnvironment = EnvironmentDescription
+        request = postQuery
+        response
+          = receiveXMLWrapper "TerminateEnvironmentResult"
+              (\ s h x -> parseXML x)
 
--- | The application version deployed in this environment.
-terVersionLabel :: Lens' TerminateEnvironmentResponse (Maybe Text)
-terVersionLabel = lens _terVersionLabel (\s a -> s { _terVersionLabel = a })
+instance ToHeaders TerminateEnvironment where
+        toHeaders = const mempty
 
 instance ToPath TerminateEnvironment where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery TerminateEnvironment where
-    toQuery TerminateEnvironment{..} = mconcat
-        [ "EnvironmentId"      =? _teEnvironmentId
-        , "EnvironmentName"    =? _teEnvironmentName
-        , "TerminateResources" =? _teTerminateResources
-        ]
-
-instance ToHeaders TerminateEnvironment
-
-instance AWSRequest TerminateEnvironment where
-    type Sv TerminateEnvironment = ElasticBeanstalk
-    type Rs TerminateEnvironment = TerminateEnvironmentResponse
-
-    request  = post "TerminateEnvironment"
-    response = xmlResponse
-
-instance FromXML TerminateEnvironmentResponse where
-    parseXML = withElement "TerminateEnvironmentResult" $ \x -> TerminateEnvironmentResponse
-        <$> x .@? "AbortableOperationInProgress"
-        <*> x .@? "ApplicationName"
-        <*> x .@? "CNAME"
-        <*> x .@? "DateCreated"
-        <*> x .@? "DateUpdated"
-        <*> x .@? "Description"
-        <*> x .@? "EndpointURL"
-        <*> x .@? "EnvironmentId"
-        <*> x .@? "EnvironmentName"
-        <*> x .@? "Health"
-        <*> x .@? "Resources"
-        <*> x .@? "SolutionStackName"
-        <*> x .@? "Status"
-        <*> x .@? "TemplateName"
-        <*> x .@? "Tier"
-        <*> x .@? "VersionLabel"
+        toQuery TerminateEnvironment'{..}
+          = mconcat
+              ["Action" =: ("TerminateEnvironment" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "TerminateResources" =: _teTerminateResources,
+               "EnvironmentName" =: _teEnvironmentName,
+               "EnvironmentId" =: _teEnvironmentId]
diff --git a/gen/Network/AWS/ElasticBeanstalk/Types.hs b/gen/Network/AWS/ElasticBeanstalk/Types.hs
--- a/gen/Network/AWS/ElasticBeanstalk/Types.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/Types.hs
@@ -1,2243 +1,460 @@
-{-# 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.ElasticBeanstalk.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.ElasticBeanstalk.Types
-    (
-    -- * Service
-      ElasticBeanstalk
-    -- ** Error
-    , RESTError
-    -- ** XML
-    , ns
-
-    -- * ApplicationDescription
-    , ApplicationDescription
-    , applicationDescription
-    , adApplicationName
-    , adConfigurationTemplates
-    , adDateCreated
-    , adDateUpdated
-    , adDescription
-    , adVersions
-
-    -- * EventSeverity
-    , EventSeverity (..)
-
-    -- * Tag
-    , Tag
-    , tag
-    , tagKey
-    , tagValue
-
-    -- * EventDescription
-    , EventDescription
-    , eventDescription
-    , edApplicationName
-    , edEnvironmentName
-    , edEventDate
-    , edMessage
-    , edRequestId
-    , edSeverity
-    , edTemplateName
-    , edVersionLabel
-
-    -- * LaunchConfiguration
-    , LaunchConfiguration
-    , launchConfiguration
-    , lcName
-
-    -- * ApplicationVersionDescriptionMessage
-    , ApplicationVersionDescriptionMessage
-    , applicationVersionDescriptionMessage
-    , avdmApplicationVersion
-
-    -- * AutoScalingGroup
-    , AutoScalingGroup
-    , autoScalingGroup
-    , asgName
-
-    -- * ConfigurationDeploymentStatus
-    , ConfigurationDeploymentStatus (..)
-
-    -- * ConfigurationOptionSetting
-    , ConfigurationOptionSetting
-    , configurationOptionSetting
-    , cosNamespace
-    , cosOptionName
-    , cosResourceName
-    , cosValue
-
-    -- * ConfigurationOptionValueType
-    , ConfigurationOptionValueType (..)
-
-    -- * ConfigurationSettingsDescription
-    , ConfigurationSettingsDescription
-    , configurationSettingsDescription
-    , csdApplicationName
-    , csdDateCreated
-    , csdDateUpdated
-    , csdDeploymentStatus
-    , csdDescription
-    , csdEnvironmentName
-    , csdOptionSettings
-    , csdSolutionStackName
-    , csdTemplateName
-
-    -- * ApplicationVersionDescription
-    , ApplicationVersionDescription
-    , applicationVersionDescription
-    , avdApplicationName
-    , avdDateCreated
-    , avdDateUpdated
-    , avdDescription
-    , avdSourceBundle
-    , avdVersionLabel
-
-    -- * OptionSpecification
-    , OptionSpecification
-    , optionSpecification
-    , osNamespace
-    , osOptionName
-    , osResourceName
-
-    -- * EnvironmentResourceDescription
-    , EnvironmentResourceDescription
-    , environmentResourceDescription
-    , erdAutoScalingGroups
-    , erdEnvironmentName
-    , erdInstances
-    , erdLaunchConfigurations
-    , erdLoadBalancers
-    , erdQueues
-    , erdTriggers
-
-    -- * Queue
-    , Queue
-    , queue
-    , qName
-    , qURL
-
-    -- * EnvironmentStatus
-    , EnvironmentStatus (..)
-
-    -- * LoadBalancerDescription
-    , LoadBalancerDescription
-    , loadBalancerDescription
-    , lbdDomain
-    , lbdListeners
-    , lbdLoadBalancerName
-
-    -- * ApplicationDescriptionMessage
-    , ApplicationDescriptionMessage
-    , applicationDescriptionMessage
-    , admApplication
-
-    -- * EnvironmentTier
-    , EnvironmentTier
-    , environmentTier
-    , etName
-    , etType
-    , etVersion
-
-    -- * LoadBalancer
-    , LoadBalancer
-    , loadBalancer
-    , lbName
-
-    -- * EnvironmentResourcesDescription
-    , EnvironmentResourcesDescription
-    , environmentResourcesDescription
-    , erdLoadBalancer
-
-    -- * OptionRestrictionRegex
-    , OptionRestrictionRegex
-    , optionRestrictionRegex
-    , orrLabel
-    , orrPattern
-
-    -- * ConfigurationOptionDescription
-    , ConfigurationOptionDescription
-    , configurationOptionDescription
-    , codChangeSeverity
-    , codDefaultValue
-    , codMaxLength
-    , codMaxValue
-    , codMinValue
-    , codName
-    , codNamespace
-    , codRegex
-    , codUserDefined
-    , codValueOptions
-    , codValueType
-
-    -- * SourceConfiguration
-    , SourceConfiguration
-    , sourceConfiguration
-    , scApplicationName
-    , scTemplateName
-
-    -- * EnvironmentInfoDescription
-    , EnvironmentInfoDescription
-    , environmentInfoDescription
-    , eidEc2InstanceId
-    , eidInfoType
-    , eidMessage
-    , eidSampleTimestamp
-
-    -- * S3Location
-    , S3Location
-    , s3Location
-    , slS3Bucket
-    , slS3Key
-
-    -- * ValidationMessage
-    , ValidationMessage
-    , validationMessage
-    , vmMessage
-    , vmNamespace
-    , vmOptionName
-    , vmSeverity
-
-    -- * ValidationSeverity
-    , ValidationSeverity (..)
-
-    -- * Trigger
-    , Trigger
-    , trigger
-    , tName
-
-    -- * EnvironmentInfoType
-    , EnvironmentInfoType (..)
-
-    -- * EnvironmentDescription
-    , EnvironmentDescription
-    , environmentDescription
-    , ed1AbortableOperationInProgress
-    , ed1ApplicationName
-    , ed1CNAME
-    , ed1DateCreated
-    , ed1DateUpdated
-    , ed1Description
-    , ed1EndpointURL
-    , ed1EnvironmentId
-    , ed1EnvironmentName
-    , ed1Health
-    , ed1Resources
-    , ed1SolutionStackName
-    , ed1Status
-    , ed1TemplateName
-    , ed1Tier
-    , ed1VersionLabel
-
-    -- * Listener
-    , Listener
-    , listener
-    , lPort
-    , lProtocol
-
-    -- * EnvironmentHealth
-    , EnvironmentHealth (..)
-
-    -- * Instance
-    , Instance
-    , instance'
-    , iId
-
-    -- * SolutionStackDescription
-    , SolutionStackDescription
-    , solutionStackDescription
-    , ssdPermittedFileTypes
-    , ssdSolutionStackName
-    ) where
-
-import Network.AWS.Prelude
-import Network.AWS.Signing
-import qualified GHC.Exts
-
--- | Version @2010-12-01@ of the Amazon Elastic Beanstalk service.
-data ElasticBeanstalk
-
-instance AWSService ElasticBeanstalk where
-    type Sg ElasticBeanstalk = V4
-    type Er ElasticBeanstalk = RESTError
-
-    service = service'
-      where
-        service' :: Service ElasticBeanstalk
-        service' = Service
-            { _svcAbbrev       = "ElasticBeanstalk"
-            , _svcPrefix       = "elasticbeanstalk"
-            , _svcVersion      = "2010-12-01"
-            , _svcTargetPrefix = Nothing
-            , _svcJSONVersion  = Nothing
-            , _svcHandle       = handle
-            , _svcRetry        = retry
-            }
-
-        handle :: Status
-               -> Maybe (LazyByteString -> ServiceError RESTError)
-        handle = restError statusSuccess service'
-
-        retry :: Retry ElasticBeanstalk
-        retry = Exponential
-            { _retryBase     = 0.05
-            , _retryGrowth   = 2
-            , _retryAttempts = 5
-            , _retryCheck    = check
-            }
-
-        check :: Status
-              -> RESTError
-              -> Bool
-        check (statusCode -> s) (awsErrorCode -> e)
-            | s == 400 && (Just "Throttling") == e = True -- Throttling
-            | s == 500  = True -- General Server Error
-            | s == 509  = True -- Limit Exceeded
-            | s == 503  = True -- Service Unavailable
-            | otherwise = False
-
-ns :: Text
-ns = "http://elasticbeanstalk.amazonaws.com/docs/2010-12-01/"
-{-# INLINE ns #-}
-
-data ApplicationDescription = ApplicationDescription
-    { _adApplicationName        :: Maybe Text
-    , _adConfigurationTemplates :: List "member" Text
-    , _adDateCreated            :: Maybe ISO8601
-    , _adDateUpdated            :: Maybe ISO8601
-    , _adDescription            :: Maybe Text
-    , _adVersions               :: List "member" Text
-    } deriving (Eq, Ord, Read, Show)
-
--- | 'ApplicationDescription' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'adApplicationName' @::@ 'Maybe' 'Text'
---
--- * 'adConfigurationTemplates' @::@ ['Text']
---
--- * 'adDateCreated' @::@ 'Maybe' 'UTCTime'
---
--- * 'adDateUpdated' @::@ 'Maybe' 'UTCTime'
---
--- * 'adDescription' @::@ 'Maybe' 'Text'
---
--- * 'adVersions' @::@ ['Text']
---
-applicationDescription :: ApplicationDescription
-applicationDescription = ApplicationDescription
-    { _adApplicationName        = Nothing
-    , _adDescription            = Nothing
-    , _adDateCreated            = Nothing
-    , _adDateUpdated            = Nothing
-    , _adVersions               = mempty
-    , _adConfigurationTemplates = mempty
-    }
-
--- | The name of the application.
-adApplicationName :: Lens' ApplicationDescription (Maybe Text)
-adApplicationName =
-    lens _adApplicationName (\s a -> s { _adApplicationName = a })
-
--- | The names of the configuration templates associated with this application.
-adConfigurationTemplates :: Lens' ApplicationDescription [Text]
-adConfigurationTemplates =
-    lens _adConfigurationTemplates
-        (\s a -> s { _adConfigurationTemplates = a })
-            . _List
-
--- | The date when the application was created.
-adDateCreated :: Lens' ApplicationDescription (Maybe UTCTime)
-adDateCreated = lens _adDateCreated (\s a -> s { _adDateCreated = a }) . mapping _Time
-
--- | The date when the application was last modified.
-adDateUpdated :: Lens' ApplicationDescription (Maybe UTCTime)
-adDateUpdated = lens _adDateUpdated (\s a -> s { _adDateUpdated = a }) . mapping _Time
-
--- | User-defined description of the application.
-adDescription :: Lens' ApplicationDescription (Maybe Text)
-adDescription = lens _adDescription (\s a -> s { _adDescription = a })
-
--- | The names of the versions for this application.
-adVersions :: Lens' ApplicationDescription [Text]
-adVersions = lens _adVersions (\s a -> s { _adVersions = a }) . _List
-
-instance FromXML ApplicationDescription where
-    parseXML x = ApplicationDescription
-        <$> x .@? "ApplicationName"
-        <*> x .@? "ConfigurationTemplates" .!@ mempty
-        <*> x .@? "DateCreated"
-        <*> x .@? "DateUpdated"
-        <*> x .@? "Description"
-        <*> x .@? "Versions" .!@ mempty
-
-instance ToQuery ApplicationDescription where
-    toQuery ApplicationDescription{..} = mconcat
-        [ "ApplicationName"        =? _adApplicationName
-        , "ConfigurationTemplates" =? _adConfigurationTemplates
-        , "DateCreated"            =? _adDateCreated
-        , "DateUpdated"            =? _adDateUpdated
-        , "Description"            =? _adDescription
-        , "Versions"               =? _adVersions
-        ]
-
-data EventSeverity
-    = Debug -- ^ DEBUG
-    | Error -- ^ ERROR
-    | Fatal -- ^ FATAL
-    | Info  -- ^ INFO
-    | Trace -- ^ TRACE
-    | Warn  -- ^ WARN
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable EventSeverity
-
-instance FromText EventSeverity where
-    parser = takeLowerText >>= \case
-        "debug" -> pure Debug
-        "error" -> pure Error
-        "fatal" -> pure Fatal
-        "info"  -> pure Info
-        "trace" -> pure Trace
-        "warn"  -> pure Warn
-        e       -> fail $
-            "Failure parsing EventSeverity from " ++ show e
-
-instance ToText EventSeverity where
-    toText = \case
-        Debug -> "DEBUG"
-        Error -> "ERROR"
-        Fatal -> "FATAL"
-        Info  -> "INFO"
-        Trace -> "TRACE"
-        Warn  -> "WARN"
-
-instance ToByteString EventSeverity
-instance ToHeader     EventSeverity
-instance ToQuery      EventSeverity
-
-instance FromXML EventSeverity where
-    parseXML = parseXMLText "EventSeverity"
-
-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 key of the tag.
-tagKey :: Lens' Tag (Maybe Text)
-tagKey = lens _tagKey (\s a -> s { _tagKey = a })
-
--- | The value of the tag.
-tagValue :: Lens' Tag (Maybe Text)
-tagValue = lens _tagValue (\s a -> s { _tagValue = a })
-
-instance FromXML Tag where
-    parseXML x = Tag
-        <$> x .@? "Key"
-        <*> x .@? "Value"
-
-instance ToQuery Tag where
-    toQuery Tag{..} = mconcat
-        [ "Key"   =? _tagKey
-        , "Value" =? _tagValue
-        ]
-
-data EventDescription = EventDescription
-    { _edApplicationName :: Maybe Text
-    , _edEnvironmentName :: Maybe Text
-    , _edEventDate       :: Maybe ISO8601
-    , _edMessage         :: Maybe Text
-    , _edRequestId       :: Maybe Text
-    , _edSeverity        :: Maybe EventSeverity
-    , _edTemplateName    :: Maybe Text
-    , _edVersionLabel    :: Maybe Text
-    } deriving (Eq, Read, Show)
-
--- | 'EventDescription' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'edApplicationName' @::@ 'Maybe' 'Text'
---
--- * 'edEnvironmentName' @::@ 'Maybe' 'Text'
---
--- * 'edEventDate' @::@ 'Maybe' 'UTCTime'
---
--- * 'edMessage' @::@ 'Maybe' 'Text'
---
--- * 'edRequestId' @::@ 'Maybe' 'Text'
---
--- * 'edSeverity' @::@ 'Maybe' 'EventSeverity'
---
--- * 'edTemplateName' @::@ 'Maybe' 'Text'
---
--- * 'edVersionLabel' @::@ 'Maybe' 'Text'
---
-eventDescription :: EventDescription
-eventDescription = EventDescription
-    { _edEventDate       = Nothing
-    , _edMessage         = Nothing
-    , _edApplicationName = Nothing
-    , _edVersionLabel    = Nothing
-    , _edTemplateName    = Nothing
-    , _edEnvironmentName = Nothing
-    , _edRequestId       = Nothing
-    , _edSeverity        = Nothing
-    }
-
--- | The application associated with the event.
-edApplicationName :: Lens' EventDescription (Maybe Text)
-edApplicationName =
-    lens _edApplicationName (\s a -> s { _edApplicationName = a })
-
--- | The name of the environment associated with this event.
-edEnvironmentName :: Lens' EventDescription (Maybe Text)
-edEnvironmentName =
-    lens _edEnvironmentName (\s a -> s { _edEnvironmentName = a })
-
--- | The date when the event occurred.
-edEventDate :: Lens' EventDescription (Maybe UTCTime)
-edEventDate = lens _edEventDate (\s a -> s { _edEventDate = a }) . mapping _Time
-
--- | The event message.
-edMessage :: Lens' EventDescription (Maybe Text)
-edMessage = lens _edMessage (\s a -> s { _edMessage = a })
-
--- | The web service request ID for the activity of this event.
-edRequestId :: Lens' EventDescription (Maybe Text)
-edRequestId = lens _edRequestId (\s a -> s { _edRequestId = a })
-
--- | The severity level of this event.
-edSeverity :: Lens' EventDescription (Maybe EventSeverity)
-edSeverity = lens _edSeverity (\s a -> s { _edSeverity = a })
-
--- | The name of the configuration associated with this event.
-edTemplateName :: Lens' EventDescription (Maybe Text)
-edTemplateName = lens _edTemplateName (\s a -> s { _edTemplateName = a })
-
--- | The release label for the application version associated with this event.
-edVersionLabel :: Lens' EventDescription (Maybe Text)
-edVersionLabel = lens _edVersionLabel (\s a -> s { _edVersionLabel = a })
-
-instance FromXML EventDescription where
-    parseXML x = EventDescription
-        <$> x .@? "ApplicationName"
-        <*> x .@? "EnvironmentName"
-        <*> x .@? "EventDate"
-        <*> x .@? "Message"
-        <*> x .@? "RequestId"
-        <*> x .@? "Severity"
-        <*> x .@? "TemplateName"
-        <*> x .@? "VersionLabel"
-
-instance ToQuery EventDescription where
-    toQuery EventDescription{..} = mconcat
-        [ "ApplicationName" =? _edApplicationName
-        , "EnvironmentName" =? _edEnvironmentName
-        , "EventDate"       =? _edEventDate
-        , "Message"         =? _edMessage
-        , "RequestId"       =? _edRequestId
-        , "Severity"        =? _edSeverity
-        , "TemplateName"    =? _edTemplateName
-        , "VersionLabel"    =? _edVersionLabel
-        ]
-
-newtype LaunchConfiguration = LaunchConfiguration
-    { _lcName :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
-
--- | 'LaunchConfiguration' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'lcName' @::@ 'Maybe' 'Text'
---
-launchConfiguration :: LaunchConfiguration
-launchConfiguration = LaunchConfiguration
-    { _lcName = Nothing
-    }
-
--- | The name of the launch configuration.
-lcName :: Lens' LaunchConfiguration (Maybe Text)
-lcName = lens _lcName (\s a -> s { _lcName = a })
-
-instance FromXML LaunchConfiguration where
-    parseXML x = LaunchConfiguration
-        <$> x .@? "Name"
-
-instance ToQuery LaunchConfiguration where
-    toQuery LaunchConfiguration{..} = mconcat
-        [ "Name" =? _lcName
-        ]
-
-newtype ApplicationVersionDescriptionMessage = ApplicationVersionDescriptionMessage
-    { _avdmApplicationVersion :: Maybe ApplicationVersionDescription
-    } deriving (Eq, Read, Show)
-
--- | 'ApplicationVersionDescriptionMessage' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'avdmApplicationVersion' @::@ 'Maybe' 'ApplicationVersionDescription'
---
-applicationVersionDescriptionMessage :: ApplicationVersionDescriptionMessage
-applicationVersionDescriptionMessage = ApplicationVersionDescriptionMessage
-    { _avdmApplicationVersion = Nothing
-    }
-
--- | The 'ApplicationVersionDescription' of the application version.
-avdmApplicationVersion :: Lens' ApplicationVersionDescriptionMessage (Maybe ApplicationVersionDescription)
-avdmApplicationVersion =
-    lens _avdmApplicationVersion (\s a -> s { _avdmApplicationVersion = a })
-
-instance FromXML ApplicationVersionDescriptionMessage where
-    parseXML x = ApplicationVersionDescriptionMessage
-        <$> x .@? "ApplicationVersion"
-
-instance ToQuery ApplicationVersionDescriptionMessage where
-    toQuery ApplicationVersionDescriptionMessage{..} = mconcat
-        [ "ApplicationVersion" =? _avdmApplicationVersion
-        ]
-
-newtype AutoScalingGroup = AutoScalingGroup
-    { _asgName :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
-
--- | 'AutoScalingGroup' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'asgName' @::@ 'Maybe' 'Text'
---
-autoScalingGroup :: AutoScalingGroup
-autoScalingGroup = AutoScalingGroup
-    { _asgName = Nothing
-    }
-
--- | The name of the 'AutoScalingGroup' .
-asgName :: Lens' AutoScalingGroup (Maybe Text)
-asgName = lens _asgName (\s a -> s { _asgName = a })
-
-instance FromXML AutoScalingGroup where
-    parseXML x = AutoScalingGroup
-        <$> x .@? "Name"
-
-instance ToQuery AutoScalingGroup where
-    toQuery AutoScalingGroup{..} = mconcat
-        [ "Name" =? _asgName
-        ]
-
-data ConfigurationDeploymentStatus
-    = Deployed -- ^ deployed
-    | Failed   -- ^ failed
-    | Pending  -- ^ pending
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable ConfigurationDeploymentStatus
-
-instance FromText ConfigurationDeploymentStatus where
-    parser = takeLowerText >>= \case
-        "deployed" -> pure Deployed
-        "failed"   -> pure Failed
-        "pending"  -> pure Pending
-        e          -> fail $
-            "Failure parsing ConfigurationDeploymentStatus from " ++ show e
-
-instance ToText ConfigurationDeploymentStatus where
-    toText = \case
-        Deployed -> "deployed"
-        Failed   -> "failed"
-        Pending  -> "pending"
-
-instance ToByteString ConfigurationDeploymentStatus
-instance ToHeader     ConfigurationDeploymentStatus
-instance ToQuery      ConfigurationDeploymentStatus
-
-instance FromXML ConfigurationDeploymentStatus where
-    parseXML = parseXMLText "ConfigurationDeploymentStatus"
-
-data ConfigurationOptionSetting = ConfigurationOptionSetting
-    { _cosNamespace    :: Maybe Text
-    , _cosOptionName   :: Maybe Text
-    , _cosResourceName :: Maybe Text
-    , _cosValue        :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
-
--- | 'ConfigurationOptionSetting' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'cosNamespace' @::@ 'Maybe' 'Text'
---
--- * 'cosOptionName' @::@ 'Maybe' 'Text'
---
--- * 'cosResourceName' @::@ 'Maybe' 'Text'
---
--- * 'cosValue' @::@ 'Maybe' 'Text'
---
-configurationOptionSetting :: ConfigurationOptionSetting
-configurationOptionSetting = ConfigurationOptionSetting
-    { _cosResourceName = Nothing
-    , _cosNamespace    = Nothing
-    , _cosOptionName   = Nothing
-    , _cosValue        = Nothing
-    }
-
--- | A unique namespace identifying the option's associated AWS resource.
-cosNamespace :: Lens' ConfigurationOptionSetting (Maybe Text)
-cosNamespace = lens _cosNamespace (\s a -> s { _cosNamespace = a })
-
--- | The name of the configuration option.
-cosOptionName :: Lens' ConfigurationOptionSetting (Maybe Text)
-cosOptionName = lens _cosOptionName (\s a -> s { _cosOptionName = a })
-
--- | A unique resource name for a time-based scaling configuration option.
-cosResourceName :: Lens' ConfigurationOptionSetting (Maybe Text)
-cosResourceName = lens _cosResourceName (\s a -> s { _cosResourceName = a })
-
--- | The current value for the configuration option.
-cosValue :: Lens' ConfigurationOptionSetting (Maybe Text)
-cosValue = lens _cosValue (\s a -> s { _cosValue = a })
-
-instance FromXML ConfigurationOptionSetting where
-    parseXML x = ConfigurationOptionSetting
-        <$> x .@? "Namespace"
-        <*> x .@? "OptionName"
-        <*> x .@? "ResourceName"
-        <*> x .@? "Value"
-
-instance ToQuery ConfigurationOptionSetting where
-    toQuery ConfigurationOptionSetting{..} = mconcat
-        [ "Namespace"    =? _cosNamespace
-        , "OptionName"   =? _cosOptionName
-        , "ResourceName" =? _cosResourceName
-        , "Value"        =? _cosValue
-        ]
-
-data ConfigurationOptionValueType
-    = List'  -- ^ List
-    | Scalar -- ^ Scalar
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable ConfigurationOptionValueType
-
-instance FromText ConfigurationOptionValueType where
-    parser = takeLowerText >>= \case
-        "list"   -> pure List'
-        "scalar" -> pure Scalar
-        e        -> fail $
-            "Failure parsing ConfigurationOptionValueType from " ++ show e
-
-instance ToText ConfigurationOptionValueType where
-    toText = \case
-        List'  -> "List"
-        Scalar -> "Scalar"
-
-instance ToByteString ConfigurationOptionValueType
-instance ToHeader     ConfigurationOptionValueType
-instance ToQuery      ConfigurationOptionValueType
-
-instance FromXML ConfigurationOptionValueType where
-    parseXML = parseXMLText "ConfigurationOptionValueType"
-
-data ConfigurationSettingsDescription = ConfigurationSettingsDescription
-    { _csdApplicationName   :: Maybe Text
-    , _csdDateCreated       :: Maybe ISO8601
-    , _csdDateUpdated       :: Maybe ISO8601
-    , _csdDeploymentStatus  :: Maybe ConfigurationDeploymentStatus
-    , _csdDescription       :: Maybe Text
-    , _csdEnvironmentName   :: Maybe Text
-    , _csdOptionSettings    :: List "member" ConfigurationOptionSetting
-    , _csdSolutionStackName :: Maybe Text
-    , _csdTemplateName      :: Maybe Text
-    } deriving (Eq, Read, Show)
-
--- | 'ConfigurationSettingsDescription' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'csdApplicationName' @::@ 'Maybe' 'Text'
---
--- * 'csdDateCreated' @::@ 'Maybe' 'UTCTime'
---
--- * 'csdDateUpdated' @::@ 'Maybe' 'UTCTime'
---
--- * 'csdDeploymentStatus' @::@ 'Maybe' 'ConfigurationDeploymentStatus'
---
--- * 'csdDescription' @::@ 'Maybe' 'Text'
---
--- * 'csdEnvironmentName' @::@ 'Maybe' 'Text'
---
--- * 'csdOptionSettings' @::@ ['ConfigurationOptionSetting']
---
--- * 'csdSolutionStackName' @::@ 'Maybe' 'Text'
---
--- * 'csdTemplateName' @::@ 'Maybe' 'Text'
---
-configurationSettingsDescription :: ConfigurationSettingsDescription
-configurationSettingsDescription = ConfigurationSettingsDescription
-    { _csdSolutionStackName = Nothing
-    , _csdApplicationName   = Nothing
-    , _csdTemplateName      = Nothing
-    , _csdDescription       = Nothing
-    , _csdEnvironmentName   = Nothing
-    , _csdDeploymentStatus  = Nothing
-    , _csdDateCreated       = Nothing
-    , _csdDateUpdated       = Nothing
-    , _csdOptionSettings    = mempty
-    }
-
--- | The name of the application associated with this configuration set.
-csdApplicationName :: Lens' ConfigurationSettingsDescription (Maybe Text)
-csdApplicationName =
-    lens _csdApplicationName (\s a -> s { _csdApplicationName = a })
-
--- | The date (in UTC time) when this configuration set was created.
-csdDateCreated :: Lens' ConfigurationSettingsDescription (Maybe UTCTime)
-csdDateCreated = lens _csdDateCreated (\s a -> s { _csdDateCreated = a }) . mapping _Time
-
--- | The date (in UTC time) when this configuration set was last modified.
-csdDateUpdated :: Lens' ConfigurationSettingsDescription (Maybe UTCTime)
-csdDateUpdated = lens _csdDateUpdated (\s a -> s { _csdDateUpdated = a }) . mapping _Time
-
--- | If this configuration set is associated with an environment, the 'DeploymentStatus' parameter indicates the deployment status of this configuration set:
---
--- 'null': This configuration is not associated with a running environment.
---
--- 'pending': This is a draft configuration that is not deployed to the
--- associated environment but is in the process of deploying.
---
--- 'deployed': This is the configuration that is currently deployed to the
--- associated running environment.
---
--- 'failed': This is a draft configuration, that failed to successfully
--- deploy.
---
--- 'null': This configuration is not associated with a running environment.   'pending': This is a draft configuration that is not deployed to the associated
--- environment but is in the process of deploying.   'deployed': This is the
--- configuration that is currently deployed to the associated running
--- environment.   'failed': This is a draft configuration that failed to
--- successfully deploy.
-csdDeploymentStatus :: Lens' ConfigurationSettingsDescription (Maybe ConfigurationDeploymentStatus)
-csdDeploymentStatus =
-    lens _csdDeploymentStatus (\s a -> s { _csdDeploymentStatus = a })
-
--- | Describes this configuration set.
-csdDescription :: Lens' ConfigurationSettingsDescription (Maybe Text)
-csdDescription = lens _csdDescription (\s a -> s { _csdDescription = a })
-
--- | If not 'null', the name of the environment for this configuration set.
-csdEnvironmentName :: Lens' ConfigurationSettingsDescription (Maybe Text)
-csdEnvironmentName =
-    lens _csdEnvironmentName (\s a -> s { _csdEnvironmentName = a })
-
--- | A list of the configuration options and their values in this configuration
--- set.
-csdOptionSettings :: Lens' ConfigurationSettingsDescription [ConfigurationOptionSetting]
-csdOptionSettings =
-    lens _csdOptionSettings (\s a -> s { _csdOptionSettings = a })
-        . _List
-
--- | The name of the solution stack this configuration set uses.
-csdSolutionStackName :: Lens' ConfigurationSettingsDescription (Maybe Text)
-csdSolutionStackName =
-    lens _csdSolutionStackName (\s a -> s { _csdSolutionStackName = a })
-
--- | If not 'null', the name of the configuration template for this configuration
--- set.
-csdTemplateName :: Lens' ConfigurationSettingsDescription (Maybe Text)
-csdTemplateName = lens _csdTemplateName (\s a -> s { _csdTemplateName = a })
-
-instance FromXML ConfigurationSettingsDescription where
-    parseXML x = ConfigurationSettingsDescription
-        <$> x .@? "ApplicationName"
-        <*> x .@? "DateCreated"
-        <*> x .@? "DateUpdated"
-        <*> x .@? "DeploymentStatus"
-        <*> x .@? "Description"
-        <*> x .@? "EnvironmentName"
-        <*> x .@? "OptionSettings" .!@ mempty
-        <*> x .@? "SolutionStackName"
-        <*> x .@? "TemplateName"
-
-instance ToQuery ConfigurationSettingsDescription where
-    toQuery ConfigurationSettingsDescription{..} = mconcat
-        [ "ApplicationName"   =? _csdApplicationName
-        , "DateCreated"       =? _csdDateCreated
-        , "DateUpdated"       =? _csdDateUpdated
-        , "DeploymentStatus"  =? _csdDeploymentStatus
-        , "Description"       =? _csdDescription
-        , "EnvironmentName"   =? _csdEnvironmentName
-        , "OptionSettings"    =? _csdOptionSettings
-        , "SolutionStackName" =? _csdSolutionStackName
-        , "TemplateName"      =? _csdTemplateName
-        ]
-
-data ApplicationVersionDescription = ApplicationVersionDescription
-    { _avdApplicationName :: Maybe Text
-    , _avdDateCreated     :: Maybe ISO8601
-    , _avdDateUpdated     :: Maybe ISO8601
-    , _avdDescription     :: Maybe Text
-    , _avdSourceBundle    :: Maybe S3Location
-    , _avdVersionLabel    :: Maybe Text
-    } deriving (Eq, Read, Show)
-
--- | 'ApplicationVersionDescription' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'avdApplicationName' @::@ 'Maybe' 'Text'
---
--- * 'avdDateCreated' @::@ 'Maybe' 'UTCTime'
---
--- * 'avdDateUpdated' @::@ 'Maybe' 'UTCTime'
---
--- * 'avdDescription' @::@ 'Maybe' 'Text'
---
--- * 'avdSourceBundle' @::@ 'Maybe' 'S3Location'
---
--- * 'avdVersionLabel' @::@ 'Maybe' 'Text'
---
-applicationVersionDescription :: ApplicationVersionDescription
-applicationVersionDescription = ApplicationVersionDescription
-    { _avdApplicationName = Nothing
-    , _avdDescription     = Nothing
-    , _avdVersionLabel    = Nothing
-    , _avdSourceBundle    = Nothing
-    , _avdDateCreated     = Nothing
-    , _avdDateUpdated     = Nothing
-    }
-
--- | The name of the application associated with this release.
-avdApplicationName :: Lens' ApplicationVersionDescription (Maybe Text)
-avdApplicationName =
-    lens _avdApplicationName (\s a -> s { _avdApplicationName = a })
-
--- | The creation date of the application version.
-avdDateCreated :: Lens' ApplicationVersionDescription (Maybe UTCTime)
-avdDateCreated = lens _avdDateCreated (\s a -> s { _avdDateCreated = a }) . mapping _Time
-
--- | The last modified date of the application version.
-avdDateUpdated :: Lens' ApplicationVersionDescription (Maybe UTCTime)
-avdDateUpdated = lens _avdDateUpdated (\s a -> s { _avdDateUpdated = a }) . mapping _Time
-
--- | The description of this application version.
-avdDescription :: Lens' ApplicationVersionDescription (Maybe Text)
-avdDescription = lens _avdDescription (\s a -> s { _avdDescription = a })
-
--- | The location where the source bundle is located for this version.
-avdSourceBundle :: Lens' ApplicationVersionDescription (Maybe S3Location)
-avdSourceBundle = lens _avdSourceBundle (\s a -> s { _avdSourceBundle = a })
-
--- | A label uniquely identifying the version for the associated application.
-avdVersionLabel :: Lens' ApplicationVersionDescription (Maybe Text)
-avdVersionLabel = lens _avdVersionLabel (\s a -> s { _avdVersionLabel = a })
-
-instance FromXML ApplicationVersionDescription where
-    parseXML x = ApplicationVersionDescription
-        <$> x .@? "ApplicationName"
-        <*> x .@? "DateCreated"
-        <*> x .@? "DateUpdated"
-        <*> x .@? "Description"
-        <*> x .@? "SourceBundle"
-        <*> x .@? "VersionLabel"
-
-instance ToQuery ApplicationVersionDescription where
-    toQuery ApplicationVersionDescription{..} = mconcat
-        [ "ApplicationName" =? _avdApplicationName
-        , "DateCreated"     =? _avdDateCreated
-        , "DateUpdated"     =? _avdDateUpdated
-        , "Description"     =? _avdDescription
-        , "SourceBundle"    =? _avdSourceBundle
-        , "VersionLabel"    =? _avdVersionLabel
-        ]
-
-data OptionSpecification = OptionSpecification
-    { _osNamespace    :: Maybe Text
-    , _osOptionName   :: Maybe Text
-    , _osResourceName :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
-
--- | 'OptionSpecification' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'osNamespace' @::@ 'Maybe' 'Text'
---
--- * 'osOptionName' @::@ 'Maybe' 'Text'
---
--- * 'osResourceName' @::@ 'Maybe' 'Text'
---
-optionSpecification :: OptionSpecification
-optionSpecification = OptionSpecification
-    { _osResourceName = Nothing
-    , _osNamespace    = Nothing
-    , _osOptionName   = Nothing
-    }
-
--- | A unique namespace identifying the option's associated AWS resource.
-osNamespace :: Lens' OptionSpecification (Maybe Text)
-osNamespace = lens _osNamespace (\s a -> s { _osNamespace = a })
-
--- | The name of the configuration option.
-osOptionName :: Lens' OptionSpecification (Maybe Text)
-osOptionName = lens _osOptionName (\s a -> s { _osOptionName = a })
-
--- | A unique resource name for a time-based scaling configuration option.
-osResourceName :: Lens' OptionSpecification (Maybe Text)
-osResourceName = lens _osResourceName (\s a -> s { _osResourceName = a })
-
-instance FromXML OptionSpecification where
-    parseXML x = OptionSpecification
-        <$> x .@? "Namespace"
-        <*> x .@? "OptionName"
-        <*> x .@? "ResourceName"
-
-instance ToQuery OptionSpecification where
-    toQuery OptionSpecification{..} = mconcat
-        [ "Namespace"    =? _osNamespace
-        , "OptionName"   =? _osOptionName
-        , "ResourceName" =? _osResourceName
-        ]
-
-data EnvironmentResourceDescription = EnvironmentResourceDescription
-    { _erdAutoScalingGroups    :: List "member" AutoScalingGroup
-    , _erdEnvironmentName      :: Maybe Text
-    , _erdInstances            :: List "member" Instance
-    , _erdLaunchConfigurations :: List "member" LaunchConfiguration
-    , _erdLoadBalancers        :: List "member" LoadBalancer
-    , _erdQueues               :: List "member" Queue
-    , _erdTriggers             :: List "member" Trigger
-    } deriving (Eq, Read, Show)
-
--- | 'EnvironmentResourceDescription' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'erdAutoScalingGroups' @::@ ['AutoScalingGroup']
---
--- * 'erdEnvironmentName' @::@ 'Maybe' 'Text'
---
--- * 'erdInstances' @::@ ['Instance']
---
--- * 'erdLaunchConfigurations' @::@ ['LaunchConfiguration']
---
--- * 'erdLoadBalancers' @::@ ['LoadBalancer']
---
--- * 'erdQueues' @::@ ['Queue']
---
--- * 'erdTriggers' @::@ ['Trigger']
---
-environmentResourceDescription :: EnvironmentResourceDescription
-environmentResourceDescription = EnvironmentResourceDescription
-    { _erdEnvironmentName      = Nothing
-    , _erdAutoScalingGroups    = mempty
-    , _erdInstances            = mempty
-    , _erdLaunchConfigurations = mempty
-    , _erdLoadBalancers        = mempty
-    , _erdTriggers             = mempty
-    , _erdQueues               = mempty
-    }
-
--- | The 'AutoScalingGroups' used by this environment.
-erdAutoScalingGroups :: Lens' EnvironmentResourceDescription [AutoScalingGroup]
-erdAutoScalingGroups =
-    lens _erdAutoScalingGroups (\s a -> s { _erdAutoScalingGroups = a })
-        . _List
-
--- | The name of the environment.
-erdEnvironmentName :: Lens' EnvironmentResourceDescription (Maybe Text)
-erdEnvironmentName =
-    lens _erdEnvironmentName (\s a -> s { _erdEnvironmentName = a })
-
--- | The Amazon EC2 instances used by this environment.
-erdInstances :: Lens' EnvironmentResourceDescription [Instance]
-erdInstances = lens _erdInstances (\s a -> s { _erdInstances = a }) . _List
-
--- | The Auto Scaling launch configurations in use by this environment.
-erdLaunchConfigurations :: Lens' EnvironmentResourceDescription [LaunchConfiguration]
-erdLaunchConfigurations =
-    lens _erdLaunchConfigurations (\s a -> s { _erdLaunchConfigurations = a })
-        . _List
-
--- | The LoadBalancers in use by this environment.
-erdLoadBalancers :: Lens' EnvironmentResourceDescription [LoadBalancer]
-erdLoadBalancers = lens _erdLoadBalancers (\s a -> s { _erdLoadBalancers = a }) . _List
-
--- | The queues used by this environment.
-erdQueues :: Lens' EnvironmentResourceDescription [Queue]
-erdQueues = lens _erdQueues (\s a -> s { _erdQueues = a }) . _List
-
--- | The 'AutoScaling' triggers in use by this environment.
-erdTriggers :: Lens' EnvironmentResourceDescription [Trigger]
-erdTriggers = lens _erdTriggers (\s a -> s { _erdTriggers = a }) . _List
-
-instance FromXML EnvironmentResourceDescription where
-    parseXML x = EnvironmentResourceDescription
-        <$> x .@? "AutoScalingGroups" .!@ mempty
-        <*> x .@? "EnvironmentName"
-        <*> x .@? "Instances" .!@ mempty
-        <*> x .@? "LaunchConfigurations" .!@ mempty
-        <*> x .@? "LoadBalancers" .!@ mempty
-        <*> x .@? "Queues" .!@ mempty
-        <*> x .@? "Triggers" .!@ mempty
-
-instance ToQuery EnvironmentResourceDescription where
-    toQuery EnvironmentResourceDescription{..} = mconcat
-        [ "AutoScalingGroups"    =? _erdAutoScalingGroups
-        , "EnvironmentName"      =? _erdEnvironmentName
-        , "Instances"            =? _erdInstances
-        , "LaunchConfigurations" =? _erdLaunchConfigurations
-        , "LoadBalancers"        =? _erdLoadBalancers
-        , "Queues"               =? _erdQueues
-        , "Triggers"             =? _erdTriggers
-        ]
-
-data Queue = Queue
-    { _qName :: Maybe Text
-    , _qURL  :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
-
--- | 'Queue' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'qName' @::@ 'Maybe' 'Text'
---
--- * 'qURL' @::@ 'Maybe' 'Text'
---
-queue :: Queue
-queue = Queue
-    { _qName = Nothing
-    , _qURL  = Nothing
-    }
-
--- | The name of the queue.
-qName :: Lens' Queue (Maybe Text)
-qName = lens _qName (\s a -> s { _qName = a })
-
--- | The URL of the queue.
-qURL :: Lens' Queue (Maybe Text)
-qURL = lens _qURL (\s a -> s { _qURL = a })
-
-instance FromXML Queue where
-    parseXML x = Queue
-        <$> x .@? "Name"
-        <*> x .@? "URL"
-
-instance ToQuery Queue where
-    toQuery Queue{..} = mconcat
-        [ "Name" =? _qName
-        , "URL"  =? _qURL
-        ]
-
-data EnvironmentStatus
-    = Launching   -- ^ Launching
-    | Ready       -- ^ Ready
-    | Terminated  -- ^ Terminated
-    | Terminating -- ^ Terminating
-    | Updating    -- ^ Updating
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable EnvironmentStatus
-
-instance FromText EnvironmentStatus where
-    parser = takeLowerText >>= \case
-        "launching"   -> pure Launching
-        "ready"       -> pure Ready
-        "terminated"  -> pure Terminated
-        "terminating" -> pure Terminating
-        "updating"    -> pure Updating
-        e             -> fail $
-            "Failure parsing EnvironmentStatus from " ++ show e
-
-instance ToText EnvironmentStatus where
-    toText = \case
-        Launching   -> "Launching"
-        Ready       -> "Ready"
-        Terminated  -> "Terminated"
-        Terminating -> "Terminating"
-        Updating    -> "Updating"
-
-instance ToByteString EnvironmentStatus
-instance ToHeader     EnvironmentStatus
-instance ToQuery      EnvironmentStatus
-
-instance FromXML EnvironmentStatus where
-    parseXML = parseXMLText "EnvironmentStatus"
-
-data LoadBalancerDescription = LoadBalancerDescription
-    { _lbdDomain           :: Maybe Text
-    , _lbdListeners        :: List "member" Listener
-    , _lbdLoadBalancerName :: Maybe Text
-    } deriving (Eq, Read, Show)
-
--- | 'LoadBalancerDescription' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'lbdDomain' @::@ 'Maybe' 'Text'
---
--- * 'lbdListeners' @::@ ['Listener']
---
--- * 'lbdLoadBalancerName' @::@ 'Maybe' 'Text'
---
-loadBalancerDescription :: LoadBalancerDescription
-loadBalancerDescription = LoadBalancerDescription
-    { _lbdLoadBalancerName = Nothing
-    , _lbdDomain           = Nothing
-    , _lbdListeners        = mempty
-    }
-
--- | The domain name of the LoadBalancer.
-lbdDomain :: Lens' LoadBalancerDescription (Maybe Text)
-lbdDomain = lens _lbdDomain (\s a -> s { _lbdDomain = a })
-
--- | A list of Listeners used by the LoadBalancer.
-lbdListeners :: Lens' LoadBalancerDescription [Listener]
-lbdListeners = lens _lbdListeners (\s a -> s { _lbdListeners = a }) . _List
-
--- | The name of the LoadBalancer.
-lbdLoadBalancerName :: Lens' LoadBalancerDescription (Maybe Text)
-lbdLoadBalancerName =
-    lens _lbdLoadBalancerName (\s a -> s { _lbdLoadBalancerName = a })
-
-instance FromXML LoadBalancerDescription where
-    parseXML x = LoadBalancerDescription
-        <$> x .@? "Domain"
-        <*> x .@? "Listeners" .!@ mempty
-        <*> x .@? "LoadBalancerName"
-
-instance ToQuery LoadBalancerDescription where
-    toQuery LoadBalancerDescription{..} = mconcat
-        [ "Domain"           =? _lbdDomain
-        , "Listeners"        =? _lbdListeners
-        , "LoadBalancerName" =? _lbdLoadBalancerName
-        ]
-
-newtype ApplicationDescriptionMessage = ApplicationDescriptionMessage
-    { _admApplication :: Maybe ApplicationDescription
-    } deriving (Eq, Read, Show)
-
--- | 'ApplicationDescriptionMessage' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'admApplication' @::@ 'Maybe' 'ApplicationDescription'
---
-applicationDescriptionMessage :: ApplicationDescriptionMessage
-applicationDescriptionMessage = ApplicationDescriptionMessage
-    { _admApplication = Nothing
-    }
-
--- | The 'ApplicationDescription' of the application.
-admApplication :: Lens' ApplicationDescriptionMessage (Maybe ApplicationDescription)
-admApplication = lens _admApplication (\s a -> s { _admApplication = a })
-
-instance FromXML ApplicationDescriptionMessage where
-    parseXML x = ApplicationDescriptionMessage
-        <$> x .@? "Application"
-
-instance ToQuery ApplicationDescriptionMessage where
-    toQuery ApplicationDescriptionMessage{..} = mconcat
-        [ "Application" =? _admApplication
-        ]
-
-data EnvironmentTier = EnvironmentTier
-    { _etName    :: Maybe Text
-    , _etType    :: Maybe Text
-    , _etVersion :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
-
--- | 'EnvironmentTier' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'etName' @::@ 'Maybe' 'Text'
---
--- * 'etType' @::@ 'Maybe' 'Text'
---
--- * 'etVersion' @::@ 'Maybe' 'Text'
---
-environmentTier :: EnvironmentTier
-environmentTier = EnvironmentTier
-    { _etName    = Nothing
-    , _etType    = Nothing
-    , _etVersion = Nothing
-    }
-
--- | The name of this environment tier.
-etName :: Lens' EnvironmentTier (Maybe Text)
-etName = lens _etName (\s a -> s { _etName = a })
-
--- | The type of this environment tier.
-etType :: Lens' EnvironmentTier (Maybe Text)
-etType = lens _etType (\s a -> s { _etType = a })
-
--- | The version of this environment tier.
-etVersion :: Lens' EnvironmentTier (Maybe Text)
-etVersion = lens _etVersion (\s a -> s { _etVersion = a })
-
-instance FromXML EnvironmentTier where
-    parseXML x = EnvironmentTier
-        <$> x .@? "Name"
-        <*> x .@? "Type"
-        <*> x .@? "Version"
-
-instance ToQuery EnvironmentTier where
-    toQuery EnvironmentTier{..} = mconcat
-        [ "Name"    =? _etName
-        , "Type"    =? _etType
-        , "Version" =? _etVersion
-        ]
-
-newtype LoadBalancer = LoadBalancer
-    { _lbName :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
-
--- | 'LoadBalancer' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'lbName' @::@ 'Maybe' 'Text'
---
-loadBalancer :: LoadBalancer
-loadBalancer = LoadBalancer
-    { _lbName = Nothing
-    }
-
--- | The name of the LoadBalancer.
-lbName :: Lens' LoadBalancer (Maybe Text)
-lbName = lens _lbName (\s a -> s { _lbName = a })
-
-instance FromXML LoadBalancer where
-    parseXML x = LoadBalancer
-        <$> x .@? "Name"
-
-instance ToQuery LoadBalancer where
-    toQuery LoadBalancer{..} = mconcat
-        [ "Name" =? _lbName
-        ]
-
-newtype EnvironmentResourcesDescription = EnvironmentResourcesDescription
-    { _erdLoadBalancer :: Maybe LoadBalancerDescription
-    } deriving (Eq, Read, Show)
-
--- | 'EnvironmentResourcesDescription' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'erdLoadBalancer' @::@ 'Maybe' 'LoadBalancerDescription'
---
-environmentResourcesDescription :: EnvironmentResourcesDescription
-environmentResourcesDescription = EnvironmentResourcesDescription
-    { _erdLoadBalancer = Nothing
-    }
-
--- | Describes the LoadBalancer.
-erdLoadBalancer :: Lens' EnvironmentResourcesDescription (Maybe LoadBalancerDescription)
-erdLoadBalancer = lens _erdLoadBalancer (\s a -> s { _erdLoadBalancer = a })
-
-instance FromXML EnvironmentResourcesDescription where
-    parseXML x = EnvironmentResourcesDescription
-        <$> x .@? "LoadBalancer"
-
-instance ToQuery EnvironmentResourcesDescription where
-    toQuery EnvironmentResourcesDescription{..} = mconcat
-        [ "LoadBalancer" =? _erdLoadBalancer
-        ]
-
-data OptionRestrictionRegex = OptionRestrictionRegex
-    { _orrLabel   :: Maybe Text
-    , _orrPattern :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
-
--- | 'OptionRestrictionRegex' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'orrLabel' @::@ 'Maybe' 'Text'
---
--- * 'orrPattern' @::@ 'Maybe' 'Text'
---
-optionRestrictionRegex :: OptionRestrictionRegex
-optionRestrictionRegex = OptionRestrictionRegex
-    { _orrPattern = Nothing
-    , _orrLabel   = Nothing
-    }
-
--- | A unique name representing this regular expression.
-orrLabel :: Lens' OptionRestrictionRegex (Maybe Text)
-orrLabel = lens _orrLabel (\s a -> s { _orrLabel = a })
-
--- | The regular expression pattern that a string configuration option value with
--- this restriction must match.
-orrPattern :: Lens' OptionRestrictionRegex (Maybe Text)
-orrPattern = lens _orrPattern (\s a -> s { _orrPattern = a })
-
-instance FromXML OptionRestrictionRegex where
-    parseXML x = OptionRestrictionRegex
-        <$> x .@? "Label"
-        <*> x .@? "Pattern"
-
-instance ToQuery OptionRestrictionRegex where
-    toQuery OptionRestrictionRegex{..} = mconcat
-        [ "Label"   =? _orrLabel
-        , "Pattern" =? _orrPattern
-        ]
-
-data ConfigurationOptionDescription = ConfigurationOptionDescription
-    { _codChangeSeverity :: Maybe Text
-    , _codDefaultValue   :: Maybe Text
-    , _codMaxLength      :: Maybe Int
-    , _codMaxValue       :: Maybe Int
-    , _codMinValue       :: Maybe Int
-    , _codName           :: Maybe Text
-    , _codNamespace      :: Maybe Text
-    , _codRegex          :: Maybe OptionRestrictionRegex
-    , _codUserDefined    :: Maybe Bool
-    , _codValueOptions   :: List "member" Text
-    , _codValueType      :: Maybe ConfigurationOptionValueType
-    } deriving (Eq, Read, Show)
-
--- | 'ConfigurationOptionDescription' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'codChangeSeverity' @::@ 'Maybe' 'Text'
---
--- * 'codDefaultValue' @::@ 'Maybe' 'Text'
---
--- * 'codMaxLength' @::@ 'Maybe' 'Int'
---
--- * 'codMaxValue' @::@ 'Maybe' 'Int'
---
--- * 'codMinValue' @::@ 'Maybe' 'Int'
---
--- * 'codName' @::@ 'Maybe' 'Text'
---
--- * 'codNamespace' @::@ 'Maybe' 'Text'
---
--- * 'codRegex' @::@ 'Maybe' 'OptionRestrictionRegex'
---
--- * 'codUserDefined' @::@ 'Maybe' 'Bool'
---
--- * 'codValueOptions' @::@ ['Text']
---
--- * 'codValueType' @::@ 'Maybe' 'ConfigurationOptionValueType'
---
-configurationOptionDescription :: ConfigurationOptionDescription
-configurationOptionDescription = ConfigurationOptionDescription
-    { _codNamespace      = Nothing
-    , _codName           = Nothing
-    , _codDefaultValue   = Nothing
-    , _codChangeSeverity = Nothing
-    , _codUserDefined    = Nothing
-    , _codValueType      = Nothing
-    , _codValueOptions   = mempty
-    , _codMinValue       = Nothing
-    , _codMaxValue       = Nothing
-    , _codMaxLength      = Nothing
-    , _codRegex          = Nothing
-    }
-
--- | An indication of which action is required if the value for this
--- configuration option changes:
---
--- NoInterruption - There is no interruption to the environment or
--- application availability.
---
--- RestartEnvironment - The environment is restarted, all AWS resources are
--- deleted and recreated, and the environment is unavailable during the process.
---
--- RestartApplicationServer - The environment is available the entire time.
--- However, a short application outage occurs when the application servers on
--- the running Amazon EC2 instances are restarted.
---
--- 'NoInterruption' : There is no interruption to the environment or
--- application availability.   'RestartEnvironment' : The environment is entirely
--- restarted, all AWS resources are deleted and recreated, and the environment
--- is unavailable during the process.   'RestartApplicationServer' : The
--- environment is available the entire time. However, a short application outage
--- occurs when the application servers on the running Amazon EC2 instances are
--- restarted.
-codChangeSeverity :: Lens' ConfigurationOptionDescription (Maybe Text)
-codChangeSeverity =
-    lens _codChangeSeverity (\s a -> s { _codChangeSeverity = a })
-
--- | The default value for this configuration option.
-codDefaultValue :: Lens' ConfigurationOptionDescription (Maybe Text)
-codDefaultValue = lens _codDefaultValue (\s a -> s { _codDefaultValue = a })
-
--- | If specified, the configuration option must be a string value no longer than
--- this value.
-codMaxLength :: Lens' ConfigurationOptionDescription (Maybe Int)
-codMaxLength = lens _codMaxLength (\s a -> s { _codMaxLength = a })
-
--- | If specified, the configuration option must be a numeric value less than
--- this value.
-codMaxValue :: Lens' ConfigurationOptionDescription (Maybe Int)
-codMaxValue = lens _codMaxValue (\s a -> s { _codMaxValue = a })
-
--- | If specified, the configuration option must be a numeric value greater than
--- this value.
-codMinValue :: Lens' ConfigurationOptionDescription (Maybe Int)
-codMinValue = lens _codMinValue (\s a -> s { _codMinValue = a })
-
--- | The name of the configuration option.
-codName :: Lens' ConfigurationOptionDescription (Maybe Text)
-codName = lens _codName (\s a -> s { _codName = a })
-
--- | A unique namespace identifying the option's associated AWS resource.
-codNamespace :: Lens' ConfigurationOptionDescription (Maybe Text)
-codNamespace = lens _codNamespace (\s a -> s { _codNamespace = a })
-
--- | If specified, the configuration option must be a string value that satisfies
--- this regular expression.
-codRegex :: Lens' ConfigurationOptionDescription (Maybe OptionRestrictionRegex)
-codRegex = lens _codRegex (\s a -> s { _codRegex = a })
-
--- | An indication of whether the user defined this configuration option:
---
--- 'true' : This configuration option was defined by the user. It is a valid
--- choice for specifying this as an Option to Remove when updating configuration
--- settings.
---
--- 'false' : This configuration was not defined by the user.
---
--- 'true' : This configuration option was defined by the user. It is a valid
--- choice for specifying if this as an 'Option to Remove' when updating
--- configuration settings.
---
--- 'false' : This configuration was not defined by the user.    Constraint: You
--- can remove only 'UserDefined' options from a configuration.
---
--- Valid Values: 'true' | 'false'
-codUserDefined :: Lens' ConfigurationOptionDescription (Maybe Bool)
-codUserDefined = lens _codUserDefined (\s a -> s { _codUserDefined = a })
-
--- | If specified, values for the configuration option are selected from this
--- list.
-codValueOptions :: Lens' ConfigurationOptionDescription [Text]
-codValueOptions = lens _codValueOptions (\s a -> s { _codValueOptions = a }) . _List
-
--- | An indication of which type of values this option has and whether it is
--- allowable to select one or more than one of the possible values:
---
--- 'Scalar' : Values for this option are a single selection from the possible
--- values, or a unformatted string or numeric value governed by the
--- MIN/MAX/Regex constraints:
---
--- 'List' : Values for this option are multiple selections of the possible
--- values.
---
--- 'Boolean' : Values for this option are either 'true' or 'false' .
---
--- 'Scalar' : Values for this option are a single selection from the
--- possible values, or an unformatted string, or numeric value governed by the 'MIN/MAX/Regex' constraints.   'List' : Values for this option are multiple selections from
--- the possible values.   'Boolean' : Values for this option are either 'true' or 'false' .
-codValueType :: Lens' ConfigurationOptionDescription (Maybe ConfigurationOptionValueType)
-codValueType = lens _codValueType (\s a -> s { _codValueType = a })
-
-instance FromXML ConfigurationOptionDescription where
-    parseXML x = ConfigurationOptionDescription
-        <$> x .@? "ChangeSeverity"
-        <*> x .@? "DefaultValue"
-        <*> x .@? "MaxLength"
-        <*> x .@? "MaxValue"
-        <*> x .@? "MinValue"
-        <*> x .@? "Name"
-        <*> x .@? "Namespace"
-        <*> x .@? "Regex"
-        <*> x .@? "UserDefined"
-        <*> x .@? "ValueOptions" .!@ mempty
-        <*> x .@? "ValueType"
-
-instance ToQuery ConfigurationOptionDescription where
-    toQuery ConfigurationOptionDescription{..} = mconcat
-        [ "ChangeSeverity" =? _codChangeSeverity
-        , "DefaultValue"   =? _codDefaultValue
-        , "MaxLength"      =? _codMaxLength
-        , "MaxValue"       =? _codMaxValue
-        , "MinValue"       =? _codMinValue
-        , "Name"           =? _codName
-        , "Namespace"      =? _codNamespace
-        , "Regex"          =? _codRegex
-        , "UserDefined"    =? _codUserDefined
-        , "ValueOptions"   =? _codValueOptions
-        , "ValueType"      =? _codValueType
-        ]
-
-data SourceConfiguration = SourceConfiguration
-    { _scApplicationName :: Maybe Text
-    , _scTemplateName    :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
-
--- | 'SourceConfiguration' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'scApplicationName' @::@ 'Maybe' 'Text'
---
--- * 'scTemplateName' @::@ 'Maybe' 'Text'
---
-sourceConfiguration :: SourceConfiguration
-sourceConfiguration = SourceConfiguration
-    { _scApplicationName = Nothing
-    , _scTemplateName    = Nothing
-    }
-
--- | The name of the application associated with the configuration.
-scApplicationName :: Lens' SourceConfiguration (Maybe Text)
-scApplicationName =
-    lens _scApplicationName (\s a -> s { _scApplicationName = a })
-
--- | The name of the configuration template.
-scTemplateName :: Lens' SourceConfiguration (Maybe Text)
-scTemplateName = lens _scTemplateName (\s a -> s { _scTemplateName = a })
-
-instance FromXML SourceConfiguration where
-    parseXML x = SourceConfiguration
-        <$> x .@? "ApplicationName"
-        <*> x .@? "TemplateName"
-
-instance ToQuery SourceConfiguration where
-    toQuery SourceConfiguration{..} = mconcat
-        [ "ApplicationName" =? _scApplicationName
-        , "TemplateName"    =? _scTemplateName
-        ]
-
-data EnvironmentInfoDescription = EnvironmentInfoDescription
-    { _eidEc2InstanceId   :: Maybe Text
-    , _eidInfoType        :: Maybe EnvironmentInfoType
-    , _eidMessage         :: Maybe Text
-    , _eidSampleTimestamp :: Maybe ISO8601
-    } deriving (Eq, Read, Show)
-
--- | 'EnvironmentInfoDescription' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'eidEc2InstanceId' @::@ 'Maybe' 'Text'
---
--- * 'eidInfoType' @::@ 'Maybe' 'EnvironmentInfoType'
---
--- * 'eidMessage' @::@ 'Maybe' 'Text'
---
--- * 'eidSampleTimestamp' @::@ 'Maybe' 'UTCTime'
---
-environmentInfoDescription :: EnvironmentInfoDescription
-environmentInfoDescription = EnvironmentInfoDescription
-    { _eidInfoType        = Nothing
-    , _eidEc2InstanceId   = Nothing
-    , _eidSampleTimestamp = Nothing
-    , _eidMessage         = Nothing
-    }
-
--- | The Amazon EC2 Instance ID for this information.
-eidEc2InstanceId :: Lens' EnvironmentInfoDescription (Maybe Text)
-eidEc2InstanceId = lens _eidEc2InstanceId (\s a -> s { _eidEc2InstanceId = a })
-
--- | The type of information retrieved.
-eidInfoType :: Lens' EnvironmentInfoDescription (Maybe EnvironmentInfoType)
-eidInfoType = lens _eidInfoType (\s a -> s { _eidInfoType = a })
-
--- | The retrieved information.
-eidMessage :: Lens' EnvironmentInfoDescription (Maybe Text)
-eidMessage = lens _eidMessage (\s a -> s { _eidMessage = a })
-
--- | The time stamp when this information was retrieved.
-eidSampleTimestamp :: Lens' EnvironmentInfoDescription (Maybe UTCTime)
-eidSampleTimestamp =
-    lens _eidSampleTimestamp (\s a -> s { _eidSampleTimestamp = a })
-        . mapping _Time
-
-instance FromXML EnvironmentInfoDescription where
-    parseXML x = EnvironmentInfoDescription
-        <$> x .@? "Ec2InstanceId"
-        <*> x .@? "InfoType"
-        <*> x .@? "Message"
-        <*> x .@? "SampleTimestamp"
-
-instance ToQuery EnvironmentInfoDescription where
-    toQuery EnvironmentInfoDescription{..} = mconcat
-        [ "Ec2InstanceId"   =? _eidEc2InstanceId
-        , "InfoType"        =? _eidInfoType
-        , "Message"         =? _eidMessage
-        , "SampleTimestamp" =? _eidSampleTimestamp
-        ]
-
-data S3Location = S3Location
-    { _slS3Bucket :: Maybe Text
-    , _slS3Key    :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
-
--- | 'S3Location' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'slS3Bucket' @::@ 'Maybe' 'Text'
---
--- * 'slS3Key' @::@ 'Maybe' 'Text'
---
-s3Location :: S3Location
-s3Location = S3Location
-    { _slS3Bucket = Nothing
-    , _slS3Key    = Nothing
-    }
-
--- | The Amazon S3 bucket where the data is located.
-slS3Bucket :: Lens' S3Location (Maybe Text)
-slS3Bucket = lens _slS3Bucket (\s a -> s { _slS3Bucket = a })
-
--- | The Amazon S3 key where the data is located.
-slS3Key :: Lens' S3Location (Maybe Text)
-slS3Key = lens _slS3Key (\s a -> s { _slS3Key = a })
-
-instance FromXML S3Location where
-    parseXML x = S3Location
-        <$> x .@? "S3Bucket"
-        <*> x .@? "S3Key"
-
-instance ToQuery S3Location where
-    toQuery S3Location{..} = mconcat
-        [ "S3Bucket" =? _slS3Bucket
-        , "S3Key"    =? _slS3Key
-        ]
-
-data ValidationMessage = ValidationMessage
-    { _vmMessage    :: Maybe Text
-    , _vmNamespace  :: Maybe Text
-    , _vmOptionName :: Maybe Text
-    , _vmSeverity   :: Maybe ValidationSeverity
-    } deriving (Eq, Read, Show)
-
--- | 'ValidationMessage' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'vmMessage' @::@ 'Maybe' 'Text'
---
--- * 'vmNamespace' @::@ 'Maybe' 'Text'
---
--- * 'vmOptionName' @::@ 'Maybe' 'Text'
---
--- * 'vmSeverity' @::@ 'Maybe' 'ValidationSeverity'
---
-validationMessage :: ValidationMessage
-validationMessage = ValidationMessage
-    { _vmMessage    = Nothing
-    , _vmSeverity   = Nothing
-    , _vmNamespace  = Nothing
-    , _vmOptionName = Nothing
-    }
-
--- | A message describing the error or warning.
-vmMessage :: Lens' ValidationMessage (Maybe Text)
-vmMessage = lens _vmMessage (\s a -> s { _vmMessage = a })
-
-
-vmNamespace :: Lens' ValidationMessage (Maybe Text)
-vmNamespace = lens _vmNamespace (\s a -> s { _vmNamespace = a })
-
-
-vmOptionName :: Lens' ValidationMessage (Maybe Text)
-vmOptionName = lens _vmOptionName (\s a -> s { _vmOptionName = a })
-
--- | An indication of the severity of this message:
---
--- error: This message indicates that this is not a valid setting for an
--- option.
---
--- warning: This message is providing information you should take into
--- account.
---
--- error: This message indicates that this is not a valid setting for an
--- option.   warning: This message is providing information you should take into
--- account.
-vmSeverity :: Lens' ValidationMessage (Maybe ValidationSeverity)
-vmSeverity = lens _vmSeverity (\s a -> s { _vmSeverity = a })
-
-instance FromXML ValidationMessage where
-    parseXML x = ValidationMessage
-        <$> x .@? "Message"
-        <*> x .@? "Namespace"
-        <*> x .@? "OptionName"
-        <*> x .@? "Severity"
-
-instance ToQuery ValidationMessage where
-    toQuery ValidationMessage{..} = mconcat
-        [ "Message"    =? _vmMessage
-        , "Namespace"  =? _vmNamespace
-        , "OptionName" =? _vmOptionName
-        , "Severity"   =? _vmSeverity
-        ]
-
-data ValidationSeverity
-    = VSError   -- ^ error
-    | VSWarning -- ^ warning
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable ValidationSeverity
-
-instance FromText ValidationSeverity where
-    parser = takeLowerText >>= \case
-        "error"   -> pure VSError
-        "warning" -> pure VSWarning
-        e         -> fail $
-            "Failure parsing ValidationSeverity from " ++ show e
-
-instance ToText ValidationSeverity where
-    toText = \case
-        VSError   -> "error"
-        VSWarning -> "warning"
-
-instance ToByteString ValidationSeverity
-instance ToHeader     ValidationSeverity
-instance ToQuery      ValidationSeverity
-
-instance FromXML ValidationSeverity where
-    parseXML = parseXMLText "ValidationSeverity"
-
-newtype Trigger = Trigger
-    { _tName :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
-
--- | 'Trigger' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'tName' @::@ 'Maybe' 'Text'
---
-trigger :: Trigger
-trigger = Trigger
-    { _tName = Nothing
-    }
-
--- | The name of the trigger.
-tName :: Lens' Trigger (Maybe Text)
-tName = lens _tName (\s a -> s { _tName = a })
-
-instance FromXML Trigger where
-    parseXML x = Trigger
-        <$> x .@? "Name"
-
-instance ToQuery Trigger where
-    toQuery Trigger{..} = mconcat
-        [ "Name" =? _tName
-        ]
-
-data EnvironmentInfoType
-    = Bundle -- ^ bundle
-    | Tail'  -- ^ tail
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable EnvironmentInfoType
-
-instance FromText EnvironmentInfoType where
-    parser = takeLowerText >>= \case
-        "bundle" -> pure Bundle
-        "tail"   -> pure Tail'
-        e        -> fail $
-            "Failure parsing EnvironmentInfoType from " ++ show e
-
-instance ToText EnvironmentInfoType where
-    toText = \case
-        Bundle -> "bundle"
-        Tail'  -> "tail"
-
-instance ToByteString EnvironmentInfoType
-instance ToHeader     EnvironmentInfoType
-instance ToQuery      EnvironmentInfoType
-
-instance FromXML EnvironmentInfoType where
-    parseXML = parseXMLText "EnvironmentInfoType"
-
-data EnvironmentDescription = EnvironmentDescription
-    { _ed1AbortableOperationInProgress :: Maybe Bool
-    , _ed1ApplicationName              :: Maybe Text
-    , _ed1CNAME                        :: Maybe Text
-    , _ed1DateCreated                  :: Maybe ISO8601
-    , _ed1DateUpdated                  :: Maybe ISO8601
-    , _ed1Description                  :: Maybe Text
-    , _ed1EndpointURL                  :: Maybe Text
-    , _ed1EnvironmentId                :: Maybe Text
-    , _ed1EnvironmentName              :: Maybe Text
-    , _ed1Health                       :: Maybe EnvironmentHealth
-    , _ed1Resources                    :: Maybe EnvironmentResourcesDescription
-    , _ed1SolutionStackName            :: Maybe Text
-    , _ed1Status                       :: Maybe EnvironmentStatus
-    , _ed1TemplateName                 :: Maybe Text
-    , _ed1Tier                         :: Maybe EnvironmentTier
-    , _ed1VersionLabel                 :: Maybe Text
-    } deriving (Eq, Read, Show)
-
--- | 'EnvironmentDescription' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'ed1AbortableOperationInProgress' @::@ 'Maybe' 'Bool'
---
--- * 'ed1ApplicationName' @::@ 'Maybe' 'Text'
---
--- * 'ed1CNAME' @::@ 'Maybe' 'Text'
---
--- * 'ed1DateCreated' @::@ 'Maybe' 'UTCTime'
---
--- * 'ed1DateUpdated' @::@ 'Maybe' 'UTCTime'
---
--- * 'ed1Description' @::@ 'Maybe' 'Text'
---
--- * 'ed1EndpointURL' @::@ 'Maybe' 'Text'
---
--- * 'ed1EnvironmentId' @::@ 'Maybe' 'Text'
---
--- * 'ed1EnvironmentName' @::@ 'Maybe' 'Text'
---
--- * 'ed1Health' @::@ 'Maybe' 'EnvironmentHealth'
---
--- * 'ed1Resources' @::@ 'Maybe' 'EnvironmentResourcesDescription'
---
--- * 'ed1SolutionStackName' @::@ 'Maybe' 'Text'
---
--- * 'ed1Status' @::@ 'Maybe' 'EnvironmentStatus'
---
--- * 'ed1TemplateName' @::@ 'Maybe' 'Text'
---
--- * 'ed1Tier' @::@ 'Maybe' 'EnvironmentTier'
---
--- * 'ed1VersionLabel' @::@ 'Maybe' 'Text'
---
-environmentDescription :: EnvironmentDescription
-environmentDescription = EnvironmentDescription
-    { _ed1EnvironmentName              = Nothing
-    , _ed1EnvironmentId                = Nothing
-    , _ed1ApplicationName              = Nothing
-    , _ed1VersionLabel                 = Nothing
-    , _ed1SolutionStackName            = Nothing
-    , _ed1TemplateName                 = Nothing
-    , _ed1Description                  = Nothing
-    , _ed1EndpointURL                  = Nothing
-    , _ed1CNAME                        = Nothing
-    , _ed1DateCreated                  = Nothing
-    , _ed1DateUpdated                  = Nothing
-    , _ed1Status                       = Nothing
-    , _ed1AbortableOperationInProgress = Nothing
-    , _ed1Health                       = Nothing
-    , _ed1Resources                    = Nothing
-    , _ed1Tier                         = Nothing
-    }
-
--- | Indicates if there is an in-progress environment configuration update or
--- application version deployment that you can cancel.
---
--- 'true:' There is an update in progress.
---
--- 'false:' There are no updates currently in progress.
-ed1AbortableOperationInProgress :: Lens' EnvironmentDescription (Maybe Bool)
-ed1AbortableOperationInProgress =
-    lens _ed1AbortableOperationInProgress
-        (\s a -> s { _ed1AbortableOperationInProgress = a })
-
--- | The name of the application associated with this environment.
-ed1ApplicationName :: Lens' EnvironmentDescription (Maybe Text)
-ed1ApplicationName =
-    lens _ed1ApplicationName (\s a -> s { _ed1ApplicationName = a })
-
--- | The URL to the CNAME for this environment.
-ed1CNAME :: Lens' EnvironmentDescription (Maybe Text)
-ed1CNAME = lens _ed1CNAME (\s a -> s { _ed1CNAME = a })
-
--- | The creation date for this environment.
-ed1DateCreated :: Lens' EnvironmentDescription (Maybe UTCTime)
-ed1DateCreated = lens _ed1DateCreated (\s a -> s { _ed1DateCreated = a }) . mapping _Time
-
--- | The last modified date for this environment.
-ed1DateUpdated :: Lens' EnvironmentDescription (Maybe UTCTime)
-ed1DateUpdated = lens _ed1DateUpdated (\s a -> s { _ed1DateUpdated = a }) . mapping _Time
-
--- | Describes this environment.
-ed1Description :: Lens' EnvironmentDescription (Maybe Text)
-ed1Description = lens _ed1Description (\s a -> s { _ed1Description = a })
-
--- | For load-balanced, autoscaling environments, the URL to the LoadBalancer. For
--- single-instance environments, the IP address of the instance.
-ed1EndpointURL :: Lens' EnvironmentDescription (Maybe Text)
-ed1EndpointURL = lens _ed1EndpointURL (\s a -> s { _ed1EndpointURL = a })
-
--- | The ID of this environment.
-ed1EnvironmentId :: Lens' EnvironmentDescription (Maybe Text)
-ed1EnvironmentId = lens _ed1EnvironmentId (\s a -> s { _ed1EnvironmentId = a })
-
--- | The name of this environment.
-ed1EnvironmentName :: Lens' EnvironmentDescription (Maybe Text)
-ed1EnvironmentName =
-    lens _ed1EnvironmentName (\s a -> s { _ed1EnvironmentName = a })
-
--- | Describes the health status of the environment. AWS Elastic Beanstalk
--- indicates the failure levels for a running environment:
---
--- 'Red' : Indicates the environment is not working.
---
--- 'Yellow': Indicates that something is wrong, the application might not be
--- available, but the instances appear running.
---
--- 'Green': Indicates the environment is healthy and fully functional.
---
--- 'Red': Indicates the environment is not responsive. Occurs when three or
--- more consecutive failures occur for an environment.   'Yellow': Indicates that
--- something is wrong. Occurs when two consecutive failures occur for an
--- environment.   'Green': Indicates the environment is healthy and fully
--- functional.   'Grey': Default health for a new environment. The environment is
--- not fully launched and health checks have not started or health checks are
--- suspended during an 'UpdateEnvironment' or 'RestartEnvironement' request.
--- Default: 'Grey'
-ed1Health :: Lens' EnvironmentDescription (Maybe EnvironmentHealth)
-ed1Health = lens _ed1Health (\s a -> s { _ed1Health = a })
-
--- | The description of the AWS resources used by this environment.
-ed1Resources :: Lens' EnvironmentDescription (Maybe EnvironmentResourcesDescription)
-ed1Resources = lens _ed1Resources (\s a -> s { _ed1Resources = a })
-
--- | The name of the 'SolutionStack' deployed with this environment.
-ed1SolutionStackName :: Lens' EnvironmentDescription (Maybe Text)
-ed1SolutionStackName =
-    lens _ed1SolutionStackName (\s a -> s { _ed1SolutionStackName = a })
-
--- | The current operational status of the environment:
---
--- 'Launching': Environment is in the process of initial deployment.   'Updating': Environment is in the process of updating its configuration settings or application version.
--- 'Ready': Environment is available to have an action performed on it, such as
--- update or terminate.   'Terminating': Environment is in the shut-down process.
--- 'Terminated': Environment is not running.
-ed1Status :: Lens' EnvironmentDescription (Maybe EnvironmentStatus)
-ed1Status = lens _ed1Status (\s a -> s { _ed1Status = a })
-
--- | The name of the configuration template used to originally launch this
--- environment.
-ed1TemplateName :: Lens' EnvironmentDescription (Maybe Text)
-ed1TemplateName = lens _ed1TemplateName (\s a -> s { _ed1TemplateName = a })
-
--- | Describes the current tier of this environment.
-ed1Tier :: Lens' EnvironmentDescription (Maybe EnvironmentTier)
-ed1Tier = lens _ed1Tier (\s a -> s { _ed1Tier = a })
-
--- | The application version deployed in this environment.
-ed1VersionLabel :: Lens' EnvironmentDescription (Maybe Text)
-ed1VersionLabel = lens _ed1VersionLabel (\s a -> s { _ed1VersionLabel = a })
-
-instance FromXML EnvironmentDescription where
-    parseXML x = EnvironmentDescription
-        <$> x .@? "AbortableOperationInProgress"
-        <*> x .@? "ApplicationName"
-        <*> x .@? "CNAME"
-        <*> x .@? "DateCreated"
-        <*> x .@? "DateUpdated"
-        <*> x .@? "Description"
-        <*> x .@? "EndpointURL"
-        <*> x .@? "EnvironmentId"
-        <*> x .@? "EnvironmentName"
-        <*> x .@? "Health"
-        <*> x .@? "Resources"
-        <*> x .@? "SolutionStackName"
-        <*> x .@? "Status"
-        <*> x .@? "TemplateName"
-        <*> x .@? "Tier"
-        <*> x .@? "VersionLabel"
-
-instance ToQuery EnvironmentDescription where
-    toQuery EnvironmentDescription{..} = mconcat
-        [ "AbortableOperationInProgress" =? _ed1AbortableOperationInProgress
-        , "ApplicationName"              =? _ed1ApplicationName
-        , "CNAME"                        =? _ed1CNAME
-        , "DateCreated"                  =? _ed1DateCreated
-        , "DateUpdated"                  =? _ed1DateUpdated
-        , "Description"                  =? _ed1Description
-        , "EndpointURL"                  =? _ed1EndpointURL
-        , "EnvironmentId"                =? _ed1EnvironmentId
-        , "EnvironmentName"              =? _ed1EnvironmentName
-        , "Health"                       =? _ed1Health
-        , "Resources"                    =? _ed1Resources
-        , "SolutionStackName"            =? _ed1SolutionStackName
-        , "Status"                       =? _ed1Status
-        , "TemplateName"                 =? _ed1TemplateName
-        , "Tier"                         =? _ed1Tier
-        , "VersionLabel"                 =? _ed1VersionLabel
-        ]
-
-data Listener = Listener
-    { _lPort     :: Maybe Int
-    , _lProtocol :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
-
--- | 'Listener' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'lPort' @::@ 'Maybe' 'Int'
---
--- * 'lProtocol' @::@ 'Maybe' 'Text'
---
-listener :: Listener
-listener = Listener
-    { _lProtocol = Nothing
-    , _lPort     = Nothing
-    }
-
--- | The port that is used by the Listener.
-lPort :: Lens' Listener (Maybe Int)
-lPort = lens _lPort (\s a -> s { _lPort = a })
-
--- | The protocol that is used by the Listener.
-lProtocol :: Lens' Listener (Maybe Text)
-lProtocol = lens _lProtocol (\s a -> s { _lProtocol = a })
-
-instance FromXML Listener where
-    parseXML x = Listener
-        <$> x .@? "Port"
-        <*> x .@? "Protocol"
-
-instance ToQuery Listener where
-    toQuery Listener{..} = mconcat
-        [ "Port"     =? _lPort
-        , "Protocol" =? _lProtocol
-        ]
-
-data EnvironmentHealth
-    = Green  -- ^ Green
-    | Grey   -- ^ Grey
-    | Red    -- ^ Red
-    | Yellow -- ^ Yellow
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable EnvironmentHealth
-
-instance FromText EnvironmentHealth where
-    parser = takeLowerText >>= \case
-        "green"  -> pure Green
-        "grey"   -> pure Grey
-        "red"    -> pure Red
-        "yellow" -> pure Yellow
-        e        -> fail $
-            "Failure parsing EnvironmentHealth from " ++ show e
-
-instance ToText EnvironmentHealth where
-    toText = \case
-        Green  -> "Green"
-        Grey   -> "Grey"
-        Red    -> "Red"
-        Yellow -> "Yellow"
-
-instance ToByteString EnvironmentHealth
-instance ToHeader     EnvironmentHealth
-instance ToQuery      EnvironmentHealth
-
-instance FromXML EnvironmentHealth where
-    parseXML = parseXMLText "EnvironmentHealth"
-
-newtype Instance = Instance
-    { _iId :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
-
--- | 'Instance' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'iId' @::@ 'Maybe' 'Text'
---
-instance' :: Instance
-instance' = Instance
-    { _iId = Nothing
-    }
-
--- | The ID of the Amazon EC2 instance.
-iId :: Lens' Instance (Maybe Text)
-iId = lens _iId (\s a -> s { _iId = a })
-
-instance FromXML Instance where
-    parseXML x = Instance
-        <$> x .@? "Id"
-
-instance ToQuery Instance where
-    toQuery Instance{..} = mconcat
-        [ "Id" =? _iId
-        ]
-
-data SolutionStackDescription = SolutionStackDescription
-    { _ssdPermittedFileTypes :: List "member" Text
-    , _ssdSolutionStackName  :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
-
--- | 'SolutionStackDescription' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'ssdPermittedFileTypes' @::@ ['Text']
---
--- * 'ssdSolutionStackName' @::@ 'Maybe' 'Text'
---
-solutionStackDescription :: SolutionStackDescription
-solutionStackDescription = SolutionStackDescription
-    { _ssdSolutionStackName  = Nothing
-    , _ssdPermittedFileTypes = mempty
-    }
-
--- | The permitted file types allowed for a solution stack.
-ssdPermittedFileTypes :: Lens' SolutionStackDescription [Text]
-ssdPermittedFileTypes =
-    lens _ssdPermittedFileTypes (\s a -> s { _ssdPermittedFileTypes = a })
-        . _List
-
--- | The name of the solution stack.
-ssdSolutionStackName :: Lens' SolutionStackDescription (Maybe Text)
-ssdSolutionStackName =
-    lens _ssdSolutionStackName (\s a -> s { _ssdSolutionStackName = a })
-
-instance FromXML SolutionStackDescription where
-    parseXML x = SolutionStackDescription
-        <$> x .@? "PermittedFileTypes" .!@ mempty
-        <*> x .@? "SolutionStackName"
-
-instance ToQuery SolutionStackDescription where
-    toQuery SolutionStackDescription{..} = mconcat
-        [ "PermittedFileTypes" =? _ssdPermittedFileTypes
-        , "SolutionStackName"  =? _ssdSolutionStackName
-        ]
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE TypeFamilies      #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Network.AWS.ElasticBeanstalk.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.ElasticBeanstalk.Types
+    (
+    -- * Service
+      ElasticBeanstalk
+
+    -- * Errors
+    , _InvalidRequestException
+    , _S3SubscriptionRequiredException
+    , _TooManyBucketsException
+    , _OperationInProgressException
+    , _TooManyConfigurationTemplatesException
+    , _TooManyApplicationVersionsException
+    , _ElasticBeanstalkServiceException
+    , _InsufficientPrivilegesException
+    , _TooManyApplicationsException
+    , _SourceBundleDeletionException
+    , _S3LocationNotInServiceRegionException
+    , _TooManyEnvironmentsException
+
+    -- * ConfigurationDeploymentStatus
+    , ConfigurationDeploymentStatus (..)
+
+    -- * ConfigurationOptionValueType
+    , ConfigurationOptionValueType (..)
+
+    -- * EnvironmentHealth
+    , EnvironmentHealth (..)
+
+    -- * EnvironmentHealthAttribute
+    , EnvironmentHealthAttribute (..)
+
+    -- * EnvironmentHealthStatus
+    , EnvironmentHealthStatus (..)
+
+    -- * EnvironmentInfoType
+    , EnvironmentInfoType (..)
+
+    -- * EnvironmentStatus
+    , EnvironmentStatus (..)
+
+    -- * EventSeverity
+    , EventSeverity (..)
+
+    -- * InstancesHealthAttribute
+    , InstancesHealthAttribute (..)
+
+    -- * ValidationSeverity
+    , ValidationSeverity (..)
+
+    -- * ApplicationDescription
+    , ApplicationDescription
+    , applicationDescription
+    , adDateUpdated
+    , adVersions
+    , adDateCreated
+    , adApplicationName
+    , adConfigurationTemplates
+    , adDescription
+
+    -- * ApplicationDescriptionMessage
+    , ApplicationDescriptionMessage
+    , applicationDescriptionMessage
+    , admApplication
+
+    -- * ApplicationMetrics
+    , ApplicationMetrics
+    , applicationMetrics
+    , amRequestCount
+    , amLatency
+    , amStatusCodes
+    , amDuration
+
+    -- * ApplicationVersionDescription
+    , ApplicationVersionDescription
+    , applicationVersionDescription
+    , avdDateUpdated
+    , avdSourceBundle
+    , avdVersionLabel
+    , avdDateCreated
+    , avdApplicationName
+    , avdDescription
+
+    -- * ApplicationVersionDescriptionMessage
+    , ApplicationVersionDescriptionMessage
+    , applicationVersionDescriptionMessage
+    , avdmApplicationVersion
+
+    -- * AutoScalingGroup
+    , AutoScalingGroup
+    , autoScalingGroup
+    , asgName
+
+    -- * CPUUtilization
+    , CPUUtilization
+    , cpuUtilization
+    , cuIdle
+    , cuSoftIRQ
+    , cuIRQ
+    , cuSystem
+    , cuUser
+    , cuIOWait
+    , cuNice
+
+    -- * ConfigurationOptionDescription
+    , ConfigurationOptionDescription
+    , configurationOptionDescription
+    , codMaxValue
+    , codRegex
+    , codUserDefined
+    , codMaxLength
+    , codValueOptions
+    , codNamespace
+    , codName
+    , codChangeSeverity
+    , codDefaultValue
+    , codValueType
+    , codMinValue
+
+    -- * ConfigurationOptionSetting
+    , ConfigurationOptionSetting
+    , configurationOptionSetting
+    , cosOptionName
+    , cosResourceName
+    , cosValue
+    , cosNamespace
+
+    -- * ConfigurationSettingsDescription
+    , ConfigurationSettingsDescription
+    , configurationSettingsDescription
+    , csdTemplateName
+    , csdOptionSettings
+    , csdDateUpdated
+    , csdDateCreated
+    , csdEnvironmentName
+    , csdApplicationName
+    , csdDeploymentStatus
+    , csdSolutionStackName
+    , csdDescription
+
+    -- * EnvironmentDescription
+    , EnvironmentDescription
+    , environmentDescription
+    , eCNAME
+    , eStatus
+    , eTemplateName
+    , eAbortableOperationInProgress
+    , eEndpointURL
+    , eDateUpdated
+    , eResources
+    , eHealth
+    , eVersionLabel
+    , eDateCreated
+    , eTier
+    , eEnvironmentName
+    , eApplicationName
+    , eHealthStatus
+    , eEnvironmentId
+    , eSolutionStackName
+    , eDescription
+
+    -- * EnvironmentInfoDescription
+    , EnvironmentInfoDescription
+    , environmentInfoDescription
+    , eidSampleTimestamp
+    , eidEC2InstanceId
+    , eidInfoType
+    , eidMessage
+
+    -- * EnvironmentResourceDescription
+    , EnvironmentResourceDescription
+    , environmentResourceDescription
+    , erdQueues
+    , erdTriggers
+    , erdLoadBalancers
+    , erdInstances
+    , erdEnvironmentName
+    , erdLaunchConfigurations
+    , erdAutoScalingGroups
+
+    -- * EnvironmentResourcesDescription
+    , EnvironmentResourcesDescription
+    , environmentResourcesDescription
+    , erdLoadBalancer
+
+    -- * EnvironmentTier
+    , EnvironmentTier
+    , environmentTier
+    , etName
+    , etVersion
+    , etType
+
+    -- * EventDescription
+    , EventDescription
+    , eventDescription
+    , edRequestId
+    , edTemplateName
+    , edSeverity
+    , edVersionLabel
+    , edEnvironmentName
+    , edApplicationName
+    , edEventDate
+    , edMessage
+
+    -- * Instance
+    , Instance
+    , instance'
+    , iId
+
+    -- * InstanceHealthSummary
+    , InstanceHealthSummary
+    , instanceHealthSummary
+    , ihsOK
+    , ihsPending
+    , ihsSevere
+    , ihsUnknown
+    , ihsNoData
+    , ihsWarning
+    , ihsDegraded
+    , ihsInfo
+
+    -- * Latency
+    , Latency
+    , latency
+    , lP75
+    , lP50
+    , lP85
+    , lP999
+    , lP90
+    , lP95
+    , lP99
+    , lP10
+
+    -- * LaunchConfiguration
+    , LaunchConfiguration
+    , launchConfiguration
+    , lcName
+
+    -- * Listener
+    , Listener
+    , listener
+    , lProtocol
+    , lPort
+
+    -- * LoadBalancer
+    , LoadBalancer
+    , loadBalancer
+    , lbName
+
+    -- * LoadBalancerDescription
+    , LoadBalancerDescription
+    , loadBalancerDescription
+    , lbdLoadBalancerName
+    , lbdDomain
+    , lbdListeners
+
+    -- * OptionRestrictionRegex
+    , OptionRestrictionRegex
+    , optionRestrictionRegex
+    , orrPattern
+    , orrLabel
+
+    -- * OptionSpecification
+    , OptionSpecification
+    , optionSpecification
+    , osOptionName
+    , osResourceName
+    , osNamespace
+
+    -- * Queue
+    , Queue
+    , queue
+    , qURL
+    , qName
+
+    -- * S3Location
+    , S3Location
+    , s3Location
+    , slS3Key
+    , slS3Bucket
+
+    -- * SingleInstanceHealth
+    , SingleInstanceHealth
+    , singleInstanceHealth
+    , sihInstanceId
+    , sihCauses
+    , sihApplicationMetrics
+    , sihColor
+    , sihSystem
+    , sihHealthStatus
+    , sihLaunchedAt
+
+    -- * SolutionStackDescription
+    , SolutionStackDescription
+    , solutionStackDescription
+    , ssdPermittedFileTypes
+    , ssdSolutionStackName
+
+    -- * SourceConfiguration
+    , SourceConfiguration
+    , sourceConfiguration
+    , scTemplateName
+    , scApplicationName
+
+    -- * StatusCodes
+    , StatusCodes
+    , statusCodes
+    , scStatus2xx
+    , scStatus3xx
+    , scStatus4xx
+    , scStatus5xx
+
+    -- * SystemStatus
+    , SystemStatus
+    , systemStatus
+    , ssCPUUtilization
+    , ssLoadAverage
+
+    -- * Tag
+    , Tag
+    , tag
+    , tagValue
+    , tagKey
+
+    -- * Trigger
+    , Trigger
+    , trigger
+    , tName
+
+    -- * ValidationMessage
+    , ValidationMessage
+    , validationMessage
+    , vmOptionName
+    , vmSeverity
+    , vmNamespace
+    , vmMessage
+    ) where
+
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.ElasticBeanstalk.Types.Sum
+import           Network.AWS.Prelude
+import           Network.AWS.Sign.V4
+
+-- | Version @2010-12-01@ of the Amazon Elastic Beanstalk SDK.
+data ElasticBeanstalk
+
+instance AWSService ElasticBeanstalk where
+    type Sg ElasticBeanstalk = V4
+    service = const svc
+      where
+        svc =
+            Service
+            { _svcAbbrev = "ElasticBeanstalk"
+            , _svcPrefix = "elasticbeanstalk"
+            , _svcVersion = "2010-12-01"
+            , _svcEndpoint = defaultEndpoint svc
+            , _svcTimeout = Just 70
+            , _svcStatus = statusSuccess
+            , _svcError = parseXMLError
+            , _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 request is invalid, please check parameters and their values
+_InvalidRequestException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidRequestException =
+    _ServiceError . hasStatus 400 . hasCode "InvalidRequestException"
+
+-- | The caller does not have a subscription to Amazon S3.
+_S3SubscriptionRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
+_S3SubscriptionRequiredException =
+    _ServiceError . hasStatus 400 . hasCode "S3SubscriptionRequiredException"
+
+-- | The web service attempted to create a bucket in an Amazon S3 account
+-- that already has 100 buckets.
+_TooManyBucketsException :: AsError a => Getting (First ServiceError) a ServiceError
+_TooManyBucketsException =
+    _ServiceError . hasStatus 400 . hasCode "TooManyBucketsException"
+
+-- | Unable to perform the specified operation because another operation is
+-- already in progress affecting an element in this activity.
+_OperationInProgressException :: AsError a => Getting (First ServiceError) a ServiceError
+_OperationInProgressException =
+    _ServiceError . hasStatus 400 . hasCode "OperationInProgressFailure"
+
+-- | The caller has exceeded the limit on the number of configuration
+-- templates associated with their account.
+_TooManyConfigurationTemplatesException :: AsError a => Getting (First ServiceError) a ServiceError
+_TooManyConfigurationTemplatesException =
+    _ServiceError .
+    hasStatus 400 . hasCode "TooManyConfigurationTemplatesException"
+
+-- | The caller has exceeded the limit on the number of application versions
+-- associated with their account.
+_TooManyApplicationVersionsException :: AsError a => Getting (First ServiceError) a ServiceError
+_TooManyApplicationVersionsException =
+    _ServiceError . hasCode "TooManyApplicationVersionsException"
+
+-- | Prism for ElasticBeanstalkServiceException' errors.
+_ElasticBeanstalkServiceException :: AsError a => Getting (First ServiceError) a ServiceError
+_ElasticBeanstalkServiceException =
+    _ServiceError . hasCode "ElasticBeanstalkServiceException"
+
+-- | Unable to perform the specified operation because the user does not have
+-- enough privileges for one of more downstream aws services
+_InsufficientPrivilegesException :: AsError a => Getting (First ServiceError) a ServiceError
+_InsufficientPrivilegesException =
+    _ServiceError . hasStatus 403 . hasCode "InsufficientPrivilegesException"
+
+-- | The caller has exceeded the limit on the number of applications
+-- associated with their account.
+_TooManyApplicationsException :: AsError a => Getting (First ServiceError) a ServiceError
+_TooManyApplicationsException =
+    _ServiceError . hasStatus 400 . hasCode "TooManyApplicationsException"
+
+-- | Unable to delete the Amazon S3 source bundle associated with the
+-- application version, although the application version deleted
+-- successfully.
+_SourceBundleDeletionException :: AsError a => Getting (First ServiceError) a ServiceError
+_SourceBundleDeletionException =
+    _ServiceError . hasStatus 400 . hasCode "SourceBundleDeletionFailure"
+
+-- | The specified S3 bucket does not belong to the S3 region in which the
+-- service is running.
+_S3LocationNotInServiceRegionException :: AsError a => Getting (First ServiceError) a ServiceError
+_S3LocationNotInServiceRegionException =
+    _ServiceError .
+    hasStatus 400 . hasCode "S3LocationNotInServiceRegionException"
+
+-- | The caller has exceeded the limit of allowed environments associated
+-- with the account.
+_TooManyEnvironmentsException :: AsError a => Getting (First ServiceError) a ServiceError
+_TooManyEnvironmentsException =
+    _ServiceError . hasStatus 400 . hasCode "TooManyEnvironmentsException"
diff --git a/gen/Network/AWS/ElasticBeanstalk/Types/Product.hs b/gen/Network/AWS/ElasticBeanstalk/Types/Product.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/ElasticBeanstalk/Types/Product.hs
@@ -0,0 +1,2218 @@
+{-# 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.ElasticBeanstalk.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.ElasticBeanstalk.Types.Product where
+
+import           Network.AWS.ElasticBeanstalk.Types.Sum
+import           Network.AWS.Prelude
+
+-- | Describes the properties of an application.
+--
+-- /See:/ 'applicationDescription' smart constructor.
+data ApplicationDescription = ApplicationDescription'
+    { _adDateUpdated            :: !(Maybe ISO8601)
+    , _adVersions               :: !(Maybe [Text])
+    , _adDateCreated            :: !(Maybe ISO8601)
+    , _adApplicationName        :: !(Maybe Text)
+    , _adConfigurationTemplates :: !(Maybe [Text])
+    , _adDescription            :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ApplicationDescription' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'adDateUpdated'
+--
+-- * 'adVersions'
+--
+-- * 'adDateCreated'
+--
+-- * 'adApplicationName'
+--
+-- * 'adConfigurationTemplates'
+--
+-- * 'adDescription'
+applicationDescription
+    :: ApplicationDescription
+applicationDescription =
+    ApplicationDescription'
+    { _adDateUpdated = Nothing
+    , _adVersions = Nothing
+    , _adDateCreated = Nothing
+    , _adApplicationName = Nothing
+    , _adConfigurationTemplates = Nothing
+    , _adDescription = Nothing
+    }
+
+-- | The date when the application was last modified.
+adDateUpdated :: Lens' ApplicationDescription (Maybe UTCTime)
+adDateUpdated = lens _adDateUpdated (\ s a -> s{_adDateUpdated = a}) . mapping _Time;
+
+-- | The names of the versions for this application.
+adVersions :: Lens' ApplicationDescription [Text]
+adVersions = lens _adVersions (\ s a -> s{_adVersions = a}) . _Default . _Coerce;
+
+-- | The date when the application was created.
+adDateCreated :: Lens' ApplicationDescription (Maybe UTCTime)
+adDateCreated = lens _adDateCreated (\ s a -> s{_adDateCreated = a}) . mapping _Time;
+
+-- | The name of the application.
+adApplicationName :: Lens' ApplicationDescription (Maybe Text)
+adApplicationName = lens _adApplicationName (\ s a -> s{_adApplicationName = a});
+
+-- | The names of the configuration templates associated with this
+-- application.
+adConfigurationTemplates :: Lens' ApplicationDescription [Text]
+adConfigurationTemplates = lens _adConfigurationTemplates (\ s a -> s{_adConfigurationTemplates = a}) . _Default . _Coerce;
+
+-- | User-defined description of the application.
+adDescription :: Lens' ApplicationDescription (Maybe Text)
+adDescription = lens _adDescription (\ s a -> s{_adDescription = a});
+
+instance FromXML ApplicationDescription where
+        parseXML x
+          = ApplicationDescription' <$>
+              (x .@? "DateUpdated") <*>
+                (x .@? "Versions" .!@ mempty >>=
+                   may (parseXMLList "member"))
+                <*> (x .@? "DateCreated")
+                <*> (x .@? "ApplicationName")
+                <*>
+                (x .@? "ConfigurationTemplates" .!@ mempty >>=
+                   may (parseXMLList "member"))
+                <*> (x .@? "Description")
+
+-- | Result message containing a single description of an application.
+--
+-- /See:/ 'applicationDescriptionMessage' smart constructor.
+newtype ApplicationDescriptionMessage = ApplicationDescriptionMessage'
+    { _admApplication :: Maybe ApplicationDescription
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ApplicationDescriptionMessage' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'admApplication'
+applicationDescriptionMessage
+    :: ApplicationDescriptionMessage
+applicationDescriptionMessage =
+    ApplicationDescriptionMessage'
+    { _admApplication = Nothing
+    }
+
+-- | The ApplicationDescription of the application.
+admApplication :: Lens' ApplicationDescriptionMessage (Maybe ApplicationDescription)
+admApplication = lens _admApplication (\ s a -> s{_admApplication = a});
+
+instance FromXML ApplicationDescriptionMessage where
+        parseXML x
+          = ApplicationDescriptionMessage' <$>
+              (x .@? "Application")
+
+-- | Represents the application metrics for a specified environment.
+--
+-- /See:/ 'applicationMetrics' smart constructor.
+data ApplicationMetrics = ApplicationMetrics'
+    { _amRequestCount :: !(Maybe Int)
+    , _amLatency      :: !(Maybe Latency)
+    , _amStatusCodes  :: !(Maybe StatusCodes)
+    , _amDuration     :: !(Maybe Int)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ApplicationMetrics' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'amRequestCount'
+--
+-- * 'amLatency'
+--
+-- * 'amStatusCodes'
+--
+-- * 'amDuration'
+applicationMetrics
+    :: ApplicationMetrics
+applicationMetrics =
+    ApplicationMetrics'
+    { _amRequestCount = Nothing
+    , _amLatency = Nothing
+    , _amStatusCodes = Nothing
+    , _amDuration = Nothing
+    }
+
+-- | Average number of requests handled by the web server per second over the
+-- last 10 seconds.
+amRequestCount :: Lens' ApplicationMetrics (Maybe Int)
+amRequestCount = lens _amRequestCount (\ s a -> s{_amRequestCount = a});
+
+-- | Represents the average latency for the slowest X percent of requests
+-- over the last 10 seconds. Latencies are in seconds with one milisecond
+-- resolution.
+amLatency :: Lens' ApplicationMetrics (Maybe Latency)
+amLatency = lens _amLatency (\ s a -> s{_amLatency = a});
+
+-- | Represents the percentage of requests over the last 10 seconds that
+-- resulted in each type of status code response.
+amStatusCodes :: Lens' ApplicationMetrics (Maybe StatusCodes)
+amStatusCodes = lens _amStatusCodes (\ s a -> s{_amStatusCodes = a});
+
+-- | The amount of time that the metrics cover (usually 10 seconds). For
+-- example, you might have 5 requests ('request_count') within the most
+-- recent time slice of 10 seconds ('duration').
+amDuration :: Lens' ApplicationMetrics (Maybe Int)
+amDuration = lens _amDuration (\ s a -> s{_amDuration = a});
+
+instance FromXML ApplicationMetrics where
+        parseXML x
+          = ApplicationMetrics' <$>
+              (x .@? "RequestCount") <*> (x .@? "Latency") <*>
+                (x .@? "StatusCodes")
+                <*> (x .@? "Duration")
+
+-- | Describes the properties of an application version.
+--
+-- /See:/ 'applicationVersionDescription' smart constructor.
+data ApplicationVersionDescription = ApplicationVersionDescription'
+    { _avdDateUpdated     :: !(Maybe ISO8601)
+    , _avdSourceBundle    :: !(Maybe S3Location)
+    , _avdVersionLabel    :: !(Maybe Text)
+    , _avdDateCreated     :: !(Maybe ISO8601)
+    , _avdApplicationName :: !(Maybe Text)
+    , _avdDescription     :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ApplicationVersionDescription' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'avdDateUpdated'
+--
+-- * 'avdSourceBundle'
+--
+-- * 'avdVersionLabel'
+--
+-- * 'avdDateCreated'
+--
+-- * 'avdApplicationName'
+--
+-- * 'avdDescription'
+applicationVersionDescription
+    :: ApplicationVersionDescription
+applicationVersionDescription =
+    ApplicationVersionDescription'
+    { _avdDateUpdated = Nothing
+    , _avdSourceBundle = Nothing
+    , _avdVersionLabel = Nothing
+    , _avdDateCreated = Nothing
+    , _avdApplicationName = Nothing
+    , _avdDescription = Nothing
+    }
+
+-- | The last modified date of the application version.
+avdDateUpdated :: Lens' ApplicationVersionDescription (Maybe UTCTime)
+avdDateUpdated = lens _avdDateUpdated (\ s a -> s{_avdDateUpdated = a}) . mapping _Time;
+
+-- | The location where the source bundle is located for this version.
+avdSourceBundle :: Lens' ApplicationVersionDescription (Maybe S3Location)
+avdSourceBundle = lens _avdSourceBundle (\ s a -> s{_avdSourceBundle = a});
+
+-- | A label uniquely identifying the version for the associated application.
+avdVersionLabel :: Lens' ApplicationVersionDescription (Maybe Text)
+avdVersionLabel = lens _avdVersionLabel (\ s a -> s{_avdVersionLabel = a});
+
+-- | The creation date of the application version.
+avdDateCreated :: Lens' ApplicationVersionDescription (Maybe UTCTime)
+avdDateCreated = lens _avdDateCreated (\ s a -> s{_avdDateCreated = a}) . mapping _Time;
+
+-- | The name of the application associated with this release.
+avdApplicationName :: Lens' ApplicationVersionDescription (Maybe Text)
+avdApplicationName = lens _avdApplicationName (\ s a -> s{_avdApplicationName = a});
+
+-- | The description of this application version.
+avdDescription :: Lens' ApplicationVersionDescription (Maybe Text)
+avdDescription = lens _avdDescription (\ s a -> s{_avdDescription = a});
+
+instance FromXML ApplicationVersionDescription where
+        parseXML x
+          = ApplicationVersionDescription' <$>
+              (x .@? "DateUpdated") <*> (x .@? "SourceBundle") <*>
+                (x .@? "VersionLabel")
+                <*> (x .@? "DateCreated")
+                <*> (x .@? "ApplicationName")
+                <*> (x .@? "Description")
+
+-- | Result message wrapping a single description of an application version.
+--
+-- /See:/ 'applicationVersionDescriptionMessage' smart constructor.
+newtype ApplicationVersionDescriptionMessage = ApplicationVersionDescriptionMessage'
+    { _avdmApplicationVersion :: Maybe ApplicationVersionDescription
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ApplicationVersionDescriptionMessage' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'avdmApplicationVersion'
+applicationVersionDescriptionMessage
+    :: ApplicationVersionDescriptionMessage
+applicationVersionDescriptionMessage =
+    ApplicationVersionDescriptionMessage'
+    { _avdmApplicationVersion = Nothing
+    }
+
+-- | The ApplicationVersionDescription of the application version.
+avdmApplicationVersion :: Lens' ApplicationVersionDescriptionMessage (Maybe ApplicationVersionDescription)
+avdmApplicationVersion = lens _avdmApplicationVersion (\ s a -> s{_avdmApplicationVersion = a});
+
+instance FromXML ApplicationVersionDescriptionMessage
+         where
+        parseXML x
+          = ApplicationVersionDescriptionMessage' <$>
+              (x .@? "ApplicationVersion")
+
+-- | Describes an Auto Scaling launch configuration.
+--
+-- /See:/ 'autoScalingGroup' smart constructor.
+newtype AutoScalingGroup = AutoScalingGroup'
+    { _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:
+--
+-- * 'asgName'
+autoScalingGroup
+    :: AutoScalingGroup
+autoScalingGroup =
+    AutoScalingGroup'
+    { _asgName = Nothing
+    }
+
+-- | The name of the 'AutoScalingGroup' .
+asgName :: Lens' AutoScalingGroup (Maybe Text)
+asgName = lens _asgName (\ s a -> s{_asgName = a});
+
+instance FromXML AutoScalingGroup where
+        parseXML x = AutoScalingGroup' <$> (x .@? "Name")
+
+-- | Represents CPU utilization information from the specified instance that
+-- belongs to the AWS Elastic Beanstalk environment. Use the 'instanceId'
+-- property to specify the application instance for which you\'d like to
+-- return data.
+--
+-- /See:/ 'cpuUtilization' smart constructor.
+data CPUUtilization = CPUUtilization'
+    { _cuIdle    :: !(Maybe Double)
+    , _cuSoftIRQ :: !(Maybe Double)
+    , _cuIRQ     :: !(Maybe Double)
+    , _cuSystem  :: !(Maybe Double)
+    , _cuUser    :: !(Maybe Double)
+    , _cuIOWait  :: !(Maybe Double)
+    , _cuNice    :: !(Maybe Double)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CPUUtilization' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cuIdle'
+--
+-- * 'cuSoftIRQ'
+--
+-- * 'cuIRQ'
+--
+-- * 'cuSystem'
+--
+-- * 'cuUser'
+--
+-- * 'cuIOWait'
+--
+-- * 'cuNice'
+cpuUtilization
+    :: CPUUtilization
+cpuUtilization =
+    CPUUtilization'
+    { _cuIdle = Nothing
+    , _cuSoftIRQ = Nothing
+    , _cuIRQ = Nothing
+    , _cuSystem = Nothing
+    , _cuUser = Nothing
+    , _cuIOWait = Nothing
+    , _cuNice = Nothing
+    }
+
+-- | Percentage of time that the CPU has spent in the 'Idle' state over the
+-- last 10 seconds.
+cuIdle :: Lens' CPUUtilization (Maybe Double)
+cuIdle = lens _cuIdle (\ s a -> s{_cuIdle = a});
+
+-- | Percentage of time that the CPU has spent in the 'SoftIRQ' state over
+-- the last 10 seconds.
+cuSoftIRQ :: Lens' CPUUtilization (Maybe Double)
+cuSoftIRQ = lens _cuSoftIRQ (\ s a -> s{_cuSoftIRQ = a});
+
+-- | Percentage of time that the CPU has spent in the 'IRQ' state over the
+-- last 10 seconds.
+cuIRQ :: Lens' CPUUtilization (Maybe Double)
+cuIRQ = lens _cuIRQ (\ s a -> s{_cuIRQ = a});
+
+-- | Percentage of time that the CPU has spent in the 'System' state over the
+-- last 10 seconds.
+cuSystem :: Lens' CPUUtilization (Maybe Double)
+cuSystem = lens _cuSystem (\ s a -> s{_cuSystem = a});
+
+-- | Percentage of time that the CPU has spent in the 'User' state over the
+-- last 10 seconds.
+cuUser :: Lens' CPUUtilization (Maybe Double)
+cuUser = lens _cuUser (\ s a -> s{_cuUser = a});
+
+-- | Percentage of time that the CPU has spent in the 'I\/O Wait' state over
+-- the last 10 seconds.
+cuIOWait :: Lens' CPUUtilization (Maybe Double)
+cuIOWait = lens _cuIOWait (\ s a -> s{_cuIOWait = a});
+
+-- | Percentage of time that the CPU has spent in the 'Nice' state over the
+-- last 10 seconds.
+cuNice :: Lens' CPUUtilization (Maybe Double)
+cuNice = lens _cuNice (\ s a -> s{_cuNice = a});
+
+instance FromXML CPUUtilization where
+        parseXML x
+          = CPUUtilization' <$>
+              (x .@? "Idle") <*> (x .@? "SoftIRQ") <*>
+                (x .@? "IRQ")
+                <*> (x .@? "System")
+                <*> (x .@? "User")
+                <*> (x .@? "IOWait")
+                <*> (x .@? "Nice")
+
+-- | Describes the possible values for a configuration option.
+--
+-- /See:/ 'configurationOptionDescription' smart constructor.
+data ConfigurationOptionDescription = ConfigurationOptionDescription'
+    { _codMaxValue       :: !(Maybe Int)
+    , _codRegex          :: !(Maybe OptionRestrictionRegex)
+    , _codUserDefined    :: !(Maybe Bool)
+    , _codMaxLength      :: !(Maybe Int)
+    , _codValueOptions   :: !(Maybe [Text])
+    , _codNamespace      :: !(Maybe Text)
+    , _codName           :: !(Maybe Text)
+    , _codChangeSeverity :: !(Maybe Text)
+    , _codDefaultValue   :: !(Maybe Text)
+    , _codValueType      :: !(Maybe ConfigurationOptionValueType)
+    , _codMinValue       :: !(Maybe Int)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ConfigurationOptionDescription' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'codMaxValue'
+--
+-- * 'codRegex'
+--
+-- * 'codUserDefined'
+--
+-- * 'codMaxLength'
+--
+-- * 'codValueOptions'
+--
+-- * 'codNamespace'
+--
+-- * 'codName'
+--
+-- * 'codChangeSeverity'
+--
+-- * 'codDefaultValue'
+--
+-- * 'codValueType'
+--
+-- * 'codMinValue'
+configurationOptionDescription
+    :: ConfigurationOptionDescription
+configurationOptionDescription =
+    ConfigurationOptionDescription'
+    { _codMaxValue = Nothing
+    , _codRegex = Nothing
+    , _codUserDefined = Nothing
+    , _codMaxLength = Nothing
+    , _codValueOptions = Nothing
+    , _codNamespace = Nothing
+    , _codName = Nothing
+    , _codChangeSeverity = Nothing
+    , _codDefaultValue = Nothing
+    , _codValueType = Nothing
+    , _codMinValue = Nothing
+    }
+
+-- | If specified, the configuration option must be a numeric value less than
+-- this value.
+codMaxValue :: Lens' ConfigurationOptionDescription (Maybe Int)
+codMaxValue = lens _codMaxValue (\ s a -> s{_codMaxValue = a});
+
+-- | If specified, the configuration option must be a string value that
+-- satisfies this regular expression.
+codRegex :: Lens' ConfigurationOptionDescription (Maybe OptionRestrictionRegex)
+codRegex = lens _codRegex (\ s a -> s{_codRegex = a});
+
+-- | An indication of whether the user defined this configuration option:
+--
+-- 'true' : This configuration option was defined by the user. It is a
+-- valid choice for specifying this as an Option to Remove when updating
+-- configuration settings.
+--
+-- 'false' : This configuration was not defined by the user.
+--
+-- -   'true' : This configuration option was defined by the user. It is a
+--     valid choice for specifying if this as an 'Option to Remove' when
+--     updating configuration settings.
+--
+-- -   'false' : This configuration was not defined by the user.
+--
+-- Constraint: You can remove only 'UserDefined' options from a
+-- configuration.
+--
+-- Valid Values: 'true' | 'false'
+codUserDefined :: Lens' ConfigurationOptionDescription (Maybe Bool)
+codUserDefined = lens _codUserDefined (\ s a -> s{_codUserDefined = a});
+
+-- | If specified, the configuration option must be a string value no longer
+-- than this value.
+codMaxLength :: Lens' ConfigurationOptionDescription (Maybe Int)
+codMaxLength = lens _codMaxLength (\ s a -> s{_codMaxLength = a});
+
+-- | If specified, values for the configuration option are selected from this
+-- list.
+codValueOptions :: Lens' ConfigurationOptionDescription [Text]
+codValueOptions = lens _codValueOptions (\ s a -> s{_codValueOptions = a}) . _Default . _Coerce;
+
+-- | A unique namespace identifying the option\'s associated AWS resource.
+codNamespace :: Lens' ConfigurationOptionDescription (Maybe Text)
+codNamespace = lens _codNamespace (\ s a -> s{_codNamespace = a});
+
+-- | The name of the configuration option.
+codName :: Lens' ConfigurationOptionDescription (Maybe Text)
+codName = lens _codName (\ s a -> s{_codName = a});
+
+-- | An indication of which action is required if the value for this
+-- configuration option changes:
+--
+-- NoInterruption - There is no interruption to the environment or
+-- application availability.
+--
+-- RestartEnvironment - The environment is restarted, all AWS resources are
+-- deleted and recreated, and the environment is unavailable during the
+-- process.
+--
+-- RestartApplicationServer - The environment is available the entire time.
+-- However, a short application outage occurs when the application servers
+-- on the running Amazon EC2 instances are restarted.
+--
+-- -   'NoInterruption' : There is no interruption to the environment or
+--     application availability.
+-- -   'RestartEnvironment' : The environment is entirely restarted, all
+--     AWS resources are deleted and recreated, and the environment is
+--     unavailable during the process.
+-- -   'RestartApplicationServer' : The environment is available the entire
+--     time. However, a short application outage occurs when the
+--     application servers on the running Amazon EC2 instances are
+--     restarted.
+codChangeSeverity :: Lens' ConfigurationOptionDescription (Maybe Text)
+codChangeSeverity = lens _codChangeSeverity (\ s a -> s{_codChangeSeverity = a});
+
+-- | The default value for this configuration option.
+codDefaultValue :: Lens' ConfigurationOptionDescription (Maybe Text)
+codDefaultValue = lens _codDefaultValue (\ s a -> s{_codDefaultValue = a});
+
+-- | An indication of which type of values this option has and whether it is
+-- allowable to select one or more than one of the possible values:
+--
+-- 'Scalar' : Values for this option are a single selection from the
+-- possible values, or a unformatted string or numeric value governed by
+-- the MIN\/MAX\/Regex constraints:
+--
+-- 'List' : Values for this option are multiple selections of the possible
+-- values.
+--
+-- 'Boolean' : Values for this option are either 'true' or 'false' .
+--
+-- 'Json' : Values for this option are a JSON representation of a
+-- 'ConfigDocument'.
+--
+-- -   'Scalar' : Values for this option are a single selection from the
+--     possible values, or an unformatted string, or numeric value governed
+--     by the 'MIN\/MAX\/Regex' constraints.
+-- -   'List' : Values for this option are multiple selections from the
+--     possible values.
+-- -   'Boolean' : Values for this option are either 'true' or 'false' .
+-- -   'Json' : Values for this option are a JSON representation of a
+--     'ConfigDocument'.
+codValueType :: Lens' ConfigurationOptionDescription (Maybe ConfigurationOptionValueType)
+codValueType = lens _codValueType (\ s a -> s{_codValueType = a});
+
+-- | If specified, the configuration option must be a numeric value greater
+-- than this value.
+codMinValue :: Lens' ConfigurationOptionDescription (Maybe Int)
+codMinValue = lens _codMinValue (\ s a -> s{_codMinValue = a});
+
+instance FromXML ConfigurationOptionDescription where
+        parseXML x
+          = ConfigurationOptionDescription' <$>
+              (x .@? "MaxValue") <*> (x .@? "Regex") <*>
+                (x .@? "UserDefined")
+                <*> (x .@? "MaxLength")
+                <*>
+                (x .@? "ValueOptions" .!@ mempty >>=
+                   may (parseXMLList "member"))
+                <*> (x .@? "Namespace")
+                <*> (x .@? "Name")
+                <*> (x .@? "ChangeSeverity")
+                <*> (x .@? "DefaultValue")
+                <*> (x .@? "ValueType")
+                <*> (x .@? "MinValue")
+
+-- | A specification identifying an individual configuration option along
+-- with its current value. For a list of possible option values, go to
+-- <http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html Option Values>
+-- in the /AWS Elastic Beanstalk Developer Guide/.
+--
+-- /See:/ 'configurationOptionSetting' smart constructor.
+data ConfigurationOptionSetting = ConfigurationOptionSetting'
+    { _cosOptionName   :: !(Maybe Text)
+    , _cosResourceName :: !(Maybe Text)
+    , _cosValue        :: !(Maybe Text)
+    , _cosNamespace    :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ConfigurationOptionSetting' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cosOptionName'
+--
+-- * 'cosResourceName'
+--
+-- * 'cosValue'
+--
+-- * 'cosNamespace'
+configurationOptionSetting
+    :: ConfigurationOptionSetting
+configurationOptionSetting =
+    ConfigurationOptionSetting'
+    { _cosOptionName = Nothing
+    , _cosResourceName = Nothing
+    , _cosValue = Nothing
+    , _cosNamespace = Nothing
+    }
+
+-- | The name of the configuration option.
+cosOptionName :: Lens' ConfigurationOptionSetting (Maybe Text)
+cosOptionName = lens _cosOptionName (\ s a -> s{_cosOptionName = a});
+
+-- | A unique resource name for a time-based scaling configuration option.
+cosResourceName :: Lens' ConfigurationOptionSetting (Maybe Text)
+cosResourceName = lens _cosResourceName (\ s a -> s{_cosResourceName = a});
+
+-- | The current value for the configuration option.
+cosValue :: Lens' ConfigurationOptionSetting (Maybe Text)
+cosValue = lens _cosValue (\ s a -> s{_cosValue = a});
+
+-- | A unique namespace identifying the option\'s associated AWS resource.
+cosNamespace :: Lens' ConfigurationOptionSetting (Maybe Text)
+cosNamespace = lens _cosNamespace (\ s a -> s{_cosNamespace = a});
+
+instance FromXML ConfigurationOptionSetting where
+        parseXML x
+          = ConfigurationOptionSetting' <$>
+              (x .@? "OptionName") <*> (x .@? "ResourceName") <*>
+                (x .@? "Value")
+                <*> (x .@? "Namespace")
+
+instance ToQuery ConfigurationOptionSetting where
+        toQuery ConfigurationOptionSetting'{..}
+          = mconcat
+              ["OptionName" =: _cosOptionName,
+               "ResourceName" =: _cosResourceName,
+               "Value" =: _cosValue, "Namespace" =: _cosNamespace]
+
+-- | Describes the settings for a configuration set.
+--
+-- /See:/ 'configurationSettingsDescription' smart constructor.
+data ConfigurationSettingsDescription = ConfigurationSettingsDescription'
+    { _csdTemplateName      :: !(Maybe Text)
+    , _csdOptionSettings    :: !(Maybe [ConfigurationOptionSetting])
+    , _csdDateUpdated       :: !(Maybe ISO8601)
+    , _csdDateCreated       :: !(Maybe ISO8601)
+    , _csdEnvironmentName   :: !(Maybe Text)
+    , _csdApplicationName   :: !(Maybe Text)
+    , _csdDeploymentStatus  :: !(Maybe ConfigurationDeploymentStatus)
+    , _csdSolutionStackName :: !(Maybe Text)
+    , _csdDescription       :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ConfigurationSettingsDescription' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'csdTemplateName'
+--
+-- * 'csdOptionSettings'
+--
+-- * 'csdDateUpdated'
+--
+-- * 'csdDateCreated'
+--
+-- * 'csdEnvironmentName'
+--
+-- * 'csdApplicationName'
+--
+-- * 'csdDeploymentStatus'
+--
+-- * 'csdSolutionStackName'
+--
+-- * 'csdDescription'
+configurationSettingsDescription
+    :: ConfigurationSettingsDescription
+configurationSettingsDescription =
+    ConfigurationSettingsDescription'
+    { _csdTemplateName = Nothing
+    , _csdOptionSettings = Nothing
+    , _csdDateUpdated = Nothing
+    , _csdDateCreated = Nothing
+    , _csdEnvironmentName = Nothing
+    , _csdApplicationName = Nothing
+    , _csdDeploymentStatus = Nothing
+    , _csdSolutionStackName = Nothing
+    , _csdDescription = Nothing
+    }
+
+-- | If not 'null', the name of the configuration template for this
+-- configuration set.
+csdTemplateName :: Lens' ConfigurationSettingsDescription (Maybe Text)
+csdTemplateName = lens _csdTemplateName (\ s a -> s{_csdTemplateName = a});
+
+-- | A list of the configuration options and their values in this
+-- configuration set.
+csdOptionSettings :: Lens' ConfigurationSettingsDescription [ConfigurationOptionSetting]
+csdOptionSettings = lens _csdOptionSettings (\ s a -> s{_csdOptionSettings = a}) . _Default . _Coerce;
+
+-- | The date (in UTC time) when this configuration set was last modified.
+csdDateUpdated :: Lens' ConfigurationSettingsDescription (Maybe UTCTime)
+csdDateUpdated = lens _csdDateUpdated (\ s a -> s{_csdDateUpdated = a}) . mapping _Time;
+
+-- | The date (in UTC time) when this configuration set was created.
+csdDateCreated :: Lens' ConfigurationSettingsDescription (Maybe UTCTime)
+csdDateCreated = lens _csdDateCreated (\ s a -> s{_csdDateCreated = a}) . mapping _Time;
+
+-- | If not 'null', the name of the environment for this configuration set.
+csdEnvironmentName :: Lens' ConfigurationSettingsDescription (Maybe Text)
+csdEnvironmentName = lens _csdEnvironmentName (\ s a -> s{_csdEnvironmentName = a});
+
+-- | The name of the application associated with this configuration set.
+csdApplicationName :: Lens' ConfigurationSettingsDescription (Maybe Text)
+csdApplicationName = lens _csdApplicationName (\ s a -> s{_csdApplicationName = a});
+
+-- | If this configuration set is associated with an environment, the
+-- 'DeploymentStatus' parameter indicates the deployment status of this
+-- configuration set:
+--
+-- 'null': This configuration is not associated with a running environment.
+--
+-- 'pending': This is a draft configuration that is not deployed to the
+-- associated environment but is in the process of deploying.
+--
+-- 'deployed': This is the configuration that is currently deployed to the
+-- associated running environment.
+--
+-- 'failed': This is a draft configuration, that failed to successfully
+-- deploy.
+--
+-- -   'null': This configuration is not associated with a running
+--     environment.
+-- -   'pending': This is a draft configuration that is not deployed to the
+--     associated environment but is in the process of deploying.
+-- -   'deployed': This is the configuration that is currently deployed to
+--     the associated running environment.
+-- -   'failed': This is a draft configuration that failed to successfully
+--     deploy.
+csdDeploymentStatus :: Lens' ConfigurationSettingsDescription (Maybe ConfigurationDeploymentStatus)
+csdDeploymentStatus = lens _csdDeploymentStatus (\ s a -> s{_csdDeploymentStatus = a});
+
+-- | The name of the solution stack this configuration set uses.
+csdSolutionStackName :: Lens' ConfigurationSettingsDescription (Maybe Text)
+csdSolutionStackName = lens _csdSolutionStackName (\ s a -> s{_csdSolutionStackName = a});
+
+-- | Describes this configuration set.
+csdDescription :: Lens' ConfigurationSettingsDescription (Maybe Text)
+csdDescription = lens _csdDescription (\ s a -> s{_csdDescription = a});
+
+instance FromXML ConfigurationSettingsDescription
+         where
+        parseXML x
+          = ConfigurationSettingsDescription' <$>
+              (x .@? "TemplateName") <*>
+                (x .@? "OptionSettings" .!@ mempty >>=
+                   may (parseXMLList "member"))
+                <*> (x .@? "DateUpdated")
+                <*> (x .@? "DateCreated")
+                <*> (x .@? "EnvironmentName")
+                <*> (x .@? "ApplicationName")
+                <*> (x .@? "DeploymentStatus")
+                <*> (x .@? "SolutionStackName")
+                <*> (x .@? "Description")
+
+-- | Describes the properties of an environment.
+--
+-- /See:/ 'environmentDescription' smart constructor.
+data EnvironmentDescription = EnvironmentDescription'
+    { _eCNAME                        :: !(Maybe Text)
+    , _eStatus                       :: !(Maybe EnvironmentStatus)
+    , _eTemplateName                 :: !(Maybe Text)
+    , _eAbortableOperationInProgress :: !(Maybe Bool)
+    , _eEndpointURL                  :: !(Maybe Text)
+    , _eDateUpdated                  :: !(Maybe ISO8601)
+    , _eResources                    :: !(Maybe EnvironmentResourcesDescription)
+    , _eHealth                       :: !(Maybe EnvironmentHealth)
+    , _eVersionLabel                 :: !(Maybe Text)
+    , _eDateCreated                  :: !(Maybe ISO8601)
+    , _eTier                         :: !(Maybe EnvironmentTier)
+    , _eEnvironmentName              :: !(Maybe Text)
+    , _eApplicationName              :: !(Maybe Text)
+    , _eHealthStatus                 :: !(Maybe EnvironmentHealthStatus)
+    , _eEnvironmentId                :: !(Maybe Text)
+    , _eSolutionStackName            :: !(Maybe Text)
+    , _eDescription                  :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EnvironmentDescription' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'eCNAME'
+--
+-- * 'eStatus'
+--
+-- * 'eTemplateName'
+--
+-- * 'eAbortableOperationInProgress'
+--
+-- * 'eEndpointURL'
+--
+-- * 'eDateUpdated'
+--
+-- * 'eResources'
+--
+-- * 'eHealth'
+--
+-- * 'eVersionLabel'
+--
+-- * 'eDateCreated'
+--
+-- * 'eTier'
+--
+-- * 'eEnvironmentName'
+--
+-- * 'eApplicationName'
+--
+-- * 'eHealthStatus'
+--
+-- * 'eEnvironmentId'
+--
+-- * 'eSolutionStackName'
+--
+-- * 'eDescription'
+environmentDescription
+    :: EnvironmentDescription
+environmentDescription =
+    EnvironmentDescription'
+    { _eCNAME = Nothing
+    , _eStatus = Nothing
+    , _eTemplateName = Nothing
+    , _eAbortableOperationInProgress = Nothing
+    , _eEndpointURL = Nothing
+    , _eDateUpdated = Nothing
+    , _eResources = Nothing
+    , _eHealth = Nothing
+    , _eVersionLabel = Nothing
+    , _eDateCreated = Nothing
+    , _eTier = Nothing
+    , _eEnvironmentName = Nothing
+    , _eApplicationName = Nothing
+    , _eHealthStatus = Nothing
+    , _eEnvironmentId = Nothing
+    , _eSolutionStackName = Nothing
+    , _eDescription = Nothing
+    }
+
+-- | The URL to the CNAME for this environment.
+eCNAME :: Lens' EnvironmentDescription (Maybe Text)
+eCNAME = lens _eCNAME (\ s a -> s{_eCNAME = a});
+
+-- | The current operational status of the environment:
+--
+-- -   'Launching': Environment is in the process of initial deployment.
+-- -   'Updating': Environment is in the process of updating its
+--     configuration settings or application version.
+-- -   'Ready': Environment is available to have an action performed on it,
+--     such as update or terminate.
+-- -   'Terminating': Environment is in the shut-down process.
+-- -   'Terminated': Environment is not running.
+eStatus :: Lens' EnvironmentDescription (Maybe EnvironmentStatus)
+eStatus = lens _eStatus (\ s a -> s{_eStatus = a});
+
+-- | The name of the configuration template used to originally launch this
+-- environment.
+eTemplateName :: Lens' EnvironmentDescription (Maybe Text)
+eTemplateName = lens _eTemplateName (\ s a -> s{_eTemplateName = a});
+
+-- | Indicates if there is an in-progress environment configuration update or
+-- application version deployment that you can cancel.
+--
+-- 'true:' There is an update in progress.
+--
+-- 'false:' There are no updates currently in progress.
+eAbortableOperationInProgress :: Lens' EnvironmentDescription (Maybe Bool)
+eAbortableOperationInProgress = lens _eAbortableOperationInProgress (\ s a -> s{_eAbortableOperationInProgress = a});
+
+-- | For load-balanced, autoscaling environments, the URL to the
+-- LoadBalancer. For single-instance environments, the IP address of the
+-- instance.
+eEndpointURL :: Lens' EnvironmentDescription (Maybe Text)
+eEndpointURL = lens _eEndpointURL (\ s a -> s{_eEndpointURL = a});
+
+-- | The last modified date for this environment.
+eDateUpdated :: Lens' EnvironmentDescription (Maybe UTCTime)
+eDateUpdated = lens _eDateUpdated (\ s a -> s{_eDateUpdated = a}) . mapping _Time;
+
+-- | The description of the AWS resources used by this environment.
+eResources :: Lens' EnvironmentDescription (Maybe EnvironmentResourcesDescription)
+eResources = lens _eResources (\ s a -> s{_eResources = a});
+
+-- | Describes the health status of the environment. AWS Elastic Beanstalk
+-- indicates the failure levels for a running environment:
+--
+-- 'Red' : Indicates the environment is not working.
+--
+-- 'Yellow': Indicates that something is wrong, the application might not
+-- be available, but the instances appear running.
+--
+-- 'Green': Indicates the environment is healthy and fully functional.
+--
+-- -   'Red': Indicates the environment is not responsive. Occurs when
+--     three or more consecutive failures occur for an environment.
+-- -   'Yellow': Indicates that something is wrong. Occurs when two
+--     consecutive failures occur for an environment.
+-- -   'Green': Indicates the environment is healthy and fully functional.
+-- -   'Grey': Default health for a new environment. The environment is not
+--     fully launched and health checks have not started or health checks
+--     are suspended during an 'UpdateEnvironment' or 'RestartEnvironement'
+--     request.
+--
+-- Default: 'Grey'
+eHealth :: Lens' EnvironmentDescription (Maybe EnvironmentHealth)
+eHealth = lens _eHealth (\ s a -> s{_eHealth = a});
+
+-- | The application version deployed in this environment.
+eVersionLabel :: Lens' EnvironmentDescription (Maybe Text)
+eVersionLabel = lens _eVersionLabel (\ s a -> s{_eVersionLabel = a});
+
+-- | The creation date for this environment.
+eDateCreated :: Lens' EnvironmentDescription (Maybe UTCTime)
+eDateCreated = lens _eDateCreated (\ s a -> s{_eDateCreated = a}) . mapping _Time;
+
+-- | Describes the current tier of this environment.
+eTier :: Lens' EnvironmentDescription (Maybe EnvironmentTier)
+eTier = lens _eTier (\ s a -> s{_eTier = a});
+
+-- | The name of this environment.
+eEnvironmentName :: Lens' EnvironmentDescription (Maybe Text)
+eEnvironmentName = lens _eEnvironmentName (\ s a -> s{_eEnvironmentName = a});
+
+-- | The name of the application associated with this environment.
+eApplicationName :: Lens' EnvironmentDescription (Maybe Text)
+eApplicationName = lens _eApplicationName (\ s a -> s{_eApplicationName = a});
+
+-- | Returns the health status of the application running in your
+-- environment. For more information, see
+-- <http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/health-enhanced-status.html Health Colors and Statuses>.
+eHealthStatus :: Lens' EnvironmentDescription (Maybe EnvironmentHealthStatus)
+eHealthStatus = lens _eHealthStatus (\ s a -> s{_eHealthStatus = a});
+
+-- | The ID of this environment.
+eEnvironmentId :: Lens' EnvironmentDescription (Maybe Text)
+eEnvironmentId = lens _eEnvironmentId (\ s a -> s{_eEnvironmentId = a});
+
+-- | The name of the 'SolutionStack' deployed with this environment.
+eSolutionStackName :: Lens' EnvironmentDescription (Maybe Text)
+eSolutionStackName = lens _eSolutionStackName (\ s a -> s{_eSolutionStackName = a});
+
+-- | Describes this environment.
+eDescription :: Lens' EnvironmentDescription (Maybe Text)
+eDescription = lens _eDescription (\ s a -> s{_eDescription = a});
+
+instance FromXML EnvironmentDescription where
+        parseXML x
+          = EnvironmentDescription' <$>
+              (x .@? "CNAME") <*> (x .@? "Status") <*>
+                (x .@? "TemplateName")
+                <*> (x .@? "AbortableOperationInProgress")
+                <*> (x .@? "EndpointURL")
+                <*> (x .@? "DateUpdated")
+                <*> (x .@? "Resources")
+                <*> (x .@? "Health")
+                <*> (x .@? "VersionLabel")
+                <*> (x .@? "DateCreated")
+                <*> (x .@? "Tier")
+                <*> (x .@? "EnvironmentName")
+                <*> (x .@? "ApplicationName")
+                <*> (x .@? "HealthStatus")
+                <*> (x .@? "EnvironmentId")
+                <*> (x .@? "SolutionStackName")
+                <*> (x .@? "Description")
+
+-- | The information retrieved from the Amazon EC2 instances.
+--
+-- /See:/ 'environmentInfoDescription' smart constructor.
+data EnvironmentInfoDescription = EnvironmentInfoDescription'
+    { _eidSampleTimestamp :: !(Maybe ISO8601)
+    , _eidEC2InstanceId   :: !(Maybe Text)
+    , _eidInfoType        :: !(Maybe EnvironmentInfoType)
+    , _eidMessage         :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EnvironmentInfoDescription' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'eidSampleTimestamp'
+--
+-- * 'eidEC2InstanceId'
+--
+-- * 'eidInfoType'
+--
+-- * 'eidMessage'
+environmentInfoDescription
+    :: EnvironmentInfoDescription
+environmentInfoDescription =
+    EnvironmentInfoDescription'
+    { _eidSampleTimestamp = Nothing
+    , _eidEC2InstanceId = Nothing
+    , _eidInfoType = Nothing
+    , _eidMessage = Nothing
+    }
+
+-- | The time stamp when this information was retrieved.
+eidSampleTimestamp :: Lens' EnvironmentInfoDescription (Maybe UTCTime)
+eidSampleTimestamp = lens _eidSampleTimestamp (\ s a -> s{_eidSampleTimestamp = a}) . mapping _Time;
+
+-- | The Amazon EC2 Instance ID for this information.
+eidEC2InstanceId :: Lens' EnvironmentInfoDescription (Maybe Text)
+eidEC2InstanceId = lens _eidEC2InstanceId (\ s a -> s{_eidEC2InstanceId = a});
+
+-- | The type of information retrieved.
+eidInfoType :: Lens' EnvironmentInfoDescription (Maybe EnvironmentInfoType)
+eidInfoType = lens _eidInfoType (\ s a -> s{_eidInfoType = a});
+
+-- | The retrieved information.
+eidMessage :: Lens' EnvironmentInfoDescription (Maybe Text)
+eidMessage = lens _eidMessage (\ s a -> s{_eidMessage = a});
+
+instance FromXML EnvironmentInfoDescription where
+        parseXML x
+          = EnvironmentInfoDescription' <$>
+              (x .@? "SampleTimestamp") <*> (x .@? "Ec2InstanceId")
+                <*> (x .@? "InfoType")
+                <*> (x .@? "Message")
+
+-- | Describes the AWS resources in use by this environment. This data is
+-- live.
+--
+-- /See:/ 'environmentResourceDescription' smart constructor.
+data EnvironmentResourceDescription = EnvironmentResourceDescription'
+    { _erdQueues               :: !(Maybe [Queue])
+    , _erdTriggers             :: !(Maybe [Trigger])
+    , _erdLoadBalancers        :: !(Maybe [LoadBalancer])
+    , _erdInstances            :: !(Maybe [Instance])
+    , _erdEnvironmentName      :: !(Maybe Text)
+    , _erdLaunchConfigurations :: !(Maybe [LaunchConfiguration])
+    , _erdAutoScalingGroups    :: !(Maybe [AutoScalingGroup])
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EnvironmentResourceDescription' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'erdQueues'
+--
+-- * 'erdTriggers'
+--
+-- * 'erdLoadBalancers'
+--
+-- * 'erdInstances'
+--
+-- * 'erdEnvironmentName'
+--
+-- * 'erdLaunchConfigurations'
+--
+-- * 'erdAutoScalingGroups'
+environmentResourceDescription
+    :: EnvironmentResourceDescription
+environmentResourceDescription =
+    EnvironmentResourceDescription'
+    { _erdQueues = Nothing
+    , _erdTriggers = Nothing
+    , _erdLoadBalancers = Nothing
+    , _erdInstances = Nothing
+    , _erdEnvironmentName = Nothing
+    , _erdLaunchConfigurations = Nothing
+    , _erdAutoScalingGroups = Nothing
+    }
+
+-- | The queues used by this environment.
+erdQueues :: Lens' EnvironmentResourceDescription [Queue]
+erdQueues = lens _erdQueues (\ s a -> s{_erdQueues = a}) . _Default . _Coerce;
+
+-- | The 'AutoScaling' triggers in use by this environment.
+erdTriggers :: Lens' EnvironmentResourceDescription [Trigger]
+erdTriggers = lens _erdTriggers (\ s a -> s{_erdTriggers = a}) . _Default . _Coerce;
+
+-- | The LoadBalancers in use by this environment.
+erdLoadBalancers :: Lens' EnvironmentResourceDescription [LoadBalancer]
+erdLoadBalancers = lens _erdLoadBalancers (\ s a -> s{_erdLoadBalancers = a}) . _Default . _Coerce;
+
+-- | The Amazon EC2 instances used by this environment.
+erdInstances :: Lens' EnvironmentResourceDescription [Instance]
+erdInstances = lens _erdInstances (\ s a -> s{_erdInstances = a}) . _Default . _Coerce;
+
+-- | The name of the environment.
+erdEnvironmentName :: Lens' EnvironmentResourceDescription (Maybe Text)
+erdEnvironmentName = lens _erdEnvironmentName (\ s a -> s{_erdEnvironmentName = a});
+
+-- | The Auto Scaling launch configurations in use by this environment.
+erdLaunchConfigurations :: Lens' EnvironmentResourceDescription [LaunchConfiguration]
+erdLaunchConfigurations = lens _erdLaunchConfigurations (\ s a -> s{_erdLaunchConfigurations = a}) . _Default . _Coerce;
+
+-- | The 'AutoScalingGroups' used by this environment.
+erdAutoScalingGroups :: Lens' EnvironmentResourceDescription [AutoScalingGroup]
+erdAutoScalingGroups = lens _erdAutoScalingGroups (\ s a -> s{_erdAutoScalingGroups = a}) . _Default . _Coerce;
+
+instance FromXML EnvironmentResourceDescription where
+        parseXML x
+          = EnvironmentResourceDescription' <$>
+              (x .@? "Queues" .!@ mempty >>=
+                 may (parseXMLList "member"))
+                <*>
+                (x .@? "Triggers" .!@ mempty >>=
+                   may (parseXMLList "member"))
+                <*>
+                (x .@? "LoadBalancers" .!@ mempty >>=
+                   may (parseXMLList "member"))
+                <*>
+                (x .@? "Instances" .!@ mempty >>=
+                   may (parseXMLList "member"))
+                <*> (x .@? "EnvironmentName")
+                <*>
+                (x .@? "LaunchConfigurations" .!@ mempty >>=
+                   may (parseXMLList "member"))
+                <*>
+                (x .@? "AutoScalingGroups" .!@ mempty >>=
+                   may (parseXMLList "member"))
+
+-- | Describes the AWS resources in use by this environment. This data is not
+-- live data.
+--
+-- /See:/ 'environmentResourcesDescription' smart constructor.
+newtype EnvironmentResourcesDescription = EnvironmentResourcesDescription'
+    { _erdLoadBalancer :: Maybe LoadBalancerDescription
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EnvironmentResourcesDescription' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'erdLoadBalancer'
+environmentResourcesDescription
+    :: EnvironmentResourcesDescription
+environmentResourcesDescription =
+    EnvironmentResourcesDescription'
+    { _erdLoadBalancer = Nothing
+    }
+
+-- | Describes the LoadBalancer.
+erdLoadBalancer :: Lens' EnvironmentResourcesDescription (Maybe LoadBalancerDescription)
+erdLoadBalancer = lens _erdLoadBalancer (\ s a -> s{_erdLoadBalancer = a});
+
+instance FromXML EnvironmentResourcesDescription
+         where
+        parseXML x
+          = EnvironmentResourcesDescription' <$>
+              (x .@? "LoadBalancer")
+
+-- | Describes the properties of an environment tier
+--
+-- /See:/ 'environmentTier' smart constructor.
+data EnvironmentTier = EnvironmentTier'
+    { _etName    :: !(Maybe Text)
+    , _etVersion :: !(Maybe Text)
+    , _etType    :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EnvironmentTier' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'etName'
+--
+-- * 'etVersion'
+--
+-- * 'etType'
+environmentTier
+    :: EnvironmentTier
+environmentTier =
+    EnvironmentTier'
+    { _etName = Nothing
+    , _etVersion = Nothing
+    , _etType = Nothing
+    }
+
+-- | The name of this environment tier.
+etName :: Lens' EnvironmentTier (Maybe Text)
+etName = lens _etName (\ s a -> s{_etName = a});
+
+-- | The version of this environment tier.
+etVersion :: Lens' EnvironmentTier (Maybe Text)
+etVersion = lens _etVersion (\ s a -> s{_etVersion = a});
+
+-- | The type of this environment tier.
+etType :: Lens' EnvironmentTier (Maybe Text)
+etType = lens _etType (\ s a -> s{_etType = a});
+
+instance FromXML EnvironmentTier where
+        parseXML x
+          = EnvironmentTier' <$>
+              (x .@? "Name") <*> (x .@? "Version") <*>
+                (x .@? "Type")
+
+instance ToQuery EnvironmentTier where
+        toQuery EnvironmentTier'{..}
+          = mconcat
+              ["Name" =: _etName, "Version" =: _etVersion,
+               "Type" =: _etType]
+
+-- | Describes an event.
+--
+-- /See:/ 'eventDescription' smart constructor.
+data EventDescription = EventDescription'
+    { _edRequestId       :: !(Maybe Text)
+    , _edTemplateName    :: !(Maybe Text)
+    , _edSeverity        :: !(Maybe EventSeverity)
+    , _edVersionLabel    :: !(Maybe Text)
+    , _edEnvironmentName :: !(Maybe Text)
+    , _edApplicationName :: !(Maybe Text)
+    , _edEventDate       :: !(Maybe ISO8601)
+    , _edMessage         :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EventDescription' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'edRequestId'
+--
+-- * 'edTemplateName'
+--
+-- * 'edSeverity'
+--
+-- * 'edVersionLabel'
+--
+-- * 'edEnvironmentName'
+--
+-- * 'edApplicationName'
+--
+-- * 'edEventDate'
+--
+-- * 'edMessage'
+eventDescription
+    :: EventDescription
+eventDescription =
+    EventDescription'
+    { _edRequestId = Nothing
+    , _edTemplateName = Nothing
+    , _edSeverity = Nothing
+    , _edVersionLabel = Nothing
+    , _edEnvironmentName = Nothing
+    , _edApplicationName = Nothing
+    , _edEventDate = Nothing
+    , _edMessage = Nothing
+    }
+
+-- | The web service request ID for the activity of this event.
+edRequestId :: Lens' EventDescription (Maybe Text)
+edRequestId = lens _edRequestId (\ s a -> s{_edRequestId = a});
+
+-- | The name of the configuration associated with this event.
+edTemplateName :: Lens' EventDescription (Maybe Text)
+edTemplateName = lens _edTemplateName (\ s a -> s{_edTemplateName = a});
+
+-- | The severity level of this event.
+edSeverity :: Lens' EventDescription (Maybe EventSeverity)
+edSeverity = lens _edSeverity (\ s a -> s{_edSeverity = a});
+
+-- | The release label for the application version associated with this
+-- event.
+edVersionLabel :: Lens' EventDescription (Maybe Text)
+edVersionLabel = lens _edVersionLabel (\ s a -> s{_edVersionLabel = a});
+
+-- | The name of the environment associated with this event.
+edEnvironmentName :: Lens' EventDescription (Maybe Text)
+edEnvironmentName = lens _edEnvironmentName (\ s a -> s{_edEnvironmentName = a});
+
+-- | The application associated with the event.
+edApplicationName :: Lens' EventDescription (Maybe Text)
+edApplicationName = lens _edApplicationName (\ s a -> s{_edApplicationName = a});
+
+-- | The date when the event occurred.
+edEventDate :: Lens' EventDescription (Maybe UTCTime)
+edEventDate = lens _edEventDate (\ s a -> s{_edEventDate = a}) . mapping _Time;
+
+-- | The event message.
+edMessage :: Lens' EventDescription (Maybe Text)
+edMessage = lens _edMessage (\ s a -> s{_edMessage = a});
+
+instance FromXML EventDescription where
+        parseXML x
+          = EventDescription' <$>
+              (x .@? "RequestId") <*> (x .@? "TemplateName") <*>
+                (x .@? "Severity")
+                <*> (x .@? "VersionLabel")
+                <*> (x .@? "EnvironmentName")
+                <*> (x .@? "ApplicationName")
+                <*> (x .@? "EventDate")
+                <*> (x .@? "Message")
+
+-- | The description of an Amazon EC2 instance.
+--
+-- /See:/ 'instance'' smart constructor.
+newtype Instance = Instance'
+    { _iId :: Maybe Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Instance' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'iId'
+instance'
+    :: Instance
+instance' =
+    Instance'
+    { _iId = Nothing
+    }
+
+-- | The ID of the Amazon EC2 instance.
+iId :: Lens' Instance (Maybe Text)
+iId = lens _iId (\ s a -> s{_iId = a});
+
+instance FromXML Instance where
+        parseXML x = Instance' <$> (x .@? "Id")
+
+-- | Represents summary information about the health of an instance. For more
+-- information, see
+-- <http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/health-enhanced-status.html Health Colors and Statuses>.
+--
+-- /See:/ 'instanceHealthSummary' smart constructor.
+data InstanceHealthSummary = InstanceHealthSummary'
+    { _ihsOK       :: !(Maybe Int)
+    , _ihsPending  :: !(Maybe Int)
+    , _ihsSevere   :: !(Maybe Int)
+    , _ihsUnknown  :: !(Maybe Int)
+    , _ihsNoData   :: !(Maybe Int)
+    , _ihsWarning  :: !(Maybe Int)
+    , _ihsDegraded :: !(Maybe Int)
+    , _ihsInfo     :: !(Maybe Int)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'InstanceHealthSummary' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ihsOK'
+--
+-- * 'ihsPending'
+--
+-- * 'ihsSevere'
+--
+-- * 'ihsUnknown'
+--
+-- * 'ihsNoData'
+--
+-- * 'ihsWarning'
+--
+-- * 'ihsDegraded'
+--
+-- * 'ihsInfo'
+instanceHealthSummary
+    :: InstanceHealthSummary
+instanceHealthSummary =
+    InstanceHealthSummary'
+    { _ihsOK = Nothing
+    , _ihsPending = Nothing
+    , _ihsSevere = Nothing
+    , _ihsUnknown = Nothing
+    , _ihsNoData = Nothing
+    , _ihsWarning = Nothing
+    , _ihsDegraded = Nothing
+    , _ihsInfo = Nothing
+    }
+
+-- | __Green.__ An instance is passing health checks and the health agent is
+-- not reporting any problems.
+ihsOK :: Lens' InstanceHealthSummary (Maybe Int)
+ihsOK = lens _ihsOK (\ s a -> s{_ihsOK = a});
+
+-- | __Grey.__ An operation is in progress on an instance within the command
+-- timeout.
+ihsPending :: Lens' InstanceHealthSummary (Maybe Int)
+ihsPending = lens _ihsPending (\ s a -> s{_ihsPending = a});
+
+-- | __Red.__ The health agent is reporting a very high number of request
+-- failures or other issues for an instance or environment.
+ihsSevere :: Lens' InstanceHealthSummary (Maybe Int)
+ihsSevere = lens _ihsSevere (\ s a -> s{_ihsSevere = a});
+
+-- | __Grey.__ AWS Elastic Beanstalk and the health agent are reporting an
+-- insufficient amount of data on an instance.
+ihsUnknown :: Lens' InstanceHealthSummary (Maybe Int)
+ihsUnknown = lens _ihsUnknown (\ s a -> s{_ihsUnknown = a});
+
+-- | __Grey.__ AWS Elastic Beanstalk and the health agent are reporting no
+-- data on an instance.
+ihsNoData :: Lens' InstanceHealthSummary (Maybe Int)
+ihsNoData = lens _ihsNoData (\ s a -> s{_ihsNoData = a});
+
+-- | __Yellow.__ The health agent is reporting a moderate number of request
+-- failures or other issues for an instance or environment.
+ihsWarning :: Lens' InstanceHealthSummary (Maybe Int)
+ihsWarning = lens _ihsWarning (\ s a -> s{_ihsWarning = a});
+
+-- | __Red.__ The health agent is reporting a high number of request failures
+-- or other issues for an instance or environment.
+ihsDegraded :: Lens' InstanceHealthSummary (Maybe Int)
+ihsDegraded = lens _ihsDegraded (\ s a -> s{_ihsDegraded = a});
+
+-- | __Green.__ An operation is in progress on an instance.
+ihsInfo :: Lens' InstanceHealthSummary (Maybe Int)
+ihsInfo = lens _ihsInfo (\ s a -> s{_ihsInfo = a});
+
+instance FromXML InstanceHealthSummary where
+        parseXML x
+          = InstanceHealthSummary' <$>
+              (x .@? "Ok") <*> (x .@? "Pending") <*>
+                (x .@? "Severe")
+                <*> (x .@? "Unknown")
+                <*> (x .@? "NoData")
+                <*> (x .@? "Warning")
+                <*> (x .@? "Degraded")
+                <*> (x .@? "Info")
+
+-- | Represents the average latency for the slowest X percent of requests
+-- over the last 10 seconds.
+--
+-- /See:/ 'latency' smart constructor.
+data Latency = Latency'
+    { _lP75  :: !(Maybe Double)
+    , _lP50  :: !(Maybe Double)
+    , _lP85  :: !(Maybe Double)
+    , _lP999 :: !(Maybe Double)
+    , _lP90  :: !(Maybe Double)
+    , _lP95  :: !(Maybe Double)
+    , _lP99  :: !(Maybe Double)
+    , _lP10  :: !(Maybe Double)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Latency' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lP75'
+--
+-- * 'lP50'
+--
+-- * 'lP85'
+--
+-- * 'lP999'
+--
+-- * 'lP90'
+--
+-- * 'lP95'
+--
+-- * 'lP99'
+--
+-- * 'lP10'
+latency
+    :: Latency
+latency =
+    Latency'
+    { _lP75 = Nothing
+    , _lP50 = Nothing
+    , _lP85 = Nothing
+    , _lP999 = Nothing
+    , _lP90 = Nothing
+    , _lP95 = Nothing
+    , _lP99 = Nothing
+    , _lP10 = Nothing
+    }
+
+-- | The average latency for the slowest 25 percent of requests over the last
+-- 10 seconds.
+lP75 :: Lens' Latency (Maybe Double)
+lP75 = lens _lP75 (\ s a -> s{_lP75 = a});
+
+-- | The average latency for the slowest 50 percent of requests over the last
+-- 10 seconds.
+lP50 :: Lens' Latency (Maybe Double)
+lP50 = lens _lP50 (\ s a -> s{_lP50 = a});
+
+-- | The average latency for the slowest 15 percent of requests over the last
+-- 10 seconds.
+lP85 :: Lens' Latency (Maybe Double)
+lP85 = lens _lP85 (\ s a -> s{_lP85 = a});
+
+-- | The average latency for the slowest 0.1 percent of requests over the
+-- last 10 seconds.
+lP999 :: Lens' Latency (Maybe Double)
+lP999 = lens _lP999 (\ s a -> s{_lP999 = a});
+
+-- | The average latency for the slowest 10 percent of requests over the last
+-- 10 seconds.
+lP90 :: Lens' Latency (Maybe Double)
+lP90 = lens _lP90 (\ s a -> s{_lP90 = a});
+
+-- | The average latency for the slowest 5 percent of requests over the last
+-- 10 seconds.
+lP95 :: Lens' Latency (Maybe Double)
+lP95 = lens _lP95 (\ s a -> s{_lP95 = a});
+
+-- | The average latency for the slowest 1 percent of requests over the last
+-- 10 seconds.
+lP99 :: Lens' Latency (Maybe Double)
+lP99 = lens _lP99 (\ s a -> s{_lP99 = a});
+
+-- | The average latency for the slowest 90 percent of requests over the last
+-- 10 seconds.
+lP10 :: Lens' Latency (Maybe Double)
+lP10 = lens _lP10 (\ s a -> s{_lP10 = a});
+
+instance FromXML Latency where
+        parseXML x
+          = Latency' <$>
+              (x .@? "P75") <*> (x .@? "P50") <*> (x .@? "P85") <*>
+                (x .@? "P999")
+                <*> (x .@? "P90")
+                <*> (x .@? "P95")
+                <*> (x .@? "P99")
+                <*> (x .@? "P10")
+
+-- | Describes an Auto Scaling launch configuration.
+--
+-- /See:/ 'launchConfiguration' smart constructor.
+newtype LaunchConfiguration = LaunchConfiguration'
+    { _lcName :: Maybe Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LaunchConfiguration' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lcName'
+launchConfiguration
+    :: LaunchConfiguration
+launchConfiguration =
+    LaunchConfiguration'
+    { _lcName = Nothing
+    }
+
+-- | The name of the launch configuration.
+lcName :: Lens' LaunchConfiguration (Maybe Text)
+lcName = lens _lcName (\ s a -> s{_lcName = a});
+
+instance FromXML LaunchConfiguration where
+        parseXML x = LaunchConfiguration' <$> (x .@? "Name")
+
+-- | Describes the properties of a Listener for the LoadBalancer.
+--
+-- /See:/ 'listener' smart constructor.
+data Listener = Listener'
+    { _lProtocol :: !(Maybe Text)
+    , _lPort     :: !(Maybe Int)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Listener' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lProtocol'
+--
+-- * 'lPort'
+listener
+    :: Listener
+listener =
+    Listener'
+    { _lProtocol = Nothing
+    , _lPort = Nothing
+    }
+
+-- | The protocol that is used by the Listener.
+lProtocol :: Lens' Listener (Maybe Text)
+lProtocol = lens _lProtocol (\ s a -> s{_lProtocol = a});
+
+-- | The port that is used by the Listener.
+lPort :: Lens' Listener (Maybe Int)
+lPort = lens _lPort (\ s a -> s{_lPort = a});
+
+instance FromXML Listener where
+        parseXML x
+          = Listener' <$> (x .@? "Protocol") <*> (x .@? "Port")
+
+-- | Describes a LoadBalancer.
+--
+-- /See:/ 'loadBalancer' smart constructor.
+newtype LoadBalancer = LoadBalancer'
+    { _lbName :: Maybe Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LoadBalancer' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lbName'
+loadBalancer
+    :: LoadBalancer
+loadBalancer =
+    LoadBalancer'
+    { _lbName = Nothing
+    }
+
+-- | The name of the LoadBalancer.
+lbName :: Lens' LoadBalancer (Maybe Text)
+lbName = lens _lbName (\ s a -> s{_lbName = a});
+
+instance FromXML LoadBalancer where
+        parseXML x = LoadBalancer' <$> (x .@? "Name")
+
+-- | Describes the details of a LoadBalancer.
+--
+-- /See:/ 'loadBalancerDescription' smart constructor.
+data LoadBalancerDescription = LoadBalancerDescription'
+    { _lbdLoadBalancerName :: !(Maybe Text)
+    , _lbdDomain           :: !(Maybe Text)
+    , _lbdListeners        :: !(Maybe [Listener])
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LoadBalancerDescription' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lbdLoadBalancerName'
+--
+-- * 'lbdDomain'
+--
+-- * 'lbdListeners'
+loadBalancerDescription
+    :: LoadBalancerDescription
+loadBalancerDescription =
+    LoadBalancerDescription'
+    { _lbdLoadBalancerName = Nothing
+    , _lbdDomain = Nothing
+    , _lbdListeners = Nothing
+    }
+
+-- | The name of the LoadBalancer.
+lbdLoadBalancerName :: Lens' LoadBalancerDescription (Maybe Text)
+lbdLoadBalancerName = lens _lbdLoadBalancerName (\ s a -> s{_lbdLoadBalancerName = a});
+
+-- | The domain name of the LoadBalancer.
+lbdDomain :: Lens' LoadBalancerDescription (Maybe Text)
+lbdDomain = lens _lbdDomain (\ s a -> s{_lbdDomain = a});
+
+-- | A list of Listeners used by the LoadBalancer.
+lbdListeners :: Lens' LoadBalancerDescription [Listener]
+lbdListeners = lens _lbdListeners (\ s a -> s{_lbdListeners = a}) . _Default . _Coerce;
+
+instance FromXML LoadBalancerDescription where
+        parseXML x
+          = LoadBalancerDescription' <$>
+              (x .@? "LoadBalancerName") <*> (x .@? "Domain") <*>
+                (x .@? "Listeners" .!@ mempty >>=
+                   may (parseXMLList "member"))
+
+-- | A regular expression representing a restriction on a string
+-- configuration option value.
+--
+-- /See:/ 'optionRestrictionRegex' smart constructor.
+data OptionRestrictionRegex = OptionRestrictionRegex'
+    { _orrPattern :: !(Maybe Text)
+    , _orrLabel   :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OptionRestrictionRegex' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'orrPattern'
+--
+-- * 'orrLabel'
+optionRestrictionRegex
+    :: OptionRestrictionRegex
+optionRestrictionRegex =
+    OptionRestrictionRegex'
+    { _orrPattern = Nothing
+    , _orrLabel = Nothing
+    }
+
+-- | The regular expression pattern that a string configuration option value
+-- with this restriction must match.
+orrPattern :: Lens' OptionRestrictionRegex (Maybe Text)
+orrPattern = lens _orrPattern (\ s a -> s{_orrPattern = a});
+
+-- | A unique name representing this regular expression.
+orrLabel :: Lens' OptionRestrictionRegex (Maybe Text)
+orrLabel = lens _orrLabel (\ s a -> s{_orrLabel = a});
+
+instance FromXML OptionRestrictionRegex where
+        parseXML x
+          = OptionRestrictionRegex' <$>
+              (x .@? "Pattern") <*> (x .@? "Label")
+
+-- | A specification identifying an individual configuration option.
+--
+-- /See:/ 'optionSpecification' smart constructor.
+data OptionSpecification = OptionSpecification'
+    { _osOptionName   :: !(Maybe Text)
+    , _osResourceName :: !(Maybe Text)
+    , _osNamespace    :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OptionSpecification' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'osOptionName'
+--
+-- * 'osResourceName'
+--
+-- * 'osNamespace'
+optionSpecification
+    :: OptionSpecification
+optionSpecification =
+    OptionSpecification'
+    { _osOptionName = Nothing
+    , _osResourceName = Nothing
+    , _osNamespace = Nothing
+    }
+
+-- | The name of the configuration option.
+osOptionName :: Lens' OptionSpecification (Maybe Text)
+osOptionName = lens _osOptionName (\ s a -> s{_osOptionName = a});
+
+-- | A unique resource name for a time-based scaling configuration option.
+osResourceName :: Lens' OptionSpecification (Maybe Text)
+osResourceName = lens _osResourceName (\ s a -> s{_osResourceName = a});
+
+-- | A unique namespace identifying the option\'s associated AWS resource.
+osNamespace :: Lens' OptionSpecification (Maybe Text)
+osNamespace = lens _osNamespace (\ s a -> s{_osNamespace = a});
+
+instance ToQuery OptionSpecification where
+        toQuery OptionSpecification'{..}
+          = mconcat
+              ["OptionName" =: _osOptionName,
+               "ResourceName" =: _osResourceName,
+               "Namespace" =: _osNamespace]
+
+-- | Describes a queue.
+--
+-- /See:/ 'queue' smart constructor.
+data Queue = Queue'
+    { _qURL  :: !(Maybe Text)
+    , _qName :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Queue' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'qURL'
+--
+-- * 'qName'
+queue
+    :: Queue
+queue =
+    Queue'
+    { _qURL = Nothing
+    , _qName = Nothing
+    }
+
+-- | The URL of the queue.
+qURL :: Lens' Queue (Maybe Text)
+qURL = lens _qURL (\ s a -> s{_qURL = a});
+
+-- | The name of the queue.
+qName :: Lens' Queue (Maybe Text)
+qName = lens _qName (\ s a -> s{_qName = a});
+
+instance FromXML Queue where
+        parseXML x
+          = Queue' <$> (x .@? "URL") <*> (x .@? "Name")
+
+-- | A specification of a location in Amazon S3.
+--
+-- /See:/ 's3Location' smart constructor.
+data S3Location = S3Location'
+    { _slS3Key    :: !(Maybe Text)
+    , _slS3Bucket :: !(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:
+--
+-- * 'slS3Key'
+--
+-- * 'slS3Bucket'
+s3Location
+    :: S3Location
+s3Location =
+    S3Location'
+    { _slS3Key = Nothing
+    , _slS3Bucket = Nothing
+    }
+
+-- | The Amazon S3 key where the data is located.
+slS3Key :: Lens' S3Location (Maybe Text)
+slS3Key = lens _slS3Key (\ s a -> s{_slS3Key = a});
+
+-- | The Amazon S3 bucket where the data is located.
+slS3Bucket :: Lens' S3Location (Maybe Text)
+slS3Bucket = lens _slS3Bucket (\ s a -> s{_slS3Bucket = a});
+
+instance FromXML S3Location where
+        parseXML x
+          = S3Location' <$>
+              (x .@? "S3Key") <*> (x .@? "S3Bucket")
+
+instance ToQuery S3Location where
+        toQuery S3Location'{..}
+          = mconcat
+              ["S3Key" =: _slS3Key, "S3Bucket" =: _slS3Bucket]
+
+-- | Represents health information from the specified instance that belongs
+-- to the AWS Elastic Beanstalk environment. Use the 'InstanceId' property
+-- to specify the application instance for which you\'d like to return
+-- data.
+--
+-- /See:/ 'singleInstanceHealth' smart constructor.
+data SingleInstanceHealth = SingleInstanceHealth'
+    { _sihInstanceId         :: !(Maybe Text)
+    , _sihCauses             :: !(Maybe [Text])
+    , _sihApplicationMetrics :: !(Maybe ApplicationMetrics)
+    , _sihColor              :: !(Maybe Text)
+    , _sihSystem             :: !(Maybe SystemStatus)
+    , _sihHealthStatus       :: !(Maybe Text)
+    , _sihLaunchedAt         :: !(Maybe ISO8601)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SingleInstanceHealth' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sihInstanceId'
+--
+-- * 'sihCauses'
+--
+-- * 'sihApplicationMetrics'
+--
+-- * 'sihColor'
+--
+-- * 'sihSystem'
+--
+-- * 'sihHealthStatus'
+--
+-- * 'sihLaunchedAt'
+singleInstanceHealth
+    :: SingleInstanceHealth
+singleInstanceHealth =
+    SingleInstanceHealth'
+    { _sihInstanceId = Nothing
+    , _sihCauses = Nothing
+    , _sihApplicationMetrics = Nothing
+    , _sihColor = Nothing
+    , _sihSystem = Nothing
+    , _sihHealthStatus = Nothing
+    , _sihLaunchedAt = Nothing
+    }
+
+-- | The ID of the Amazon EC2 instance.
+sihInstanceId :: Lens' SingleInstanceHealth (Maybe Text)
+sihInstanceId = lens _sihInstanceId (\ s a -> s{_sihInstanceId = a});
+
+-- | Represents the causes, which provide more information about the current
+-- health status.
+sihCauses :: Lens' SingleInstanceHealth [Text]
+sihCauses = lens _sihCauses (\ s a -> s{_sihCauses = a}) . _Default . _Coerce;
+
+-- | Undocumented member.
+sihApplicationMetrics :: Lens' SingleInstanceHealth (Maybe ApplicationMetrics)
+sihApplicationMetrics = lens _sihApplicationMetrics (\ s a -> s{_sihApplicationMetrics = a});
+
+-- | Represents the color indicator that gives you information about the
+-- health of the EC2 instance. For more information, see
+-- <http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/health-enhanced-status.html Health Colors and Statuses>.
+sihColor :: Lens' SingleInstanceHealth (Maybe Text)
+sihColor = lens _sihColor (\ s a -> s{_sihColor = a});
+
+-- | Undocumented member.
+sihSystem :: Lens' SingleInstanceHealth (Maybe SystemStatus)
+sihSystem = lens _sihSystem (\ s a -> s{_sihSystem = a});
+
+-- | Returns the health status of the specified instance. For more
+-- information, see
+-- <http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/health-enhanced-status.html >.
+sihHealthStatus :: Lens' SingleInstanceHealth (Maybe Text)
+sihHealthStatus = lens _sihHealthStatus (\ s a -> s{_sihHealthStatus = a});
+
+-- | The time at which the EC2 instance was launched.
+sihLaunchedAt :: Lens' SingleInstanceHealth (Maybe UTCTime)
+sihLaunchedAt = lens _sihLaunchedAt (\ s a -> s{_sihLaunchedAt = a}) . mapping _Time;
+
+instance FromXML SingleInstanceHealth where
+        parseXML x
+          = SingleInstanceHealth' <$>
+              (x .@? "InstanceId") <*>
+                (x .@? "Causes" .!@ mempty >>=
+                   may (parseXMLList "member"))
+                <*> (x .@? "ApplicationMetrics")
+                <*> (x .@? "Color")
+                <*> (x .@? "System")
+                <*> (x .@? "HealthStatus")
+                <*> (x .@? "LaunchedAt")
+
+-- | Describes the solution stack.
+--
+-- /See:/ 'solutionStackDescription' smart constructor.
+data SolutionStackDescription = SolutionStackDescription'
+    { _ssdPermittedFileTypes :: !(Maybe [Text])
+    , _ssdSolutionStackName  :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SolutionStackDescription' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ssdPermittedFileTypes'
+--
+-- * 'ssdSolutionStackName'
+solutionStackDescription
+    :: SolutionStackDescription
+solutionStackDescription =
+    SolutionStackDescription'
+    { _ssdPermittedFileTypes = Nothing
+    , _ssdSolutionStackName = Nothing
+    }
+
+-- | The permitted file types allowed for a solution stack.
+ssdPermittedFileTypes :: Lens' SolutionStackDescription [Text]
+ssdPermittedFileTypes = lens _ssdPermittedFileTypes (\ s a -> s{_ssdPermittedFileTypes = a}) . _Default . _Coerce;
+
+-- | The name of the solution stack.
+ssdSolutionStackName :: Lens' SolutionStackDescription (Maybe Text)
+ssdSolutionStackName = lens _ssdSolutionStackName (\ s a -> s{_ssdSolutionStackName = a});
+
+instance FromXML SolutionStackDescription where
+        parseXML x
+          = SolutionStackDescription' <$>
+              (x .@? "PermittedFileTypes" .!@ mempty >>=
+                 may (parseXMLList "member"))
+                <*> (x .@? "SolutionStackName")
+
+-- | A specification for an environment configuration
+--
+-- /See:/ 'sourceConfiguration' smart constructor.
+data SourceConfiguration = SourceConfiguration'
+    { _scTemplateName    :: !(Maybe Text)
+    , _scApplicationName :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SourceConfiguration' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'scTemplateName'
+--
+-- * 'scApplicationName'
+sourceConfiguration
+    :: SourceConfiguration
+sourceConfiguration =
+    SourceConfiguration'
+    { _scTemplateName = Nothing
+    , _scApplicationName = Nothing
+    }
+
+-- | The name of the configuration template.
+scTemplateName :: Lens' SourceConfiguration (Maybe Text)
+scTemplateName = lens _scTemplateName (\ s a -> s{_scTemplateName = a});
+
+-- | The name of the application associated with the configuration.
+scApplicationName :: Lens' SourceConfiguration (Maybe Text)
+scApplicationName = lens _scApplicationName (\ s a -> s{_scApplicationName = a});
+
+instance ToQuery SourceConfiguration where
+        toQuery SourceConfiguration'{..}
+          = mconcat
+              ["TemplateName" =: _scTemplateName,
+               "ApplicationName" =: _scApplicationName]
+
+-- | Represents the percentage of requests over the last 10 seconds that
+-- resulted in each type of status code response. For more information, see
+-- <http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html Status Code Definitions>.
+--
+-- /See:/ 'statusCodes' smart constructor.
+data StatusCodes = StatusCodes'
+    { _scStatus2xx :: !(Maybe Int)
+    , _scStatus3xx :: !(Maybe Int)
+    , _scStatus4xx :: !(Maybe Int)
+    , _scStatus5xx :: !(Maybe Int)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'StatusCodes' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'scStatus2xx'
+--
+-- * 'scStatus3xx'
+--
+-- * 'scStatus4xx'
+--
+-- * 'scStatus5xx'
+statusCodes
+    :: StatusCodes
+statusCodes =
+    StatusCodes'
+    { _scStatus2xx = Nothing
+    , _scStatus3xx = Nothing
+    , _scStatus4xx = Nothing
+    , _scStatus5xx = Nothing
+    }
+
+-- | The percentage of requests over the last 10 seconds that resulted in a
+-- 2xx (200, 201, etc.) status code.
+scStatus2xx :: Lens' StatusCodes (Maybe Int)
+scStatus2xx = lens _scStatus2xx (\ s a -> s{_scStatus2xx = a});
+
+-- | The percentage of requests over the last 10 seconds that resulted in a
+-- 3xx (300, 301, etc.) status code.
+scStatus3xx :: Lens' StatusCodes (Maybe Int)
+scStatus3xx = lens _scStatus3xx (\ s a -> s{_scStatus3xx = a});
+
+-- | The percentage of requests over the last 10 seconds that resulted in a
+-- 4xx (400, 401, etc.) status code.
+scStatus4xx :: Lens' StatusCodes (Maybe Int)
+scStatus4xx = lens _scStatus4xx (\ s a -> s{_scStatus4xx = a});
+
+-- | The percentage of requests over the last 10 seconds that resulted in a
+-- 5xx (500, 501, etc.) status code.
+scStatus5xx :: Lens' StatusCodes (Maybe Int)
+scStatus5xx = lens _scStatus5xx (\ s a -> s{_scStatus5xx = a});
+
+instance FromXML StatusCodes where
+        parseXML x
+          = StatusCodes' <$>
+              (x .@? "Status2xx") <*> (x .@? "Status3xx") <*>
+                (x .@? "Status4xx")
+                <*> (x .@? "Status5xx")
+
+-- | Represents CPU utilization and load average information for applications
+-- running in the specified environment.
+--
+-- /See:/ 'systemStatus' smart constructor.
+data SystemStatus = SystemStatus'
+    { _ssCPUUtilization :: !(Maybe CPUUtilization)
+    , _ssLoadAverage    :: !(Maybe [Double])
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SystemStatus' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ssCPUUtilization'
+--
+-- * 'ssLoadAverage'
+systemStatus
+    :: SystemStatus
+systemStatus =
+    SystemStatus'
+    { _ssCPUUtilization = Nothing
+    , _ssLoadAverage = Nothing
+    }
+
+-- | Undocumented member.
+ssCPUUtilization :: Lens' SystemStatus (Maybe CPUUtilization)
+ssCPUUtilization = lens _ssCPUUtilization (\ s a -> s{_ssCPUUtilization = a});
+
+-- | Load average in the last 1-minute and 5-minute periods. For more
+-- information, see
+-- <http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/health-enhanced-metrics.html#health-enhanced-metrics-os Operating System Metrics>.
+ssLoadAverage :: Lens' SystemStatus [Double]
+ssLoadAverage = lens _ssLoadAverage (\ s a -> s{_ssLoadAverage = a}) . _Default . _Coerce;
+
+instance FromXML SystemStatus where
+        parseXML x
+          = SystemStatus' <$>
+              (x .@? "CPUUtilization") <*>
+                (x .@? "LoadAverage" .!@ mempty >>=
+                   may (parseXMLList "member"))
+
+-- | Describes a tag applied to a resource in an environment.
+--
+-- /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 value of the tag.
+tagValue :: Lens' Tag (Maybe Text)
+tagValue = lens _tagValue (\ s a -> s{_tagValue = a});
+
+-- | The key of the tag.
+tagKey :: Lens' Tag (Maybe Text)
+tagKey = lens _tagKey (\ s a -> s{_tagKey = a});
+
+instance ToQuery Tag where
+        toQuery Tag'{..}
+          = mconcat ["Value" =: _tagValue, "Key" =: _tagKey]
+
+-- | Describes a trigger.
+--
+-- /See:/ 'trigger' smart constructor.
+newtype Trigger = Trigger'
+    { _tName :: Maybe Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Trigger' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tName'
+trigger
+    :: Trigger
+trigger =
+    Trigger'
+    { _tName = Nothing
+    }
+
+-- | The name of the trigger.
+tName :: Lens' Trigger (Maybe Text)
+tName = lens _tName (\ s a -> s{_tName = a});
+
+instance FromXML Trigger where
+        parseXML x = Trigger' <$> (x .@? "Name")
+
+-- | An error or warning for a desired configuration option value.
+--
+-- /See:/ 'validationMessage' smart constructor.
+data ValidationMessage = ValidationMessage'
+    { _vmOptionName :: !(Maybe Text)
+    , _vmSeverity   :: !(Maybe ValidationSeverity)
+    , _vmNamespace  :: !(Maybe Text)
+    , _vmMessage    :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ValidationMessage' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'vmOptionName'
+--
+-- * 'vmSeverity'
+--
+-- * 'vmNamespace'
+--
+-- * 'vmMessage'
+validationMessage
+    :: ValidationMessage
+validationMessage =
+    ValidationMessage'
+    { _vmOptionName = Nothing
+    , _vmSeverity = Nothing
+    , _vmNamespace = Nothing
+    , _vmMessage = Nothing
+    }
+
+-- |
+vmOptionName :: Lens' ValidationMessage (Maybe Text)
+vmOptionName = lens _vmOptionName (\ s a -> s{_vmOptionName = a});
+
+-- | An indication of the severity of this message:
+--
+-- error: This message indicates that this is not a valid setting for an
+-- option.
+--
+-- warning: This message is providing information you should take into
+-- account.
+--
+-- -   error: This message indicates that this is not a valid setting for
+--     an option.
+-- -   warning: This message is providing information you should take into
+--     account.
+vmSeverity :: Lens' ValidationMessage (Maybe ValidationSeverity)
+vmSeverity = lens _vmSeverity (\ s a -> s{_vmSeverity = a});
+
+-- |
+vmNamespace :: Lens' ValidationMessage (Maybe Text)
+vmNamespace = lens _vmNamespace (\ s a -> s{_vmNamespace = a});
+
+-- | A message describing the error or warning.
+vmMessage :: Lens' ValidationMessage (Maybe Text)
+vmMessage = lens _vmMessage (\ s a -> s{_vmMessage = a});
+
+instance FromXML ValidationMessage where
+        parseXML x
+          = ValidationMessage' <$>
+              (x .@? "OptionName") <*> (x .@? "Severity") <*>
+                (x .@? "Namespace")
+                <*> (x .@? "Message")
diff --git a/gen/Network/AWS/ElasticBeanstalk/Types/Sum.hs b/gen/Network/AWS/ElasticBeanstalk/Types/Sum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/ElasticBeanstalk/Types/Sum.hs
@@ -0,0 +1,348 @@
+{-# 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.ElasticBeanstalk.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.ElasticBeanstalk.Types.Sum where
+
+import           Network.AWS.Prelude
+
+data ConfigurationDeploymentStatus
+    = Deployed
+    | Failed
+    | Pending
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText ConfigurationDeploymentStatus where
+    parser = takeLowerText >>= \case
+        "deployed" -> pure Deployed
+        "failed" -> pure Failed
+        "pending" -> pure Pending
+        e -> fromTextError $ "Failure parsing ConfigurationDeploymentStatus from value: '" <> e
+           <> "'. Accepted values: deployed, failed, pending"
+
+instance ToText ConfigurationDeploymentStatus where
+    toText = \case
+        Deployed -> "deployed"
+        Failed -> "failed"
+        Pending -> "pending"
+
+instance Hashable     ConfigurationDeploymentStatus
+instance ToByteString ConfigurationDeploymentStatus
+instance ToQuery      ConfigurationDeploymentStatus
+instance ToHeader     ConfigurationDeploymentStatus
+
+instance FromXML ConfigurationDeploymentStatus where
+    parseXML = parseXMLText "ConfigurationDeploymentStatus"
+
+data ConfigurationOptionValueType
+    = List
+    | Scalar
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText ConfigurationOptionValueType where
+    parser = takeLowerText >>= \case
+        "list" -> pure List
+        "scalar" -> pure Scalar
+        e -> fromTextError $ "Failure parsing ConfigurationOptionValueType from value: '" <> e
+           <> "'. Accepted values: list, scalar"
+
+instance ToText ConfigurationOptionValueType where
+    toText = \case
+        List -> "list"
+        Scalar -> "scalar"
+
+instance Hashable     ConfigurationOptionValueType
+instance ToByteString ConfigurationOptionValueType
+instance ToQuery      ConfigurationOptionValueType
+instance ToHeader     ConfigurationOptionValueType
+
+instance FromXML ConfigurationOptionValueType where
+    parseXML = parseXMLText "ConfigurationOptionValueType"
+
+data EnvironmentHealth
+    = Green
+    | Grey
+    | Red
+    | Yellow
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText EnvironmentHealth where
+    parser = takeLowerText >>= \case
+        "green" -> pure Green
+        "grey" -> pure Grey
+        "red" -> pure Red
+        "yellow" -> pure Yellow
+        e -> fromTextError $ "Failure parsing EnvironmentHealth from value: '" <> e
+           <> "'. Accepted values: green, grey, red, yellow"
+
+instance ToText EnvironmentHealth where
+    toText = \case
+        Green -> "green"
+        Grey -> "grey"
+        Red -> "red"
+        Yellow -> "yellow"
+
+instance Hashable     EnvironmentHealth
+instance ToByteString EnvironmentHealth
+instance ToQuery      EnvironmentHealth
+instance ToHeader     EnvironmentHealth
+
+instance FromXML EnvironmentHealth where
+    parseXML = parseXMLText "EnvironmentHealth"
+
+data EnvironmentHealthAttribute
+    = EHAAll
+    | EHAApplicationMetrics
+    | EHACauses
+    | EHAColor
+    | EHAHealthStatus
+    | EHAInstancesHealth
+    | EHARefreshedAt
+    | EHAStatus
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText EnvironmentHealthAttribute where
+    parser = takeLowerText >>= \case
+        "all" -> pure EHAAll
+        "applicationmetrics" -> pure EHAApplicationMetrics
+        "causes" -> pure EHACauses
+        "color" -> pure EHAColor
+        "healthstatus" -> pure EHAHealthStatus
+        "instanceshealth" -> pure EHAInstancesHealth
+        "refreshedat" -> pure EHARefreshedAt
+        "status" -> pure EHAStatus
+        e -> fromTextError $ "Failure parsing EnvironmentHealthAttribute from value: '" <> e
+           <> "'. Accepted values: all, applicationmetrics, causes, color, healthstatus, instanceshealth, refreshedat, status"
+
+instance ToText EnvironmentHealthAttribute where
+    toText = \case
+        EHAAll -> "all"
+        EHAApplicationMetrics -> "applicationmetrics"
+        EHACauses -> "causes"
+        EHAColor -> "color"
+        EHAHealthStatus -> "healthstatus"
+        EHAInstancesHealth -> "instanceshealth"
+        EHARefreshedAt -> "refreshedat"
+        EHAStatus -> "status"
+
+instance Hashable     EnvironmentHealthAttribute
+instance ToByteString EnvironmentHealthAttribute
+instance ToQuery      EnvironmentHealthAttribute
+instance ToHeader     EnvironmentHealthAttribute
+
+data EnvironmentHealthStatus
+    = EHSDegraded
+    | EHSInfo
+    | EHSNoData
+    | EHSOK
+    | EHSPending
+    | EHSSevere
+    | EHSUnknown
+    | EHSWarning
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText EnvironmentHealthStatus where
+    parser = takeLowerText >>= \case
+        "degraded" -> pure EHSDegraded
+        "info" -> pure EHSInfo
+        "nodata" -> pure EHSNoData
+        "ok" -> pure EHSOK
+        "pending" -> pure EHSPending
+        "severe" -> pure EHSSevere
+        "unknown" -> pure EHSUnknown
+        "warning" -> pure EHSWarning
+        e -> fromTextError $ "Failure parsing EnvironmentHealthStatus from value: '" <> e
+           <> "'. Accepted values: degraded, info, nodata, ok, pending, severe, unknown, warning"
+
+instance ToText EnvironmentHealthStatus where
+    toText = \case
+        EHSDegraded -> "degraded"
+        EHSInfo -> "info"
+        EHSNoData -> "nodata"
+        EHSOK -> "ok"
+        EHSPending -> "pending"
+        EHSSevere -> "severe"
+        EHSUnknown -> "unknown"
+        EHSWarning -> "warning"
+
+instance Hashable     EnvironmentHealthStatus
+instance ToByteString EnvironmentHealthStatus
+instance ToQuery      EnvironmentHealthStatus
+instance ToHeader     EnvironmentHealthStatus
+
+instance FromXML EnvironmentHealthStatus where
+    parseXML = parseXMLText "EnvironmentHealthStatus"
+
+data EnvironmentInfoType
+    = Bundle
+    | Tail
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText EnvironmentInfoType where
+    parser = takeLowerText >>= \case
+        "bundle" -> pure Bundle
+        "tail" -> pure Tail
+        e -> fromTextError $ "Failure parsing EnvironmentInfoType from value: '" <> e
+           <> "'. Accepted values: bundle, tail"
+
+instance ToText EnvironmentInfoType where
+    toText = \case
+        Bundle -> "bundle"
+        Tail -> "tail"
+
+instance Hashable     EnvironmentInfoType
+instance ToByteString EnvironmentInfoType
+instance ToQuery      EnvironmentInfoType
+instance ToHeader     EnvironmentInfoType
+
+instance FromXML EnvironmentInfoType where
+    parseXML = parseXMLText "EnvironmentInfoType"
+
+data EnvironmentStatus
+    = Launching
+    | Ready
+    | Terminated
+    | Terminating
+    | Updating
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText EnvironmentStatus where
+    parser = takeLowerText >>= \case
+        "launching" -> pure Launching
+        "ready" -> pure Ready
+        "terminated" -> pure Terminated
+        "terminating" -> pure Terminating
+        "updating" -> pure Updating
+        e -> fromTextError $ "Failure parsing EnvironmentStatus from value: '" <> e
+           <> "'. Accepted values: launching, ready, terminated, terminating, updating"
+
+instance ToText EnvironmentStatus where
+    toText = \case
+        Launching -> "launching"
+        Ready -> "ready"
+        Terminated -> "terminated"
+        Terminating -> "terminating"
+        Updating -> "updating"
+
+instance Hashable     EnvironmentStatus
+instance ToByteString EnvironmentStatus
+instance ToQuery      EnvironmentStatus
+instance ToHeader     EnvironmentStatus
+
+instance FromXML EnvironmentStatus where
+    parseXML = parseXMLText "EnvironmentStatus"
+
+data EventSeverity
+    = LevelDebug
+    | LevelError'
+    | LevelFatal
+    | LevelInfo
+    | LevelTrace
+    | LevelWarn
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText EventSeverity where
+    parser = takeLowerText >>= \case
+        "debug" -> pure LevelDebug
+        "error" -> pure LevelError'
+        "fatal" -> pure LevelFatal
+        "info" -> pure LevelInfo
+        "trace" -> pure LevelTrace
+        "warn" -> pure LevelWarn
+        e -> fromTextError $ "Failure parsing EventSeverity from value: '" <> e
+           <> "'. Accepted values: debug, error, fatal, info, trace, warn"
+
+instance ToText EventSeverity where
+    toText = \case
+        LevelDebug -> "debug"
+        LevelError' -> "error"
+        LevelFatal -> "fatal"
+        LevelInfo -> "info"
+        LevelTrace -> "trace"
+        LevelWarn -> "warn"
+
+instance Hashable     EventSeverity
+instance ToByteString EventSeverity
+instance ToQuery      EventSeverity
+instance ToHeader     EventSeverity
+
+instance FromXML EventSeverity where
+    parseXML = parseXMLText "EventSeverity"
+
+data InstancesHealthAttribute
+    = All
+    | ApplicationMetrics
+    | Causes
+    | Color
+    | HealthStatus
+    | LaunchedAt
+    | RefreshedAt
+    | System
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText InstancesHealthAttribute where
+    parser = takeLowerText >>= \case
+        "all" -> pure All
+        "applicationmetrics" -> pure ApplicationMetrics
+        "causes" -> pure Causes
+        "color" -> pure Color
+        "healthstatus" -> pure HealthStatus
+        "launchedat" -> pure LaunchedAt
+        "refreshedat" -> pure RefreshedAt
+        "system" -> pure System
+        e -> fromTextError $ "Failure parsing InstancesHealthAttribute from value: '" <> e
+           <> "'. Accepted values: all, applicationmetrics, causes, color, healthstatus, launchedat, refreshedat, system"
+
+instance ToText InstancesHealthAttribute where
+    toText = \case
+        All -> "all"
+        ApplicationMetrics -> "applicationmetrics"
+        Causes -> "causes"
+        Color -> "color"
+        HealthStatus -> "healthstatus"
+        LaunchedAt -> "launchedat"
+        RefreshedAt -> "refreshedat"
+        System -> "system"
+
+instance Hashable     InstancesHealthAttribute
+instance ToByteString InstancesHealthAttribute
+instance ToQuery      InstancesHealthAttribute
+instance ToHeader     InstancesHealthAttribute
+
+data ValidationSeverity
+    = Error'
+    | Warning
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText ValidationSeverity where
+    parser = takeLowerText >>= \case
+        "error" -> pure Error'
+        "warning" -> pure Warning
+        e -> fromTextError $ "Failure parsing ValidationSeverity from value: '" <> e
+           <> "'. Accepted values: error, warning"
+
+instance ToText ValidationSeverity where
+    toText = \case
+        Error' -> "error"
+        Warning -> "warning"
+
+instance Hashable     ValidationSeverity
+instance ToByteString ValidationSeverity
+instance ToQuery      ValidationSeverity
+instance ToHeader     ValidationSeverity
+
+instance FromXML ValidationSeverity where
+    parseXML = parseXMLText "ValidationSeverity"
diff --git a/gen/Network/AWS/ElasticBeanstalk/UpdateApplication.hs b/gen/Network/AWS/ElasticBeanstalk/UpdateApplication.hs
--- a/gen/Network/AWS/ElasticBeanstalk/UpdateApplication.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/UpdateApplication.hs
@@ -1,125 +1,106 @@
-{-# 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.ElasticBeanstalk.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.
-
--- | Updates the specified application to have the specified properties.
+-- Updates the specified application to have the specified properties.
 --
--- If a property (for example, 'description') is not provided, the value remains
--- unchanged. To clear these properties, specify an empty string.
+-- If a property (for example, 'description') is not provided, the value
+-- remains unchanged. To clear these properties, specify an empty string.
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_UpdateApplication.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_UpdateApplication.html AWS API Reference> for UpdateApplication.
 module Network.AWS.ElasticBeanstalk.UpdateApplication
     (
-    -- * Request
-      UpdateApplication
-    -- ** Request constructor
-    , updateApplication
-    -- ** Request lenses
-    , uaApplicationName
+    -- * Creating a Request
+      updateApplication
+    , UpdateApplication
+    -- * Request Lenses
     , uaDescription
+    , uaApplicationName
 
-    -- * Response
-    , UpdateApplicationResponse
-    -- ** Response constructor
-    , updateApplicationResponse
-    -- ** Response lenses
-    , uarApplication
+    -- * Destructuring the Response
+    , applicationDescriptionMessage
+    , ApplicationDescriptionMessage
+    -- * Response Lenses
+    , admApplication
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data UpdateApplication = UpdateApplication
-    { _uaApplicationName :: Text
-    , _uaDescription     :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'UpdateApplication' constructor.
+-- | This documentation target is not reported in the API reference.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'updateApplication' smart constructor.
+data UpdateApplication = UpdateApplication'
+    { _uaDescription     :: !(Maybe Text)
+    , _uaApplicationName :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UpdateApplication' with the minimum fields required to make a request.
 --
--- * 'uaApplicationName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'uaDescription' @::@ 'Maybe' 'Text'
+-- * 'uaDescription'
 --
-updateApplication :: Text -- ^ 'uaApplicationName'
-                  -> UpdateApplication
-updateApplication p1 = UpdateApplication
-    { _uaApplicationName = p1
-    , _uaDescription     = Nothing
+-- * 'uaApplicationName'
+updateApplication
+    :: Text -- ^ 'uaApplicationName'
+    -> UpdateApplication
+updateApplication pApplicationName_ =
+    UpdateApplication'
+    { _uaDescription = Nothing
+    , _uaApplicationName = pApplicationName_
     }
 
--- | The name of the application to update. If no such application is found, 'UpdateApplication' returns an 'InvalidParameterValue' error.
-uaApplicationName :: Lens' UpdateApplication Text
-uaApplicationName =
-    lens _uaApplicationName (\s a -> s { _uaApplicationName = a })
-
 -- | A new description for the application.
 --
 -- Default: If not specified, AWS Elastic Beanstalk does not update the
 -- description.
 uaDescription :: Lens' UpdateApplication (Maybe Text)
-uaDescription = lens _uaDescription (\s a -> s { _uaDescription = a })
+uaDescription = lens _uaDescription (\ s a -> s{_uaDescription = a});
 
-newtype UpdateApplicationResponse = UpdateApplicationResponse
-    { _uarApplication :: Maybe ApplicationDescription
-    } deriving (Eq, Read, Show)
+-- | The name of the application to update. If no such application is found,
+-- 'UpdateApplication' returns an 'InvalidParameterValue' error.
+uaApplicationName :: Lens' UpdateApplication Text
+uaApplicationName = lens _uaApplicationName (\ s a -> s{_uaApplicationName = a});
 
--- | 'UpdateApplicationResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'uarApplication' @::@ 'Maybe' 'ApplicationDescription'
---
-updateApplicationResponse :: UpdateApplicationResponse
-updateApplicationResponse = UpdateApplicationResponse
-    { _uarApplication = Nothing
-    }
+instance AWSRequest UpdateApplication where
+        type Sv UpdateApplication = ElasticBeanstalk
+        type Rs UpdateApplication =
+             ApplicationDescriptionMessage
+        request = postQuery
+        response
+          = receiveXMLWrapper "UpdateApplicationResult"
+              (\ s h x -> parseXML x)
 
--- | The 'ApplicationDescription' of the application.
-uarApplication :: Lens' UpdateApplicationResponse (Maybe ApplicationDescription)
-uarApplication = lens _uarApplication (\s a -> s { _uarApplication = a })
+instance ToHeaders UpdateApplication where
+        toHeaders = const mempty
 
 instance ToPath UpdateApplication where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery UpdateApplication where
-    toQuery UpdateApplication{..} = mconcat
-        [ "ApplicationName" =? _uaApplicationName
-        , "Description"     =? _uaDescription
-        ]
-
-instance ToHeaders UpdateApplication
-
-instance AWSRequest UpdateApplication where
-    type Sv UpdateApplication = ElasticBeanstalk
-    type Rs UpdateApplication = UpdateApplicationResponse
-
-    request  = post "UpdateApplication"
-    response = xmlResponse
-
-instance FromXML UpdateApplicationResponse where
-    parseXML = withElement "UpdateApplicationResult" $ \x -> UpdateApplicationResponse
-        <$> x .@? "Application"
+        toQuery UpdateApplication'{..}
+          = mconcat
+              ["Action" =: ("UpdateApplication" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "Description" =: _uaDescription,
+               "ApplicationName" =: _uaApplicationName]
diff --git a/gen/Network/AWS/ElasticBeanstalk/UpdateApplicationVersion.hs b/gen/Network/AWS/ElasticBeanstalk/UpdateApplicationVersion.hs
--- a/gen/Network/AWS/ElasticBeanstalk/UpdateApplicationVersion.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/UpdateApplicationVersion.hs
@@ -1,139 +1,121 @@
-{-# 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.ElasticBeanstalk.UpdateApplicationVersion
--- 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.
-
--- | Updates the specified application version to have the specified properties.
+-- Updates the specified application version to have the specified
+-- properties.
 --
--- If a property (for example, 'description') is not provided, the value remains
--- unchanged. To clear properties, specify an empty string.
+-- If a property (for example, 'description') is not provided, the value
+-- remains unchanged. To clear properties, specify an empty string.
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_UpdateApplicationVersion.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_UpdateApplicationVersion.html AWS API Reference> for UpdateApplicationVersion.
 module Network.AWS.ElasticBeanstalk.UpdateApplicationVersion
     (
-    -- * Request
-      UpdateApplicationVersion
-    -- ** Request constructor
-    , updateApplicationVersion
-    -- ** Request lenses
-    , uavApplicationName
+    -- * Creating a Request
+      updateApplicationVersion
+    , UpdateApplicationVersion
+    -- * Request Lenses
     , uavDescription
+    , uavApplicationName
     , uavVersionLabel
 
-    -- * Response
-    , UpdateApplicationVersionResponse
-    -- ** Response constructor
-    , updateApplicationVersionResponse
-    -- ** Response lenses
-    , uavrApplicationVersion
+    -- * Destructuring the Response
+    , applicationVersionDescriptionMessage
+    , ApplicationVersionDescriptionMessage
+    -- * Response Lenses
+    , avdmApplicationVersion
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data UpdateApplicationVersion = UpdateApplicationVersion
-    { _uavApplicationName :: Text
-    , _uavDescription     :: Maybe Text
-    , _uavVersionLabel    :: Text
-    } deriving (Eq, Ord, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'UpdateApplicationVersion' constructor.
+-- |
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'updateApplicationVersion' smart constructor.
+data UpdateApplicationVersion = UpdateApplicationVersion'
+    { _uavDescription     :: !(Maybe Text)
+    , _uavApplicationName :: !Text
+    , _uavVersionLabel    :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UpdateApplicationVersion' with the minimum fields required to make a request.
 --
--- * 'uavApplicationName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'uavDescription' @::@ 'Maybe' 'Text'
+-- * 'uavDescription'
 --
--- * 'uavVersionLabel' @::@ 'Text'
+-- * 'uavApplicationName'
 --
-updateApplicationVersion :: Text -- ^ 'uavApplicationName'
-                         -> Text -- ^ 'uavVersionLabel'
-                         -> UpdateApplicationVersion
-updateApplicationVersion p1 p2 = UpdateApplicationVersion
-    { _uavApplicationName = p1
-    , _uavVersionLabel    = p2
-    , _uavDescription     = Nothing
+-- * 'uavVersionLabel'
+updateApplicationVersion
+    :: Text -- ^ 'uavApplicationName'
+    -> Text -- ^ 'uavVersionLabel'
+    -> UpdateApplicationVersion
+updateApplicationVersion pApplicationName_ pVersionLabel_ =
+    UpdateApplicationVersion'
+    { _uavDescription = Nothing
+    , _uavApplicationName = pApplicationName_
+    , _uavVersionLabel = pVersionLabel_
     }
 
+-- | A new description for this release.
+uavDescription :: Lens' UpdateApplicationVersion (Maybe Text)
+uavDescription = lens _uavDescription (\ s a -> s{_uavDescription = a});
+
 -- | The name of the application associated with this version.
 --
--- If no application is found with this name, 'UpdateApplication' returns an 'InvalidParameterValue' error.
+-- If no application is found with this name, 'UpdateApplication' returns
+-- an 'InvalidParameterValue' error.
 uavApplicationName :: Lens' UpdateApplicationVersion Text
-uavApplicationName =
-    lens _uavApplicationName (\s a -> s { _uavApplicationName = a })
-
--- | A new description for this release.
-uavDescription :: Lens' UpdateApplicationVersion (Maybe Text)
-uavDescription = lens _uavDescription (\s a -> s { _uavDescription = a })
+uavApplicationName = lens _uavApplicationName (\ s a -> s{_uavApplicationName = a});
 
 -- | The name of the version to update.
 --
 -- If no application version is found with this label, 'UpdateApplication'
 -- returns an 'InvalidParameterValue' error.
 uavVersionLabel :: Lens' UpdateApplicationVersion Text
-uavVersionLabel = lens _uavVersionLabel (\s a -> s { _uavVersionLabel = a })
-
-newtype UpdateApplicationVersionResponse = UpdateApplicationVersionResponse
-    { _uavrApplicationVersion :: Maybe ApplicationVersionDescription
-    } deriving (Eq, Read, Show)
+uavVersionLabel = lens _uavVersionLabel (\ s a -> s{_uavVersionLabel = a});
 
--- | 'UpdateApplicationVersionResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'uavrApplicationVersion' @::@ 'Maybe' 'ApplicationVersionDescription'
---
-updateApplicationVersionResponse :: UpdateApplicationVersionResponse
-updateApplicationVersionResponse = UpdateApplicationVersionResponse
-    { _uavrApplicationVersion = Nothing
-    }
+instance AWSRequest UpdateApplicationVersion where
+        type Sv UpdateApplicationVersion = ElasticBeanstalk
+        type Rs UpdateApplicationVersion =
+             ApplicationVersionDescriptionMessage
+        request = postQuery
+        response
+          = receiveXMLWrapper "UpdateApplicationVersionResult"
+              (\ s h x -> parseXML x)
 
--- | The 'ApplicationVersionDescription' of the application version.
-uavrApplicationVersion :: Lens' UpdateApplicationVersionResponse (Maybe ApplicationVersionDescription)
-uavrApplicationVersion =
-    lens _uavrApplicationVersion (\s a -> s { _uavrApplicationVersion = a })
+instance ToHeaders UpdateApplicationVersion where
+        toHeaders = const mempty
 
 instance ToPath UpdateApplicationVersion where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery UpdateApplicationVersion where
-    toQuery UpdateApplicationVersion{..} = mconcat
-        [ "ApplicationName" =? _uavApplicationName
-        , "Description"     =? _uavDescription
-        , "VersionLabel"    =? _uavVersionLabel
-        ]
-
-instance ToHeaders UpdateApplicationVersion
-
-instance AWSRequest UpdateApplicationVersion where
-    type Sv UpdateApplicationVersion = ElasticBeanstalk
-    type Rs UpdateApplicationVersion = UpdateApplicationVersionResponse
-
-    request  = post "UpdateApplicationVersion"
-    response = xmlResponse
-
-instance FromXML UpdateApplicationVersionResponse where
-    parseXML = withElement "UpdateApplicationVersionResult" $ \x -> UpdateApplicationVersionResponse
-        <$> x .@? "ApplicationVersion"
+        toQuery UpdateApplicationVersion'{..}
+          = mconcat
+              ["Action" =:
+                 ("UpdateApplicationVersion" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "Description" =: _uavDescription,
+               "ApplicationName" =: _uavApplicationName,
+               "VersionLabel" =: _uavVersionLabel]
diff --git a/gen/Network/AWS/ElasticBeanstalk/UpdateConfigurationTemplate.hs b/gen/Network/AWS/ElasticBeanstalk/UpdateConfigurationTemplate.hs
--- a/gen/Network/AWS/ElasticBeanstalk/UpdateConfigurationTemplate.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/UpdateConfigurationTemplate.hs
@@ -1,275 +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.ElasticBeanstalk.UpdateConfigurationTemplate
--- 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.
-
--- | Updates the specified configuration template to have the specified
+-- Updates the specified configuration template to have the specified
 -- properties or configuration option values.
 --
--- If a property (for example, 'ApplicationName') is not provided, its value
--- remains unchanged. To clear such properties, specify an empty string.  Related Topics
+-- If a property (for example, 'ApplicationName') is not provided, its
+-- value remains unchanged. To clear such properties, specify an empty
+-- string.
 --
+-- Related Topics
 --
--- 'DescribeConfigurationOptions'
+-- -   DescribeConfigurationOptions
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_UpdateConfigurationTemplate.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_UpdateConfigurationTemplate.html AWS API Reference> for UpdateConfigurationTemplate.
 module Network.AWS.ElasticBeanstalk.UpdateConfigurationTemplate
     (
-    -- * Request
-      UpdateConfigurationTemplate
-    -- ** Request constructor
-    , updateConfigurationTemplate
-    -- ** Request lenses
-    , uctApplicationName
-    , uctDescription
-    , uctOptionSettings
+    -- * Creating a Request
+      updateConfigurationTemplate
+    , UpdateConfigurationTemplate
+    -- * Request Lenses
     , uctOptionsToRemove
+    , uctOptionSettings
+    , uctDescription
+    , uctApplicationName
     , uctTemplateName
 
-    -- * Response
-    , UpdateConfigurationTemplateResponse
-    -- ** Response constructor
-    , updateConfigurationTemplateResponse
-    -- ** Response lenses
-    , uctrApplicationName
-    , uctrDateCreated
-    , uctrDateUpdated
-    , uctrDeploymentStatus
-    , uctrDescription
-    , uctrEnvironmentName
-    , uctrOptionSettings
-    , uctrSolutionStackName
-    , uctrTemplateName
+    -- * Destructuring the Response
+    , configurationSettingsDescription
+    , ConfigurationSettingsDescription
+    -- * Response Lenses
+    , csdTemplateName
+    , csdOptionSettings
+    , csdDateUpdated
+    , csdDateCreated
+    , csdEnvironmentName
+    , csdApplicationName
+    , csdDeploymentStatus
+    , csdSolutionStackName
+    , csdDescription
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data UpdateConfigurationTemplate = UpdateConfigurationTemplate
-    { _uctApplicationName :: Text
-    , _uctDescription     :: Maybe Text
-    , _uctOptionSettings  :: List "member" ConfigurationOptionSetting
-    , _uctOptionsToRemove :: List "member" OptionSpecification
-    , _uctTemplateName    :: Text
-    } deriving (Eq, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'UpdateConfigurationTemplate' constructor.
+-- | The result message containing the options for the specified solution
+-- stack.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'updateConfigurationTemplate' smart constructor.
+data UpdateConfigurationTemplate = UpdateConfigurationTemplate'
+    { _uctOptionsToRemove :: !(Maybe [OptionSpecification])
+    , _uctOptionSettings  :: !(Maybe [ConfigurationOptionSetting])
+    , _uctDescription     :: !(Maybe Text)
+    , _uctApplicationName :: !Text
+    , _uctTemplateName    :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UpdateConfigurationTemplate' with the minimum fields required to make a request.
 --
--- * 'uctApplicationName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'uctDescription' @::@ 'Maybe' 'Text'
+-- * 'uctOptionsToRemove'
 --
--- * 'uctOptionSettings' @::@ ['ConfigurationOptionSetting']
+-- * 'uctOptionSettings'
 --
--- * 'uctOptionsToRemove' @::@ ['OptionSpecification']
+-- * 'uctDescription'
 --
--- * 'uctTemplateName' @::@ 'Text'
+-- * 'uctApplicationName'
 --
-updateConfigurationTemplate :: Text -- ^ 'uctApplicationName'
-                            -> Text -- ^ 'uctTemplateName'
-                            -> UpdateConfigurationTemplate
-updateConfigurationTemplate p1 p2 = UpdateConfigurationTemplate
-    { _uctApplicationName = p1
-    , _uctTemplateName    = p2
-    , _uctDescription     = Nothing
-    , _uctOptionSettings  = mempty
-    , _uctOptionsToRemove = mempty
+-- * 'uctTemplateName'
+updateConfigurationTemplate
+    :: Text -- ^ 'uctApplicationName'
+    -> Text -- ^ 'uctTemplateName'
+    -> UpdateConfigurationTemplate
+updateConfigurationTemplate pApplicationName_ pTemplateName_ =
+    UpdateConfigurationTemplate'
+    { _uctOptionsToRemove = Nothing
+    , _uctOptionSettings = Nothing
+    , _uctDescription = Nothing
+    , _uctApplicationName = pApplicationName_
+    , _uctTemplateName = pTemplateName_
     }
 
--- | The name of the application associated with the configuration template to
--- update.
+-- | A list of configuration options to remove from the configuration set.
 --
--- If no application is found with this name, 'UpdateConfigurationTemplate'
--- returns an 'InvalidParameterValue' error.
-uctApplicationName :: Lens' UpdateConfigurationTemplate Text
-uctApplicationName =
-    lens _uctApplicationName (\s a -> s { _uctApplicationName = a })
-
--- | A new description for the configuration.
-uctDescription :: Lens' UpdateConfigurationTemplate (Maybe Text)
-uctDescription = lens _uctDescription (\s a -> s { _uctDescription = a })
+-- Constraint: You can remove only 'UserDefined' configuration options.
+uctOptionsToRemove :: Lens' UpdateConfigurationTemplate [OptionSpecification]
+uctOptionsToRemove = lens _uctOptionsToRemove (\ s a -> s{_uctOptionsToRemove = a}) . _Default . _Coerce;
 
 -- | A list of configuration option settings to update with the new specified
 -- option value.
 uctOptionSettings :: Lens' UpdateConfigurationTemplate [ConfigurationOptionSetting]
-uctOptionSettings =
-    lens _uctOptionSettings (\s a -> s { _uctOptionSettings = a })
-        . _List
+uctOptionSettings = lens _uctOptionSettings (\ s a -> s{_uctOptionSettings = a}) . _Default . _Coerce;
 
--- | A list of configuration options to remove from the configuration set.
+-- | A new description for the configuration.
+uctDescription :: Lens' UpdateConfigurationTemplate (Maybe Text)
+uctDescription = lens _uctDescription (\ s a -> s{_uctDescription = a});
+
+-- | The name of the application associated with the configuration template
+-- to update.
 --
--- Constraint: You can remove only 'UserDefined' configuration options.
-uctOptionsToRemove :: Lens' UpdateConfigurationTemplate [OptionSpecification]
-uctOptionsToRemove =
-    lens _uctOptionsToRemove (\s a -> s { _uctOptionsToRemove = a })
-        . _List
+-- If no application is found with this name, 'UpdateConfigurationTemplate'
+-- returns an 'InvalidParameterValue' error.
+uctApplicationName :: Lens' UpdateConfigurationTemplate Text
+uctApplicationName = lens _uctApplicationName (\ s a -> s{_uctApplicationName = a});
 
 -- | The name of the configuration template to update.
 --
--- If no configuration template is found with this name, 'UpdateConfigurationTemplate' returns an 'InvalidParameterValue' error.
+-- If no configuration template is found with this name,
+-- 'UpdateConfigurationTemplate' returns an 'InvalidParameterValue' error.
 uctTemplateName :: Lens' UpdateConfigurationTemplate Text
-uctTemplateName = lens _uctTemplateName (\s a -> s { _uctTemplateName = a })
-
-data UpdateConfigurationTemplateResponse = UpdateConfigurationTemplateResponse
-    { _uctrApplicationName   :: Maybe Text
-    , _uctrDateCreated       :: Maybe ISO8601
-    , _uctrDateUpdated       :: Maybe ISO8601
-    , _uctrDeploymentStatus  :: Maybe ConfigurationDeploymentStatus
-    , _uctrDescription       :: Maybe Text
-    , _uctrEnvironmentName   :: Maybe Text
-    , _uctrOptionSettings    :: List "member" ConfigurationOptionSetting
-    , _uctrSolutionStackName :: Maybe Text
-    , _uctrTemplateName      :: Maybe Text
-    } deriving (Eq, Read, Show)
-
--- | 'UpdateConfigurationTemplateResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'uctrApplicationName' @::@ 'Maybe' 'Text'
---
--- * 'uctrDateCreated' @::@ 'Maybe' 'UTCTime'
---
--- * 'uctrDateUpdated' @::@ 'Maybe' 'UTCTime'
---
--- * 'uctrDeploymentStatus' @::@ 'Maybe' 'ConfigurationDeploymentStatus'
---
--- * 'uctrDescription' @::@ 'Maybe' 'Text'
---
--- * 'uctrEnvironmentName' @::@ 'Maybe' 'Text'
---
--- * 'uctrOptionSettings' @::@ ['ConfigurationOptionSetting']
---
--- * 'uctrSolutionStackName' @::@ 'Maybe' 'Text'
---
--- * 'uctrTemplateName' @::@ 'Maybe' 'Text'
---
-updateConfigurationTemplateResponse :: UpdateConfigurationTemplateResponse
-updateConfigurationTemplateResponse = UpdateConfigurationTemplateResponse
-    { _uctrSolutionStackName = Nothing
-    , _uctrApplicationName   = Nothing
-    , _uctrTemplateName      = Nothing
-    , _uctrDescription       = Nothing
-    , _uctrEnvironmentName   = Nothing
-    , _uctrDeploymentStatus  = Nothing
-    , _uctrDateCreated       = Nothing
-    , _uctrDateUpdated       = Nothing
-    , _uctrOptionSettings    = mempty
-    }
-
--- | The name of the application associated with this configuration set.
-uctrApplicationName :: Lens' UpdateConfigurationTemplateResponse (Maybe Text)
-uctrApplicationName =
-    lens _uctrApplicationName (\s a -> s { _uctrApplicationName = a })
-
--- | The date (in UTC time) when this configuration set was created.
-uctrDateCreated :: Lens' UpdateConfigurationTemplateResponse (Maybe UTCTime)
-uctrDateCreated = lens _uctrDateCreated (\s a -> s { _uctrDateCreated = a }) . mapping _Time
-
--- | The date (in UTC time) when this configuration set was last modified.
-uctrDateUpdated :: Lens' UpdateConfigurationTemplateResponse (Maybe UTCTime)
-uctrDateUpdated = lens _uctrDateUpdated (\s a -> s { _uctrDateUpdated = a }) . mapping _Time
-
--- | If this configuration set is associated with an environment, the 'DeploymentStatus' parameter indicates the deployment status of this configuration set:
---
--- 'null': This configuration is not associated with a running environment.
---
--- 'pending': This is a draft configuration that is not deployed to the
--- associated environment but is in the process of deploying.
---
--- 'deployed': This is the configuration that is currently deployed to the
--- associated running environment.
---
--- 'failed': This is a draft configuration, that failed to successfully
--- deploy.
---
--- 'null': This configuration is not associated with a running environment.   'pending': This is a draft configuration that is not deployed to the associated
--- environment but is in the process of deploying.   'deployed': This is the
--- configuration that is currently deployed to the associated running
--- environment.   'failed': This is a draft configuration that failed to
--- successfully deploy.
-uctrDeploymentStatus :: Lens' UpdateConfigurationTemplateResponse (Maybe ConfigurationDeploymentStatus)
-uctrDeploymentStatus =
-    lens _uctrDeploymentStatus (\s a -> s { _uctrDeploymentStatus = a })
-
--- | Describes this configuration set.
-uctrDescription :: Lens' UpdateConfigurationTemplateResponse (Maybe Text)
-uctrDescription = lens _uctrDescription (\s a -> s { _uctrDescription = a })
-
--- | If not 'null', the name of the environment for this configuration set.
-uctrEnvironmentName :: Lens' UpdateConfigurationTemplateResponse (Maybe Text)
-uctrEnvironmentName =
-    lens _uctrEnvironmentName (\s a -> s { _uctrEnvironmentName = a })
-
--- | A list of the configuration options and their values in this configuration
--- set.
-uctrOptionSettings :: Lens' UpdateConfigurationTemplateResponse [ConfigurationOptionSetting]
-uctrOptionSettings =
-    lens _uctrOptionSettings (\s a -> s { _uctrOptionSettings = a })
-        . _List
+uctTemplateName = lens _uctTemplateName (\ s a -> s{_uctTemplateName = a});
 
--- | The name of the solution stack this configuration set uses.
-uctrSolutionStackName :: Lens' UpdateConfigurationTemplateResponse (Maybe Text)
-uctrSolutionStackName =
-    lens _uctrSolutionStackName (\s a -> s { _uctrSolutionStackName = a })
+instance AWSRequest UpdateConfigurationTemplate where
+        type Sv UpdateConfigurationTemplate =
+             ElasticBeanstalk
+        type Rs UpdateConfigurationTemplate =
+             ConfigurationSettingsDescription
+        request = postQuery
+        response
+          = receiveXMLWrapper
+              "UpdateConfigurationTemplateResult"
+              (\ s h x -> parseXML x)
 
--- | If not 'null', the name of the configuration template for this configuration
--- set.
-uctrTemplateName :: Lens' UpdateConfigurationTemplateResponse (Maybe Text)
-uctrTemplateName = lens _uctrTemplateName (\s a -> s { _uctrTemplateName = a })
+instance ToHeaders UpdateConfigurationTemplate where
+        toHeaders = const mempty
 
 instance ToPath UpdateConfigurationTemplate where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery UpdateConfigurationTemplate where
-    toQuery UpdateConfigurationTemplate{..} = mconcat
-        [ "ApplicationName" =? _uctApplicationName
-        , "Description"     =? _uctDescription
-        , "OptionSettings"  =? _uctOptionSettings
-        , "OptionsToRemove" =? _uctOptionsToRemove
-        , "TemplateName"    =? _uctTemplateName
-        ]
-
-instance ToHeaders UpdateConfigurationTemplate
-
-instance AWSRequest UpdateConfigurationTemplate where
-    type Sv UpdateConfigurationTemplate = ElasticBeanstalk
-    type Rs UpdateConfigurationTemplate = UpdateConfigurationTemplateResponse
-
-    request  = post "UpdateConfigurationTemplate"
-    response = xmlResponse
-
-instance FromXML UpdateConfigurationTemplateResponse where
-    parseXML = withElement "UpdateConfigurationTemplateResult" $ \x -> UpdateConfigurationTemplateResponse
-        <$> x .@? "ApplicationName"
-        <*> x .@? "DateCreated"
-        <*> x .@? "DateUpdated"
-        <*> x .@? "DeploymentStatus"
-        <*> x .@? "Description"
-        <*> x .@? "EnvironmentName"
-        <*> x .@? "OptionSettings" .!@ mempty
-        <*> x .@? "SolutionStackName"
-        <*> x .@? "TemplateName"
+        toQuery UpdateConfigurationTemplate'{..}
+          = mconcat
+              ["Action" =:
+                 ("UpdateConfigurationTemplate" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "OptionsToRemove" =:
+                 toQuery
+                   (toQueryList "member" <$> _uctOptionsToRemove),
+               "OptionSettings" =:
+                 toQuery
+                   (toQueryList "member" <$> _uctOptionSettings),
+               "Description" =: _uctDescription,
+               "ApplicationName" =: _uctApplicationName,
+               "TemplateName" =: _uctTemplateName]
diff --git a/gen/Network/AWS/ElasticBeanstalk/UpdateEnvironment.hs b/gen/Network/AWS/ElasticBeanstalk/UpdateEnvironment.hs
--- a/gen/Network/AWS/ElasticBeanstalk/UpdateEnvironment.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/UpdateEnvironment.hs
@@ -1,405 +1,222 @@
-{-# 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.ElasticBeanstalk.UpdateEnvironment
--- 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.
-
--- | Updates the environment description, deploys a new application version,
--- updates the configuration settings to an entirely new configuration template,
--- or updates select configuration option values in the running environment.
+-- Updates the environment description, deploys a new application version,
+-- updates the configuration settings to an entirely new configuration
+-- template, or updates select configuration option values in the running
+-- environment.
 --
--- Attempting to update both the release and configuration is not allowed and
--- AWS Elastic Beanstalk returns an 'InvalidParameterCombination' error.
+-- Attempting to update both the release and configuration is not allowed
+-- and AWS Elastic Beanstalk returns an 'InvalidParameterCombination'
+-- error.
 --
 -- When updating the configuration settings to a new template or individual
--- settings, a draft configuration is created and 'DescribeConfigurationSettings'
--- for this environment returns two setting descriptions with different 'DeploymentStatus' values.
+-- settings, a draft configuration is created and
+-- DescribeConfigurationSettings for this environment returns two setting
+-- descriptions with different 'DeploymentStatus' values.
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_UpdateEnvironment.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_UpdateEnvironment.html AWS API Reference> for UpdateEnvironment.
 module Network.AWS.ElasticBeanstalk.UpdateEnvironment
     (
-    -- * Request
-      UpdateEnvironment
-    -- ** Request constructor
-    , updateEnvironment
-    -- ** Request lenses
-    , ueDescription
-    , ueEnvironmentId
-    , ueEnvironmentName
-    , ueOptionSettings
-    , ueOptionsToRemove
-    , ueSolutionStackName
+    -- * Creating a Request
+      updateEnvironment
+    , UpdateEnvironment
+    -- * Request Lenses
     , ueTemplateName
-    , ueTier
+    , ueOptionsToRemove
+    , ueOptionSettings
     , ueVersionLabel
+    , ueTier
+    , ueEnvironmentName
+    , ueEnvironmentId
+    , ueSolutionStackName
+    , ueDescription
 
-    -- * Response
-    , UpdateEnvironmentResponse
-    -- ** Response constructor
-    , updateEnvironmentResponse
-    -- ** Response lenses
-    , uerAbortableOperationInProgress
-    , uerApplicationName
-    , uerCNAME
-    , uerDateCreated
-    , uerDateUpdated
-    , uerDescription
-    , uerEndpointURL
-    , uerEnvironmentId
-    , uerEnvironmentName
-    , uerHealth
-    , uerResources
-    , uerSolutionStackName
-    , uerStatus
-    , uerTemplateName
-    , uerTier
-    , uerVersionLabel
+    -- * Destructuring the Response
+    , environmentDescription
+    , EnvironmentDescription
+    -- * Response Lenses
+    , eCNAME
+    , eStatus
+    , eTemplateName
+    , eAbortableOperationInProgress
+    , eEndpointURL
+    , eDateUpdated
+    , eResources
+    , eHealth
+    , eVersionLabel
+    , eDateCreated
+    , eTier
+    , eEnvironmentName
+    , eApplicationName
+    , eHealthStatus
+    , eEnvironmentId
+    , eSolutionStackName
+    , eDescription
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data UpdateEnvironment = UpdateEnvironment
-    { _ueDescription       :: Maybe Text
-    , _ueEnvironmentId     :: Maybe Text
-    , _ueEnvironmentName   :: Maybe Text
-    , _ueOptionSettings    :: List "member" ConfigurationOptionSetting
-    , _ueOptionsToRemove   :: List "member" OptionSpecification
-    , _ueSolutionStackName :: Maybe Text
-    , _ueTemplateName      :: Maybe Text
-    , _ueTier              :: Maybe EnvironmentTier
-    , _ueVersionLabel      :: Maybe Text
-    } deriving (Eq, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'UpdateEnvironment' constructor.
+-- | This documentation target is not reported in the API reference.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'updateEnvironment' smart constructor.
+data UpdateEnvironment = UpdateEnvironment'
+    { _ueTemplateName      :: !(Maybe Text)
+    , _ueOptionsToRemove   :: !(Maybe [OptionSpecification])
+    , _ueOptionSettings    :: !(Maybe [ConfigurationOptionSetting])
+    , _ueVersionLabel      :: !(Maybe Text)
+    , _ueTier              :: !(Maybe EnvironmentTier)
+    , _ueEnvironmentName   :: !(Maybe Text)
+    , _ueEnvironmentId     :: !(Maybe Text)
+    , _ueSolutionStackName :: !(Maybe Text)
+    , _ueDescription       :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UpdateEnvironment' with the minimum fields required to make a request.
 --
--- * 'ueDescription' @::@ 'Maybe' 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ueEnvironmentId' @::@ 'Maybe' 'Text'
+-- * 'ueTemplateName'
 --
--- * 'ueEnvironmentName' @::@ 'Maybe' 'Text'
+-- * 'ueOptionsToRemove'
 --
--- * 'ueOptionSettings' @::@ ['ConfigurationOptionSetting']
+-- * 'ueOptionSettings'
 --
--- * 'ueOptionsToRemove' @::@ ['OptionSpecification']
+-- * 'ueVersionLabel'
 --
--- * 'ueSolutionStackName' @::@ 'Maybe' 'Text'
+-- * 'ueTier'
 --
--- * 'ueTemplateName' @::@ 'Maybe' 'Text'
+-- * 'ueEnvironmentName'
 --
--- * 'ueTier' @::@ 'Maybe' 'EnvironmentTier'
+-- * 'ueEnvironmentId'
 --
--- * 'ueVersionLabel' @::@ 'Maybe' 'Text'
+-- * 'ueSolutionStackName'
 --
-updateEnvironment :: UpdateEnvironment
-updateEnvironment = UpdateEnvironment
-    { _ueEnvironmentId     = Nothing
-    , _ueEnvironmentName   = Nothing
-    , _ueDescription       = Nothing
-    , _ueTier              = Nothing
-    , _ueVersionLabel      = Nothing
-    , _ueTemplateName      = Nothing
+-- * 'ueDescription'
+updateEnvironment
+    :: UpdateEnvironment
+updateEnvironment =
+    UpdateEnvironment'
+    { _ueTemplateName = Nothing
+    , _ueOptionsToRemove = Nothing
+    , _ueOptionSettings = Nothing
+    , _ueVersionLabel = Nothing
+    , _ueTier = Nothing
+    , _ueEnvironmentName = Nothing
+    , _ueEnvironmentId = Nothing
     , _ueSolutionStackName = Nothing
-    , _ueOptionSettings    = mempty
-    , _ueOptionsToRemove   = mempty
+    , _ueDescription = Nothing
     }
 
--- | If this parameter is specified, AWS Elastic Beanstalk updates the
--- description of this environment.
-ueDescription :: Lens' UpdateEnvironment (Maybe Text)
-ueDescription = lens _ueDescription (\s a -> s { _ueDescription = a })
-
--- | The ID of the environment to update.
---
--- If no environment with this ID exists, AWS Elastic Beanstalk returns an 'InvalidParameterValue' error.
---
--- Condition: You must specify either this or an EnvironmentName, or both. If
--- you do not specify either, AWS Elastic Beanstalk returns 'MissingRequiredParameter' error.
-ueEnvironmentId :: Lens' UpdateEnvironment (Maybe Text)
-ueEnvironmentId = lens _ueEnvironmentId (\s a -> s { _ueEnvironmentId = a })
-
--- | The name of the environment to update. If no environment with this name
--- exists, AWS Elastic Beanstalk returns an 'InvalidParameterValue' error.
---
--- Condition: You must specify either this or an EnvironmentId, or both. If
--- you do not specify either, AWS Elastic Beanstalk returns 'MissingRequiredParameter' error.
-ueEnvironmentName :: Lens' UpdateEnvironment (Maybe Text)
-ueEnvironmentName =
-    lens _ueEnvironmentName (\s a -> s { _ueEnvironmentName = a })
-
--- | If specified, AWS Elastic Beanstalk updates the configuration set associated
--- with the running environment and sets the specified configuration options to
--- the requested value.
-ueOptionSettings :: Lens' UpdateEnvironment [ConfigurationOptionSetting]
-ueOptionSettings = lens _ueOptionSettings (\s a -> s { _ueOptionSettings = a }) . _List
+-- | If this parameter is specified, AWS Elastic Beanstalk deploys this
+-- configuration template to the environment. If no such configuration
+-- template is found, AWS Elastic Beanstalk returns an
+-- 'InvalidParameterValue' error.
+ueTemplateName :: Lens' UpdateEnvironment (Maybe Text)
+ueTemplateName = lens _ueTemplateName (\ s a -> s{_ueTemplateName = a});
 
 -- | A list of custom user-defined configuration options to remove from the
 -- configuration set for this environment.
 ueOptionsToRemove :: Lens' UpdateEnvironment [OptionSpecification]
-ueOptionsToRemove =
-    lens _ueOptionsToRemove (\s a -> s { _ueOptionsToRemove = a })
-        . _List
-
--- | This specifies the platform version that the environment will run after the
--- environment is updated.
-ueSolutionStackName :: Lens' UpdateEnvironment (Maybe Text)
-ueSolutionStackName =
-    lens _ueSolutionStackName (\s a -> s { _ueSolutionStackName = a })
-
--- | If this parameter is specified, AWS Elastic Beanstalk deploys this
--- configuration template to the environment. If no such configuration template
--- is found, AWS Elastic Beanstalk returns an 'InvalidParameterValue' error.
-ueTemplateName :: Lens' UpdateEnvironment (Maybe Text)
-ueTemplateName = lens _ueTemplateName (\s a -> s { _ueTemplateName = a })
+ueOptionsToRemove = lens _ueOptionsToRemove (\ s a -> s{_ueOptionsToRemove = a}) . _Default . _Coerce;
 
--- | This specifies the tier to use to update the environment.
---
--- Condition: At this time, if you change the tier version, name, or type, AWS
--- Elastic Beanstalk returns 'InvalidParameterValue' error.
-ueTier :: Lens' UpdateEnvironment (Maybe EnvironmentTier)
-ueTier = lens _ueTier (\s a -> s { _ueTier = a })
+-- | If specified, AWS Elastic Beanstalk updates the configuration set
+-- associated with the running environment and sets the specified
+-- configuration options to the requested value.
+ueOptionSettings :: Lens' UpdateEnvironment [ConfigurationOptionSetting]
+ueOptionSettings = lens _ueOptionSettings (\ s a -> s{_ueOptionSettings = a}) . _Default . _Coerce;
 
 -- | If this parameter is specified, AWS Elastic Beanstalk deploys the named
--- application version to the environment. If no such application version is
--- found, returns an 'InvalidParameterValue' error.
+-- application version to the environment. If no such application version
+-- is found, returns an 'InvalidParameterValue' error.
 ueVersionLabel :: Lens' UpdateEnvironment (Maybe Text)
-ueVersionLabel = lens _ueVersionLabel (\s a -> s { _ueVersionLabel = a })
-
-data UpdateEnvironmentResponse = UpdateEnvironmentResponse
-    { _uerAbortableOperationInProgress :: Maybe Bool
-    , _uerApplicationName              :: Maybe Text
-    , _uerCNAME                        :: Maybe Text
-    , _uerDateCreated                  :: Maybe ISO8601
-    , _uerDateUpdated                  :: Maybe ISO8601
-    , _uerDescription                  :: Maybe Text
-    , _uerEndpointURL                  :: Maybe Text
-    , _uerEnvironmentId                :: Maybe Text
-    , _uerEnvironmentName              :: Maybe Text
-    , _uerHealth                       :: Maybe EnvironmentHealth
-    , _uerResources                    :: Maybe EnvironmentResourcesDescription
-    , _uerSolutionStackName            :: Maybe Text
-    , _uerStatus                       :: Maybe EnvironmentStatus
-    , _uerTemplateName                 :: Maybe Text
-    , _uerTier                         :: Maybe EnvironmentTier
-    , _uerVersionLabel                 :: Maybe Text
-    } deriving (Eq, Read, Show)
+ueVersionLabel = lens _ueVersionLabel (\ s a -> s{_ueVersionLabel = a});
 
--- | 'UpdateEnvironmentResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'uerAbortableOperationInProgress' @::@ 'Maybe' 'Bool'
---
--- * 'uerApplicationName' @::@ 'Maybe' 'Text'
---
--- * 'uerCNAME' @::@ 'Maybe' 'Text'
---
--- * 'uerDateCreated' @::@ 'Maybe' 'UTCTime'
---
--- * 'uerDateUpdated' @::@ 'Maybe' 'UTCTime'
---
--- * 'uerDescription' @::@ 'Maybe' 'Text'
---
--- * 'uerEndpointURL' @::@ 'Maybe' 'Text'
---
--- * 'uerEnvironmentId' @::@ 'Maybe' 'Text'
---
--- * 'uerEnvironmentName' @::@ 'Maybe' 'Text'
---
--- * 'uerHealth' @::@ 'Maybe' 'EnvironmentHealth'
---
--- * 'uerResources' @::@ 'Maybe' 'EnvironmentResourcesDescription'
---
--- * 'uerSolutionStackName' @::@ 'Maybe' 'Text'
---
--- * 'uerStatus' @::@ 'Maybe' 'EnvironmentStatus'
---
--- * 'uerTemplateName' @::@ 'Maybe' 'Text'
---
--- * 'uerTier' @::@ 'Maybe' 'EnvironmentTier'
---
--- * 'uerVersionLabel' @::@ 'Maybe' 'Text'
+-- | This specifies the tier to use to update the environment.
 --
-updateEnvironmentResponse :: UpdateEnvironmentResponse
-updateEnvironmentResponse = UpdateEnvironmentResponse
-    { _uerEnvironmentName              = Nothing
-    , _uerEnvironmentId                = Nothing
-    , _uerApplicationName              = Nothing
-    , _uerVersionLabel                 = Nothing
-    , _uerSolutionStackName            = Nothing
-    , _uerTemplateName                 = Nothing
-    , _uerDescription                  = Nothing
-    , _uerEndpointURL                  = Nothing
-    , _uerCNAME                        = Nothing
-    , _uerDateCreated                  = Nothing
-    , _uerDateUpdated                  = Nothing
-    , _uerStatus                       = Nothing
-    , _uerAbortableOperationInProgress = Nothing
-    , _uerHealth                       = Nothing
-    , _uerResources                    = Nothing
-    , _uerTier                         = Nothing
-    }
+-- Condition: At this time, if you change the tier version, name, or type,
+-- AWS Elastic Beanstalk returns 'InvalidParameterValue' error.
+ueTier :: Lens' UpdateEnvironment (Maybe EnvironmentTier)
+ueTier = lens _ueTier (\ s a -> s{_ueTier = a});
 
--- | Indicates if there is an in-progress environment configuration update or
--- application version deployment that you can cancel.
---
--- 'true:' There is an update in progress.
+-- | The name of the environment to update. If no environment with this name
+-- exists, AWS Elastic Beanstalk returns an 'InvalidParameterValue' error.
 --
--- 'false:' There are no updates currently in progress.
-uerAbortableOperationInProgress :: Lens' UpdateEnvironmentResponse (Maybe Bool)
-uerAbortableOperationInProgress =
-    lens _uerAbortableOperationInProgress
-        (\s a -> s { _uerAbortableOperationInProgress = a })
-
--- | The name of the application associated with this environment.
-uerApplicationName :: Lens' UpdateEnvironmentResponse (Maybe Text)
-uerApplicationName =
-    lens _uerApplicationName (\s a -> s { _uerApplicationName = a })
-
--- | The URL to the CNAME for this environment.
-uerCNAME :: Lens' UpdateEnvironmentResponse (Maybe Text)
-uerCNAME = lens _uerCNAME (\s a -> s { _uerCNAME = a })
-
--- | The creation date for this environment.
-uerDateCreated :: Lens' UpdateEnvironmentResponse (Maybe UTCTime)
-uerDateCreated = lens _uerDateCreated (\s a -> s { _uerDateCreated = a }) . mapping _Time
-
--- | The last modified date for this environment.
-uerDateUpdated :: Lens' UpdateEnvironmentResponse (Maybe UTCTime)
-uerDateUpdated = lens _uerDateUpdated (\s a -> s { _uerDateUpdated = a }) . mapping _Time
-
--- | Describes this environment.
-uerDescription :: Lens' UpdateEnvironmentResponse (Maybe Text)
-uerDescription = lens _uerDescription (\s a -> s { _uerDescription = a })
-
--- | For load-balanced, autoscaling environments, the URL to the LoadBalancer. For
--- single-instance environments, the IP address of the instance.
-uerEndpointURL :: Lens' UpdateEnvironmentResponse (Maybe Text)
-uerEndpointURL = lens _uerEndpointURL (\s a -> s { _uerEndpointURL = a })
-
--- | The ID of this environment.
-uerEnvironmentId :: Lens' UpdateEnvironmentResponse (Maybe Text)
-uerEnvironmentId = lens _uerEnvironmentId (\s a -> s { _uerEnvironmentId = a })
-
--- | The name of this environment.
-uerEnvironmentName :: Lens' UpdateEnvironmentResponse (Maybe Text)
-uerEnvironmentName =
-    lens _uerEnvironmentName (\s a -> s { _uerEnvironmentName = a })
+-- Condition: You must specify either this or an EnvironmentId, or both. If
+-- you do not specify either, AWS Elastic Beanstalk returns
+-- 'MissingRequiredParameter' error.
+ueEnvironmentName :: Lens' UpdateEnvironment (Maybe Text)
+ueEnvironmentName = lens _ueEnvironmentName (\ s a -> s{_ueEnvironmentName = a});
 
--- | Describes the health status of the environment. AWS Elastic Beanstalk
--- indicates the failure levels for a running environment:
---
--- 'Red' : Indicates the environment is not working.
---
--- 'Yellow': Indicates that something is wrong, the application might not be
--- available, but the instances appear running.
+-- | The ID of the environment to update.
 --
--- 'Green': Indicates the environment is healthy and fully functional.
+-- If no environment with this ID exists, AWS Elastic Beanstalk returns an
+-- 'InvalidParameterValue' error.
 --
--- 'Red': Indicates the environment is not responsive. Occurs when three or
--- more consecutive failures occur for an environment.   'Yellow': Indicates that
--- something is wrong. Occurs when two consecutive failures occur for an
--- environment.   'Green': Indicates the environment is healthy and fully
--- functional.   'Grey': Default health for a new environment. The environment is
--- not fully launched and health checks have not started or health checks are
--- suspended during an 'UpdateEnvironment' or 'RestartEnvironement' request.
--- Default: 'Grey'
-uerHealth :: Lens' UpdateEnvironmentResponse (Maybe EnvironmentHealth)
-uerHealth = lens _uerHealth (\s a -> s { _uerHealth = a })
-
--- | The description of the AWS resources used by this environment.
-uerResources :: Lens' UpdateEnvironmentResponse (Maybe EnvironmentResourcesDescription)
-uerResources = lens _uerResources (\s a -> s { _uerResources = a })
-
--- | The name of the 'SolutionStack' deployed with this environment.
-uerSolutionStackName :: Lens' UpdateEnvironmentResponse (Maybe Text)
-uerSolutionStackName =
-    lens _uerSolutionStackName (\s a -> s { _uerSolutionStackName = a })
+-- Condition: You must specify either this or an EnvironmentName, or both.
+-- If you do not specify either, AWS Elastic Beanstalk returns
+-- 'MissingRequiredParameter' error.
+ueEnvironmentId :: Lens' UpdateEnvironment (Maybe Text)
+ueEnvironmentId = lens _ueEnvironmentId (\ s a -> s{_ueEnvironmentId = a});
 
--- | The current operational status of the environment:
---
--- 'Launching': Environment is in the process of initial deployment.   'Updating': Environment is in the process of updating its configuration settings or application version.
--- 'Ready': Environment is available to have an action performed on it, such as
--- update or terminate.   'Terminating': Environment is in the shut-down process.
--- 'Terminated': Environment is not running.
-uerStatus :: Lens' UpdateEnvironmentResponse (Maybe EnvironmentStatus)
-uerStatus = lens _uerStatus (\s a -> s { _uerStatus = a })
+-- | This specifies the platform version that the environment will run after
+-- the environment is updated.
+ueSolutionStackName :: Lens' UpdateEnvironment (Maybe Text)
+ueSolutionStackName = lens _ueSolutionStackName (\ s a -> s{_ueSolutionStackName = a});
 
--- | The name of the configuration template used to originally launch this
--- environment.
-uerTemplateName :: Lens' UpdateEnvironmentResponse (Maybe Text)
-uerTemplateName = lens _uerTemplateName (\s a -> s { _uerTemplateName = a })
+-- | If this parameter is specified, AWS Elastic Beanstalk updates the
+-- description of this environment.
+ueDescription :: Lens' UpdateEnvironment (Maybe Text)
+ueDescription = lens _ueDescription (\ s a -> s{_ueDescription = a});
 
--- | Describes the current tier of this environment.
-uerTier :: Lens' UpdateEnvironmentResponse (Maybe EnvironmentTier)
-uerTier = lens _uerTier (\s a -> s { _uerTier = a })
+instance AWSRequest UpdateEnvironment where
+        type Sv UpdateEnvironment = ElasticBeanstalk
+        type Rs UpdateEnvironment = EnvironmentDescription
+        request = postQuery
+        response
+          = receiveXMLWrapper "UpdateEnvironmentResult"
+              (\ s h x -> parseXML x)
 
--- | The application version deployed in this environment.
-uerVersionLabel :: Lens' UpdateEnvironmentResponse (Maybe Text)
-uerVersionLabel = lens _uerVersionLabel (\s a -> s { _uerVersionLabel = a })
+instance ToHeaders UpdateEnvironment where
+        toHeaders = const mempty
 
 instance ToPath UpdateEnvironment where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery UpdateEnvironment where
-    toQuery UpdateEnvironment{..} = mconcat
-        [ "Description"       =? _ueDescription
-        , "EnvironmentId"     =? _ueEnvironmentId
-        , "EnvironmentName"   =? _ueEnvironmentName
-        , "OptionSettings"    =? _ueOptionSettings
-        , "OptionsToRemove"   =? _ueOptionsToRemove
-        , "SolutionStackName" =? _ueSolutionStackName
-        , "TemplateName"      =? _ueTemplateName
-        , "Tier"              =? _ueTier
-        , "VersionLabel"      =? _ueVersionLabel
-        ]
-
-instance ToHeaders UpdateEnvironment
-
-instance AWSRequest UpdateEnvironment where
-    type Sv UpdateEnvironment = ElasticBeanstalk
-    type Rs UpdateEnvironment = UpdateEnvironmentResponse
-
-    request  = post "UpdateEnvironment"
-    response = xmlResponse
-
-instance FromXML UpdateEnvironmentResponse where
-    parseXML = withElement "UpdateEnvironmentResult" $ \x -> UpdateEnvironmentResponse
-        <$> x .@? "AbortableOperationInProgress"
-        <*> x .@? "ApplicationName"
-        <*> x .@? "CNAME"
-        <*> x .@? "DateCreated"
-        <*> x .@? "DateUpdated"
-        <*> x .@? "Description"
-        <*> x .@? "EndpointURL"
-        <*> x .@? "EnvironmentId"
-        <*> x .@? "EnvironmentName"
-        <*> x .@? "Health"
-        <*> x .@? "Resources"
-        <*> x .@? "SolutionStackName"
-        <*> x .@? "Status"
-        <*> x .@? "TemplateName"
-        <*> x .@? "Tier"
-        <*> x .@? "VersionLabel"
+        toQuery UpdateEnvironment'{..}
+          = mconcat
+              ["Action" =: ("UpdateEnvironment" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "TemplateName" =: _ueTemplateName,
+               "OptionsToRemove" =:
+                 toQuery
+                   (toQueryList "member" <$> _ueOptionsToRemove),
+               "OptionSettings" =:
+                 toQuery (toQueryList "member" <$> _ueOptionSettings),
+               "VersionLabel" =: _ueVersionLabel, "Tier" =: _ueTier,
+               "EnvironmentName" =: _ueEnvironmentName,
+               "EnvironmentId" =: _ueEnvironmentId,
+               "SolutionStackName" =: _ueSolutionStackName,
+               "Description" =: _ueDescription]
diff --git a/gen/Network/AWS/ElasticBeanstalk/ValidateConfigurationSettings.hs b/gen/Network/AWS/ElasticBeanstalk/ValidateConfigurationSettings.hs
--- a/gen/Network/AWS/ElasticBeanstalk/ValidateConfigurationSettings.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/ValidateConfigurationSettings.hs
@@ -1,157 +1,172 @@
-{-# 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.ElasticBeanstalk.ValidateConfigurationSettings
--- 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.
-
--- | Takes a set of configuration settings and either a configuration template or
--- environment, and determines whether those values are valid.
+-- Takes a set of configuration settings and either a configuration
+-- template or environment, and determines whether those values are valid.
 --
 -- This action returns a list of messages indicating any errors or warnings
 -- associated with the selection of option values.
 --
--- <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ValidateConfigurationSettings.html>
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ValidateConfigurationSettings.html AWS API Reference> for ValidateConfigurationSettings.
 module Network.AWS.ElasticBeanstalk.ValidateConfigurationSettings
     (
-    -- * Request
-      ValidateConfigurationSettings
-    -- ** Request constructor
-    , validateConfigurationSettings
-    -- ** Request lenses
-    , vcsApplicationName
+    -- * Creating a Request
+      validateConfigurationSettings
+    , ValidateConfigurationSettings
+    -- * Request Lenses
+    , vcsTemplateName
     , vcsEnvironmentName
+    , vcsApplicationName
     , vcsOptionSettings
-    , vcsTemplateName
 
-    -- * Response
-    , ValidateConfigurationSettingsResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , validateConfigurationSettingsResponse
-    -- ** Response lenses
-    , vcsrMessages
+    , ValidateConfigurationSettingsResponse
+    -- * Response Lenses
+    , vcsrsMessages
+    , vcsrsStatus
     ) where
 
-import Network.AWS.Prelude
-import Network.AWS.Request.Query
-import Network.AWS.ElasticBeanstalk.Types
-import qualified GHC.Exts
-
-data ValidateConfigurationSettings = ValidateConfigurationSettings
-    { _vcsApplicationName :: Text
-    , _vcsEnvironmentName :: Maybe Text
-    , _vcsOptionSettings  :: List "member" ConfigurationOptionSetting
-    , _vcsTemplateName    :: Maybe Text
-    } deriving (Eq, Read, Show)
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
--- | 'ValidateConfigurationSettings' constructor.
+-- | A list of validation messages for a specified configuration template.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'validateConfigurationSettings' smart constructor.
+data ValidateConfigurationSettings = ValidateConfigurationSettings'
+    { _vcsTemplateName    :: !(Maybe Text)
+    , _vcsEnvironmentName :: !(Maybe Text)
+    , _vcsApplicationName :: !Text
+    , _vcsOptionSettings  :: ![ConfigurationOptionSetting]
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ValidateConfigurationSettings' with the minimum fields required to make a request.
 --
--- * 'vcsApplicationName' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'vcsEnvironmentName' @::@ 'Maybe' 'Text'
+-- * 'vcsTemplateName'
 --
--- * 'vcsOptionSettings' @::@ ['ConfigurationOptionSetting']
+-- * 'vcsEnvironmentName'
 --
--- * 'vcsTemplateName' @::@ 'Maybe' 'Text'
+-- * 'vcsApplicationName'
 --
-validateConfigurationSettings :: Text -- ^ 'vcsApplicationName'
-                              -> ValidateConfigurationSettings
-validateConfigurationSettings p1 = ValidateConfigurationSettings
-    { _vcsApplicationName = p1
-    , _vcsTemplateName    = Nothing
+-- * 'vcsOptionSettings'
+validateConfigurationSettings
+    :: Text -- ^ 'vcsApplicationName'
+    -> ValidateConfigurationSettings
+validateConfigurationSettings pApplicationName_ =
+    ValidateConfigurationSettings'
+    { _vcsTemplateName = Nothing
     , _vcsEnvironmentName = Nothing
-    , _vcsOptionSettings  = mempty
+    , _vcsApplicationName = pApplicationName_
+    , _vcsOptionSettings = mempty
     }
 
--- | The name of the application that the configuration template or environment
--- belongs to.
-vcsApplicationName :: Lens' ValidateConfigurationSettings Text
-vcsApplicationName =
-    lens _vcsApplicationName (\s a -> s { _vcsApplicationName = a })
+-- | The name of the configuration template to validate the settings against.
+--
+-- Condition: You cannot specify both this and an environment name.
+vcsTemplateName :: Lens' ValidateConfigurationSettings (Maybe Text)
+vcsTemplateName = lens _vcsTemplateName (\ s a -> s{_vcsTemplateName = a});
 
 -- | The name of the environment to validate the settings against.
 --
--- Condition: You cannot specify both this and a configuration template name.
+-- Condition: You cannot specify both this and a configuration template
+-- name.
 vcsEnvironmentName :: Lens' ValidateConfigurationSettings (Maybe Text)
-vcsEnvironmentName =
-    lens _vcsEnvironmentName (\s a -> s { _vcsEnvironmentName = a })
+vcsEnvironmentName = lens _vcsEnvironmentName (\ s a -> s{_vcsEnvironmentName = a});
 
+-- | The name of the application that the configuration template or
+-- environment belongs to.
+vcsApplicationName :: Lens' ValidateConfigurationSettings Text
+vcsApplicationName = lens _vcsApplicationName (\ s a -> s{_vcsApplicationName = a});
+
 -- | A list of the options and desired values to evaluate.
 vcsOptionSettings :: Lens' ValidateConfigurationSettings [ConfigurationOptionSetting]
-vcsOptionSettings =
-    lens _vcsOptionSettings (\s a -> s { _vcsOptionSettings = a })
-        . _List
+vcsOptionSettings = lens _vcsOptionSettings (\ s a -> s{_vcsOptionSettings = a}) . _Coerce;
 
--- | The name of the configuration template to validate the settings against.
---
--- Condition: You cannot specify both this and an environment name.
-vcsTemplateName :: Lens' ValidateConfigurationSettings (Maybe Text)
-vcsTemplateName = lens _vcsTemplateName (\s a -> s { _vcsTemplateName = a })
+instance AWSRequest ValidateConfigurationSettings
+         where
+        type Sv ValidateConfigurationSettings =
+             ElasticBeanstalk
+        type Rs ValidateConfigurationSettings =
+             ValidateConfigurationSettingsResponse
+        request = postQuery
+        response
+          = receiveXMLWrapper
+              "ValidateConfigurationSettingsResult"
+              (\ s h x ->
+                 ValidateConfigurationSettingsResponse' <$>
+                   (x .@? "Messages" .!@ mempty >>=
+                      may (parseXMLList "member"))
+                     <*> (pure (fromEnum s)))
 
-newtype ValidateConfigurationSettingsResponse = ValidateConfigurationSettingsResponse
-    { _vcsrMessages :: List "member" ValidationMessage
-    } deriving (Eq, Read, Show, Monoid, Semigroup)
+instance ToHeaders ValidateConfigurationSettings
+         where
+        toHeaders = const mempty
 
-instance GHC.Exts.IsList ValidateConfigurationSettingsResponse where
-    type Item ValidateConfigurationSettingsResponse = ValidationMessage
+instance ToPath ValidateConfigurationSettings where
+        toPath = const "/"
 
-    fromList = ValidateConfigurationSettingsResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _vcsrMessages
+instance ToQuery ValidateConfigurationSettings where
+        toQuery ValidateConfigurationSettings'{..}
+          = mconcat
+              ["Action" =:
+                 ("ValidateConfigurationSettings" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "TemplateName" =: _vcsTemplateName,
+               "EnvironmentName" =: _vcsEnvironmentName,
+               "ApplicationName" =: _vcsApplicationName,
+               "OptionSettings" =:
+                 toQueryList "member" _vcsOptionSettings]
 
--- | 'ValidateConfigurationSettingsResponse' constructor.
+-- | Provides a list of validation messages.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'validateConfigurationSettingsResponse' smart constructor.
+data ValidateConfigurationSettingsResponse = ValidateConfigurationSettingsResponse'
+    { _vcsrsMessages :: !(Maybe [ValidationMessage])
+    , _vcsrsStatus   :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ValidateConfigurationSettingsResponse' with the minimum fields required to make a request.
 --
--- * 'vcsrMessages' @::@ ['ValidationMessage']
+-- Use one of the following lenses to modify other fields as desired:
 --
-validateConfigurationSettingsResponse :: ValidateConfigurationSettingsResponse
-validateConfigurationSettingsResponse = ValidateConfigurationSettingsResponse
-    { _vcsrMessages = mempty
+-- * 'vcsrsMessages'
+--
+-- * 'vcsrsStatus'
+validateConfigurationSettingsResponse
+    :: Int -- ^ 'vcsrsStatus'
+    -> ValidateConfigurationSettingsResponse
+validateConfigurationSettingsResponse pStatus_ =
+    ValidateConfigurationSettingsResponse'
+    { _vcsrsMessages = Nothing
+    , _vcsrsStatus = pStatus_
     }
 
--- | A list of 'ValidationMessage'.
-vcsrMessages :: Lens' ValidateConfigurationSettingsResponse [ValidationMessage]
-vcsrMessages = lens _vcsrMessages (\s a -> s { _vcsrMessages = a }) . _List
-
-instance ToPath ValidateConfigurationSettings where
-    toPath = const "/"
-
-instance ToQuery ValidateConfigurationSettings where
-    toQuery ValidateConfigurationSettings{..} = mconcat
-        [ "ApplicationName" =? _vcsApplicationName
-        , "EnvironmentName" =? _vcsEnvironmentName
-        , "OptionSettings"  =? _vcsOptionSettings
-        , "TemplateName"    =? _vcsTemplateName
-        ]
-
-instance ToHeaders ValidateConfigurationSettings
-
-instance AWSRequest ValidateConfigurationSettings where
-    type Sv ValidateConfigurationSettings = ElasticBeanstalk
-    type Rs ValidateConfigurationSettings = ValidateConfigurationSettingsResponse
-
-    request  = post "ValidateConfigurationSettings"
-    response = xmlResponse
+-- | A list of ValidationMessage.
+vcsrsMessages :: Lens' ValidateConfigurationSettingsResponse [ValidationMessage]
+vcsrsMessages = lens _vcsrsMessages (\ s a -> s{_vcsrsMessages = a}) . _Default . _Coerce;
 
-instance FromXML ValidateConfigurationSettingsResponse where
-    parseXML = withElement "ValidateConfigurationSettingsResult" $ \x -> ValidateConfigurationSettingsResponse
-        <$> x .@? "Messages" .!@ mempty
+-- | The response status code.
+vcsrsStatus :: Lens' ValidateConfigurationSettingsResponse Int
+vcsrsStatus = lens _vcsrsStatus (\ s a -> s{_vcsrsStatus = a});
diff --git a/gen/Network/AWS/ElasticBeanstalk/Waiters.hs b/gen/Network/AWS/ElasticBeanstalk/Waiters.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/ElasticBeanstalk/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.ElasticBeanstalk.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.ElasticBeanstalk.Waiters where
+
+import           Network.AWS.ElasticBeanstalk.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.ElasticBeanstalk
+import Test.AWS.ElasticBeanstalk.Internal
+
+main :: IO ()
+main = defaultMain $ testGroup "ElasticBeanstalk"
+    [ testGroup "tests"    tests
+    , testGroup "fixtures" fixtures
+    ]
diff --git a/test/Test/AWS/ElasticBeanstalk.hs b/test/Test/AWS/ElasticBeanstalk.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/AWS/ElasticBeanstalk.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+-- Module      : Test.AWS.ElasticBeanstalk
+-- 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.ElasticBeanstalk
+    ( tests
+    , fixtures
+    ) where
+
+import           Network.AWS.ElasticBeanstalk
+import           Test.AWS.Gen.ElasticBeanstalk
+import           Test.Tasty
+
+tests :: [TestTree]
+tests = []
+
+fixtures :: [TestTree]
+fixtures = []
diff --git a/test/Test/AWS/ElasticBeanstalk/Internal.hs b/test/Test/AWS/ElasticBeanstalk/Internal.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/AWS/ElasticBeanstalk/Internal.hs
@@ -0,0 +1,16 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Module      : Test.AWS.ElasticBeanstalk.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.ElasticBeanstalk.Internal where
+
+import Test.AWS.Prelude
diff --git a/test/Test/AWS/Gen/ElasticBeanstalk.hs b/test/Test/AWS/Gen/ElasticBeanstalk.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/AWS/Gen/ElasticBeanstalk.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.ElasticBeanstalk
+-- 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.ElasticBeanstalk where
+
+import Data.Proxy
+import Test.AWS.Fixture
+import Test.AWS.Prelude
+import Test.Tasty
+import Network.AWS.ElasticBeanstalk
+import Test.AWS.ElasticBeanstalk.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"
+--         [ testDescribeApplications $
+--             describeApplications
+--
+--         , testCreateApplicationVersion $
+--             createApplicationVersion
+--
+--         , testUpdateEnvironment $
+--             updateEnvironment
+--
+--         , testTerminateEnvironment $
+--             terminateEnvironment
+--
+--         , testDescribeEvents $
+--             describeEvents
+--
+--         , testRequestEnvironmentInfo $
+--             requestEnvironmentInfo
+--
+--         , testRetrieveEnvironmentInfo $
+--             retrieveEnvironmentInfo
+--
+--         , testDeleteApplication $
+--             deleteApplication
+--
+--         , testUpdateApplication $
+--             updateApplication
+--
+--         , testDescribeInstancesHealth $
+--             describeInstancesHealth
+--
+--         , testCreateApplication $
+--             createApplication
+--
+--         , testAbortEnvironmentUpdate $
+--             abortEnvironmentUpdate
+--
+--         , testDeleteApplicationVersion $
+--             deleteApplicationVersion
+--
+--         , testUpdateApplicationVersion $
+--             updateApplicationVersion
+--
+--         , testDescribeEnvironmentResources $
+--             describeEnvironmentResources
+--
+--         , testDeleteConfigurationTemplate $
+--             deleteConfigurationTemplate
+--
+--         , testUpdateConfigurationTemplate $
+--             updateConfigurationTemplate
+--
+--         , testDescribeEnvironmentHealth $
+--             describeEnvironmentHealth
+--
+--         , testRebuildEnvironment $
+--             rebuildEnvironment
+--
+--         , testDeleteEnvironmentConfiguration $
+--             deleteEnvironmentConfiguration
+--
+--         , testCreateConfigurationTemplate $
+--             createConfigurationTemplate
+--
+--         , testListAvailableSolutionStacks $
+--             listAvailableSolutionStacks
+--
+--         , testSwapEnvironmentCNAMEs $
+--             swapEnvironmentCNAMEs
+--
+--         , testDescribeConfigurationOptions $
+--             describeConfigurationOptions
+--
+--         , testDescribeConfigurationSettings $
+--             describeConfigurationSettings
+--
+--         , testCreateStorageLocation $
+--             createStorageLocation
+--
+--         , testDescribeEnvironments $
+--             describeEnvironments
+--
+--         , testRestartAppServer $
+--             restartAppServer
+--
+--         , testValidateConfigurationSettings $
+--             validateConfigurationSettings
+--
+--         , testDescribeApplicationVersions $
+--             describeApplicationVersions
+--
+--         , testCheckDNSAvailability $
+--             checkDNSAvailability
+--
+--         , testCreateEnvironment $
+--             createEnvironment
+--
+--           ]
+
+--     , testGroup "response"
+--         [ testDescribeApplicationsResponse $
+--             describeApplicationsResponse
+--
+--         , testCreateApplicationVersionResponse $
+--             applicationVersionDescriptionMessage
+--
+--         , testUpdateEnvironmentResponse $
+--             environmentDescription
+--
+--         , testTerminateEnvironmentResponse $
+--             environmentDescription
+--
+--         , testDescribeEventsResponse $
+--             describeEventsResponse
+--
+--         , testRequestEnvironmentInfoResponse $
+--             requestEnvironmentInfoResponse
+--
+--         , testRetrieveEnvironmentInfoResponse $
+--             retrieveEnvironmentInfoResponse
+--
+--         , testDeleteApplicationResponse $
+--             deleteApplicationResponse
+--
+--         , testUpdateApplicationResponse $
+--             applicationDescriptionMessage
+--
+--         , testDescribeInstancesHealthResponse $
+--             describeInstancesHealthResponse
+--
+--         , testCreateApplicationResponse $
+--             applicationDescriptionMessage
+--
+--         , testAbortEnvironmentUpdateResponse $
+--             abortEnvironmentUpdateResponse
+--
+--         , testDeleteApplicationVersionResponse $
+--             deleteApplicationVersionResponse
+--
+--         , testUpdateApplicationVersionResponse $
+--             applicationVersionDescriptionMessage
+--
+--         , testDescribeEnvironmentResourcesResponse $
+--             describeEnvironmentResourcesResponse
+--
+--         , testDeleteConfigurationTemplateResponse $
+--             deleteConfigurationTemplateResponse
+--
+--         , testUpdateConfigurationTemplateResponse $
+--             configurationSettingsDescription
+--
+--         , testDescribeEnvironmentHealthResponse $
+--             describeEnvironmentHealthResponse
+--
+--         , testRebuildEnvironmentResponse $
+--             rebuildEnvironmentResponse
+--
+--         , testDeleteEnvironmentConfigurationResponse $
+--             deleteEnvironmentConfigurationResponse
+--
+--         , testCreateConfigurationTemplateResponse $
+--             configurationSettingsDescription
+--
+--         , testListAvailableSolutionStacksResponse $
+--             listAvailableSolutionStacksResponse
+--
+--         , testSwapEnvironmentCNAMEsResponse $
+--             swapEnvironmentCNAMEsResponse
+--
+--         , testDescribeConfigurationOptionsResponse $
+--             describeConfigurationOptionsResponse
+--
+--         , testDescribeConfigurationSettingsResponse $
+--             describeConfigurationSettingsResponse
+--
+--         , testCreateStorageLocationResponse $
+--             createStorageLocationResponse
+--
+--         , testDescribeEnvironmentsResponse $
+--             describeEnvironmentsResponse
+--
+--         , testRestartAppServerResponse $
+--             restartAppServerResponse
+--
+--         , testValidateConfigurationSettingsResponse $
+--             validateConfigurationSettingsResponse
+--
+--         , testDescribeApplicationVersionsResponse $
+--             describeApplicationVersionsResponse
+--
+--         , testCheckDNSAvailabilityResponse $
+--             checkDNSAvailabilityResponse
+--
+--         , testCreateEnvironmentResponse $
+--             environmentDescription
+--
+--           ]
+--     ]
+
+-- Requests
+
+testDescribeApplications :: DescribeApplications -> TestTree
+testDescribeApplications = req
+    "DescribeApplications"
+    "fixture/DescribeApplications"
+
+testCreateApplicationVersion :: CreateApplicationVersion -> TestTree
+testCreateApplicationVersion = req
+    "CreateApplicationVersion"
+    "fixture/CreateApplicationVersion"
+
+testUpdateEnvironment :: UpdateEnvironment -> TestTree
+testUpdateEnvironment = req
+    "UpdateEnvironment"
+    "fixture/UpdateEnvironment"
+
+testTerminateEnvironment :: TerminateEnvironment -> TestTree
+testTerminateEnvironment = req
+    "TerminateEnvironment"
+    "fixture/TerminateEnvironment"
+
+testDescribeEvents :: DescribeEvents -> TestTree
+testDescribeEvents = req
+    "DescribeEvents"
+    "fixture/DescribeEvents"
+
+testRequestEnvironmentInfo :: RequestEnvironmentInfo -> TestTree
+testRequestEnvironmentInfo = req
+    "RequestEnvironmentInfo"
+    "fixture/RequestEnvironmentInfo"
+
+testRetrieveEnvironmentInfo :: RetrieveEnvironmentInfo -> TestTree
+testRetrieveEnvironmentInfo = req
+    "RetrieveEnvironmentInfo"
+    "fixture/RetrieveEnvironmentInfo"
+
+testDeleteApplication :: DeleteApplication -> TestTree
+testDeleteApplication = req
+    "DeleteApplication"
+    "fixture/DeleteApplication"
+
+testUpdateApplication :: UpdateApplication -> TestTree
+testUpdateApplication = req
+    "UpdateApplication"
+    "fixture/UpdateApplication"
+
+testDescribeInstancesHealth :: DescribeInstancesHealth -> TestTree
+testDescribeInstancesHealth = req
+    "DescribeInstancesHealth"
+    "fixture/DescribeInstancesHealth"
+
+testCreateApplication :: CreateApplication -> TestTree
+testCreateApplication = req
+    "CreateApplication"
+    "fixture/CreateApplication"
+
+testAbortEnvironmentUpdate :: AbortEnvironmentUpdate -> TestTree
+testAbortEnvironmentUpdate = req
+    "AbortEnvironmentUpdate"
+    "fixture/AbortEnvironmentUpdate"
+
+testDeleteApplicationVersion :: DeleteApplicationVersion -> TestTree
+testDeleteApplicationVersion = req
+    "DeleteApplicationVersion"
+    "fixture/DeleteApplicationVersion"
+
+testUpdateApplicationVersion :: UpdateApplicationVersion -> TestTree
+testUpdateApplicationVersion = req
+    "UpdateApplicationVersion"
+    "fixture/UpdateApplicationVersion"
+
+testDescribeEnvironmentResources :: DescribeEnvironmentResources -> TestTree
+testDescribeEnvironmentResources = req
+    "DescribeEnvironmentResources"
+    "fixture/DescribeEnvironmentResources"
+
+testDeleteConfigurationTemplate :: DeleteConfigurationTemplate -> TestTree
+testDeleteConfigurationTemplate = req
+    "DeleteConfigurationTemplate"
+    "fixture/DeleteConfigurationTemplate"
+
+testUpdateConfigurationTemplate :: UpdateConfigurationTemplate -> TestTree
+testUpdateConfigurationTemplate = req
+    "UpdateConfigurationTemplate"
+    "fixture/UpdateConfigurationTemplate"
+
+testDescribeEnvironmentHealth :: DescribeEnvironmentHealth -> TestTree
+testDescribeEnvironmentHealth = req
+    "DescribeEnvironmentHealth"
+    "fixture/DescribeEnvironmentHealth"
+
+testRebuildEnvironment :: RebuildEnvironment -> TestTree
+testRebuildEnvironment = req
+    "RebuildEnvironment"
+    "fixture/RebuildEnvironment"
+
+testDeleteEnvironmentConfiguration :: DeleteEnvironmentConfiguration -> TestTree
+testDeleteEnvironmentConfiguration = req
+    "DeleteEnvironmentConfiguration"
+    "fixture/DeleteEnvironmentConfiguration"
+
+testCreateConfigurationTemplate :: CreateConfigurationTemplate -> TestTree
+testCreateConfigurationTemplate = req
+    "CreateConfigurationTemplate"
+    "fixture/CreateConfigurationTemplate"
+
+testListAvailableSolutionStacks :: ListAvailableSolutionStacks -> TestTree
+testListAvailableSolutionStacks = req
+    "ListAvailableSolutionStacks"
+    "fixture/ListAvailableSolutionStacks"
+
+testSwapEnvironmentCNAMEs :: SwapEnvironmentCNAMEs -> TestTree
+testSwapEnvironmentCNAMEs = req
+    "SwapEnvironmentCNAMEs"
+    "fixture/SwapEnvironmentCNAMEs"
+
+testDescribeConfigurationOptions :: DescribeConfigurationOptions -> TestTree
+testDescribeConfigurationOptions = req
+    "DescribeConfigurationOptions"
+    "fixture/DescribeConfigurationOptions"
+
+testDescribeConfigurationSettings :: DescribeConfigurationSettings -> TestTree
+testDescribeConfigurationSettings = req
+    "DescribeConfigurationSettings"
+    "fixture/DescribeConfigurationSettings"
+
+testCreateStorageLocation :: CreateStorageLocation -> TestTree
+testCreateStorageLocation = req
+    "CreateStorageLocation"
+    "fixture/CreateStorageLocation"
+
+testDescribeEnvironments :: DescribeEnvironments -> TestTree
+testDescribeEnvironments = req
+    "DescribeEnvironments"
+    "fixture/DescribeEnvironments"
+
+testRestartAppServer :: RestartAppServer -> TestTree
+testRestartAppServer = req
+    "RestartAppServer"
+    "fixture/RestartAppServer"
+
+testValidateConfigurationSettings :: ValidateConfigurationSettings -> TestTree
+testValidateConfigurationSettings = req
+    "ValidateConfigurationSettings"
+    "fixture/ValidateConfigurationSettings"
+
+testDescribeApplicationVersions :: DescribeApplicationVersions -> TestTree
+testDescribeApplicationVersions = req
+    "DescribeApplicationVersions"
+    "fixture/DescribeApplicationVersions"
+
+testCheckDNSAvailability :: CheckDNSAvailability -> TestTree
+testCheckDNSAvailability = req
+    "CheckDNSAvailability"
+    "fixture/CheckDNSAvailability"
+
+testCreateEnvironment :: CreateEnvironment -> TestTree
+testCreateEnvironment = req
+    "CreateEnvironment"
+    "fixture/CreateEnvironment"
+
+-- Responses
+
+testDescribeApplicationsResponse :: DescribeApplicationsResponse -> TestTree
+testDescribeApplicationsResponse = res
+    "DescribeApplicationsResponse"
+    "fixture/DescribeApplicationsResponse"
+    (Proxy :: Proxy DescribeApplications)
+
+testCreateApplicationVersionResponse :: ApplicationVersionDescriptionMessage -> TestTree
+testCreateApplicationVersionResponse = res
+    "CreateApplicationVersionResponse"
+    "fixture/CreateApplicationVersionResponse"
+    (Proxy :: Proxy CreateApplicationVersion)
+
+testUpdateEnvironmentResponse :: EnvironmentDescription -> TestTree
+testUpdateEnvironmentResponse = res
+    "UpdateEnvironmentResponse"
+    "fixture/UpdateEnvironmentResponse"
+    (Proxy :: Proxy UpdateEnvironment)
+
+testTerminateEnvironmentResponse :: EnvironmentDescription -> TestTree
+testTerminateEnvironmentResponse = res
+    "TerminateEnvironmentResponse"
+    "fixture/TerminateEnvironmentResponse"
+    (Proxy :: Proxy TerminateEnvironment)
+
+testDescribeEventsResponse :: DescribeEventsResponse -> TestTree
+testDescribeEventsResponse = res
+    "DescribeEventsResponse"
+    "fixture/DescribeEventsResponse"
+    (Proxy :: Proxy DescribeEvents)
+
+testRequestEnvironmentInfoResponse :: RequestEnvironmentInfoResponse -> TestTree
+testRequestEnvironmentInfoResponse = res
+    "RequestEnvironmentInfoResponse"
+    "fixture/RequestEnvironmentInfoResponse"
+    (Proxy :: Proxy RequestEnvironmentInfo)
+
+testRetrieveEnvironmentInfoResponse :: RetrieveEnvironmentInfoResponse -> TestTree
+testRetrieveEnvironmentInfoResponse = res
+    "RetrieveEnvironmentInfoResponse"
+    "fixture/RetrieveEnvironmentInfoResponse"
+    (Proxy :: Proxy RetrieveEnvironmentInfo)
+
+testDeleteApplicationResponse :: DeleteApplicationResponse -> TestTree
+testDeleteApplicationResponse = res
+    "DeleteApplicationResponse"
+    "fixture/DeleteApplicationResponse"
+    (Proxy :: Proxy DeleteApplication)
+
+testUpdateApplicationResponse :: ApplicationDescriptionMessage -> TestTree
+testUpdateApplicationResponse = res
+    "UpdateApplicationResponse"
+    "fixture/UpdateApplicationResponse"
+    (Proxy :: Proxy UpdateApplication)
+
+testDescribeInstancesHealthResponse :: DescribeInstancesHealthResponse -> TestTree
+testDescribeInstancesHealthResponse = res
+    "DescribeInstancesHealthResponse"
+    "fixture/DescribeInstancesHealthResponse"
+    (Proxy :: Proxy DescribeInstancesHealth)
+
+testCreateApplicationResponse :: ApplicationDescriptionMessage -> TestTree
+testCreateApplicationResponse = res
+    "CreateApplicationResponse"
+    "fixture/CreateApplicationResponse"
+    (Proxy :: Proxy CreateApplication)
+
+testAbortEnvironmentUpdateResponse :: AbortEnvironmentUpdateResponse -> TestTree
+testAbortEnvironmentUpdateResponse = res
+    "AbortEnvironmentUpdateResponse"
+    "fixture/AbortEnvironmentUpdateResponse"
+    (Proxy :: Proxy AbortEnvironmentUpdate)
+
+testDeleteApplicationVersionResponse :: DeleteApplicationVersionResponse -> TestTree
+testDeleteApplicationVersionResponse = res
+    "DeleteApplicationVersionResponse"
+    "fixture/DeleteApplicationVersionResponse"
+    (Proxy :: Proxy DeleteApplicationVersion)
+
+testUpdateApplicationVersionResponse :: ApplicationVersionDescriptionMessage -> TestTree
+testUpdateApplicationVersionResponse = res
+    "UpdateApplicationVersionResponse"
+    "fixture/UpdateApplicationVersionResponse"
+    (Proxy :: Proxy UpdateApplicationVersion)
+
+testDescribeEnvironmentResourcesResponse :: DescribeEnvironmentResourcesResponse -> TestTree
+testDescribeEnvironmentResourcesResponse = res
+    "DescribeEnvironmentResourcesResponse"
+    "fixture/DescribeEnvironmentResourcesResponse"
+    (Proxy :: Proxy DescribeEnvironmentResources)
+
+testDeleteConfigurationTemplateResponse :: DeleteConfigurationTemplateResponse -> TestTree
+testDeleteConfigurationTemplateResponse = res
+    "DeleteConfigurationTemplateResponse"
+    "fixture/DeleteConfigurationTemplateResponse"
+    (Proxy :: Proxy DeleteConfigurationTemplate)
+
+testUpdateConfigurationTemplateResponse :: ConfigurationSettingsDescription -> TestTree
+testUpdateConfigurationTemplateResponse = res
+    "UpdateConfigurationTemplateResponse"
+    "fixture/UpdateConfigurationTemplateResponse"
+    (Proxy :: Proxy UpdateConfigurationTemplate)
+
+testDescribeEnvironmentHealthResponse :: DescribeEnvironmentHealthResponse -> TestTree
+testDescribeEnvironmentHealthResponse = res
+    "DescribeEnvironmentHealthResponse"
+    "fixture/DescribeEnvironmentHealthResponse"
+    (Proxy :: Proxy DescribeEnvironmentHealth)
+
+testRebuildEnvironmentResponse :: RebuildEnvironmentResponse -> TestTree
+testRebuildEnvironmentResponse = res
+    "RebuildEnvironmentResponse"
+    "fixture/RebuildEnvironmentResponse"
+    (Proxy :: Proxy RebuildEnvironment)
+
+testDeleteEnvironmentConfigurationResponse :: DeleteEnvironmentConfigurationResponse -> TestTree
+testDeleteEnvironmentConfigurationResponse = res
+    "DeleteEnvironmentConfigurationResponse"
+    "fixture/DeleteEnvironmentConfigurationResponse"
+    (Proxy :: Proxy DeleteEnvironmentConfiguration)
+
+testCreateConfigurationTemplateResponse :: ConfigurationSettingsDescription -> TestTree
+testCreateConfigurationTemplateResponse = res
+    "CreateConfigurationTemplateResponse"
+    "fixture/CreateConfigurationTemplateResponse"
+    (Proxy :: Proxy CreateConfigurationTemplate)
+
+testListAvailableSolutionStacksResponse :: ListAvailableSolutionStacksResponse -> TestTree
+testListAvailableSolutionStacksResponse = res
+    "ListAvailableSolutionStacksResponse"
+    "fixture/ListAvailableSolutionStacksResponse"
+    (Proxy :: Proxy ListAvailableSolutionStacks)
+
+testSwapEnvironmentCNAMEsResponse :: SwapEnvironmentCNAMEsResponse -> TestTree
+testSwapEnvironmentCNAMEsResponse = res
+    "SwapEnvironmentCNAMEsResponse"
+    "fixture/SwapEnvironmentCNAMEsResponse"
+    (Proxy :: Proxy SwapEnvironmentCNAMEs)
+
+testDescribeConfigurationOptionsResponse :: DescribeConfigurationOptionsResponse -> TestTree
+testDescribeConfigurationOptionsResponse = res
+    "DescribeConfigurationOptionsResponse"
+    "fixture/DescribeConfigurationOptionsResponse"
+    (Proxy :: Proxy DescribeConfigurationOptions)
+
+testDescribeConfigurationSettingsResponse :: DescribeConfigurationSettingsResponse -> TestTree
+testDescribeConfigurationSettingsResponse = res
+    "DescribeConfigurationSettingsResponse"
+    "fixture/DescribeConfigurationSettingsResponse"
+    (Proxy :: Proxy DescribeConfigurationSettings)
+
+testCreateStorageLocationResponse :: CreateStorageLocationResponse -> TestTree
+testCreateStorageLocationResponse = res
+    "CreateStorageLocationResponse"
+    "fixture/CreateStorageLocationResponse"
+    (Proxy :: Proxy CreateStorageLocation)
+
+testDescribeEnvironmentsResponse :: DescribeEnvironmentsResponse -> TestTree
+testDescribeEnvironmentsResponse = res
+    "DescribeEnvironmentsResponse"
+    "fixture/DescribeEnvironmentsResponse"
+    (Proxy :: Proxy DescribeEnvironments)
+
+testRestartAppServerResponse :: RestartAppServerResponse -> TestTree
+testRestartAppServerResponse = res
+    "RestartAppServerResponse"
+    "fixture/RestartAppServerResponse"
+    (Proxy :: Proxy RestartAppServer)
+
+testValidateConfigurationSettingsResponse :: ValidateConfigurationSettingsResponse -> TestTree
+testValidateConfigurationSettingsResponse = res
+    "ValidateConfigurationSettingsResponse"
+    "fixture/ValidateConfigurationSettingsResponse"
+    (Proxy :: Proxy ValidateConfigurationSettings)
+
+testDescribeApplicationVersionsResponse :: DescribeApplicationVersionsResponse -> TestTree
+testDescribeApplicationVersionsResponse = res
+    "DescribeApplicationVersionsResponse"
+    "fixture/DescribeApplicationVersionsResponse"
+    (Proxy :: Proxy DescribeApplicationVersions)
+
+testCheckDNSAvailabilityResponse :: CheckDNSAvailabilityResponse -> TestTree
+testCheckDNSAvailabilityResponse = res
+    "CheckDNSAvailabilityResponse"
+    "fixture/CheckDNSAvailabilityResponse"
+    (Proxy :: Proxy CheckDNSAvailability)
+
+testCreateEnvironmentResponse :: EnvironmentDescription -> TestTree
+testCreateEnvironmentResponse = res
+    "CreateEnvironmentResponse"
+    "fixture/CreateEnvironmentResponse"
+    (Proxy :: Proxy CreateEnvironment)
