diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`1.3.6`
+`1.3.7`
 
 
 ## Description
diff --git a/amazonka-elasticbeanstalk.cabal b/amazonka-elasticbeanstalk.cabal
--- a/amazonka-elasticbeanstalk.cabal
+++ b/amazonka-elasticbeanstalk.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-elasticbeanstalk
-version:               1.3.6
+version:               1.3.7
 synopsis:              Amazon Elastic Beanstalk SDK.
 homepage:              https://github.com/brendanhay/amazonka
 bug-reports:           https://github.com/brendanhay/amazonka/issues
@@ -67,6 +67,7 @@
           Network.AWS.ElasticBeanstalk
         , Network.AWS.ElasticBeanstalk.AbortEnvironmentUpdate
         , Network.AWS.ElasticBeanstalk.CheckDNSAvailability
+        , Network.AWS.ElasticBeanstalk.ComposeEnvironments
         , Network.AWS.ElasticBeanstalk.CreateApplication
         , Network.AWS.ElasticBeanstalk.CreateApplicationVersion
         , Network.AWS.ElasticBeanstalk.CreateConfigurationTemplate
@@ -105,7 +106,7 @@
         , Network.AWS.ElasticBeanstalk.Types.Sum
 
     build-depends:
-          amazonka-core == 1.3.6.*
+          amazonka-core == 1.3.7.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-elasticbeanstalk-test
@@ -125,12 +126,11 @@
         , Test.AWS.ElasticBeanstalk.Internal
 
     build-depends:
-          amazonka-core == 1.3.6.*
-        , amazonka-test == 1.3.6.*
-        , amazonka-elasticbeanstalk == 1.3.6.*
+          amazonka-core == 1.3.7.*
+        , amazonka-test == 1.3.7.*
+        , amazonka-elasticbeanstalk == 1.3.7.*
         , base
         , bytestring
-        , lens
         , tasty
         , tasty-hunit
         , text
diff --git a/fixture/ComposeEnvironments.yaml b/fixture/ComposeEnvironments.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ComposeEnvironments.yaml
diff --git a/fixture/ComposeEnvironmentsResponse.proto b/fixture/ComposeEnvironmentsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ComposeEnvironmentsResponse.proto
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
@@ -121,6 +121,9 @@
     -- ** CreateApplication
     , module Network.AWS.ElasticBeanstalk.CreateApplication
 
+    -- ** ComposeEnvironments
+    , module Network.AWS.ElasticBeanstalk.ComposeEnvironments
+
     -- ** AbortEnvironmentUpdate
     , module Network.AWS.ElasticBeanstalk.AbortEnvironmentUpdate
 
@@ -186,6 +189,9 @@
 
     -- * Types
 
+    -- ** ApplicationVersionStatus
+    , ApplicationVersionStatus (..)
+
     -- ** ConfigurationDeploymentStatus
     , ConfigurationDeploymentStatus (..)
 
@@ -242,6 +248,7 @@
     -- ** ApplicationVersionDescription
     , ApplicationVersionDescription
     , applicationVersionDescription
+    , avdStatus
     , avdSourceBundle
     , avdDateUpdated
     , avdDateCreated
@@ -325,8 +332,14 @@
     , eSolutionStackName
     , eEnvironmentId
     , eHealthStatus
+    , eEnvironmentLinks
     , eDescription
 
+    -- ** EnvironmentDescriptionsMessage
+    , EnvironmentDescriptionsMessage
+    , environmentDescriptionsMessage
+    , edmEnvironments
+
     -- ** EnvironmentInfoDescription
     , EnvironmentInfoDescription
     , environmentInfoDescription
@@ -335,6 +348,12 @@
     , eidInfoType
     , eidMessage
 
+    -- ** EnvironmentLink
+    , EnvironmentLink
+    , environmentLink
+    , elLinkName
+    , elEnvironmentName
+
     -- ** EnvironmentResourceDescription
     , EnvironmentResourceDescription
     , environmentResourceDescription
@@ -506,6 +525,7 @@
 
 import           Network.AWS.ElasticBeanstalk.AbortEnvironmentUpdate
 import           Network.AWS.ElasticBeanstalk.CheckDNSAvailability
+import           Network.AWS.ElasticBeanstalk.ComposeEnvironments
 import           Network.AWS.ElasticBeanstalk.CreateApplication
 import           Network.AWS.ElasticBeanstalk.CreateApplicationVersion
 import           Network.AWS.ElasticBeanstalk.CreateConfigurationTemplate
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
@@ -38,6 +38,7 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -40,6 +40,7 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
@@ -126,10 +127,6 @@
 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.
diff --git a/gen/Network/AWS/ElasticBeanstalk/ComposeEnvironments.hs b/gen/Network/AWS/ElasticBeanstalk/ComposeEnvironments.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/ElasticBeanstalk/ComposeEnvironments.hs
@@ -0,0 +1,125 @@
+{-# 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.ComposeEnvironments
+-- 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)
+--
+-- Create or update a group of environments that each run a separate
+-- component of a single application. Takes a list of version labels that
+-- specify application source bundles for each of the environments to
+-- create or update. The name of each environment and other required
+-- information must be included in the source bundles in an environment
+-- manifest named 'env.yaml'. See
+-- <http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-mgmt-compose.html Compose Environments>
+-- for details.
+--
+-- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ComposeEnvironments.html AWS API Reference> for ComposeEnvironments.
+module Network.AWS.ElasticBeanstalk.ComposeEnvironments
+    (
+    -- * Creating a Request
+      composeEnvironments
+    , ComposeEnvironments
+    -- * Request Lenses
+    , ceVersionLabels
+    , ceApplicationName
+    , ceGroupName
+
+    -- * Destructuring the Response
+    , environmentDescriptionsMessage
+    , EnvironmentDescriptionsMessage
+    -- * Response Lenses
+    , edmEnvironments
+    ) where
+
+import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- |
+--
+-- /See:/ 'composeEnvironments' smart constructor.
+data ComposeEnvironments = ComposeEnvironments'
+    { _ceVersionLabels   :: !(Maybe [Text])
+    , _ceApplicationName :: !(Maybe Text)
+    , _ceGroupName       :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ComposeEnvironments' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ceVersionLabels'
+--
+-- * 'ceApplicationName'
+--
+-- * 'ceGroupName'
+composeEnvironments
+    :: ComposeEnvironments
+composeEnvironments =
+    ComposeEnvironments'
+    { _ceVersionLabels = Nothing
+    , _ceApplicationName = Nothing
+    , _ceGroupName = Nothing
+    }
+
+-- | A list of version labels, specifying one or more application source
+-- bundles that belong to the target application. Each source bundle must
+-- include an environment manifest that specifies the name of the
+-- environment and the name of the solution stack to use, and optionally
+-- can specify environment links to create.
+ceVersionLabels :: Lens' ComposeEnvironments [Text]
+ceVersionLabels = lens _ceVersionLabels (\ s a -> s{_ceVersionLabels = a}) . _Default . _Coerce;
+
+-- | The name of the application to which the specified source bundles
+-- belong.
+ceApplicationName :: Lens' ComposeEnvironments (Maybe Text)
+ceApplicationName = lens _ceApplicationName (\ s a -> s{_ceApplicationName = a});
+
+-- | The name of the group to which the target environments belong. Specify a
+-- group name only if the environment name defined in each target
+-- environment\'s manifest ends with a + (plus) character. See
+-- <http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-mgmt-compose.html#environment-mgmt-compose-envyaml Environment Manifest (env.yaml)>
+-- for details.
+ceGroupName :: Lens' ComposeEnvironments (Maybe Text)
+ceGroupName = lens _ceGroupName (\ s a -> s{_ceGroupName = a});
+
+instance AWSRequest ComposeEnvironments where
+        type Rs ComposeEnvironments =
+             EnvironmentDescriptionsMessage
+        request = postQuery elasticBeanstalk
+        response
+          = receiveXMLWrapper "ComposeEnvironmentsResult"
+              (\ s h x -> parseXML x)
+
+instance ToHeaders ComposeEnvironments where
+        toHeaders = const mempty
+
+instance ToPath ComposeEnvironments where
+        toPath = const "/"
+
+instance ToQuery ComposeEnvironments where
+        toQuery ComposeEnvironments'{..}
+          = mconcat
+              ["Action" =: ("ComposeEnvironments" :: ByteString),
+               "Version" =: ("2010-12-01" :: ByteString),
+               "VersionLabels" =:
+                 toQuery (toQueryList "member" <$> _ceVersionLabels),
+               "ApplicationName" =: _ceApplicationName,
+               "GroupName" =: _ceGroupName]
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
@@ -40,11 +40,12 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | This documentation target is not reported in the API reference.
+-- |
 --
 -- /See:/ 'createApplication' smart constructor.
 data CreateApplication = CreateApplication'
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
@@ -32,6 +32,7 @@
       createApplicationVersion
     , CreateApplicationVersion
     -- * Request Lenses
+    , cavProcess
     , cavSourceBundle
     , cavAutoCreateApplication
     , cavDescription
@@ -47,6 +48,7 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
@@ -55,7 +57,8 @@
 --
 -- /See:/ 'createApplicationVersion' smart constructor.
 data CreateApplicationVersion = CreateApplicationVersion'
-    { _cavSourceBundle          :: !(Maybe S3Location)
+    { _cavProcess               :: !(Maybe Bool)
+    , _cavSourceBundle          :: !(Maybe S3Location)
     , _cavAutoCreateApplication :: !(Maybe Bool)
     , _cavDescription           :: !(Maybe Text)
     , _cavApplicationName       :: !Text
@@ -66,6 +69,8 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
+-- * 'cavProcess'
+--
 -- * 'cavSourceBundle'
 --
 -- * 'cavAutoCreateApplication'
@@ -81,13 +86,20 @@
     -> CreateApplicationVersion
 createApplicationVersion pApplicationName_ pVersionLabel_ =
     CreateApplicationVersion'
-    { _cavSourceBundle = Nothing
+    { _cavProcess = Nothing
+    , _cavSourceBundle = Nothing
     , _cavAutoCreateApplication = Nothing
     , _cavDescription = Nothing
     , _cavApplicationName = pApplicationName_
     , _cavVersionLabel = pVersionLabel_
     }
 
+-- | Preprocesses and validates the environment manifest and configuration
+-- files in the source bundle. Validating configuration files can identify
+-- issues prior to deploying the application version to an environment.
+cavProcess :: Lens' CreateApplicationVersion (Maybe Bool)
+cavProcess = lens _cavProcess (\ s a -> s{_cavProcess = a});
+
 -- | The Amazon S3 bucket and key that identify the location of the source
 -- bundle for this version.
 --
@@ -106,12 +118,6 @@
 -- | 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.
---
--- '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
@@ -161,6 +167,7 @@
               ["Action" =:
                  ("CreateApplicationVersion" :: ByteString),
                "Version" =: ("2010-12-01" :: ByteString),
+               "Process" =: _cavProcess,
                "SourceBundle" =: _cavSourceBundle,
                "AutoCreateApplication" =: _cavAutoCreateApplication,
                "Description" =: _cavDescription,
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
@@ -60,11 +60,12 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | This documentation target is not reported in the API reference.
+-- |
 --
 -- /See:/ 'createConfigurationTemplate' smart constructor.
 data CreateConfigurationTemplate = CreateConfigurationTemplate'
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
@@ -28,17 +28,18 @@
       createEnvironment
     , CreateEnvironment
     -- * Request Lenses
-    , ceCNAMEPrefix
-    , ceTemplateName
-    , ceOptionsToRemove
-    , ceOptionSettings
-    , ceVersionLabel
-    , ceTier
-    , ceSolutionStackName
-    , ceDescription
-    , ceTags
-    , ceApplicationName
-    , ceEnvironmentName
+    , cCNAMEPrefix
+    , cTemplateName
+    , cOptionsToRemove
+    , cOptionSettings
+    , cVersionLabel
+    , cTier
+    , cEnvironmentName
+    , cSolutionStackName
+    , cGroupName
+    , cDescription
+    , cTags
+    , cApplicationName
 
     -- * Destructuring the Response
     , environmentDescription
@@ -60,11 +61,13 @@
     , eSolutionStackName
     , eEnvironmentId
     , eHealthStatus
+    , eEnvironmentLinks
     , eDescription
     ) where
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
@@ -73,68 +76,71 @@
 --
 -- /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
+    { _cCNAMEPrefix       :: !(Maybe Text)
+    , _cTemplateName      :: !(Maybe Text)
+    , _cOptionsToRemove   :: !(Maybe [OptionSpecification])
+    , _cOptionSettings    :: !(Maybe [ConfigurationOptionSetting])
+    , _cVersionLabel      :: !(Maybe Text)
+    , _cTier              :: !(Maybe EnvironmentTier)
+    , _cEnvironmentName   :: !(Maybe Text)
+    , _cSolutionStackName :: !(Maybe Text)
+    , _cGroupName         :: !(Maybe Text)
+    , _cDescription       :: !(Maybe Text)
+    , _cTags              :: !(Maybe [Tag])
+    , _cApplicationName   :: !Text
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'CreateEnvironment' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ceCNAMEPrefix'
+-- * 'cCNAMEPrefix'
 --
--- * 'ceTemplateName'
+-- * 'cTemplateName'
 --
--- * 'ceOptionsToRemove'
+-- * 'cOptionsToRemove'
 --
--- * 'ceOptionSettings'
+-- * 'cOptionSettings'
 --
--- * 'ceVersionLabel'
+-- * 'cVersionLabel'
 --
--- * 'ceTier'
+-- * 'cTier'
 --
--- * 'ceSolutionStackName'
+-- * 'cEnvironmentName'
 --
--- * 'ceDescription'
+-- * 'cSolutionStackName'
 --
--- * 'ceTags'
+-- * 'cGroupName'
 --
--- * 'ceApplicationName'
+-- * 'cDescription'
 --
--- * 'ceEnvironmentName'
+-- * 'cTags'
+--
+-- * 'cApplicationName'
 createEnvironment
-    :: Text -- ^ 'ceApplicationName'
-    -> Text -- ^ 'ceEnvironmentName'
+    :: Text -- ^ 'cApplicationName'
     -> CreateEnvironment
-createEnvironment pApplicationName_ pEnvironmentName_ =
+createEnvironment pApplicationName_ =
     CreateEnvironment'
-    { _ceCNAMEPrefix = Nothing
-    , _ceTemplateName = Nothing
-    , _ceOptionsToRemove = Nothing
-    , _ceOptionSettings = Nothing
-    , _ceVersionLabel = Nothing
-    , _ceTier = Nothing
-    , _ceSolutionStackName = Nothing
-    , _ceDescription = Nothing
-    , _ceTags = Nothing
-    , _ceApplicationName = pApplicationName_
-    , _ceEnvironmentName = pEnvironmentName_
+    { _cCNAMEPrefix = Nothing
+    , _cTemplateName = Nothing
+    , _cOptionsToRemove = Nothing
+    , _cOptionSettings = Nothing
+    , _cVersionLabel = Nothing
+    , _cTier = Nothing
+    , _cEnvironmentName = Nothing
+    , _cSolutionStackName = Nothing
+    , _cGroupName = Nothing
+    , _cDescription = Nothing
+    , _cTags = Nothing
+    , _cApplicationName = pApplicationName_
     }
 
 -- | 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});
+cCNAMEPrefix :: Lens' CreateEnvironment (Maybe Text)
+cCNAMEPrefix = lens _cCNAMEPrefix (\ s a -> s{_cCNAMEPrefix = a});
 
 -- | The name of the configuration template to use in deployment. If no
 -- configuration template is found with this name, AWS Elastic Beanstalk
@@ -145,20 +151,20 @@
 -- 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});
+cTemplateName :: Lens' CreateEnvironment (Maybe Text)
+cTemplateName = lens _cTemplateName (\ s a -> s{_cTemplateName = 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}) . _Default . _Coerce;
+cOptionsToRemove :: Lens' CreateEnvironment [OptionSpecification]
+cOptionsToRemove = lens _cOptionsToRemove (\ s a -> s{_cOptionsToRemove = a}) . _Default . _Coerce;
 
 -- | 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;
+cOptionSettings :: Lens' CreateEnvironment [ConfigurationOptionSetting]
+cOptionSettings = lens _cOptionSettings (\ s a -> s{_cOptionSettings = a}) . _Default . _Coerce;
 
 -- | The name of the application version to deploy.
 --
@@ -168,13 +174,28 @@
 --
 -- 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});
+cVersionLabel :: Lens' CreateEnvironment (Maybe Text)
+cVersionLabel = lens _cVersionLabel (\ s a -> s{_cVersionLabel = a});
 
 -- | This specifies the tier to use for creating this environment.
-ceTier :: Lens' CreateEnvironment (Maybe EnvironmentTier)
-ceTier = lens _ceTier (\ s a -> s{_ceTier = a});
+cTier :: Lens' CreateEnvironment (Maybe EnvironmentTier)
+cTier = lens _cTier (\ s a -> s{_cTier = 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.
+--
+-- 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.
+cEnvironmentName :: Lens' CreateEnvironment (Maybe Text)
+cEnvironmentName = lens _cEnvironmentName (\ s a -> s{_cEnvironmentName = a});
+
 -- | This is an alternative to specifying a template name. If specified, AWS
 -- Elastic Beanstalk sets the configuration values to the default values
 -- associated with the specified solution stack.
@@ -183,38 +204,31 @@
 -- 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});
+cSolutionStackName :: Lens' CreateEnvironment (Maybe Text)
+cSolutionStackName = lens _cSolutionStackName (\ s a -> s{_cSolutionStackName = a});
 
+-- | The name of the group to which the target environment belongs. Specify a
+-- group name only if the environment\'s name is specified in an
+-- environment manifest and not with the environment name parameter. See
+-- <http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-mgmt-compose.html#environment-mgmt-compose-envyaml Environment Manifest (env.yaml)>
+-- for details.
+cGroupName :: Lens' CreateEnvironment (Maybe Text)
+cGroupName = lens _cGroupName (\ s a -> s{_cGroupName = a});
+
 -- | Describes this environment.
-ceDescription :: Lens' CreateEnvironment (Maybe Text)
-ceDescription = lens _ceDescription (\ s a -> s{_ceDescription = a});
+cDescription :: Lens' CreateEnvironment (Maybe Text)
+cDescription = lens _cDescription (\ s a -> s{_cDescription = 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;
+cTags :: Lens' CreateEnvironment [Tag]
+cTags = lens _cTags (\ s a -> s{_cTags = a}) . _Default . _Coerce;
 
 -- | 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});
-
--- | 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.
---
--- 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});
+cApplicationName :: Lens' CreateEnvironment Text
+cApplicationName = lens _cApplicationName (\ s a -> s{_cApplicationName = a});
 
 instance AWSRequest CreateEnvironment where
         type Rs CreateEnvironment = EnvironmentDescription
@@ -234,16 +248,16 @@
           = mconcat
               ["Action" =: ("CreateEnvironment" :: ByteString),
                "Version" =: ("2010-12-01" :: ByteString),
-               "CNAMEPrefix" =: _ceCNAMEPrefix,
-               "TemplateName" =: _ceTemplateName,
+               "CNAMEPrefix" =: _cCNAMEPrefix,
+               "TemplateName" =: _cTemplateName,
                "OptionsToRemove" =:
-                 toQuery
-                   (toQueryList "member" <$> _ceOptionsToRemove),
+                 toQuery (toQueryList "member" <$> _cOptionsToRemove),
                "OptionSettings" =:
-                 toQuery (toQueryList "member" <$> _ceOptionSettings),
-               "VersionLabel" =: _ceVersionLabel, "Tier" =: _ceTier,
-               "SolutionStackName" =: _ceSolutionStackName,
-               "Description" =: _ceDescription,
-               "Tags" =: toQuery (toQueryList "member" <$> _ceTags),
-               "ApplicationName" =: _ceApplicationName,
-               "EnvironmentName" =: _ceEnvironmentName]
+                 toQuery (toQueryList "member" <$> _cOptionSettings),
+               "VersionLabel" =: _cVersionLabel, "Tier" =: _cTier,
+               "EnvironmentName" =: _cEnvironmentName,
+               "SolutionStackName" =: _cSolutionStackName,
+               "GroupName" =: _cGroupName,
+               "Description" =: _cDescription,
+               "Tags" =: toQuery (toQueryList "member" <$> _cTags),
+               "ApplicationName" =: _cApplicationName]
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
@@ -39,6 +39,7 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -41,11 +41,12 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | This documentation target is not reported in the API reference.
+-- |
 --
 -- /See:/ 'deleteApplication' smart constructor.
 data DeleteApplication = DeleteApplication'
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
@@ -41,11 +41,12 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | This documentation target is not reported in the API reference.
+-- |
 --
 -- /See:/ 'deleteApplicationVersion' smart constructor.
 data DeleteApplicationVersion = DeleteApplicationVersion'
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
@@ -42,11 +42,12 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | This documentation target is not reported in the API reference.
+-- |
 --
 -- /See:/ 'deleteConfigurationTemplate' smart constructor.
 data DeleteConfigurationTemplate = DeleteConfigurationTemplate'
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
@@ -44,11 +44,12 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | This documentation target is not reported in the API reference.
+-- |
 --
 -- /See:/ 'deleteEnvironmentConfiguration' smart constructor.
 data DeleteEnvironmentConfiguration = DeleteEnvironmentConfiguration'
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
@@ -18,7 +18,8 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Returns descriptions for existing application versions.
+-- Retrieve a list of application versions stored in your AWS Elastic
+-- Beanstalk storage bucket.
 --
 -- /See:/ <http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeApplicationVersions.html AWS API Reference> for DescribeApplicationVersions.
 module Network.AWS.ElasticBeanstalk.DescribeApplicationVersions
@@ -40,6 +41,7 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
@@ -131,7 +133,8 @@
     , _davrsResponseStatus = pResponseStatus_
     }
 
--- | A list of ApplicationVersionDescription .
+-- | List of 'ApplicationVersionDescription' objects sorted by order of
+-- creation.
 davrsApplicationVersions :: Lens' DescribeApplicationVersionsResponse [ApplicationVersionDescription]
 davrsApplicationVersions = lens _davrsApplicationVersions (\ s a -> s{_davrsApplicationVersions = a}) . _Default . _Coerce;
 
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
@@ -39,11 +39,12 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | This documentation target is not reported in the API reference.
+-- |
 --
 -- /See:/ 'describeApplications' smart constructor.
 newtype DescribeApplications = DescribeApplications'
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
@@ -48,6 +48,7 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -53,6 +53,7 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/ElasticBeanstalk/DescribeEnvironmentHealth.hs b/gen/Network/AWS/ElasticBeanstalk/DescribeEnvironmentHealth.hs
--- a/gen/Network/AWS/ElasticBeanstalk/DescribeEnvironmentHealth.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/DescribeEnvironmentHealth.hs
@@ -50,6 +50,7 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
@@ -82,16 +83,24 @@
     }
 
 -- | Specifies the AWS Elastic Beanstalk environment name.
+--
+-- Condition: You must specify either this or an EnvironmentId, or both. If
+-- you do not specify either, AWS Elastic Beanstalk returns
+-- 'MissingRequiredParameter' error.
 dehEnvironmentName :: Lens' DescribeEnvironmentHealth (Maybe Text)
 dehEnvironmentName = lens _dehEnvironmentName (\ s a -> s{_dehEnvironmentName = a});
 
 -- | Specifies the response elements you wish to receive. If no attribute
--- names are specified, AWS Elastic Beanstalk returns all response
--- elements.
+-- names are specified, AWS Elastic Beanstalk only returns the name of the
+-- environment.
 dehAttributeNames :: Lens' DescribeEnvironmentHealth [EnvironmentHealthAttribute]
 dehAttributeNames = lens _dehAttributeNames (\ s a -> s{_dehAttributeNames = a}) . _Default . _Coerce;
 
 -- | Specifies the AWS Elastic Beanstalk environment ID.
+--
+-- Condition: You must specify either this or an EnvironmentName, or both.
+-- If you do not specify either, AWS Elastic Beanstalk returns
+-- 'MissingRequiredParameter' error.
 dehEnvironmentId :: Lens' DescribeEnvironmentHealth (Maybe Text)
 dehEnvironmentId = lens _dehEnvironmentId (\ s a -> s{_dehEnvironmentId = 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
@@ -40,11 +40,12 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | This documentation target is not reported in the API reference.
+-- |
 --
 -- /See:/ 'describeEnvironmentResources' smart constructor.
 data DescribeEnvironmentResources = DescribeEnvironmentResources'
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
@@ -35,20 +35,20 @@
     , dIncludeDeleted
 
     -- * Destructuring the Response
-    , describeEnvironmentsResponse
-    , DescribeEnvironmentsResponse
+    , environmentDescriptionsMessage
+    , EnvironmentDescriptionsMessage
     -- * Response Lenses
-    , drsEnvironments
-    , drsResponseStatus
+    , edmEnvironments
     ) where
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | This documentation target is not reported in the API reference.
+-- |
 --
 -- /See:/ 'describeEnvironments' smart constructor.
 data DescribeEnvironments = DescribeEnvironments'
@@ -123,15 +123,11 @@
 
 instance AWSRequest DescribeEnvironments where
         type Rs DescribeEnvironments =
-             DescribeEnvironmentsResponse
+             EnvironmentDescriptionsMessage
         request = postQuery elasticBeanstalk
         response
           = receiveXMLWrapper "DescribeEnvironmentsResult"
-              (\ s h x ->
-                 DescribeEnvironmentsResponse' <$>
-                   (x .@? "Environments" .!@ mempty >>=
-                      may (parseXMLList "member"))
-                     <*> (pure (fromEnum s)))
+              (\ s h x -> parseXML x)
 
 instance ToHeaders DescribeEnvironments where
         toHeaders = const mempty
@@ -153,35 +149,3 @@
                "ApplicationName" =: _dApplicationName,
                "IncludedDeletedBackTo" =: _dIncludedDeletedBackTo,
                "IncludeDeleted" =: _dIncludeDeleted]
-
--- | Result message containing a list of environment descriptions.
---
--- /See:/ 'describeEnvironmentsResponse' smart constructor.
-data DescribeEnvironmentsResponse = DescribeEnvironmentsResponse'
-    { _drsEnvironments   :: !(Maybe [EnvironmentDescription])
-    , _drsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DescribeEnvironmentsResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'drsEnvironments'
---
--- * 'drsResponseStatus'
-describeEnvironmentsResponse
-    :: Int -- ^ 'drsResponseStatus'
-    -> DescribeEnvironmentsResponse
-describeEnvironmentsResponse pResponseStatus_ =
-    DescribeEnvironmentsResponse'
-    { _drsEnvironments = Nothing
-    , _drsResponseStatus = pResponseStatus_
-    }
-
--- | Returns an EnvironmentDescription list.
-drsEnvironments :: Lens' DescribeEnvironmentsResponse [EnvironmentDescription]
-drsEnvironments = lens _drsEnvironments (\ s a -> s{_drsEnvironments = a}) . _Default . _Coerce;
-
--- | The response status code.
-drsResponseStatus :: Lens' DescribeEnvironmentsResponse Int
-drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = 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
@@ -56,12 +56,13 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Pager
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | This documentation target is not reported in the API reference.
+-- |
 --
 -- /See:/ 'describeEvents' smart constructor.
 data DescribeEvents = DescribeEvents'
diff --git a/gen/Network/AWS/ElasticBeanstalk/DescribeInstancesHealth.hs b/gen/Network/AWS/ElasticBeanstalk/DescribeInstancesHealth.hs
--- a/gen/Network/AWS/ElasticBeanstalk/DescribeInstancesHealth.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/DescribeInstancesHealth.hs
@@ -47,6 +47,7 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
@@ -91,8 +92,8 @@
 dihEnvironmentName = lens _dihEnvironmentName (\ s a -> s{_dihEnvironmentName = a});
 
 -- | Specifies the response elements you wish to receive. If no attribute
--- names are specified, AWS Elastic Beanstalk returns all response
--- elements.
+-- names are specified, AWS Elastic Beanstalk only returns a list of
+-- instances.
 dihAttributeNames :: Lens' DescribeInstancesHealth [InstancesHealthAttribute]
 dihAttributeNames = lens _dihAttributeNames (\ s a -> s{_dihAttributeNames = a}) . _Default . _Coerce;
 
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
@@ -38,6 +38,7 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -39,6 +39,7 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -53,11 +53,12 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | This documentation target is not reported in the API reference.
+-- |
 --
 -- /See:/ 'requestEnvironmentInfo' smart constructor.
 data RequestEnvironmentInfo = RequestEnvironmentInfo'
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
@@ -38,6 +38,7 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -46,11 +46,12 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | This documentation target is not reported in the API reference.
+-- |
 --
 -- /See:/ 'retrieveEnvironmentInfo' smart constructor.
 data RetrieveEnvironmentInfo = RetrieveEnvironmentInfo'
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
@@ -39,6 +39,7 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -27,6 +27,7 @@
       terminateEnvironment
     , TerminateEnvironment
     -- * Request Lenses
+    , teForceTerminate
     , teTerminateResources
     , teEnvironmentName
     , teEnvironmentId
@@ -51,20 +52,23 @@
     , eSolutionStackName
     , eEnvironmentId
     , eHealthStatus
+    , eEnvironmentLinks
     , eDescription
     ) where
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | This documentation target is not reported in the API reference.
+-- |
 --
 -- /See:/ 'terminateEnvironment' smart constructor.
 data TerminateEnvironment = TerminateEnvironment'
-    { _teTerminateResources :: !(Maybe Bool)
+    { _teForceTerminate     :: !(Maybe Bool)
+    , _teTerminateResources :: !(Maybe Bool)
     , _teEnvironmentName    :: !(Maybe Text)
     , _teEnvironmentId      :: !(Maybe Text)
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
@@ -73,6 +77,8 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
+-- * 'teForceTerminate'
+--
 -- * 'teTerminateResources'
 --
 -- * 'teEnvironmentName'
@@ -82,20 +88,20 @@
     :: TerminateEnvironment
 terminateEnvironment =
     TerminateEnvironment'
-    { _teTerminateResources = Nothing
+    { _teForceTerminate = Nothing
+    , _teTerminateResources = Nothing
     , _teEnvironmentName = Nothing
     , _teEnvironmentId = Nothing
     }
 
+-- | Terminates the target environment even if another environment in the
+-- same group is dependent on it.
+teForceTerminate :: Lens' TerminateEnvironment (Maybe Bool)
+teForceTerminate = lens _teForceTerminate (\ s a -> s{_teForceTerminate = 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.
---
 -- -   'true': The specified environment as well as the associated AWS
 --     resources, such as Auto Scaling group and LoadBalancer, are
 --     terminated.
@@ -145,6 +151,7 @@
           = mconcat
               ["Action" =: ("TerminateEnvironment" :: ByteString),
                "Version" =: ("2010-12-01" :: ByteString),
+               "ForceTerminate" =: _teForceTerminate,
                "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
@@ -29,6 +29,9 @@
     , _S3LocationNotInServiceRegionException
     , _TooManyEnvironmentsException
 
+    -- * ApplicationVersionStatus
+    , ApplicationVersionStatus (..)
+
     -- * ConfigurationDeploymentStatus
     , ConfigurationDeploymentStatus (..)
 
@@ -85,6 +88,7 @@
     -- * ApplicationVersionDescription
     , ApplicationVersionDescription
     , applicationVersionDescription
+    , avdStatus
     , avdSourceBundle
     , avdDateUpdated
     , avdDateCreated
@@ -168,8 +172,14 @@
     , eSolutionStackName
     , eEnvironmentId
     , eHealthStatus
+    , eEnvironmentLinks
     , eDescription
 
+    -- * EnvironmentDescriptionsMessage
+    , EnvironmentDescriptionsMessage
+    , environmentDescriptionsMessage
+    , edmEnvironments
+
     -- * EnvironmentInfoDescription
     , EnvironmentInfoDescription
     , environmentInfoDescription
@@ -178,6 +188,12 @@
     , eidInfoType
     , eidMessage
 
+    -- * EnvironmentLink
+    , EnvironmentLink
+    , environmentLink
+    , elLinkName
+    , elEnvironmentName
+
     -- * EnvironmentResourceDescription
     , EnvironmentResourceDescription
     , environmentResourceDescription
@@ -349,6 +365,7 @@
 
 import           Network.AWS.ElasticBeanstalk.Types.Product
 import           Network.AWS.ElasticBeanstalk.Types.Sum
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Sign.V4
 
@@ -383,61 +400,57 @@
       | has (hasStatus 509) e = Just "limit_exceeded"
       | otherwise = Nothing
 
--- | The request is invalid, please check parameters and their values
+-- | One or more input parameters is not valid. Please correct the input
+-- parameters and try the operation again.
 _InvalidRequestException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidRequestException =
     _ServiceError . hasStatus 400 . hasCode "InvalidRequestException"
 
--- | The web service attempted to create a bucket in an Amazon S3 account
--- that already has 100 buckets.
+-- | The specified account has reached its limit of Amazon S3 buckets.
 _TooManyBucketsException :: AsError a => Getting (First ServiceError) a ServiceError
 _TooManyBucketsException =
     _ServiceError . hasStatus 400 . hasCode "TooManyBucketsException"
 
--- | The caller does not have a subscription to Amazon S3.
+-- | The specified account does not have a subscription to Amazon S3.
 _S3SubscriptionRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
 _S3SubscriptionRequiredException =
     _ServiceError . hasStatus 400 . hasCode "S3SubscriptionRequiredException"
 
--- | Unable to perform the specified operation because another operation is
--- already in progress affecting an element in this activity.
+-- | Unable to perform the specified operation because another operation that
+-- effects an element in this activity is already in progress.
 _OperationInProgressException :: AsError a => Getting (First ServiceError) a ServiceError
 _OperationInProgressException =
     _ServiceError . hasStatus 400 . hasCode "OperationInProgressFailure"
 
--- | The caller has exceeded the limit on the number of application versions
--- associated with their account.
+-- | The specified account has reached its limit of application versions.
 _TooManyApplicationVersionsException :: AsError a => Getting (First ServiceError) a ServiceError
 _TooManyApplicationVersionsException =
     _ServiceError . hasCode "TooManyApplicationVersionsException"
 
--- | The caller has exceeded the limit on the number of configuration
--- templates associated with their account.
+-- | The specified account has reached its limit of configuration templates.
 _TooManyConfigurationTemplatesException :: AsError a => Getting (First ServiceError) a ServiceError
 _TooManyConfigurationTemplatesException =
     _ServiceError .
     hasStatus 400 . hasCode "TooManyConfigurationTemplatesException"
 
--- | Unable to perform the specified operation because the user does not have
--- enough privileges for one of more downstream aws services
+-- | The specified account does not have sufficient privileges for one of
+-- more AWS services.
 _InsufficientPrivilegesException :: AsError a => Getting (First ServiceError) a ServiceError
 _InsufficientPrivilegesException =
     _ServiceError . hasStatus 403 . hasCode "InsufficientPrivilegesException"
 
--- | Prism for ElasticBeanstalkServiceException' errors.
+-- | A generic service exception has occurred.
 _ElasticBeanstalkServiceException :: AsError a => Getting (First ServiceError) a ServiceError
 _ElasticBeanstalkServiceException =
     _ServiceError . hasCode "ElasticBeanstalkServiceException"
 
--- | The caller has exceeded the limit on the number of applications
--- associated with their account.
+-- | The specified account has reached its limit of applications.
 _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.
+-- application version. The application version was deleted successfully.
 _SourceBundleDeletionException :: AsError a => Getting (First ServiceError) a ServiceError
 _SourceBundleDeletionException =
     _ServiceError . hasStatus 400 . hasCode "SourceBundleDeletionFailure"
@@ -449,8 +462,7 @@
     _ServiceError .
     hasStatus 400 . hasCode "S3LocationNotInServiceRegionException"
 
--- | The caller has exceeded the limit of allowed environments associated
--- with the account.
+-- | The specified account has reached its limit of environments.
 _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
--- a/gen/Network/AWS/ElasticBeanstalk/Types/Product.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/Types/Product.hs
@@ -18,6 +18,7 @@
 module Network.AWS.ElasticBeanstalk.Types.Product where
 
 import           Network.AWS.ElasticBeanstalk.Types.Sum
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 
 -- | Describes the properties of an application.
@@ -189,7 +190,8 @@
 --
 -- /See:/ 'applicationVersionDescription' smart constructor.
 data ApplicationVersionDescription = ApplicationVersionDescription'
-    { _avdSourceBundle    :: !(Maybe S3Location)
+    { _avdStatus          :: !(Maybe ApplicationVersionStatus)
+    , _avdSourceBundle    :: !(Maybe S3Location)
     , _avdDateUpdated     :: !(Maybe ISO8601)
     , _avdDateCreated     :: !(Maybe ISO8601)
     , _avdVersionLabel    :: !(Maybe Text)
@@ -201,6 +203,8 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
+-- * 'avdStatus'
+--
 -- * 'avdSourceBundle'
 --
 -- * 'avdDateUpdated'
@@ -216,7 +220,8 @@
     :: ApplicationVersionDescription
 applicationVersionDescription =
     ApplicationVersionDescription'
-    { _avdSourceBundle = Nothing
+    { _avdStatus = Nothing
+    , _avdSourceBundle = Nothing
     , _avdDateUpdated = Nothing
     , _avdDateCreated = Nothing
     , _avdVersionLabel = Nothing
@@ -224,6 +229,10 @@
     , _avdDescription = Nothing
     }
 
+-- | The processing status of the application version.
+avdStatus :: Lens' ApplicationVersionDescription (Maybe ApplicationVersionStatus)
+avdStatus = lens _avdStatus (\ s a -> s{_avdStatus = 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});
@@ -251,8 +260,9 @@
 instance FromXML ApplicationVersionDescription where
         parseXML x
           = ApplicationVersionDescription' <$>
-              (x .@? "SourceBundle") <*> (x .@? "DateUpdated") <*>
-                (x .@? "DateCreated")
+              (x .@? "Status") <*> (x .@? "SourceBundle") <*>
+                (x .@? "DateUpdated")
+                <*> (x .@? "DateCreated")
                 <*> (x .@? "VersionLabel")
                 <*> (x .@? "ApplicationName")
                 <*> (x .@? "Description")
@@ -479,12 +489,6 @@
 
 -- | 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.
@@ -514,17 +518,6 @@
 -- | 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
@@ -544,18 +537,6 @@
 -- | 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.
@@ -733,17 +714,6 @@
 -- '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
@@ -798,6 +768,7 @@
     , _eSolutionStackName            :: !(Maybe Text)
     , _eEnvironmentId                :: !(Maybe Text)
     , _eHealthStatus                 :: !(Maybe EnvironmentHealthStatus)
+    , _eEnvironmentLinks             :: !(Maybe [EnvironmentLink])
     , _eDescription                  :: !(Maybe Text)
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
@@ -837,6 +808,8 @@
 --
 -- * 'eHealthStatus'
 --
+-- * 'eEnvironmentLinks'
+--
 -- * 'eDescription'
 environmentDescription
     :: EnvironmentDescription
@@ -858,6 +831,7 @@
     , _eSolutionStackName = Nothing
     , _eEnvironmentId = Nothing
     , _eHealthStatus = Nothing
+    , _eEnvironmentLinks = Nothing
     , _eDescription = Nothing
     }
 
@@ -912,13 +886,6 @@
 -- | 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
@@ -963,6 +930,10 @@
 eHealthStatus :: Lens' EnvironmentDescription (Maybe EnvironmentHealthStatus)
 eHealthStatus = lens _eHealthStatus (\ s a -> s{_eHealthStatus = a});
 
+-- | A list of links to other environments in the same group.
+eEnvironmentLinks :: Lens' EnvironmentDescription [EnvironmentLink]
+eEnvironmentLinks = lens _eEnvironmentLinks (\ s a -> s{_eEnvironmentLinks = a}) . _Default . _Coerce;
+
 -- | Describes this environment.
 eDescription :: Lens' EnvironmentDescription (Maybe Text)
 eDescription = lens _eDescription (\ s a -> s{_eDescription = a});
@@ -985,8 +956,40 @@
                 <*> (x .@? "SolutionStackName")
                 <*> (x .@? "EnvironmentId")
                 <*> (x .@? "HealthStatus")
+                <*>
+                (x .@? "EnvironmentLinks" .!@ mempty >>=
+                   may (parseXMLList "member"))
                 <*> (x .@? "Description")
 
+-- | Result message containing a list of environment descriptions.
+--
+-- /See:/ 'environmentDescriptionsMessage' smart constructor.
+newtype EnvironmentDescriptionsMessage = EnvironmentDescriptionsMessage'
+    { _edmEnvironments :: Maybe [EnvironmentDescription]
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EnvironmentDescriptionsMessage' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'edmEnvironments'
+environmentDescriptionsMessage
+    :: EnvironmentDescriptionsMessage
+environmentDescriptionsMessage =
+    EnvironmentDescriptionsMessage'
+    { _edmEnvironments = Nothing
+    }
+
+-- | Returns an EnvironmentDescription list.
+edmEnvironments :: Lens' EnvironmentDescriptionsMessage [EnvironmentDescription]
+edmEnvironments = lens _edmEnvironments (\ s a -> s{_edmEnvironments = a}) . _Default . _Coerce;
+
+instance FromXML EnvironmentDescriptionsMessage where
+        parseXML x
+          = EnvironmentDescriptionsMessage' <$>
+              (x .@? "Environments" .!@ mempty >>=
+                 may (parseXMLList "member"))
+
 -- | The information retrieved from the Amazon EC2 instances.
 --
 -- /See:/ 'environmentInfoDescription' smart constructor.
@@ -1041,6 +1044,46 @@
                 <*> (x .@? "InfoType")
                 <*> (x .@? "Message")
 
+-- | A link to another environment, defined in the environment\'s manifest.
+-- Links provide connection information in system properties that can be
+-- used to connect to another environment in the same group. See
+-- <http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-mgmt-compose.html#environment-mgmt-compose-envyaml Environment Manifest (env.yaml)>
+-- for details.
+--
+-- /See:/ 'environmentLink' smart constructor.
+data EnvironmentLink = EnvironmentLink'
+    { _elLinkName        :: !(Maybe Text)
+    , _elEnvironmentName :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EnvironmentLink' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'elLinkName'
+--
+-- * 'elEnvironmentName'
+environmentLink
+    :: EnvironmentLink
+environmentLink =
+    EnvironmentLink'
+    { _elLinkName = Nothing
+    , _elEnvironmentName = Nothing
+    }
+
+-- | The name of the link.
+elLinkName :: Lens' EnvironmentLink (Maybe Text)
+elLinkName = lens _elLinkName (\ s a -> s{_elLinkName = a});
+
+-- | The name of the linked environment (the dependency).
+elEnvironmentName :: Lens' EnvironmentLink (Maybe Text)
+elEnvironmentName = lens _elEnvironmentName (\ s a -> s{_elEnvironmentName = a});
+
+instance FromXML EnvironmentLink where
+        parseXML x
+          = EnvironmentLink' <$>
+              (x .@? "LinkName") <*> (x .@? "EnvironmentName")
+
 -- | Describes the AWS resources in use by this environment. This data is
 -- live.
 --
@@ -2188,16 +2231,10 @@
 
 -- | 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
+-- -   '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.
+-- -   'warning': This message is providing information you should take
+--     into account.
 vmSeverity :: Lens' ValidationMessage (Maybe ValidationSeverity)
 vmSeverity = lens _vmSeverity (\ s a -> s{_vmSeverity = a});
 
diff --git a/gen/Network/AWS/ElasticBeanstalk/Types/Sum.hs b/gen/Network/AWS/ElasticBeanstalk/Types/Sum.hs
--- a/gen/Network/AWS/ElasticBeanstalk/Types/Sum.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/Types/Sum.hs
@@ -19,25 +19,56 @@
 
 import           Network.AWS.Prelude
 
+data ApplicationVersionStatus
+    = Failed
+    | Processed
+    | Processing
+    | Unprocessed
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+
+instance FromText ApplicationVersionStatus where
+    parser = takeLowerText >>= \case
+        "failed" -> pure Failed
+        "processed" -> pure Processed
+        "processing" -> pure Processing
+        "unprocessed" -> pure Unprocessed
+        e -> fromTextError $ "Failure parsing ApplicationVersionStatus from value: '" <> e
+           <> "'. Accepted values: Failed, Processed, Processing, Unprocessed"
+
+instance ToText ApplicationVersionStatus where
+    toText = \case
+        Failed -> "Failed"
+        Processed -> "Processed"
+        Processing -> "Processing"
+        Unprocessed -> "Unprocessed"
+
+instance Hashable     ApplicationVersionStatus
+instance ToByteString ApplicationVersionStatus
+instance ToQuery      ApplicationVersionStatus
+instance ToHeader     ApplicationVersionStatus
+
+instance FromXML ApplicationVersionStatus where
+    parseXML = parseXMLText "ApplicationVersionStatus"
+
 data ConfigurationDeploymentStatus
-    = Deployed
-    | Failed
-    | Pending
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    = CDSDeployed
+    | CDSFailed
+    | CDSPending
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText ConfigurationDeploymentStatus where
     parser = takeLowerText >>= \case
-        "deployed" -> pure Deployed
-        "failed" -> pure Failed
-        "pending" -> pure Pending
+        "deployed" -> pure CDSDeployed
+        "failed" -> pure CDSFailed
+        "pending" -> pure CDSPending
         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"
+        CDSDeployed -> "deployed"
+        CDSFailed -> "failed"
+        CDSPending -> "pending"
 
 instance Hashable     ConfigurationDeploymentStatus
 instance ToByteString ConfigurationDeploymentStatus
@@ -50,7 +81,7 @@
 data ConfigurationOptionValueType
     = List
     | Scalar
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText ConfigurationOptionValueType where
     parser = takeLowerText >>= \case
@@ -77,7 +108,7 @@
     | Grey
     | Red
     | Yellow
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText EnvironmentHealth where
     parser = takeLowerText >>= \case
@@ -112,7 +143,7 @@
     | EHAInstancesHealth
     | EHARefreshedAt
     | EHAStatus
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText EnvironmentHealthAttribute where
     parser = takeLowerText >>= \case
@@ -144,39 +175,39 @@
 instance ToHeader     EnvironmentHealthAttribute
 
 data EnvironmentHealthStatus
-    = EHSDegraded
-    | EHSInfo
-    | EHSNoData
-    | EHSOK
-    | EHSPending
-    | EHSSevere
-    | EHSUnknown
-    | EHSWarning
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    = Degraded
+    | Info
+    | NoData
+    | OK
+    | Pending
+    | Severe
+    | Unknown
+    | Warning
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,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
+        "degraded" -> pure Degraded
+        "info" -> pure Info
+        "nodata" -> pure NoData
+        "ok" -> pure OK
+        "pending" -> pure Pending
+        "severe" -> pure Severe
+        "unknown" -> pure Unknown
+        "warning" -> pure Warning
         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"
+        Degraded -> "Degraded"
+        Info -> "Info"
+        NoData -> "NoData"
+        OK -> "Ok"
+        Pending -> "Pending"
+        Severe -> "Severe"
+        Unknown -> "Unknown"
+        Warning -> "Warning"
 
 instance Hashable     EnvironmentHealthStatus
 instance ToByteString EnvironmentHealthStatus
@@ -189,7 +220,7 @@
 data EnvironmentInfoType
     = Bundle
     | Tail
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText EnvironmentInfoType where
     parser = takeLowerText >>= \case
@@ -217,7 +248,7 @@
     | Terminated
     | Terminating
     | Updating
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText EnvironmentStatus where
     parser = takeLowerText >>= \case
@@ -252,7 +283,7 @@
     | LevelInfo
     | LevelTrace
     | LevelWarn
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText EventSeverity where
     parser = takeLowerText >>= \case
@@ -291,7 +322,7 @@
     | LaunchedAt
     | RefreshedAt
     | System
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText InstancesHealthAttribute where
     parser = takeLowerText >>= \case
@@ -323,21 +354,21 @@
 instance ToHeader     InstancesHealthAttribute
 
 data ValidationSeverity
-    = Error'
-    | Warning
-    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+    = VSError'
+    | VSWarning
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
 
 instance FromText ValidationSeverity where
     parser = takeLowerText >>= \case
-        "error" -> pure Error'
-        "warning" -> pure Warning
+        "error" -> pure VSError'
+        "warning" -> pure VSWarning
         e -> fromTextError $ "Failure parsing ValidationSeverity from value: '" <> e
            <> "'. Accepted values: error, warning"
 
 instance ToText ValidationSeverity where
     toText = \case
-        Error' -> "error"
-        Warning -> "warning"
+        VSError' -> "error"
+        VSWarning -> "warning"
 
 instance Hashable     ValidationSeverity
 instance ToByteString 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
@@ -42,11 +42,12 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | This documentation target is not reported in the API reference.
+-- |
 --
 -- /See:/ 'updateApplication' smart constructor.
 data UpdateApplication = UpdateApplication'
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
@@ -44,6 +44,7 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -59,6 +59,7 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
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
@@ -45,8 +45,10 @@
     , ueVersionLabel
     , ueTier
     , ueEnvironmentName
+    , ueApplicationName
     , ueSolutionStackName
     , ueEnvironmentId
+    , ueGroupName
     , ueDescription
 
     -- * Destructuring the Response
@@ -69,16 +71,18 @@
     , eSolutionStackName
     , eEnvironmentId
     , eHealthStatus
+    , eEnvironmentLinks
     , eDescription
     ) where
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
 
--- | This documentation target is not reported in the API reference.
+-- |
 --
 -- /See:/ 'updateEnvironment' smart constructor.
 data UpdateEnvironment = UpdateEnvironment'
@@ -88,8 +92,10 @@
     , _ueVersionLabel      :: !(Maybe Text)
     , _ueTier              :: !(Maybe EnvironmentTier)
     , _ueEnvironmentName   :: !(Maybe Text)
+    , _ueApplicationName   :: !(Maybe Text)
     , _ueSolutionStackName :: !(Maybe Text)
     , _ueEnvironmentId     :: !(Maybe Text)
+    , _ueGroupName         :: !(Maybe Text)
     , _ueDescription       :: !(Maybe Text)
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
@@ -109,10 +115,14 @@
 --
 -- * 'ueEnvironmentName'
 --
+-- * 'ueApplicationName'
+--
 -- * 'ueSolutionStackName'
 --
 -- * 'ueEnvironmentId'
 --
+-- * 'ueGroupName'
+--
 -- * 'ueDescription'
 updateEnvironment
     :: UpdateEnvironment
@@ -124,8 +134,10 @@
     , _ueVersionLabel = Nothing
     , _ueTier = Nothing
     , _ueEnvironmentName = Nothing
+    , _ueApplicationName = Nothing
     , _ueSolutionStackName = Nothing
     , _ueEnvironmentId = Nothing
+    , _ueGroupName = Nothing
     , _ueDescription = Nothing
     }
 
@@ -169,6 +181,10 @@
 ueEnvironmentName :: Lens' UpdateEnvironment (Maybe Text)
 ueEnvironmentName = lens _ueEnvironmentName (\ s a -> s{_ueEnvironmentName = a});
 
+-- | The name of the application with which the environment is associated.
+ueApplicationName :: Lens' UpdateEnvironment (Maybe Text)
+ueApplicationName = lens _ueApplicationName (\ s a -> s{_ueApplicationName = a});
+
 -- | This specifies the platform version that the environment will run after
 -- the environment is updated.
 ueSolutionStackName :: Lens' UpdateEnvironment (Maybe Text)
@@ -185,6 +201,15 @@
 ueEnvironmentId :: Lens' UpdateEnvironment (Maybe Text)
 ueEnvironmentId = lens _ueEnvironmentId (\ s a -> s{_ueEnvironmentId = a});
 
+-- | The name of the group to which the target environment belongs. Specify a
+-- group name only if the environment\'s name is specified in an
+-- environment manifest and not with the environment name or environment ID
+-- parameters. See
+-- <http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-mgmt-compose.html#environment-mgmt-compose-envyaml Environment Manifest (env.yaml)>
+-- for details.
+ueGroupName :: Lens' UpdateEnvironment (Maybe Text)
+ueGroupName = lens _ueGroupName (\ s a -> s{_ueGroupName = a});
+
 -- | If this parameter is specified, AWS Elastic Beanstalk updates the
 -- description of this environment.
 ueDescription :: Lens' UpdateEnvironment (Maybe Text)
@@ -216,6 +241,8 @@
                  toQuery (toQueryList "member" <$> _ueOptionSettings),
                "VersionLabel" =: _ueVersionLabel, "Tier" =: _ueTier,
                "EnvironmentName" =: _ueEnvironmentName,
+               "ApplicationName" =: _ueApplicationName,
                "SolutionStackName" =: _ueSolutionStackName,
                "EnvironmentId" =: _ueEnvironmentId,
+               "GroupName" =: _ueGroupName,
                "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
@@ -46,6 +46,7 @@
 
 import           Network.AWS.ElasticBeanstalk.Types
 import           Network.AWS.ElasticBeanstalk.Types.Product
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Request
 import           Network.AWS.Response
diff --git a/gen/Network/AWS/ElasticBeanstalk/Waiters.hs b/gen/Network/AWS/ElasticBeanstalk/Waiters.hs
--- a/gen/Network/AWS/ElasticBeanstalk/Waiters.hs
+++ b/gen/Network/AWS/ElasticBeanstalk/Waiters.hs
@@ -16,5 +16,6 @@
 module Network.AWS.ElasticBeanstalk.Waiters where
 
 import           Network.AWS.ElasticBeanstalk.Types
+import           Network.AWS.Lens
 import           Network.AWS.Prelude
 import           Network.AWS.Waiter
diff --git a/test/Test/AWS/Gen/ElasticBeanstalk.hs b/test/Test/AWS/Gen/ElasticBeanstalk.hs
--- a/test/Test/AWS/Gen/ElasticBeanstalk.hs
+++ b/test/Test/AWS/Gen/ElasticBeanstalk.hs
@@ -61,6 +61,9 @@
 --         , testCreateApplication $
 --             createApplication
 --
+--         , testComposeEnvironments $
+--             composeEnvironments
+--
 --         , testAbortEnvironmentUpdate $
 --             abortEnvironmentUpdate
 --
@@ -160,6 +163,9 @@
 --         , testCreateApplicationResponse $
 --             applicationDescriptionMessage
 --
+--         , testComposeEnvironmentsResponse $
+--             environmentDescriptionsMessage
+--
 --         , testAbortEnvironmentUpdateResponse $
 --             abortEnvironmentUpdateResponse
 --
@@ -212,7 +218,7 @@
 --             restartAppServerResponse
 --
 --         , testDescribeEnvironmentsResponse $
---             describeEnvironmentsResponse
+--             environmentDescriptionsMessage
 --
 --         , testCheckDNSAvailabilityResponse $
 --             checkDNSAvailabilityResponse
@@ -283,6 +289,11 @@
     "CreateApplication"
     "fixture/CreateApplication.yaml"
 
+testComposeEnvironments :: ComposeEnvironments -> TestTree
+testComposeEnvironments = req
+    "ComposeEnvironments"
+    "fixture/ComposeEnvironments.yaml"
+
 testAbortEnvironmentUpdate :: AbortEnvironmentUpdate -> TestTree
 testAbortEnvironmentUpdate = req
     "AbortEnvironmentUpdate"
@@ -467,6 +478,13 @@
     elasticBeanstalk
     (Proxy :: Proxy CreateApplication)
 
+testComposeEnvironmentsResponse :: EnvironmentDescriptionsMessage -> TestTree
+testComposeEnvironmentsResponse = res
+    "ComposeEnvironmentsResponse"
+    "fixture/ComposeEnvironmentsResponse.proto"
+    elasticBeanstalk
+    (Proxy :: Proxy ComposeEnvironments)
+
 testAbortEnvironmentUpdateResponse :: AbortEnvironmentUpdateResponse -> TestTree
 testAbortEnvironmentUpdateResponse = res
     "AbortEnvironmentUpdateResponse"
@@ -586,7 +604,7 @@
     elasticBeanstalk
     (Proxy :: Proxy RestartAppServer)
 
-testDescribeEnvironmentsResponse :: DescribeEnvironmentsResponse -> TestTree
+testDescribeEnvironmentsResponse :: EnvironmentDescriptionsMessage -> TestTree
 testDescribeEnvironmentsResponse = res
     "DescribeEnvironmentsResponse"
     "fixture/DescribeEnvironmentsResponse.proto"
